diff --git a/submodules/Crc32/Crc32_Xcode.xcodeproj/project.pbxproj b/submodules/Crc32/Crc32_Xcode.xcodeproj/project.pbxproj deleted file mode 100644 index 294175cb54..0000000000 --- a/submodules/Crc32/Crc32_Xcode.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1595 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - D03E45692305CC310049C28B /* Crc32.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45672305CC310049C28B /* Crc32.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E45742305CCD20049C28B /* Crc32.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45732305CCD20049C28B /* Crc32.m */; }; - D03E45772305CCEC0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45762305CCEB0049C28B /* Foundation.framework */; }; - D03E45792305CCF00049C28B /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45782305CCF00049C28B /* libz.tbd */; }; - D03E46362306E0BB0049C28B /* crc32mac.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E46342306E0BB0049C28B /* crc32mac.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E463E2306E22E0049C28B /* Crc32.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45732305CCD20049C28B /* Crc32.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - D03E45642305CC310049C28B /* Crc32.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Crc32.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E45672305CC310049C28B /* Crc32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Crc32.h; sourceTree = ""; }; - D03E45682305CC310049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D03E45732305CCD20049C28B /* Crc32.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Crc32.m; sourceTree = ""; }; - D03E45762305CCEB0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - D03E45782305CCF00049C28B /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; - D03E46322306E0BB0049C28B /* crc32mac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = crc32mac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E46342306E0BB0049C28B /* crc32mac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = crc32mac.h; sourceTree = ""; }; - D03E46352306E0BB0049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - D03E45612305CC310049C28B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E45792305CCF00049C28B /* libz.tbd in Frameworks */, - D03E45772305CCEC0049C28B /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D03E462F2306E0BB0049C28B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - D03E455A2305CC310049C28B = { - isa = PBXGroup; - children = ( - D03E45682305CC310049C28B /* Info.plist */, - D03E45662305CC310049C28B /* Sources */, - D03E46332306E0BB0049C28B /* crc32mac */, - D03E45652305CC310049C28B /* Products */, - D03E45752305CCEB0049C28B /* Frameworks */, - ); - sourceTree = ""; - }; - D03E45652305CC310049C28B /* Products */ = { - isa = PBXGroup; - children = ( - D03E45642305CC310049C28B /* Crc32.framework */, - D03E46322306E0BB0049C28B /* crc32mac.framework */, - ); - name = Products; - sourceTree = ""; - }; - D03E45662305CC310049C28B /* Sources */ = { - isa = PBXGroup; - children = ( - D03E45732305CCD20049C28B /* Crc32.m */, - D03E45672305CC310049C28B /* Crc32.h */, - ); - path = Sources; - sourceTree = ""; - }; - D03E45752305CCEB0049C28B /* Frameworks */ = { - isa = PBXGroup; - children = ( - D03E45782305CCF00049C28B /* libz.tbd */, - D03E45762305CCEB0049C28B /* Foundation.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - D03E46332306E0BB0049C28B /* crc32mac */ = { - isa = PBXGroup; - children = ( - D03E46342306E0BB0049C28B /* crc32mac.h */, - D03E46352306E0BB0049C28B /* Info.plist */, - ); - path = crc32mac; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - D03E455F2305CC310049C28B /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E45692305CC310049C28B /* Crc32.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D03E462D2306E0BB0049C28B /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E46362306E0BB0049C28B /* crc32mac.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - D03E45632305CC310049C28B /* Crc32 */ = { - isa = PBXNativeTarget; - buildConfigurationList = D03E456C2305CC310049C28B /* Build configuration list for PBXNativeTarget "Crc32" */; - buildPhases = ( - D03E455F2305CC310049C28B /* Headers */, - D03E45602305CC310049C28B /* Sources */, - D03E45612305CC310049C28B /* Frameworks */, - D03E45622305CC310049C28B /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Crc32; - productName = Crc32; - productReference = D03E45642305CC310049C28B /* Crc32.framework */; - productType = "com.apple.product-type.framework"; - }; - D03E46312306E0BB0049C28B /* crc32mac */ = { - isa = PBXNativeTarget; - buildConfigurationList = D03E463B2306E0BB0049C28B /* Build configuration list for PBXNativeTarget "crc32mac" */; - buildPhases = ( - D03E462D2306E0BB0049C28B /* Headers */, - D03E462E2306E0BB0049C28B /* Sources */, - D03E462F2306E0BB0049C28B /* Frameworks */, - D03E46302306E0BB0049C28B /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = crc32mac; - productName = crc32mac; - productReference = D03E46322306E0BB0049C28B /* crc32mac.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D03E455B2305CC310049C28B /* Project object */ = { - isa = PBXProject; - attributes = { - DefaultBuildSystemTypeForWorkspace = Latest; - LastUpgradeCheck = 1030; - ORGANIZATIONNAME = "Telegram Messenger LLP"; - TargetAttributes = { - D03E45632305CC310049C28B = { - CreatedOnToolsVersion = 10.3; - }; - D03E46312306E0BB0049C28B = { - CreatedOnToolsVersion = 10.3; - }; - }; - }; - buildConfigurationList = D03E455E2305CC310049C28B /* Build configuration list for PBXProject "Crc32_Xcode" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = D03E455A2305CC310049C28B; - productRefGroup = D03E45652305CC310049C28B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - D03E45632305CC310049C28B /* Crc32 */, - D03E46312306E0BB0049C28B /* crc32mac */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - D03E45622305CC310049C28B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D03E46302306E0BB0049C28B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - D03E45602305CC310049C28B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E45742305CCD20049C28B /* Crc32.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D03E462E2306E0BB0049C28B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E463E2306E22E0049C28B /* Crc32.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - D0208AAC2306E7EB00A23503 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = HockeyappMacAlpha; - }; - D0208AAD2306E7EB00A23503 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = HockeyappMacAlpha; - }; - D0208AAE2306E7EB00A23503 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = crc32mac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = HockeyappMacAlpha; - }; - D0208AAF2306E7F700A23503 /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStore; - }; - D0208AB02306E7F700A23503 /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugAppStore; - }; - D0208AB12306E7F700A23503 /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = crc32mac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStore; - }; - D0208AB22306E7FD00A23503 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStore; - }; - D0208AB32306E7FD00A23503 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseAppStore; - }; - D0208AB42306E7FD00A23503 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = crc32mac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStore; - }; - D0208AB52306E80300A23503 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyapp; - }; - D0208AB62306E80300A23503 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseHockeyapp; - }; - D0208AB72306E80300A23503 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = crc32mac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyapp; - }; - D03E456A2305CC310049C28B /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - D03E456B2305CC310049C28B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - D03E456D2305CC310049C28B /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugAppStoreLLC; - }; - D03E456E2305CC310049C28B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseAppStoreLLC; - }; - D03E456F2305CC4E0049C28B /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D03E45702305CC4E0049C28B /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugHockeyapp; - }; - D03E45712305CC590049C28B /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; - D03E45722305CC590049C28B /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Crc32; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseHockeyappInternal; - }; - D03E46372306E0BB0049C28B /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = crc32mac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - D03E46382306E0BB0049C28B /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = crc32mac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D03E46392306E0BB0049C28B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = crc32mac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - D03E463A2306E0BB0049C28B /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = crc32mac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.crc32mac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - D03E455E2305CC310049C28B /* Build configuration list for PBXProject "Crc32_Xcode" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D03E456A2305CC310049C28B /* DebugAppStoreLLC */, - D03E456F2305CC4E0049C28B /* DebugHockeyapp */, - D0208AAF2306E7F700A23503 /* DebugAppStore */, - D0208AAC2306E7EB00A23503 /* HockeyappMacAlpha */, - D03E456B2305CC310049C28B /* ReleaseAppStoreLLC */, - D0208AB22306E7FD00A23503 /* ReleaseAppStore */, - D0208AB52306E80300A23503 /* ReleaseHockeyapp */, - D03E45712305CC590049C28B /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseAppStoreLLC; - }; - D03E456C2305CC310049C28B /* Build configuration list for PBXNativeTarget "Crc32" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D03E456D2305CC310049C28B /* DebugAppStoreLLC */, - D03E45702305CC4E0049C28B /* DebugHockeyapp */, - D0208AB02306E7F700A23503 /* DebugAppStore */, - D0208AAD2306E7EB00A23503 /* HockeyappMacAlpha */, - D03E456E2305CC310049C28B /* ReleaseAppStoreLLC */, - D0208AB32306E7FD00A23503 /* ReleaseAppStore */, - D0208AB62306E80300A23503 /* ReleaseHockeyapp */, - D03E45722305CC590049C28B /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseAppStoreLLC; - }; - D03E463B2306E0BB0049C28B /* Build configuration list for PBXNativeTarget "crc32mac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D03E46372306E0BB0049C28B /* DebugAppStoreLLC */, - D03E46382306E0BB0049C28B /* DebugHockeyapp */, - D0208AB12306E7F700A23503 /* DebugAppStore */, - D0208AAE2306E7EB00A23503 /* HockeyappMacAlpha */, - D03E46392306E0BB0049C28B /* ReleaseAppStoreLLC */, - D0208AB42306E7FD00A23503 /* ReleaseAppStore */, - D0208AB72306E80300A23503 /* ReleaseHockeyapp */, - D03E463A2306E0BB0049C28B /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseAppStoreLLC; - }; -/* End XCConfigurationList section */ - }; - rootObject = D03E455B2305CC310049C28B /* Project object */; -} diff --git a/submodules/Crc32/Info.plist b/submodules/Crc32/Info.plist deleted file mode 100644 index e1fe4cfb7b..0000000000 --- a/submodules/Crc32/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - - diff --git a/submodules/Crc32/crc32mac/Info.plist b/submodules/Crc32/crc32mac/Info.plist deleted file mode 100644 index 5371a6e108..0000000000 --- a/submodules/Crc32/crc32mac/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSHumanReadableCopyright - Copyright © 2019 Telegram Messenger LLP. All rights reserved. - - diff --git a/submodules/Crc32/crc32mac/crc32mac.h b/submodules/Crc32/crc32mac/crc32mac.h deleted file mode 100644 index ab2edb774a..0000000000 --- a/submodules/Crc32/crc32mac/crc32mac.h +++ /dev/null @@ -1,9 +0,0 @@ -#import - -//! Project version number for crc32mac. -FOUNDATION_EXPORT double crc32macVersionNumber; - -//! Project version string for crc32mac. -FOUNDATION_EXPORT const unsigned char crc32macVersionString[]; - -uint32_t Crc32(const void *bytes, int length); diff --git a/submodules/EncryptionProvider/Sources/EncryptionProvider.h b/submodules/EncryptionProvider/Sources/EncryptionProvider.h index adbd6579ae..0e43eab5d8 100644 --- a/submodules/EncryptionProvider/Sources/EncryptionProvider.h +++ b/submodules/EncryptionProvider/Sources/EncryptionProvider.h @@ -55,6 +55,8 @@ NS_ASSUME_NONNULL_BEGIN - (NSData * _Nullable)rsaEncryptPKCS1OAEPWithPublicKey:(NSString *)publicKey data:(NSData *)data; - (id)parseRSAPublicKey:(NSString *)publicKey; +-(NSData * _Nonnull)macosRSAEncrypt:(NSString *) publicKey data: (NSData *)data; + @end NS_ASSUME_NONNULL_END diff --git a/submodules/MtProtoKit/MTAes.h b/submodules/MtProtoKit/MTAes.h index 3c5996c6f4..db2a205745 100644 --- a/submodules/MtProtoKit/MTAes.h +++ b/submodules/MtProtoKit/MTAes.h @@ -1,12 +1,7 @@ #import -#if defined(MtProtoKitDynamicFramework) -# import -#elif defined(MtProtoKitMacFramework) -# import -#else -# import -#endif +#import + void MyAesIgeEncrypt(const void *inBytes, int length, void *outBytes, const void *key, int keyLength, void *iv); void MyAesIgeDecrypt(const void *inBytes, int length, void *outBytes, const void *key, int keyLength, void *iv); diff --git a/submodules/MtProtoKit/MTBackupAddressSignals.m b/submodules/MtProtoKit/MTBackupAddressSignals.m index 9ea3c985b2..e2464f9161 100644 --- a/submodules/MtProtoKit/MTBackupAddressSignals.m +++ b/submodules/MtProtoKit/MTBackupAddressSignals.m @@ -1,48 +1,18 @@ #import "MTBackupAddressSignals.h" -#if defined(MtProtoKitDynamicFramework) -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -#elif defined(MtProtoKitMacFramework) -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -#else -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -#endif +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import static NSData *base64_decode(NSString *str) { if ([NSData instancesRespondToSelector:@selector(initWithBase64EncodedString:options:)]) { diff --git a/submodules/MtProtoKit/MTConnectionProbing.m b/submodules/MtProtoKit/MTConnectionProbing.m index 2c146c9345..96f798975e 100644 --- a/submodules/MtProtoKit/MTConnectionProbing.m +++ b/submodules/MtProtoKit/MTConnectionProbing.m @@ -1,54 +1,20 @@ #import "MTConnectionProbing.h" -#if defined(MtProtoKitDynamicFramework) -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -#elif defined(MtProtoKitMacFramework) -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -#else -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -#endif +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import #import "PingFoundation.h" diff --git a/submodules/MtProtoKit/MTDNS.m b/submodules/MtProtoKit/MTDNS.m index 2a3a79a063..3e759df9a8 100644 --- a/submodules/MtProtoKit/MTDNS.m +++ b/submodules/MtProtoKit/MTDNS.m @@ -8,55 +8,21 @@ #import #import -#if defined(MtProtoKitDynamicFramework) -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -#elif defined(MtProtoKitMacFramework) -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -#else -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -# import -#endif +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import #import #import diff --git a/submodules/MtProtoKit/MTNetworkUsageManager.m b/submodules/MtProtoKit/MTNetworkUsageManager.m index 6447b3367d..9c0e81ccd9 100644 --- a/submodules/MtProtoKit/MTNetworkUsageManager.m +++ b/submodules/MtProtoKit/MTNetworkUsageManager.m @@ -3,25 +3,11 @@ #include #import -#if defined(MtProtoKitDynamicFramework) -# import -# import -# import -# import -# import -#elif defined(MtProtoKitMacFramework) -# import -# import -# import -# import -# import -#else -# import -# import -# import -# import -# import -#endif +#import +#import +#import +#import +#import static int offsetForInterface(MTNetworkUsageCalculationInfo *info, MTNetworkUsageManagerInterface interface, bool incoming) { switch (interface) { diff --git a/submodules/MtProtoKit/MTProtoKit/MTContext.h b/submodules/MtProtoKit/MTProtoKit/MTContext.h index 3191296bd2..9a80e6f6f1 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTContext.h +++ b/submodules/MtProtoKit/MTProtoKit/MTContext.h @@ -1,12 +1,6 @@ #import -#if defined(MtProtoKitDynamicFramework) -# import -#elif defined(MtProtoKitMacFramework) -# import -#else -# import -#endif +#import #import diff --git a/submodules/MtProtoKit/MTProtoKit/MTContext.m b/submodules/MtProtoKit/MTProtoKit/MTContext.m index 3a59fe8ae8..28311c25b8 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTContext.m +++ b/submodules/MtProtoKit/MTProtoKit/MTContext.m @@ -29,16 +29,8 @@ #import "MTTransportSchemeStats.h" -#if defined(MtProtoKitDynamicFramework) -# import -# import -#elif defined(MtProtoKitMacFramework) -# import -# import -#else -# import -# import -#endif +#import +#import @implementation MTContextBlockChangeListener diff --git a/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthAction.h b/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthAction.h index 1bee2467ca..ee7cb48685 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthAction.h +++ b/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthAction.h @@ -1,12 +1,7 @@ #import -#if defined(MtProtoKitDynamicFramework) -# import -#elif defined(MtProtoKitMacFramework) -# import -#else -# import -#endif +#import + @class MTContext; @class MTDatacenterAuthAction; diff --git a/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthAction.m b/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthAction.m index 53df9e0e68..39991daff9 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthAction.m +++ b/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthAction.m @@ -10,13 +10,8 @@ #import "MTSerialization.h" #import "MTDatacenterAddressSet.h" -#if defined(MtProtoKitDynamicFramework) -# import -#elif defined(MtProtoKitMacFramework) -# import -#else -# import -#endif +#import + #import "MTDatacenterAuthMessageService.h" #import "MTRequestMessageService.h" diff --git a/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthMessageService.h b/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthMessageService.h index 7689ca6f5b..82a07cfd4d 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthMessageService.h +++ b/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthMessageService.h @@ -1,12 +1,6 @@ -#if defined(MtProtoKitDynamicFramework) -# import -#elif defined(MtProtoKitMacFramework) -# import -#else -# import -#endif +#import @class MTContext; @class MTDatacenterAuthMessageService; diff --git a/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthMessageService.m b/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthMessageService.m index 11ad9cede5..a91d324576 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthMessageService.m +++ b/submodules/MtProtoKit/MTProtoKit/MTDatacenterAuthMessageService.m @@ -402,8 +402,7 @@ typedef enum { arc4random_buf(&random, 1); [dataWithHash appendBytes:&random length:1]; } - - NSData *encryptedData = MTRsaEncrypt([publicKey objectForKey:@"key"], dataWithHash); + NSData *encryptedData = MTRsaEncrypt(_encryptionProvider, [publicKey objectForKey:@"key"], dataWithHash); if (encryptedData.length < 256) { NSMutableData *newEncryptedData = [[NSMutableData alloc] init]; @@ -440,7 +439,7 @@ typedef enum { [dataWithHash appendBytes:&random length:1]; } - NSData *encryptedData = MTRsaEncrypt([publicKey objectForKey:@"key"], dataWithHash); + NSData *encryptedData = MTRsaEncrypt(_encryptionProvider, [publicKey objectForKey:@"key"], dataWithHash); if (encryptedData.length < 256) { NSMutableData *newEncryptedData = [[NSMutableData alloc] init]; diff --git a/submodules/MtProtoKit/MTProtoKit/MTEncryption.h b/submodules/MtProtoKit/MTProtoKit/MTEncryption.h index ab019b88ca..e197db45d1 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTEncryption.h +++ b/submodules/MtProtoKit/MTProtoKit/MTEncryption.h @@ -28,7 +28,7 @@ void MTAesDecryptInplaceAndModifyIv(NSMutableData *data, NSData *key, NSMutableD void MTAesDecryptBytesInplaceAndModifyIv(void *data, NSInteger length, NSData *key, void *iv); NSData *MTAesEncrypt(NSData *data, NSData *key, NSData *iv); NSData *MTAesDecrypt(NSData *data, NSData *key, NSData *iv); -NSData *MTRsaEncrypt(NSString *publicKey, NSData *data); +NSData *MTRsaEncrypt(id provider, NSString *publicKey, NSData *data); NSData *MTExp(id provider, NSData *base, NSData *exp, NSData *modulus); NSData *MTModSub(id provider, NSData *a, NSData *b, NSData *modulus); NSData *MTModMul(id provider, NSData *a, NSData *b, NSData *modulus); diff --git a/submodules/MtProtoKit/MTProtoKit/MTEncryption.m b/submodules/MtProtoKit/MTProtoKit/MTEncryption.m index 9670b2e599..9502616682 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTEncryption.m +++ b/submodules/MtProtoKit/MTProtoKit/MTEncryption.m @@ -291,7 +291,7 @@ NSData *MTAesDecrypt(NSData *data, NSData *key, NSData *iv) return resultData; } -NSData *MTRsaEncrypt(NSString *publicKey, NSData *data) +NSData *MTRsaEncrypt(id provider, NSString *publicKey, NSData *data) { #if TARGET_OS_IOS NSMutableData *updatedData = [[NSMutableData alloc] initWithData:data]; @@ -301,32 +301,7 @@ NSData *MTRsaEncrypt(NSString *publicKey, NSData *data) } return [MTRsa encryptData:updatedData publicKey:publicKey]; #else - BIO *keyBio = BIO_new(BIO_s_mem()); - const char *keyData = [publicKey UTF8String]; - BIO_write(keyBio, keyData, (int)publicKey.length); - RSA *rsaKey = PEM_read_bio_RSAPublicKey(keyBio, NULL, NULL, NULL); - BIO_free(keyBio); - - BN_CTX *ctx = BN_CTX_new(); - BIGNUM *a = BN_bin2bn(data.bytes, (int)data.length, NULL); - BIGNUM *r = BN_new(); - - - - BN_mod_exp(r, a, RSA_get0_e(rsaKey), RSA_get0_n(rsaKey), ctx); - - unsigned char *res = malloc((size_t)BN_num_bytes(r)); - int resLen = BN_bn2bin(r, res); - - BN_CTX_free(ctx); - BN_free(a); - BN_free(r); - - RSA_free(rsaKey); - - NSData *result = [[NSData alloc] initWithBytesNoCopy:res length:(NSUInteger)resLen freeWhenDone:true]; - - return result; + return [provider macosRSAEncrypt:publicKey data:data]; #endif } diff --git a/submodules/MtProtoKit/MTProtoKit/MTFileBasedKeychain.h b/submodules/MtProtoKit/MTProtoKit/MTFileBasedKeychain.h index d2dba51b0b..c392b05fd9 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTFileBasedKeychain.h +++ b/submodules/MtProtoKit/MTProtoKit/MTFileBasedKeychain.h @@ -1,12 +1,7 @@ #import -#if defined(MtProtoKitDynamicFramework) -# import -#elif defined(MtProtoKitMacFramework) -# import -#else -# import -#endif +#import + NS_ASSUME_NONNULL_BEGIN diff --git a/submodules/MtProtoKit/MTProtoKit/MTHttpRequestOperation.m b/submodules/MtProtoKit/MTProtoKit/MTHttpRequestOperation.m index 0e1a47f41b..e09912530a 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTHttpRequestOperation.m +++ b/submodules/MtProtoKit/MTProtoKit/MTHttpRequestOperation.m @@ -1,17 +1,8 @@ #import "MTHttpRequestOperation.h" #import "../thirdparty/AFNetworking/AFHTTPRequestOperation.h" - -#if defined(MtProtoKitDynamicFramework) -# import -# import -#elif defined(MtProtoKitMacFramework) -# import -# import -#else -# import -# import -#endif +#import +#import @implementation MTHttpRequestOperation diff --git a/submodules/MtProtoKit/MTProtoKit/MTProto.m b/submodules/MtProtoKit/MTProtoKit/MTProto.m index b93fc90721..f8372ac755 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTProto.m +++ b/submodules/MtProtoKit/MTProtoKit/MTProto.m @@ -56,16 +56,8 @@ #import "MTTime.h" -#if defined(MtProtoKitDynamicFramework) -# import -# import -#elif defined(MtProtoKitMacFramework) -# import -# import -#else -# import -# import -#endif +#import +#import typedef enum { MTProtoStateAwaitingDatacenterScheme = 1, diff --git a/submodules/MtProtoKit/MTProtoKit/MTRequestMessageService.h b/submodules/MtProtoKit/MTProtoKit/MTRequestMessageService.h index 95fee241a8..0ba4209fc4 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTRequestMessageService.h +++ b/submodules/MtProtoKit/MTProtoKit/MTRequestMessageService.h @@ -1,12 +1,6 @@ -#if defined(MtProtoKitDynamicFramework) -# import -#elif defined(MtProtoKitMacFramework) -# import -#else -# import -#endif +#import @class MTContext; @class MTRequest; diff --git a/submodules/MtProtoKit/MTProtoKit/MTResendMessageService.h b/submodules/MtProtoKit/MTProtoKit/MTResendMessageService.h index a94a3fa7aa..05c28b4555 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTResendMessageService.h +++ b/submodules/MtProtoKit/MTProtoKit/MTResendMessageService.h @@ -1,12 +1,6 @@ -#if defined(MtProtoKitDynamicFramework) -# import -#elif defined(MtProtoKitMacFramework) -# import -#else -# import -#endif +#import @class MTResendMessageService; diff --git a/submodules/MtProtoKit/MTProtoKit/MTSerialization.h b/submodules/MtProtoKit/MTProtoKit/MTSerialization.h index 4c100e6f14..bc197ee876 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTSerialization.h +++ b/submodules/MtProtoKit/MTProtoKit/MTSerialization.h @@ -2,19 +2,9 @@ #import -#if defined(MtProtoKitDynamicFramework) -# import -# import -# import -#elif defined(MtProtoKitMacFramework) -# import -# import -# import -#else -# import -# import -# import -#endif +#import +#import +#import typedef MTExportedAuthorizationData *(^MTExportAuthorizationResponseParser)(NSData *); typedef MTDatacenterAddressListData *(^MTRequestDatacenterAddressListParser)(NSData *); diff --git a/submodules/MtProtoKit/MTProtoKit/MTTcpTransport.h b/submodules/MtProtoKit/MTProtoKit/MTTcpTransport.h index c70d044c6f..c53639149d 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTTcpTransport.h +++ b/submodules/MtProtoKit/MTProtoKit/MTTcpTransport.h @@ -1,12 +1,6 @@ -#if defined(MtProtoKitDynamicFramework) -# import -#elif defined(MtProtoKitMacFramework) -# import -#else -# import -#endif +#import @interface MTTcpTransport : MTTransport diff --git a/submodules/MtProtoKit/MTProtoKit/MTTimeSyncMessageService.h b/submodules/MtProtoKit/MTProtoKit/MTTimeSyncMessageService.h index 0125669bee..287185d6b6 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTTimeSyncMessageService.h +++ b/submodules/MtProtoKit/MTProtoKit/MTTimeSyncMessageService.h @@ -1,12 +1,5 @@ - -#if defined(MtProtoKitDynamicFramework) -# import -#elif defined(MtProtoKitMacFramework) -# import -#else -# import -#endif +#import @class MTTimeSyncMessageService; diff --git a/submodules/MtProtoKit/MTProtoKit/MTTransport.h b/submodules/MtProtoKit/MTProtoKit/MTTransport.h index 5e17ec5a4b..fcc2d4b241 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTTransport.h +++ b/submodules/MtProtoKit/MTProtoKit/MTTransport.h @@ -12,13 +12,8 @@ @class MTNetworkUsageCalculationInfo; @class MTSocksProxySettings; -#if defined(MtProtoKitDynamicFramework) -# import -#elif defined(MtProtoKitMacFramework) -# import -#else -# import -#endif +#import + @protocol MTTransportDelegate diff --git a/submodules/MtProtoKit/MtProtoKitDynamic/Info.plist b/submodules/MtProtoKit/MtProtoKitDynamic/Info.plist deleted file mode 100644 index d3de8eefb6..0000000000 --- a/submodules/MtProtoKit/MtProtoKitDynamic/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/submodules/MtProtoKit/MtProtoKitDynamic/MtProtoKitDynamic.h b/submodules/MtProtoKit/MtProtoKitDynamic/MtProtoKitDynamic.h deleted file mode 100644 index 80ab27624e..0000000000 --- a/submodules/MtProtoKit/MtProtoKitDynamic/MtProtoKitDynamic.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// MtProtoKitDynamic.h -// MtProtoKitDynamic -// -// Created by Peter on 08/07/15. -// Copyright (c) 2015 Telegram. All rights reserved. -// - -#import - -//! Project version number for MtProtoKitDynamic. -FOUNDATION_EXPORT double MtProtoKitDynamicVersionNumber; - -//! Project version string for MtProtoKitDynamic. -FOUNDATION_EXPORT const unsigned char MtProtoKitDynamicVersionString[]; - -#ifndef MtProtoKitDynamicFramework -# define MtProtoKitDynamicFramework 1 -#endif - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import diff --git a/submodules/MtProtoKit/MtProtoKitDynamicTests/Info.plist b/submodules/MtProtoKit/MtProtoKitDynamicTests/Info.plist deleted file mode 100644 index ba72822e87..0000000000 --- a/submodules/MtProtoKit/MtProtoKitDynamicTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/submodules/MtProtoKit/MtProtoKitDynamicTests/MtProtoKitDynamicTests.m b/submodules/MtProtoKit/MtProtoKitDynamicTests/MtProtoKitDynamicTests.m deleted file mode 100644 index 03419f04d1..0000000000 --- a/submodules/MtProtoKit/MtProtoKitDynamicTests/MtProtoKitDynamicTests.m +++ /dev/null @@ -1,40 +0,0 @@ -// -// MtProtoKitDynamicTests.m -// MtProtoKitDynamicTests -// -// Created by Peter on 08/07/15. -// Copyright (c) 2015 Telegram. All rights reserved. -// - -#import -#import - -@interface MtProtoKitDynamicTests : XCTestCase - -@end - -@implementation MtProtoKitDynamicTests - -- (void)setUp { - [super setUp]; - // Put setup code here. This method is called before the invocation of each test method in the class. -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. - [super tearDown]; -} - -- (void)testExample { - // This is an example of a functional test case. - XCTAssert(YES, @"Pass"); -} - -- (void)testPerformanceExample { - // This is an example of a performance test case. - [self measureBlock:^{ - // Put the code you want to measure the time of here. - }]; -} - -@end diff --git a/submodules/MtProtoKit/MtProtoKitMac/Info.plist b/submodules/MtProtoKit/MtProtoKitMac/Info.plist deleted file mode 100644 index fb8e650960..0000000000 --- a/submodules/MtProtoKit/MtProtoKitMac/Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSHumanReadableCopyright - Copyright © 2015 Telegram. All rights reserved. - NSPrincipalClass - - - diff --git a/submodules/MtProtoKit/MtProtoKitMac/MtProtoKitMac.h b/submodules/MtProtoKit/MtProtoKitMac/MtProtoKitMac.h deleted file mode 100644 index bc5d0d3ba7..0000000000 --- a/submodules/MtProtoKit/MtProtoKitMac/MtProtoKitMac.h +++ /dev/null @@ -1,78 +0,0 @@ -// -// MtProtoKitMac.h -// MtProtoKitMac -// -// Created by Peter on 01/05/15. -// Copyright (c) 2015 Telegram. All rights reserved. -// - -#import - -//! Project version number for MtProtoKitMac. -FOUNDATION_EXPORT double MtProtoKitMacVersionNumber; - -//! Project version string for MtProtoKitMac. -FOUNDATION_EXPORT const unsigned char MtProtoKitMacVersionString[]; - -#ifndef MtProtoKitMacFramework -# define MtProtoKitMacFramework 1 -#endif - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import diff --git a/submodules/MtProtoKit/MtProtoKitMacTests/Info.plist b/submodules/MtProtoKit/MtProtoKitMacTests/Info.plist deleted file mode 100644 index 29dacae6b5..0000000000 --- a/submodules/MtProtoKit/MtProtoKitMacTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - org.telegram.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/submodules/MtProtoKit/MtProtoKitMacTests/MtProtoKitMacTests.m b/submodules/MtProtoKit/MtProtoKitMacTests/MtProtoKitMacTests.m deleted file mode 100644 index 438bf46480..0000000000 --- a/submodules/MtProtoKit/MtProtoKitMacTests/MtProtoKitMacTests.m +++ /dev/null @@ -1,40 +0,0 @@ -// -// MtProtoKitMacTests.m -// MtProtoKitMacTests -// -// Created by Peter on 01/05/15. -// Copyright (c) 2015 Telegram. All rights reserved. -// - -#import -#import - -@interface MtProtoKitMacTests : XCTestCase - -@end - -@implementation MtProtoKitMacTests - -- (void)setUp { - [super setUp]; - // Put setup code here. This method is called before the invocation of each test method in the class. -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. - [super tearDown]; -} - -- (void)testExample { - // This is an example of a functional test case. - XCTAssert(YES, @"Pass"); -} - -- (void)testPerformanceExample { - // This is an example of a performance test case. - [self measureBlock:^{ - // Put the code you want to measure the time of here. - }]; -} - -@end diff --git a/submodules/MtProtoKit/MtProtoKitOSX/MtProtoKitOSX-Info.plist b/submodules/MtProtoKit/MtProtoKitOSX/MtProtoKitOSX-Info.plist deleted file mode 100644 index 6e007e7768..0000000000 --- a/submodules/MtProtoKit/MtProtoKitOSX/MtProtoKitOSX-Info.plist +++ /dev/null @@ -1,30 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.telegram.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - NSHumanReadableCopyright - Copyright © 2014 Telegram. All rights reserved. - NSPrincipalClass - - - diff --git a/submodules/MtProtoKit/MtProtoKitOSX/MtProtoKitOSX-Prefix.pch b/submodules/MtProtoKit/MtProtoKitOSX/MtProtoKitOSX-Prefix.pch deleted file mode 100644 index 2d9f72e2f7..0000000000 --- a/submodules/MtProtoKit/MtProtoKitOSX/MtProtoKitOSX-Prefix.pch +++ /dev/null @@ -1,10 +0,0 @@ -// -// Prefix header -// -// The contents of this file are implicitly included at the beginning of every source file. -// - -#ifdef __OBJC__ - #import -#endif - diff --git a/submodules/MtProtoKit/MtProtoKitOSX/en.lproj/InfoPlist.strings b/submodules/MtProtoKit/MtProtoKitOSX/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28ff8f..0000000000 --- a/submodules/MtProtoKit/MtProtoKitOSX/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/submodules/MtProtoKit/MtProtoKitStabilityTests/Info.plist b/submodules/MtProtoKit/MtProtoKitStabilityTests/Info.plist deleted file mode 100644 index ba72822e87..0000000000 --- a/submodules/MtProtoKit/MtProtoKitStabilityTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/submodules/MtProtoKit/MtProtoKitStabilityTests/MtProtoKitStabilityTests.m b/submodules/MtProtoKit/MtProtoKitStabilityTests/MtProtoKitStabilityTests.m deleted file mode 100644 index ca7e23faa9..0000000000 --- a/submodules/MtProtoKit/MtProtoKitStabilityTests/MtProtoKitStabilityTests.m +++ /dev/null @@ -1,77 +0,0 @@ -#import - -#import -#import -#import - -@interface TestSerialization : NSObject - -@end - -@implementation TestSerialization - -- (NSUInteger)currentLayer { - return 42; -} - -- (id)parseMessage:(NSData *)__unused data { - return nil; -} - -- (MTExportAuthorizationResponseParser)exportAuthorization:(int32_t)datacenterId data:(__autoreleasing NSData **)data { - return nil; -} - -- (NSData *)importAuthorization:(int32_t)authId bytes:(NSData *)bytes { - return nil; -} - -- (MTRequestDatacenterAddressListParser)requestDatacenterAddressList:(int32_t)datacenterId data:(__autoreleasing NSData **)data { - return nil; -} - -@end - -@interface MtProtoKitStabilityTests : XCTestCase { - MTTcpTransport *_transport; -} - -@end - -@implementation MtProtoKitStabilityTests - -- (void)setUp { - [super setUp]; - // Put setup code here. This method is called before the invocation of each test method in the class. -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. - [super tearDown]; -} - -- (void)testExample { - MTApiEnvironment *apiEnvironment = [[MTApiEnvironment alloc] init]; - MTContext *context = [[MTContext alloc] initWithSerialization:[[TestSerialization alloc] init] apiEnvironment:apiEnvironment]; - - //for (int i = 0; i < 100; i++) { - _transport = [[MTTcpTransport alloc] initWithDelegate:self context:context datacenterId:1 address:[[MTDatacenterAddress alloc] initWithIp:@"149.154.175.50" port:443 preferForMedia:false]]; - _transport.delegate = self; - [_transport setDelegateNeedsTransaction]; - //} - sleep(2); -} - -- (void)transportConnectionStateChanged:(MTTransport *)transport isConnected:(bool)isConnected { - if (isConnected) { - _transport = nil; - } -} - -- (void)transportReadyForTransaction:(MTTransport *)transport transportSpecificTransaction:(MTMessageTransaction *)transportSpecificTransaction forceConfirmations:(bool)forceConfirmations transactionReady:(void (^)(NSArray *))transactionReady { - transactionReady(@[[[MTTransportTransaction alloc] initWithPayload:[NSData data] completion:^(bool success, id transactionId) { - - }]]); -} - -@end diff --git a/submodules/MtProtoKit/MtProtoKitTests/Info.plist b/submodules/MtProtoKit/MtProtoKitTests/Info.plist deleted file mode 100644 index 29dacae6b5..0000000000 --- a/submodules/MtProtoKit/MtProtoKitTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - org.telegram.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/submodules/MtProtoKit/MtProtoKitTests/MtProtoKitTests-Info.plist b/submodules/MtProtoKit/MtProtoKitTests/MtProtoKitTests-Info.plist deleted file mode 100644 index 0a5b184797..0000000000 --- a/submodules/MtProtoKit/MtProtoKitTests/MtProtoKitTests-Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - com.telegram.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/submodules/MtProtoKit/MtProtoKitTests/MtProtoKitTests.m b/submodules/MtProtoKit/MtProtoKitTests/MtProtoKitTests.m deleted file mode 100644 index a3541d32db..0000000000 --- a/submodules/MtProtoKit/MtProtoKitTests/MtProtoKitTests.m +++ /dev/null @@ -1,40 +0,0 @@ -// -// MtProtoKitTests.m -// MtProtoKitTests -// -// Created by Peter on 13/04/15. -// Copyright (c) 2015 Telegram. All rights reserved. -// - -#import -#import - -@interface MtProtoKitTests : XCTestCase - -@end - -@implementation MtProtoKitTests - -- (void)setUp { - [super setUp]; - // Put setup code here. This method is called before the invocation of each test method in the class. -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. - [super tearDown]; -} - -- (void)testExample { - // This is an example of a functional test case. - XCTAssert(YES, @"Pass"); -} - -- (void)testPerformanceExample { - // This is an example of a performance test case. - [self measureBlock:^{ - // Put the code you want to measure the time of here. - }]; -} - -@end diff --git a/submodules/MtProtoKit/MtProtoKitTests/en.lproj/InfoPlist.strings b/submodules/MtProtoKit/MtProtoKitTests/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28ff8f..0000000000 --- a/submodules/MtProtoKit/MtProtoKitTests/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/submodules/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj b/submodules/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj deleted file mode 100644 index 1f90c975c3..0000000000 --- a/submodules/MtProtoKit/MtProtoKit_Xcode.xcodeproj/project.pbxproj +++ /dev/null @@ -1,6411 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - D00083C922DD33E500EC418C /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D00083C822DD33E500EC418C /* libc++.tbd */; }; - D00354681C173BF0006610DA /* MtProtoKitStabilityTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D00354671C173BF0006610DA /* MtProtoKitStabilityTests.m */; }; - D003546A1C173BF0006610DA /* MtProtoKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CB05F71ADC4483005E298F /* MtProtoKit.framework */; }; - D00354701C173CB9006610DA /* SSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0580ABE1B0F3E7100E8235B /* SSignalKit.framework */; }; - D00354721C173CD0006610DA /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D00354711C173CD0006610DA /* libz.tbd */; }; - D00354741C173CD9006610DA /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00354731C173CD9006610DA /* SystemConfiguration.framework */; }; - D010DB7D1D70ABEE0012AD96 /* MTRsa.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7B1D70ABEE0012AD96 /* MTRsa.h */; }; - D010DB7E1D70ABEE0012AD96 /* MTRsa.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB7C1D70ABEE0012AD96 /* MTRsa.m */; }; - D010DB811D70B3B90012AD96 /* MTAes.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7F1D70B3B90012AD96 /* MTAes.h */; }; - D010DB821D70B3B90012AD96 /* MTAes.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB801D70B3B90012AD96 /* MTAes.m */; }; - D0119CC120CAD34800895300 /* MTConnectionProbing.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CBF20CAD34800895300 /* MTConnectionProbing.h */; }; - D0119CC220CAD34800895300 /* MTConnectionProbing.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CBF20CAD34800895300 /* MTConnectionProbing.h */; }; - D0119CC320CAD34800895300 /* MTConnectionProbing.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CBF20CAD34800895300 /* MTConnectionProbing.h */; }; - D0119CC420CAD34800895300 /* MTConnectionProbing.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC020CAD34800895300 /* MTConnectionProbing.m */; }; - D0119CC520CAD34800895300 /* MTConnectionProbing.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC020CAD34800895300 /* MTConnectionProbing.m */; }; - D0119CC620CAD34800895300 /* MTConnectionProbing.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC020CAD34800895300 /* MTConnectionProbing.m */; }; - D0119CC920CAD65D00895300 /* PingFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CC720CAD65D00895300 /* PingFoundation.h */; }; - D0119CCA20CAD65D00895300 /* PingFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CC720CAD65D00895300 /* PingFoundation.h */; }; - D0119CCB20CAD65D00895300 /* PingFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = D0119CC720CAD65D00895300 /* PingFoundation.h */; }; - D0119CCC20CAD65D00895300 /* PingFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC820CAD65D00895300 /* PingFoundation.m */; }; - D0119CCD20CAD65D00895300 /* PingFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC820CAD65D00895300 /* PingFoundation.m */; }; - D0119CCE20CAD65D00895300 /* PingFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = D0119CC820CAD65D00895300 /* PingFoundation.m */; }; - D015E018225CD19E00CB9E8A /* MTGzip.h in Headers */ = {isa = PBXBuildFile; fileRef = D015E016225CD19E00CB9E8A /* MTGzip.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D015E019225CD19E00CB9E8A /* MTGzip.h in Headers */ = {isa = PBXBuildFile; fileRef = D015E016225CD19E00CB9E8A /* MTGzip.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D015E01A225CD19E00CB9E8A /* MTGzip.h in Headers */ = {isa = PBXBuildFile; fileRef = D015E016225CD19E00CB9E8A /* MTGzip.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D015E01B225CD19E00CB9E8A /* MTGzip.m in Sources */ = {isa = PBXBuildFile; fileRef = D015E017225CD19E00CB9E8A /* MTGzip.m */; }; - D015E01C225CD19E00CB9E8A /* MTGzip.m in Sources */ = {isa = PBXBuildFile; fileRef = D015E017225CD19E00CB9E8A /* MTGzip.m */; }; - D015E01D225CD19E00CB9E8A /* MTGzip.m in Sources */ = {isa = PBXBuildFile; fileRef = D015E017225CD19E00CB9E8A /* MTGzip.m */; }; - D018559022DDD36C00AC458A /* Client.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558A22DDD36C00AC458A /* Client.h */; }; - D018559122DDD36C00AC458A /* TlObject.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558B22DDD36C00AC458A /* TlObject.h */; }; - D018559222DDD36C00AC458A /* tonlib_api.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558C22DDD36C00AC458A /* tonlib_api.h */; }; - D018559322DDD36C00AC458A /* int_types.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558D22DDD36C00AC458A /* int_types.h */; }; - D018559422DDD36C00AC458A /* TonlibCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558E22DDD36C00AC458A /* TonlibCallback.h */; }; - D018559522DDD36C00AC458A /* platform.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558F22DDD36C00AC458A /* platform.h */; }; - D018559622DDD37300AC458A /* Client.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558A22DDD36C00AC458A /* Client.h */; }; - D018559722DDD37300AC458A /* TlObject.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558B22DDD36C00AC458A /* TlObject.h */; }; - D018559822DDD37300AC458A /* tonlib_api.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558C22DDD36C00AC458A /* tonlib_api.h */; }; - D018559922DDD37300AC458A /* int_types.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558D22DDD36C00AC458A /* int_types.h */; }; - D018559A22DDD37300AC458A /* TonlibCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558E22DDD36C00AC458A /* TonlibCallback.h */; }; - D018559B22DDD37300AC458A /* platform.h in Headers */ = {isa = PBXBuildFile; fileRef = D018558F22DDD36C00AC458A /* platform.h */; }; - D0185E722089D265005E1A6C /* MTProxyConnectivity.h in Headers */ = {isa = PBXBuildFile; fileRef = D0185E702089D265005E1A6C /* MTProxyConnectivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0185E732089D265005E1A6C /* MTProxyConnectivity.h in Headers */ = {isa = PBXBuildFile; fileRef = D0185E702089D265005E1A6C /* MTProxyConnectivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0185E742089D265005E1A6C /* MTProxyConnectivity.h in Headers */ = {isa = PBXBuildFile; fileRef = D0185E702089D265005E1A6C /* MTProxyConnectivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0185E752089D265005E1A6C /* MTProxyConnectivity.m in Sources */ = {isa = PBXBuildFile; fileRef = D0185E712089D265005E1A6C /* MTProxyConnectivity.m */; }; - D0185E762089D265005E1A6C /* MTProxyConnectivity.m in Sources */ = {isa = PBXBuildFile; fileRef = D0185E712089D265005E1A6C /* MTProxyConnectivity.m */; }; - D0185E772089D265005E1A6C /* MTProxyConnectivity.m in Sources */ = {isa = PBXBuildFile; fileRef = D0185E712089D265005E1A6C /* MTProxyConnectivity.m */; }; - D020FAFA1D994E3100F279AA /* MTHttpRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D020FAF81D994E3100F279AA /* MTHttpRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D020FAFB1D994E3100F279AA /* MTHttpRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D020FAF81D994E3100F279AA /* MTHttpRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D020FAFC1D994E3100F279AA /* MTHttpRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D020FAF81D994E3100F279AA /* MTHttpRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D020FAFD1D994E3100F279AA /* MTHttpRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D020FAF91D994E3100F279AA /* MTHttpRequestOperation.m */; }; - D020FAFE1D994E3100F279AA /* MTHttpRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D020FAF91D994E3100F279AA /* MTHttpRequestOperation.m */; }; - D020FAFF1D994E3100F279AA /* MTHttpRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D020FAF91D994E3100F279AA /* MTHttpRequestOperation.m */; }; - D0338739223BC115007A2CE4 /* MTPKCS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0338737223BC115007A2CE4 /* MTPKCS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D033873A223BC115007A2CE4 /* MTPKCS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0338737223BC115007A2CE4 /* MTPKCS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D033873B223BC115007A2CE4 /* MTPKCS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0338737223BC115007A2CE4 /* MTPKCS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D033873C223BC115007A2CE4 /* MTPKCS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0338738223BC115007A2CE4 /* MTPKCS.m */; }; - D033873D223BC115007A2CE4 /* MTPKCS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0338738223BC115007A2CE4 /* MTPKCS.m */; }; - D033873E223BC115007A2CE4 /* MTPKCS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0338738223BC115007A2CE4 /* MTPKCS.m */; }; - D038789E2332500A00DB441C /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D038789D2332500A00DB441C /* libc++.tbd */; }; - D03878A02332503300DB441C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D038789F2332503300DB441C /* Security.framework */; }; - D03878A22332503E00DB441C /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A12332503E00DB441C /* SystemConfiguration.framework */; }; - D03878A42332504600DB441C /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A32332504600DB441C /* CFNetwork.framework */; }; - D03878BC2332506800DB441C /* libton_crypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A52332506700DB441C /* libton_crypto.a */; }; - D03878BD2332506800DB441C /* libmemprof.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A62332506700DB441C /* libmemprof.a */; }; - D03878BE2332506800DB441C /* libtonlib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A72332506700DB441C /* libtonlib.a */; }; - D03878BF2332506800DB441C /* libtonlibjson_private.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A82332506700DB441C /* libtonlibjson_private.a */; }; - D03878C02332506800DB441C /* libtdtl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878A92332506700DB441C /* libtdtl.a */; }; - D03878C12332506800DB441C /* libkeys.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878AA2332506700DB441C /* libkeys.a */; }; - D03878C22332506800DB441C /* libtdnet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878AB2332506700DB441C /* libtdnet.a */; }; - D03878C32332506800DB441C /* libtonlibjson_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878AC2332506700DB441C /* libtonlibjson_static.a */; }; - D03878C42332506800DB441C /* libfift.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878AD2332506700DB441C /* libfift.a */; }; - D03878C52332506800DB441C /* libtl_tonlib_api_json.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878AE2332506800DB441C /* libtl_tonlib_api_json.a */; }; - D03878C62332506800DB441C /* libtl-utils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878AF2332506800DB441C /* libtl-utils.a */; }; - D03878C72332506800DB441C /* libadnllite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B02332506800DB441C /* libadnllite.a */; }; - D03878C82332506800DB441C /* libtl_tonlib_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B12332506800DB441C /* libtl_tonlib_api.a */; }; - D03878C92332506800DB441C /* libtdutils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B22332506800DB441C /* libtdutils.a */; }; - D03878CA2332506800DB441C /* libterminal.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B32332506800DB441C /* libterminal.a */; }; - D03878CB2332506800DB441C /* libtl_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B42332506800DB441C /* libtl_api.a */; }; - D03878CC2332506800DB441C /* libcrc32c.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B52332506800DB441C /* libcrc32c.a */; }; - D03878CD2332506800DB441C /* libtl-lite-utils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B62332506800DB441C /* libtl-lite-utils.a */; }; - D03878CE2332506800DB441C /* libtddb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B72332506800DB441C /* libtddb.a */; }; - D03878CF2332506800DB441C /* libtl_lite_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B82332506800DB441C /* libtl_lite_api.a */; }; - D03878D02332506800DB441C /* libton_block.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878B92332506800DB441C /* libton_block.a */; }; - D03878D12332506800DB441C /* libton_db.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878BA2332506800DB441C /* libton_db.a */; }; - D03878D22332506800DB441C /* libtdactor.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D03878BB2332506800DB441C /* libtdactor.a */; }; - D0529D2B21A434BF00D7C3C4 /* MTTransportSchemeStats.h in Headers */ = {isa = PBXBuildFile; fileRef = D0529D2921A434BF00D7C3C4 /* MTTransportSchemeStats.h */; }; - D0529D2C21A434BF00D7C3C4 /* MTTransportSchemeStats.h in Headers */ = {isa = PBXBuildFile; fileRef = D0529D2921A434BF00D7C3C4 /* MTTransportSchemeStats.h */; }; - D0529D2D21A434BF00D7C3C4 /* MTTransportSchemeStats.h in Headers */ = {isa = PBXBuildFile; fileRef = D0529D2921A434BF00D7C3C4 /* MTTransportSchemeStats.h */; }; - D0529D2E21A434BF00D7C3C4 /* MTTransportSchemeStats.m in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2A21A434BF00D7C3C4 /* MTTransportSchemeStats.m */; }; - D0529D2F21A434BF00D7C3C4 /* MTTransportSchemeStats.m in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2A21A434BF00D7C3C4 /* MTTransportSchemeStats.m */; }; - D0529D3021A434BF00D7C3C4 /* MTTransportSchemeStats.m in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2A21A434BF00D7C3C4 /* MTTransportSchemeStats.m */; }; - D0580AC21B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0580AC01B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h */; }; - D0580AC31B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0580AC11B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m */; }; - D073D2D81FB5E493009E1DA2 /* MTBindingTempAuthKeyContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C0EAE51FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m */; }; - D073D2D91FB5E494009E1DA2 /* MTBindingTempAuthKeyContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C0EAE51FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m */; }; - D079AB9C1AF39B8000076F59 /* MtProtoKitMac.h in Headers */ = {isa = PBXBuildFile; fileRef = D079AB9B1AF39B8000076F59 /* MtProtoKitMac.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D08A159122DD32B40073B508 /* tonlibjson_export.h in Headers */ = {isa = PBXBuildFile; fileRef = D08A158F22DD32B40073B508 /* tonlibjson_export.h */; }; - D08A159222DD32B40073B508 /* tonlib_client_json.h in Headers */ = {isa = PBXBuildFile; fileRef = D08A159022DD32B40073B508 /* tonlib_client_json.h */; }; - D08A159D22DD32F20073B508 /* TON.h in Headers */ = {isa = PBXBuildFile; fileRef = D08A159B22DD32F20073B508 /* TON.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D08A159E22DD32F20073B508 /* TON.mm in Sources */ = {isa = PBXBuildFile; fileRef = D08A159C22DD32F20073B508 /* TON.mm */; }; - D09A59581B582EFF00FC3724 /* MTFileBasedKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D09A59561B582EFF00FC3724 /* MTFileBasedKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D09A59591B582EFF00FC3724 /* MTFileBasedKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D09A59571B582EFF00FC3724 /* MTFileBasedKeychain.m */; }; - D0B0DF5D1DD7E75B003BA12D /* MTBag.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B0DF5C1DD7E75B003BA12D /* MTBag.m */; }; - D0B0DF5E1DD7E75B003BA12D /* MTBag.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B0DF5C1DD7E75B003BA12D /* MTBag.m */; }; - D0B0DF5F1DD7E75B003BA12D /* MTBag.m in Sources */ = {isa = PBXBuildFile; fileRef = D0B0DF5C1DD7E75B003BA12D /* MTBag.m */; }; - D0B0DF611DD7E7A2003BA12D /* MTBag.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B0DF601DD7E768003BA12D /* MTBag.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0B0DF621DD7E7A3003BA12D /* MTBag.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B0DF601DD7E768003BA12D /* MTBag.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0B0DF631DD7E7A4003BA12D /* MTBag.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B0DF601DD7E768003BA12D /* MTBag.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0B4187B1D7E04CF004562A4 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B4187A1D7E04CF004562A4 /* libz.tbd */; }; - D0B4187D1D7E04EB004562A4 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B4187C1D7E04EB004562A4 /* libcrypto.a */; }; - D0BFAE6020AB504600793CF2 /* MTDatacenterVerificationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BFAE5E20AB504600793CF2 /* MTDatacenterVerificationData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0BFAE6120AB504600793CF2 /* MTDatacenterVerificationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE5F20AB504600793CF2 /* MTDatacenterVerificationData.m */; }; - D0BFAE6220AB505400793CF2 /* MTDatacenterVerificationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BFAE5E20AB504600793CF2 /* MTDatacenterVerificationData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0BFAE6320AB505400793CF2 /* MTDatacenterVerificationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BFAE5E20AB504600793CF2 /* MTDatacenterVerificationData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0BFAE6420AB505700793CF2 /* MTDatacenterVerificationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE5F20AB504600793CF2 /* MTDatacenterVerificationData.m */; }; - D0BFAE6520AB505800793CF2 /* MTDatacenterVerificationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE5F20AB504600793CF2 /* MTDatacenterVerificationData.m */; }; - D0C0EAE61FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C0EAE41FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.h */; }; - D0C0EAE71FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C0EAE51FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m */; }; - D0C932231E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932211E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0C932241E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932211E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0C932251E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932211E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0C932261E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C932221E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m */; }; - D0C932271E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C932221E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m */; }; - D0C932281E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C932221E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m */; }; - D0C9322B1E095E280074F044 /* MTNetworkUsageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932291E095E280074F044 /* MTNetworkUsageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0C9322C1E095E280074F044 /* MTNetworkUsageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932291E095E280074F044 /* MTNetworkUsageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0C9322D1E095E280074F044 /* MTNetworkUsageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C932291E095E280074F044 /* MTNetworkUsageManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0C9322E1E095E280074F044 /* MTNetworkUsageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C9322A1E095E280074F044 /* MTNetworkUsageManager.m */; }; - D0C9322F1E095E280074F044 /* MTNetworkUsageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C9322A1E095E280074F044 /* MTNetworkUsageManager.m */; }; - D0C932301E095E280074F044 /* MTNetworkUsageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C9322A1E095E280074F044 /* MTNetworkUsageManager.m */; }; - D0CAF2CB1D75E24C0011F558 /* MTSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2C91D75E24C0011F558 /* MTSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CAF2CC1D75E24C0011F558 /* MTSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2CA1D75E24C0011F558 /* MTSignal.m */; }; - D0CAF2CD1D75E2570011F558 /* MTSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2C91D75E24C0011F558 /* MTSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CAF2CE1D75E2580011F558 /* MTSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2C91D75E24C0011F558 /* MTSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CAF2CF1D75E25B0011F558 /* MTSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2CA1D75E24C0011F558 /* MTSignal.m */; }; - D0CAF2D01D75E25B0011F558 /* MTSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2CA1D75E24C0011F558 /* MTSignal.m */; }; - D0CAF2D31D75E26D0011F558 /* MTSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D11D75E26D0011F558 /* MTSubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CAF2D41D75E26D0011F558 /* MTSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D21D75E26D0011F558 /* MTSubscriber.m */; }; - D0CAF2D71D75E2840011F558 /* MTDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D51D75E2840011F558 /* MTDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CAF2D81D75E2840011F558 /* MTDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D61D75E2840011F558 /* MTDisposable.m */; }; - D0CAF2D91D75E3160011F558 /* MTSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D11D75E26D0011F558 /* MTSubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CAF2DA1D75E3160011F558 /* MTSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D11D75E26D0011F558 /* MTSubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CAF2DB1D75E31A0011F558 /* MTDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D51D75E2840011F558 /* MTDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CAF2DC1D75E31B0011F558 /* MTDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2D51D75E2840011F558 /* MTDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CAF2DD1D75E31E0011F558 /* MTDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D61D75E2840011F558 /* MTDisposable.m */; }; - D0CAF2DE1D75E31E0011F558 /* MTSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D21D75E26D0011F558 /* MTSubscriber.m */; }; - D0CAF2DF1D75E31F0011F558 /* MTDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D61D75E2840011F558 /* MTDisposable.m */; }; - D0CAF2E01D75E31F0011F558 /* MTSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2D21D75E26D0011F558 /* MTSubscriber.m */; }; - D0CAF2E31D75E7F30011F558 /* MTAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2E11D75E7F30011F558 /* MTAtomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CAF2E41D75E7F30011F558 /* MTAtomic.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2E21D75E7F30011F558 /* MTAtomic.m */; }; - D0CAF2E51D75EA790011F558 /* MTAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2E11D75E7F30011F558 /* MTAtomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CAF2E61D75EA7A0011F558 /* MTAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CAF2E11D75E7F30011F558 /* MTAtomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CAF2E71D75EA7E0011F558 /* MTAtomic.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2E21D75E7F30011F558 /* MTAtomic.m */; }; - D0CAF2E81D75EA7E0011F558 /* MTAtomic.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CAF2E21D75E7F30011F558 /* MTAtomic.m */; }; - D0CAF2EC1D75F4520011F558 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CAF2EB1D75F4520011F558 /* Security.framework */; }; - D0CAF2ED1D75F4570011F558 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00354731C173CD9006610DA /* SystemConfiguration.framework */; }; - D0CAF2EF1D75F4E20011F558 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CAF2EE1D75F4E20011F558 /* UIKit.framework */; }; - D0CAF2F11D75F4EA0011F558 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CAF2F01D75F4EA0011F558 /* CFNetwork.framework */; }; - D0CAF2FD1D7628FD0011F558 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CD990F1D75C16100F41187 /* libcrypto.a */; }; - D0CB05FC1ADC4483005E298F /* MtProtoKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D0CB05FB1ADC4483005E298F /* MtProtoKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06101ADC44B7005E298F /* MTTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23418B2DA1E00631ADC /* MTTime.m */; }; - D0CB06111ADC44B7005E298F /* MTTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84D818AFE81C007F1076 /* MTTimer.m */; }; - D0CB06121ADC44B7005E298F /* MTLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DB18AFE81D007F1076 /* MTLogging.m */; }; - D0CB06131ADC44B7005E298F /* MTEncryption.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DC18AFE81D007F1076 /* MTEncryption.m */; }; - D0CB06141ADC44B7005E298F /* MTQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84A018AFCF8E007F1076 /* MTQueue.m */; }; - D0CB06151ADC44B7005E298F /* MTOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503AD918B027F80074C3FE /* MTOutputStream.m */; }; - D0CB06161ADC44B7005E298F /* MTInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503ADD18B029480074C3FE /* MTInputStream.m */; }; - D0CB06171ADC4536005E298F /* MTProtoKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A31D18B158AE00C65116 /* MTProtoKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06181ADC4541005E298F /* MTTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD23318B2D9AA00631ADC /* MTTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06191ADC4541005E298F /* MTTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84D918AFE81D007F1076 /* MTTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB061A1ADC4541005E298F /* MTLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84DA18AFE81D007F1076 /* MTLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB061B1ADC4541005E298F /* MTEncryption.h in Headers */ = {isa = PBXBuildFile; fileRef = D0254CC518B10404009452AA /* MTEncryption.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB061C1ADC4541005E298F /* MTInternalId.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D118AFB75B007F1076 /* MTInternalId.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB061D1ADC4541005E298F /* MTQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A849F18AFCF8E007F1076 /* MTQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB061E1ADC4541005E298F /* MTOutputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503AD818B027F80074C3FE /* MTOutputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB061F1ADC4541005E298F /* MTInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503ADC18B029480074C3FE /* MTInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06201ADC454C005E298F /* MTSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83B518AFB75B007F1076 /* MTSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06211ADC454C005E298F /* MTKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C018AFB75B007F1076 /* MTKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06221ADC4551005E298F /* MTKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83A318AFB75B007F1076 /* MTKeychain.m */; }; - D0CB06231ADC4558005E298F /* MTContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839E18AFB75B007F1076 /* MTContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06241ADC455C005E298F /* MTContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839C18AFB75B007F1076 /* MTContext.m */; }; - D0CB06251ADC4562005E298F /* MTTransportScheme.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33418B161B600C65116 /* MTTransportScheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06281ADC456A005E298F /* MTDiscoverDatacenterAddressAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D518AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.h */; }; - D0CB06291ADC456E005E298F /* MTDiscoverDatacenterAddressAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83D418AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.m */; }; - D0CB062A1ADC4575005E298F /* MTDatacenterTransferAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839F18AFB75B007F1076 /* MTDatacenterTransferAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB062B1ADC4575005E298F /* MTDatacenterAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83A018AFB75B007F1076 /* MTDatacenterAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB062C1ADC4575005E298F /* MTDatacenterAuthMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D918AFB75B007F1076 /* MTDatacenterAuthMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB062D1ADC457B005E298F /* MTDatacenterTransferAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839D18AFB75B007F1076 /* MTDatacenterTransferAuthAction.m */; }; - D0CB062E1ADC457B005E298F /* MTDatacenterAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CE18AFB75B007F1076 /* MTDatacenterAuthAction.m */; }; - D0CB062F1ADC457B005E298F /* MTDatacenterAuthMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83B018AFB75B007F1076 /* MTDatacenterAuthMessageService.m */; }; - D0CB06301ADC4583005E298F /* MTDatacenterAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CB18AFB75B007F1076 /* MTDatacenterAddress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06311ADC4583005E298F /* MTDatacenterAddressSet.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CD18AFB75B007F1076 /* MTDatacenterAddressSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06321ADC4583005E298F /* MTDatacenterAuthInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C918AFB75B007F1076 /* MTDatacenterAuthInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06331ADC4583005E298F /* MTDatacenterSaltInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C718AFB75B007F1076 /* MTDatacenterSaltInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06341ADC4588005E298F /* MTDatacenterAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CA18AFB75B007F1076 /* MTDatacenterAddress.m */; }; - D0CB06351ADC4588005E298F /* MTDatacenterAddressSet.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CC18AFB75B007F1076 /* MTDatacenterAddressSet.m */; }; - D0CB06361ADC4588005E298F /* MTDatacenterAuthInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C818AFB75B007F1076 /* MTDatacenterAuthInfo.m */; }; - D0CB06371ADC4588005E298F /* MTDatacenterSaltInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C618AFB75B007F1076 /* MTDatacenterSaltInfo.m */; }; - D0CB06381ADC4591005E298F /* MTProto.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32418B1618D00C65116 /* MTProto.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06391ADC4591005E298F /* MTSessionInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32618B1618D00C65116 /* MTSessionInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB063A1ADC4591005E298F /* MTTimeFixContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32818B1618D00C65116 /* MTTimeFixContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB063B1ADC4591005E298F /* MTPreparedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32218B1618D00C65116 /* MTPreparedMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB063C1ADC4591005E298F /* MTOutgoingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32018B1618D00C65116 /* MTOutgoingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB063D1ADC4591005E298F /* MTIncomingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33618B161B600C65116 /* MTIncomingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB063E1ADC4591005E298F /* MTMessageEncryptionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33818B161B600C65116 /* MTMessageEncryptionKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB063F1ADC4599005E298F /* MTProto.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32518B1618D00C65116 /* MTProto.m */; }; - D0CB06401ADC4599005E298F /* MTSessionInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32718B1618D00C65116 /* MTSessionInfo.m */; }; - D0CB06411ADC4599005E298F /* MTTimeFixContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32918B1618D00C65116 /* MTTimeFixContext.m */; }; - D0CB06421ADC4599005E298F /* MTPreparedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32318B1618D00C65116 /* MTPreparedMessage.m */; }; - D0CB06431ADC4599005E298F /* MTOutgoingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32118B1618D00C65116 /* MTOutgoingMessage.m */; }; - D0CB06441ADC4599005E298F /* MTIncomingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33718B161B600C65116 /* MTIncomingMessage.m */; }; - D0CB06451ADC4599005E298F /* MTMessageEncryptionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33918B161B600C65116 /* MTMessageEncryptionKey.m */; }; - D0CB06461ADC45A2005E298F /* MTMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35018B1631900C65116 /* MTMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06471ADC45A2005E298F /* MTMessageTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35118B1631900C65116 /* MTMessageTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06481ADC45A6005E298F /* MTMessageTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35218B1631900C65116 /* MTMessageTransaction.m */; }; - D0CB06491ADC45B1005E298F /* MTTimeSyncMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35918B164BA00C65116 /* MTTimeSyncMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB064A1ADC45B1005E298F /* MTRequestMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36718B164D600C65116 /* MTRequestMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB064B1ADC45B1005E298F /* MTRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36318B164D600C65116 /* MTRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB064C1ADC45B1005E298F /* MTRequestContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36518B164D600C65116 /* MTRequestContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB064D1ADC45B1005E298F /* MTRequestErrorContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD22F18B2D72800631ADC /* MTRequestErrorContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB064E1ADC45B1005E298F /* MTDropResponseContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36118B164D600C65116 /* MTDropResponseContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB064F1ADC45B1005E298F /* MTApiEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35F18B164D600C65116 /* MTApiEnvironment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06501ADC45BA005E298F /* MTTimeSyncMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35A18B164BA00C65116 /* MTTimeSyncMessageService.m */; }; - D0CB06511ADC45BA005E298F /* MTRequestMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36818B164D600C65116 /* MTRequestMessageService.m */; }; - D0CB06521ADC45BA005E298F /* MTRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36418B164D600C65116 /* MTRequest.m */; }; - D0CB06531ADC45BA005E298F /* MTRequestContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36618B164D600C65116 /* MTRequestContext.m */; }; - D0CB06541ADC45BA005E298F /* MTRequestErrorContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23018B2D72800631ADC /* MTRequestErrorContext.m */; }; - D0CB06551ADC45BA005E298F /* MTDropResponseContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36218B164D600C65116 /* MTDropResponseContext.m */; }; - D0CB06561ADC45BA005E298F /* MTApiEnvironment.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36018B164D600C65116 /* MTApiEnvironment.m */; }; - D0CB06571ADC45BA005E298F /* MTResendMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A37E18B164E600C65116 /* MTResendMessageService.m */; }; - D0CB06581ADC45CE005E298F /* MTNetworkAvailability.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38318B164F800C65116 /* MTNetworkAvailability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB06591ADC45CE005E298F /* MTTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38518B164F800C65116 /* MTTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB065A1ADC45CE005E298F /* MTTransportTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38718B164F800C65116 /* MTTransportTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB065B1ADC45CE005E298F /* MTTcpTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39918B1650400C65116 /* MTTcpTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB065C1ADC45CE005E298F /* MTTcpConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39518B1650400C65116 /* MTTcpConnection.h */; }; - D0CB065D1ADC45CE005E298F /* MTTcpConnectionBehaviour.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39718B1650400C65116 /* MTTcpConnectionBehaviour.h */; }; - D0CB06611ADC45DA005E298F /* MTNetworkAvailability.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38418B164F800C65116 /* MTNetworkAvailability.m */; }; - D0CB06621ADC45DA005E298F /* MTTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38618B164F800C65116 /* MTTransport.m */; }; - D0CB06631ADC45DA005E298F /* MTTransportTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38818B164F800C65116 /* MTTransportTransaction.m */; }; - D0CB06641ADC45DA005E298F /* MTTcpTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39A18B1650400C65116 /* MTTcpTransport.m */; }; - D0CB06651ADC45DA005E298F /* MTTcpConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39618B1650400C65116 /* MTTcpConnection.m */; }; - D0CB06661ADC45DA005E298F /* MTTcpConnectionBehaviour.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39818B1650400C65116 /* MTTcpConnectionBehaviour.m */; }; - D0CB066A1ADC4846005E298F /* MTResendMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A37D18B164E600C65116 /* MTResendMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CB066C1ADC49FA005E298F /* GCDAsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F818AFF259007F1076 /* GCDAsyncSocket.m */; }; - D0CB066F1ADC49FF005E298F /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */; }; - D0CB06701ADC49FF005E298F /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */; }; - D0CB06711ADC4A50005E298F /* MTTransportScheme.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33518B161B600C65116 /* MTTransportScheme.m */; }; - D0CD97D21D74B91400F41187 /* MTTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD23318B2D9AA00631ADC /* MTTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97D31D74B91700F41187 /* MTTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD23318B2D9AA00631ADC /* MTTime.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97D41D74B91B00F41187 /* MTTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23418B2DA1E00631ADC /* MTTime.m */; }; - D0CD97D51D74B91C00F41187 /* MTTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23418B2DA1E00631ADC /* MTTime.m */; }; - D0CD97D61D74B91E00F41187 /* MTTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84D918AFE81D007F1076 /* MTTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97D71D74B92000F41187 /* MTTimer.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84D918AFE81D007F1076 /* MTTimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97D81D74B93100F41187 /* MTTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84D818AFE81C007F1076 /* MTTimer.m */; }; - D0CD97D91D74B93100F41187 /* MTLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DB18AFE81D007F1076 /* MTLogging.m */; }; - D0CD97DA1D74B93100F41187 /* MTEncryption.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DC18AFE81D007F1076 /* MTEncryption.m */; }; - D0CD97DB1D74B93100F41187 /* MTQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84A018AFCF8E007F1076 /* MTQueue.m */; }; - D0CD97DC1D74B93100F41187 /* MTOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503AD918B027F80074C3FE /* MTOutputStream.m */; }; - D0CD97DD1D74B93100F41187 /* MTInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503ADD18B029480074C3FE /* MTInputStream.m */; }; - D0CD97DE1D74B93100F41187 /* MTRsa.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB7C1D70ABEE0012AD96 /* MTRsa.m */; }; - D0CD97DF1D74B93100F41187 /* MTAes.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB801D70B3B90012AD96 /* MTAes.m */; }; - D0CD97E01D74B93300F41187 /* MTTimer.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84D818AFE81C007F1076 /* MTTimer.m */; }; - D0CD97E11D74B93300F41187 /* MTLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DB18AFE81D007F1076 /* MTLogging.m */; }; - D0CD97E21D74B93300F41187 /* MTEncryption.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84DC18AFE81D007F1076 /* MTEncryption.m */; }; - D0CD97E31D74B93300F41187 /* MTQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84A018AFCF8E007F1076 /* MTQueue.m */; }; - D0CD97E41D74B93300F41187 /* MTOutputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503AD918B027F80074C3FE /* MTOutputStream.m */; }; - D0CD97E51D74B93300F41187 /* MTInputStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D0503ADD18B029480074C3FE /* MTInputStream.m */; }; - D0CD97E61D74B93300F41187 /* MTRsa.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB7C1D70ABEE0012AD96 /* MTRsa.m */; }; - D0CD97E71D74B93300F41187 /* MTAes.m in Sources */ = {isa = PBXBuildFile; fileRef = D010DB801D70B3B90012AD96 /* MTAes.m */; }; - D0CD97E81D74B94300F41187 /* MTLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84DA18AFE81D007F1076 /* MTLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97E91D74B94300F41187 /* MTEncryption.h in Headers */ = {isa = PBXBuildFile; fileRef = D0254CC518B10404009452AA /* MTEncryption.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97EA1D74B94300F41187 /* MTInternalId.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D118AFB75B007F1076 /* MTInternalId.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97EB1D74B94300F41187 /* MTQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A849F18AFCF8E007F1076 /* MTQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97EC1D74B94300F41187 /* MTOutputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503AD818B027F80074C3FE /* MTOutputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97ED1D74B94300F41187 /* MTInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503ADC18B029480074C3FE /* MTInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97EE1D74B94300F41187 /* MTLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84DA18AFE81D007F1076 /* MTLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97EF1D74B94300F41187 /* MTEncryption.h in Headers */ = {isa = PBXBuildFile; fileRef = D0254CC518B10404009452AA /* MTEncryption.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97F01D74B94300F41187 /* MTInternalId.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D118AFB75B007F1076 /* MTInternalId.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97F11D74B94300F41187 /* MTQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A849F18AFCF8E007F1076 /* MTQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97F21D74B94300F41187 /* MTOutputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503AD818B027F80074C3FE /* MTOutputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97F31D74B94300F41187 /* MTInputStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D0503ADC18B029480074C3FE /* MTInputStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97F61D74B94B00F41187 /* MTRsa.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7B1D70ABEE0012AD96 /* MTRsa.h */; }; - D0CD97F71D74B94B00F41187 /* MTAes.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7F1D70B3B90012AD96 /* MTAes.h */; }; - D0CD97F81D74B94B00F41187 /* MTRsa.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7B1D70ABEE0012AD96 /* MTRsa.h */; }; - D0CD97F91D74B94B00F41187 /* MTAes.h in Headers */ = {isa = PBXBuildFile; fileRef = D010DB7F1D70B3B90012AD96 /* MTAes.h */; }; - D0CD97FA1D74B95000F41187 /* MTSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83B518AFB75B007F1076 /* MTSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97FB1D74B95100F41187 /* MTSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83B518AFB75B007F1076 /* MTSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD97FC1D74B96300F41187 /* MTBadMsgNotificationMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0041ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h */; }; - D0CD97FD1D74B96300F41187 /* MTBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0061ADD983C007D9ED6 /* MTBuffer.h */; }; - D0CD97FE1D74B96300F41187 /* MTBufferReader.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0081ADD983C007D9ED6 /* MTBufferReader.h */; }; - D0CD97FF1D74B96300F41187 /* MTDestroySessionResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00A1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h */; }; - D0CD98001D74B96300F41187 /* MTDropRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00C1ADD983C007D9ED6 /* MTDropRpcResultMessage.h */; }; - D0CD98011D74B96400F41187 /* MTBadMsgNotificationMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0041ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h */; }; - D0CD98021D74B96400F41187 /* MTBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0061ADD983C007D9ED6 /* MTBuffer.h */; }; - D0CD98031D74B96400F41187 /* MTBufferReader.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0081ADD983C007D9ED6 /* MTBufferReader.h */; }; - D0CD98041D74B96400F41187 /* MTDestroySessionResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00A1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h */; }; - D0CD98051D74B96400F41187 /* MTDropRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00C1ADD983C007D9ED6 /* MTDropRpcResultMessage.h */; }; - D0CD98061D74B96C00F41187 /* MTBadMsgNotificationMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0051ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m */; }; - D0CD98071D74B96C00F41187 /* MTBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0071ADD983C007D9ED6 /* MTBuffer.m */; }; - D0CD98081D74B96C00F41187 /* MTBufferReader.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0091ADD983C007D9ED6 /* MTBufferReader.m */; }; - D0CD98091D74B96C00F41187 /* MTDestroySessionResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00B1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m */; }; - D0CD980A1D74B96C00F41187 /* MTDropRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00D1ADD983C007D9ED6 /* MTDropRpcResultMessage.m */; }; - D0CD980B1D74B96C00F41187 /* MTBadMsgNotificationMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0051ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m */; }; - D0CD980C1D74B96C00F41187 /* MTBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0071ADD983C007D9ED6 /* MTBuffer.m */; }; - D0CD980D1D74B96C00F41187 /* MTBufferReader.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0091ADD983C007D9ED6 /* MTBufferReader.m */; }; - D0CD980E1D74B96C00F41187 /* MTDestroySessionResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00B1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m */; }; - D0CD980F1D74B96C00F41187 /* MTDropRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00D1ADD983C007D9ED6 /* MTDropRpcResultMessage.m */; }; - D0CD98101D74B96F00F41187 /* MTExportedAuthorizationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00E1ADD983C007D9ED6 /* MTExportedAuthorizationData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98111D74B97000F41187 /* MTExportedAuthorizationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00E1ADD983C007D9ED6 /* MTExportedAuthorizationData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98121D74B99400F41187 /* MTFutureSaltsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0101ADD983C007D9ED6 /* MTFutureSaltsMessage.h */; }; - D0CD98131D74B99400F41187 /* MTInternalMessageParser.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0121ADD983C007D9ED6 /* MTInternalMessageParser.h */; }; - D0CD98141D74B99400F41187 /* MTMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0141ADD983C007D9ED6 /* MTMessage.h */; }; - D0CD98151D74B99400F41187 /* MTMsgAllInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0161ADD983C007D9ED6 /* MTMsgAllInfoMessage.h */; }; - D0CD98161D74B99400F41187 /* MTMsgContainerMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0181ADD983C007D9ED6 /* MTMsgContainerMessage.h */; }; - D0CD98171D74B99400F41187 /* MTMsgDetailedInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01A1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h */; }; - D0CD98181D74B99400F41187 /* MTMsgResendReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01C1ADD983C007D9ED6 /* MTMsgResendReqMessage.h */; }; - D0CD98191D74B99400F41187 /* MTMsgsAckMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01E1ADD983C007D9ED6 /* MTMsgsAckMessage.h */; }; - D0CD981A1D74B99400F41187 /* MTMsgsStateInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0201ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h */; }; - D0CD981B1D74B99400F41187 /* MTMsgsStateReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0221ADD983C007D9ED6 /* MTMsgsStateReqMessage.h */; }; - D0CD981C1D74B99400F41187 /* MTNewSessionCreatedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0241ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h */; }; - D0CD981D1D74B99400F41187 /* MTPingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0261ADD983C007D9ED6 /* MTPingMessage.h */; }; - D0CD981E1D74B99400F41187 /* MTPongMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0281ADD983C007D9ED6 /* MTPongMessage.h */; }; - D0CD981F1D74B99400F41187 /* MTResPqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02A1ADD983C007D9ED6 /* MTResPqMessage.h */; }; - D0CD98201D74B99500F41187 /* MTFutureSaltsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0101ADD983C007D9ED6 /* MTFutureSaltsMessage.h */; }; - D0CD98211D74B99500F41187 /* MTInternalMessageParser.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0121ADD983C007D9ED6 /* MTInternalMessageParser.h */; }; - D0CD98221D74B99500F41187 /* MTMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0141ADD983C007D9ED6 /* MTMessage.h */; }; - D0CD98231D74B99500F41187 /* MTMsgAllInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0161ADD983C007D9ED6 /* MTMsgAllInfoMessage.h */; }; - D0CD98241D74B99500F41187 /* MTMsgContainerMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0181ADD983C007D9ED6 /* MTMsgContainerMessage.h */; }; - D0CD98251D74B99500F41187 /* MTMsgDetailedInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01A1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h */; }; - D0CD98261D74B99500F41187 /* MTMsgResendReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01C1ADD983C007D9ED6 /* MTMsgResendReqMessage.h */; }; - D0CD98271D74B99500F41187 /* MTMsgsAckMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01E1ADD983C007D9ED6 /* MTMsgsAckMessage.h */; }; - D0CD98281D74B99500F41187 /* MTMsgsStateInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0201ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h */; }; - D0CD98291D74B99500F41187 /* MTMsgsStateReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0221ADD983C007D9ED6 /* MTMsgsStateReqMessage.h */; }; - D0CD982A1D74B99500F41187 /* MTNewSessionCreatedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0241ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h */; }; - D0CD982B1D74B99500F41187 /* MTPingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0261ADD983C007D9ED6 /* MTPingMessage.h */; }; - D0CD982C1D74B99500F41187 /* MTPongMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0281ADD983C007D9ED6 /* MTPongMessage.h */; }; - D0CD982D1D74B99500F41187 /* MTResPqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02A1ADD983C007D9ED6 /* MTResPqMessage.h */; }; - D0CD982E1D74B9AA00F41187 /* MTExportedAuthorizationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00F1ADD983C007D9ED6 /* MTExportedAuthorizationData.m */; }; - D0CD982F1D74B9AA00F41187 /* MTFutureSaltsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0111ADD983C007D9ED6 /* MTFutureSaltsMessage.m */; }; - D0CD98301D74B9AA00F41187 /* MTInternalMessageParser.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0131ADD983C007D9ED6 /* MTInternalMessageParser.m */; }; - D0CD98311D74B9AA00F41187 /* MTMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0151ADD983C007D9ED6 /* MTMessage.m */; }; - D0CD98321D74B9AA00F41187 /* MTMsgAllInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0171ADD983C007D9ED6 /* MTMsgAllInfoMessage.m */; }; - D0CD98331D74B9AA00F41187 /* MTMsgContainerMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0191ADD983C007D9ED6 /* MTMsgContainerMessage.m */; }; - D0CD98341D74B9AA00F41187 /* MTMsgDetailedInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01B1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m */; }; - D0CD98351D74B9AA00F41187 /* MTMsgResendReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01D1ADD983C007D9ED6 /* MTMsgResendReqMessage.m */; }; - D0CD98361D74B9AA00F41187 /* MTMsgsAckMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01F1ADD983C007D9ED6 /* MTMsgsAckMessage.m */; }; - D0CD98371D74B9AA00F41187 /* MTMsgsStateInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0211ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m */; }; - D0CD98381D74B9AA00F41187 /* MTMsgsStateReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0231ADD983C007D9ED6 /* MTMsgsStateReqMessage.m */; }; - D0CD98391D74B9AA00F41187 /* MTNewSessionCreatedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0251ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m */; }; - D0CD983A1D74B9AA00F41187 /* MTPingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0271ADD983C007D9ED6 /* MTPingMessage.m */; }; - D0CD983B1D74B9AA00F41187 /* MTPongMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0291ADD983C007D9ED6 /* MTPongMessage.m */; }; - D0CD983C1D74B9AA00F41187 /* MTResPqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02B1ADD983C007D9ED6 /* MTResPqMessage.m */; }; - D0CD983D1D74B9AA00F41187 /* MTExportedAuthorizationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00F1ADD983C007D9ED6 /* MTExportedAuthorizationData.m */; }; - D0CD983E1D74B9AA00F41187 /* MTFutureSaltsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0111ADD983C007D9ED6 /* MTFutureSaltsMessage.m */; }; - D0CD983F1D74B9AA00F41187 /* MTInternalMessageParser.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0131ADD983C007D9ED6 /* MTInternalMessageParser.m */; }; - D0CD98401D74B9AA00F41187 /* MTMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0151ADD983C007D9ED6 /* MTMessage.m */; }; - D0CD98411D74B9AA00F41187 /* MTMsgAllInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0171ADD983C007D9ED6 /* MTMsgAllInfoMessage.m */; }; - D0CD98421D74B9AA00F41187 /* MTMsgContainerMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0191ADD983C007D9ED6 /* MTMsgContainerMessage.m */; }; - D0CD98431D74B9AA00F41187 /* MTMsgDetailedInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01B1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m */; }; - D0CD98441D74B9AA00F41187 /* MTMsgResendReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01D1ADD983C007D9ED6 /* MTMsgResendReqMessage.m */; }; - D0CD98451D74B9AA00F41187 /* MTMsgsAckMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01F1ADD983C007D9ED6 /* MTMsgsAckMessage.m */; }; - D0CD98461D74B9AA00F41187 /* MTMsgsStateInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0211ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m */; }; - D0CD98471D74B9AA00F41187 /* MTMsgsStateReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0231ADD983C007D9ED6 /* MTMsgsStateReqMessage.m */; }; - D0CD98481D74B9AA00F41187 /* MTNewSessionCreatedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0251ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m */; }; - D0CD98491D74B9AA00F41187 /* MTPingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0271ADD983C007D9ED6 /* MTPingMessage.m */; }; - D0CD984A1D74B9AA00F41187 /* MTPongMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0291ADD983C007D9ED6 /* MTPongMessage.m */; }; - D0CD984B1D74B9AA00F41187 /* MTResPqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02B1ADD983C007D9ED6 /* MTResPqMessage.m */; }; - D0CD984C1D74B9AD00F41187 /* MTRpcError.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02C1ADD983C007D9ED6 /* MTRpcError.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD984D1D74B9AE00F41187 /* MTRpcError.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02C1ADD983C007D9ED6 /* MTRpcError.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD984E1D74B9B700F41187 /* MTRpcError.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02D1ADD983C007D9ED6 /* MTRpcError.m */; }; - D0CD984F1D74B9B700F41187 /* MTRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02F1ADD983C007D9ED6 /* MTRpcResultMessage.m */; }; - D0CD98501D74B9B700F41187 /* MTServerDhInnerDataMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0311ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m */; }; - D0CD98511D74B9B700F41187 /* MTServerDhParamsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0331ADD983C007D9ED6 /* MTServerDhParamsMessage.m */; }; - D0CD98521D74B9B700F41187 /* MTSetClientDhParamsResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0351ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m */; }; - D0CD98531D74B9B700F41187 /* MTRpcError.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02D1ADD983C007D9ED6 /* MTRpcError.m */; }; - D0CD98541D74B9B700F41187 /* MTRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02F1ADD983C007D9ED6 /* MTRpcResultMessage.m */; }; - D0CD98551D74B9B700F41187 /* MTServerDhInnerDataMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0311ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m */; }; - D0CD98561D74B9B700F41187 /* MTServerDhParamsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0331ADD983C007D9ED6 /* MTServerDhParamsMessage.m */; }; - D0CD98571D74B9B700F41187 /* MTSetClientDhParamsResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0351ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m */; }; - D0CD98581D74B9BF00F41187 /* MTRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02E1ADD983C007D9ED6 /* MTRpcResultMessage.h */; }; - D0CD98591D74B9BF00F41187 /* MTServerDhInnerDataMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0301ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h */; }; - D0CD985A1D74B9BF00F41187 /* MTServerDhParamsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0321ADD983C007D9ED6 /* MTServerDhParamsMessage.h */; }; - D0CD985B1D74B9BF00F41187 /* MTSetClientDhParamsResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0341ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h */; }; - D0CD985C1D74B9BF00F41187 /* MTRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02E1ADD983C007D9ED6 /* MTRpcResultMessage.h */; }; - D0CD985D1D74B9BF00F41187 /* MTServerDhInnerDataMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0301ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h */; }; - D0CD985E1D74B9BF00F41187 /* MTServerDhParamsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0321ADD983C007D9ED6 /* MTServerDhParamsMessage.h */; }; - D0CD985F1D74B9BF00F41187 /* MTSetClientDhParamsResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0341ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h */; }; - D0CD98601D74B9D000F41187 /* MTKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C018AFB75B007F1076 /* MTKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98611D74B9D000F41187 /* MTKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C018AFB75B007F1076 /* MTKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98621D74B9D500F41187 /* MTKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83A318AFB75B007F1076 /* MTKeychain.m */; }; - D0CD98631D74B9D500F41187 /* MTKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83A318AFB75B007F1076 /* MTKeychain.m */; }; - D0CD98641D74B9D700F41187 /* MTFileBasedKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D09A59561B582EFF00FC3724 /* MTFileBasedKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98651D74B9D800F41187 /* MTFileBasedKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = D09A59561B582EFF00FC3724 /* MTFileBasedKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98661D74B9DD00F41187 /* MTFileBasedKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D09A59571B582EFF00FC3724 /* MTFileBasedKeychain.m */; }; - D0CD98671D74B9DD00F41187 /* MTFileBasedKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = D09A59571B582EFF00FC3724 /* MTFileBasedKeychain.m */; }; - D0CD98681D74B9E200F41187 /* MTContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839E18AFB75B007F1076 /* MTContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98691D74B9E300F41187 /* MTContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839E18AFB75B007F1076 /* MTContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD986A1D74B9E900F41187 /* MTContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839C18AFB75B007F1076 /* MTContext.m */; }; - D0CD986B1D74B9E900F41187 /* MTContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839C18AFB75B007F1076 /* MTContext.m */; }; - D0CD986C1D74B9EF00F41187 /* MTTransportScheme.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33418B161B600C65116 /* MTTransportScheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD986D1D74B9F000F41187 /* MTTransportScheme.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33418B161B600C65116 /* MTTransportScheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD986E1D74B9F400F41187 /* MTTransportScheme.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33518B161B600C65116 /* MTTransportScheme.m */; }; - D0CD986F1D74B9F500F41187 /* MTTransportScheme.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33518B161B600C65116 /* MTTransportScheme.m */; }; - D0CD98701D74B9F700F41187 /* MTDiscoverConnectionSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0580AC01B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h */; }; - D0CD98711D74B9F700F41187 /* MTDiscoverConnectionSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0580AC01B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h */; }; - D0CD98721D74B9F900F41187 /* MTDiscoverConnectionSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0580AC11B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m */; }; - D0CD98731D74B9F900F41187 /* MTDiscoverConnectionSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0580AC11B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m */; }; - D0CD98741D74BA0100F41187 /* MTDiscoverDatacenterAddressAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D518AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.h */; }; - D0CD98751D74BA0100F41187 /* MTDiscoverDatacenterAddressAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D518AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.h */; }; - D0CD98761D74BA0700F41187 /* MTDiscoverDatacenterAddressAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83D418AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.m */; }; - D0CD98771D74BA0700F41187 /* MTDiscoverDatacenterAddressAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83D418AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.m */; }; - D0CD98781D74BA4100F41187 /* MTDatacenterTransferAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839F18AFB75B007F1076 /* MTDatacenterTransferAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98791D74BA4100F41187 /* MTDatacenterAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83A018AFB75B007F1076 /* MTDatacenterAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD987A1D74BA4100F41187 /* MTDatacenterAuthMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D918AFB75B007F1076 /* MTDatacenterAuthMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD987B1D74BA4100F41187 /* MTDatacenterTransferAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A839F18AFB75B007F1076 /* MTDatacenterTransferAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD987C1D74BA4100F41187 /* MTDatacenterAuthAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83A018AFB75B007F1076 /* MTDatacenterAuthAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD987D1D74BA4100F41187 /* MTDatacenterAuthMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83D918AFB75B007F1076 /* MTDatacenterAuthMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD987E1D74BA4900F41187 /* MTDatacenterTransferAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839D18AFB75B007F1076 /* MTDatacenterTransferAuthAction.m */; }; - D0CD987F1D74BA4900F41187 /* MTDatacenterAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CE18AFB75B007F1076 /* MTDatacenterAuthAction.m */; }; - D0CD98801D74BA4900F41187 /* MTDatacenterAuthMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83B018AFB75B007F1076 /* MTDatacenterAuthMessageService.m */; }; - D0CD98811D74BA4900F41187 /* MTDatacenterTransferAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A839D18AFB75B007F1076 /* MTDatacenterTransferAuthAction.m */; }; - D0CD98821D74BA4900F41187 /* MTDatacenterAuthAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CE18AFB75B007F1076 /* MTDatacenterAuthAction.m */; }; - D0CD98831D74BA4900F41187 /* MTDatacenterAuthMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83B018AFB75B007F1076 /* MTDatacenterAuthMessageService.m */; }; - D0CD98841D74BA5100F41187 /* MTDatacenterAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CB18AFB75B007F1076 /* MTDatacenterAddress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98851D74BA5100F41187 /* MTDatacenterAddressSet.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CD18AFB75B007F1076 /* MTDatacenterAddressSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98861D74BA5100F41187 /* MTDatacenterAuthInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C918AFB75B007F1076 /* MTDatacenterAuthInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98871D74BA5100F41187 /* MTDatacenterSaltInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C718AFB75B007F1076 /* MTDatacenterSaltInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98881D74BA5100F41187 /* MTDatacenterAddressListData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0691ADD987A007D9ED6 /* MTDatacenterAddressListData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98891D74BA5200F41187 /* MTDatacenterAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CB18AFB75B007F1076 /* MTDatacenterAddress.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD988A1D74BA5200F41187 /* MTDatacenterAddressSet.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83CD18AFB75B007F1076 /* MTDatacenterAddressSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD988B1D74BA5200F41187 /* MTDatacenterAuthInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C918AFB75B007F1076 /* MTDatacenterAuthInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD988C1D74BA5200F41187 /* MTDatacenterSaltInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A83C718AFB75B007F1076 /* MTDatacenterSaltInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD988D1D74BA5200F41187 /* MTDatacenterAddressListData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0691ADD987A007D9ED6 /* MTDatacenterAddressListData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD988E1D74BA5900F41187 /* MTDatacenterAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CA18AFB75B007F1076 /* MTDatacenterAddress.m */; }; - D0CD988F1D74BA5900F41187 /* MTDatacenterAddressSet.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CC18AFB75B007F1076 /* MTDatacenterAddressSet.m */; }; - D0CD98901D74BA5900F41187 /* MTDatacenterAuthInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C818AFB75B007F1076 /* MTDatacenterAuthInfo.m */; }; - D0CD98911D74BA5900F41187 /* MTDatacenterSaltInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C618AFB75B007F1076 /* MTDatacenterSaltInfo.m */; }; - D0CD98921D74BA5900F41187 /* MTDatacenterAddressListData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A06A1ADD987A007D9ED6 /* MTDatacenterAddressListData.m */; }; - D0CD98931D74BA5A00F41187 /* MTDatacenterAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CA18AFB75B007F1076 /* MTDatacenterAddress.m */; }; - D0CD98941D74BA5A00F41187 /* MTDatacenterAddressSet.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83CC18AFB75B007F1076 /* MTDatacenterAddressSet.m */; }; - D0CD98951D74BA5A00F41187 /* MTDatacenterAuthInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C818AFB75B007F1076 /* MTDatacenterAuthInfo.m */; }; - D0CD98961D74BA5A00F41187 /* MTDatacenterSaltInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A83C618AFB75B007F1076 /* MTDatacenterSaltInfo.m */; }; - D0CD98971D74BA5A00F41187 /* MTDatacenterAddressListData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A06A1ADD987A007D9ED6 /* MTDatacenterAddressListData.m */; }; - D0CD98981D74BA6500F41187 /* MTProto.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32418B1618D00C65116 /* MTProto.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98991D74BA6500F41187 /* MTSessionInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32618B1618D00C65116 /* MTSessionInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD989A1D74BA6500F41187 /* MTTimeFixContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32818B1618D00C65116 /* MTTimeFixContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD989B1D74BA6500F41187 /* MTPreparedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32218B1618D00C65116 /* MTPreparedMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD989C1D74BA6500F41187 /* MTOutgoingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32018B1618D00C65116 /* MTOutgoingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD989D1D74BA6500F41187 /* MTIncomingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33618B161B600C65116 /* MTIncomingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD989E1D74BA6500F41187 /* MTMessageEncryptionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33818B161B600C65116 /* MTMessageEncryptionKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD989F1D74BA6500F41187 /* MTProto.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32418B1618D00C65116 /* MTProto.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98A01D74BA6500F41187 /* MTSessionInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32618B1618D00C65116 /* MTSessionInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98A11D74BA6500F41187 /* MTTimeFixContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32818B1618D00C65116 /* MTTimeFixContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98A21D74BA6500F41187 /* MTPreparedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32218B1618D00C65116 /* MTPreparedMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98A31D74BA6500F41187 /* MTOutgoingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A32018B1618D00C65116 /* MTOutgoingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98A41D74BA6500F41187 /* MTIncomingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33618B161B600C65116 /* MTIncomingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98A51D74BA6500F41187 /* MTMessageEncryptionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A33818B161B600C65116 /* MTMessageEncryptionKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98A61D74BA6E00F41187 /* MTProto.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32518B1618D00C65116 /* MTProto.m */; }; - D0CD98A71D74BA6E00F41187 /* MTSessionInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32718B1618D00C65116 /* MTSessionInfo.m */; }; - D0CD98A81D74BA6E00F41187 /* MTTimeFixContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32918B1618D00C65116 /* MTTimeFixContext.m */; }; - D0CD98A91D74BA6F00F41187 /* MTPreparedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32318B1618D00C65116 /* MTPreparedMessage.m */; }; - D0CD98AA1D74BA6F00F41187 /* MTOutgoingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32118B1618D00C65116 /* MTOutgoingMessage.m */; }; - D0CD98AB1D74BA6F00F41187 /* MTIncomingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33718B161B600C65116 /* MTIncomingMessage.m */; }; - D0CD98AC1D74BA6F00F41187 /* MTMessageEncryptionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33918B161B600C65116 /* MTMessageEncryptionKey.m */; }; - D0CD98AD1D74BA6F00F41187 /* MTProto.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32518B1618D00C65116 /* MTProto.m */; }; - D0CD98AE1D74BA6F00F41187 /* MTSessionInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32718B1618D00C65116 /* MTSessionInfo.m */; }; - D0CD98AF1D74BA6F00F41187 /* MTTimeFixContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32918B1618D00C65116 /* MTTimeFixContext.m */; }; - D0CD98B01D74BA6F00F41187 /* MTPreparedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32318B1618D00C65116 /* MTPreparedMessage.m */; }; - D0CD98B11D74BA6F00F41187 /* MTOutgoingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A32118B1618D00C65116 /* MTOutgoingMessage.m */; }; - D0CD98B21D74BA6F00F41187 /* MTIncomingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33718B161B600C65116 /* MTIncomingMessage.m */; }; - D0CD98B31D74BA6F00F41187 /* MTMessageEncryptionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A33918B161B600C65116 /* MTMessageEncryptionKey.m */; }; - D0CD98B41D74BA7500F41187 /* MTNetworkAvailability.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38318B164F800C65116 /* MTNetworkAvailability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98B51D74BA7500F41187 /* MTTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38518B164F800C65116 /* MTTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98B61D74BA7500F41187 /* MTTransportTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38718B164F800C65116 /* MTTransportTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98B71D74BA7500F41187 /* MTNetworkAvailability.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38318B164F800C65116 /* MTNetworkAvailability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98B81D74BA7500F41187 /* MTTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38518B164F800C65116 /* MTTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98B91D74BA7500F41187 /* MTTransportTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A38718B164F800C65116 /* MTTransportTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98BA1D74BA7C00F41187 /* MTNetworkAvailability.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38418B164F800C65116 /* MTNetworkAvailability.m */; }; - D0CD98BB1D74BA7C00F41187 /* MTTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38618B164F800C65116 /* MTTransport.m */; }; - D0CD98BC1D74BA7C00F41187 /* MTTransportTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38818B164F800C65116 /* MTTransportTransaction.m */; }; - D0CD98BD1D74BA7C00F41187 /* MTNetworkAvailability.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38418B164F800C65116 /* MTNetworkAvailability.m */; }; - D0CD98BE1D74BA7C00F41187 /* MTTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38618B164F800C65116 /* MTTransport.m */; }; - D0CD98BF1D74BA7C00F41187 /* MTTransportTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A38818B164F800C65116 /* MTTransportTransaction.m */; }; - D0CD98C01D74BA8200F41187 /* MTTcpTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39918B1650400C65116 /* MTTcpTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98C11D74BA8300F41187 /* MTTcpTransport.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39918B1650400C65116 /* MTTcpTransport.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98C31D74BA8A00F41187 /* MTTcpTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39A18B1650400C65116 /* MTTcpTransport.m */; }; - D0CD98C41D74BA8A00F41187 /* MTTcpTransport.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39A18B1650400C65116 /* MTTcpTransport.m */; }; - D0CD98C51D74BA8D00F41187 /* MTTcpConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39518B1650400C65116 /* MTTcpConnection.h */; }; - D0CD98C61D74BA8D00F41187 /* MTTcpConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39518B1650400C65116 /* MTTcpConnection.h */; }; - D0CD98C71D74BA9000F41187 /* MTTcpConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39618B1650400C65116 /* MTTcpConnection.m */; }; - D0CD98C81D74BA9100F41187 /* MTTcpConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39618B1650400C65116 /* MTTcpConnection.m */; }; - D0CD98CA1D74BA9400F41187 /* MTTcpConnectionBehaviour.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39718B1650400C65116 /* MTTcpConnectionBehaviour.h */; }; - D0CD98CB1D74BA9500F41187 /* MTTcpConnectionBehaviour.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A39718B1650400C65116 /* MTTcpConnectionBehaviour.h */; }; - D0CD98CC1D74BA9700F41187 /* MTTcpConnectionBehaviour.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39818B1650400C65116 /* MTTcpConnectionBehaviour.m */; }; - D0CD98CD1D74BA9700F41187 /* MTTcpConnectionBehaviour.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A39818B1650400C65116 /* MTTcpConnectionBehaviour.m */; }; - D0CD98DE1D74BAEA00F41187 /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */; }; - D0CD98DF1D74BAEA00F41187 /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */; }; - D0CD98E21D74BAEB00F41187 /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */; }; - D0CD98E31D74BAEB00F41187 /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */; }; - D0CD98E41D74BAF400F41187 /* GCDAsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F818AFF259007F1076 /* GCDAsyncSocket.m */; }; - D0CD98E51D74BAF400F41187 /* GCDAsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = D05A84F818AFF259007F1076 /* GCDAsyncSocket.m */; }; - D0CD98E81D75C0BB00F41187 /* MTMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35018B1631900C65116 /* MTMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98E91D75C0BB00F41187 /* MTMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35018B1631900C65116 /* MTMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98EA1D75C0C100F41187 /* MTMessageTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35118B1631900C65116 /* MTMessageTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98EB1D75C0C100F41187 /* MTMessageTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35118B1631900C65116 /* MTMessageTransaction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98EC1D75C0C500F41187 /* MTMessageTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35218B1631900C65116 /* MTMessageTransaction.m */; }; - D0CD98ED1D75C0C500F41187 /* MTMessageTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35218B1631900C65116 /* MTMessageTransaction.m */; }; - D0CD98EE1D75C0C900F41187 /* MTTimeSyncMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35918B164BA00C65116 /* MTTimeSyncMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98EF1D75C0CA00F41187 /* MTTimeSyncMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35918B164BA00C65116 /* MTTimeSyncMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98F01D75C0D200F41187 /* MTTimeSyncMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35A18B164BA00C65116 /* MTTimeSyncMessageService.m */; }; - D0CD98F11D75C0D300F41187 /* MTTimeSyncMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A35A18B164BA00C65116 /* MTTimeSyncMessageService.m */; }; - D0CD98F21D75C0D700F41187 /* MTRequestMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36718B164D600C65116 /* MTRequestMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98F31D75C0D700F41187 /* MTRequestMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36718B164D600C65116 /* MTRequestMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98F41D75C0DD00F41187 /* MTRequestMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36818B164D600C65116 /* MTRequestMessageService.m */; }; - D0CD98F51D75C0DD00F41187 /* MTRequestMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36818B164D600C65116 /* MTRequestMessageService.m */; }; - D0CD98F61D75C0E400F41187 /* MTRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36318B164D600C65116 /* MTRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98F71D75C0E400F41187 /* MTRequestContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36518B164D600C65116 /* MTRequestContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98F81D75C0E400F41187 /* MTRequestErrorContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD22F18B2D72800631ADC /* MTRequestErrorContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98F91D75C0E400F41187 /* MTDropResponseContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36118B164D600C65116 /* MTDropResponseContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98FA1D75C0E400F41187 /* MTApiEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35F18B164D600C65116 /* MTApiEnvironment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98FB1D75C0E500F41187 /* MTRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36318B164D600C65116 /* MTRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98FC1D75C0E500F41187 /* MTRequestContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36518B164D600C65116 /* MTRequestContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98FD1D75C0E500F41187 /* MTRequestErrorContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 93DBD22F18B2D72800631ADC /* MTRequestErrorContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98FE1D75C0E500F41187 /* MTDropResponseContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A36118B164D600C65116 /* MTDropResponseContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD98FF1D75C0E500F41187 /* MTApiEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A35F18B164D600C65116 /* MTApiEnvironment.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD99001D75C0ED00F41187 /* MTRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36418B164D600C65116 /* MTRequest.m */; }; - D0CD99011D75C0ED00F41187 /* MTRequestContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36618B164D600C65116 /* MTRequestContext.m */; }; - D0CD99021D75C0ED00F41187 /* MTRequestErrorContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23018B2D72800631ADC /* MTRequestErrorContext.m */; }; - D0CD99031D75C0ED00F41187 /* MTDropResponseContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36218B164D600C65116 /* MTDropResponseContext.m */; }; - D0CD99041D75C0ED00F41187 /* MTApiEnvironment.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36018B164D600C65116 /* MTApiEnvironment.m */; }; - D0CD99051D75C0ED00F41187 /* MTRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36418B164D600C65116 /* MTRequest.m */; }; - D0CD99061D75C0ED00F41187 /* MTRequestContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36618B164D600C65116 /* MTRequestContext.m */; }; - D0CD99071D75C0ED00F41187 /* MTRequestErrorContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 93DBD23018B2D72800631ADC /* MTRequestErrorContext.m */; }; - D0CD99081D75C0ED00F41187 /* MTDropResponseContext.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36218B164D600C65116 /* MTDropResponseContext.m */; }; - D0CD99091D75C0ED00F41187 /* MTApiEnvironment.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A36018B164D600C65116 /* MTApiEnvironment.m */; }; - D0CD990A1D75C0F300F41187 /* MTResendMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A37D18B164E600C65116 /* MTResendMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD990B1D75C0F400F41187 /* MTResendMessageService.h in Headers */ = {isa = PBXBuildFile; fileRef = D063A37D18B164E600C65116 /* MTResendMessageService.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CD990C1D75C0F900F41187 /* MTResendMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A37E18B164E600C65116 /* MTResendMessageService.m */; }; - D0CD990D1D75C0F900F41187 /* MTResendMessageService.m in Sources */ = {isa = PBXBuildFile; fileRef = D063A37E18B164E600C65116 /* MTResendMessageService.m */; }; - D0CD990E1D75C12C00F41187 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D00354711C173CD0006610DA /* libz.tbd */; }; - D0CFBB871FD7188200B65C0D /* AFURLConnectionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84F418AFF259007F1076 /* AFURLConnectionOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CFBB881FD7188200B65C0D /* AFURLConnectionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84F418AFF259007F1076 /* AFURLConnectionOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CFBB891FD7188200B65C0D /* AFURLConnectionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84F418AFF259007F1076 /* AFURLConnectionOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CFBB8A1FD718C500B65C0D /* AFHTTPRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84EB18AFF259007F1076 /* AFHTTPRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CFBB8B1FD718C500B65C0D /* AFHTTPRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84EB18AFF259007F1076 /* AFHTTPRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CFBB8C1FD718C600B65C0D /* AFHTTPRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = D05A84EB18AFF259007F1076 /* AFHTTPRequestOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0D1A0361ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0041ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h */; }; - D0D1A0371ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0051ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m */; }; - D0D1A0381ADD983C007D9ED6 /* MTBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0061ADD983C007D9ED6 /* MTBuffer.h */; }; - D0D1A0391ADD983C007D9ED6 /* MTBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0071ADD983C007D9ED6 /* MTBuffer.m */; }; - D0D1A03A1ADD983C007D9ED6 /* MTBufferReader.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0081ADD983C007D9ED6 /* MTBufferReader.h */; }; - D0D1A03B1ADD983C007D9ED6 /* MTBufferReader.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0091ADD983C007D9ED6 /* MTBufferReader.m */; }; - D0D1A03C1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00A1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h */; }; - D0D1A03D1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00B1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m */; }; - D0D1A03E1ADD983C007D9ED6 /* MTDropRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00C1ADD983C007D9ED6 /* MTDropRpcResultMessage.h */; }; - D0D1A03F1ADD983C007D9ED6 /* MTDropRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00D1ADD983C007D9ED6 /* MTDropRpcResultMessage.m */; }; - D0D1A0401ADD983C007D9ED6 /* MTExportedAuthorizationData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A00E1ADD983C007D9ED6 /* MTExportedAuthorizationData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0D1A0411ADD983C007D9ED6 /* MTExportedAuthorizationData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A00F1ADD983C007D9ED6 /* MTExportedAuthorizationData.m */; }; - D0D1A0421ADD983C007D9ED6 /* MTFutureSaltsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0101ADD983C007D9ED6 /* MTFutureSaltsMessage.h */; }; - D0D1A0431ADD983C007D9ED6 /* MTFutureSaltsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0111ADD983C007D9ED6 /* MTFutureSaltsMessage.m */; }; - D0D1A0441ADD983C007D9ED6 /* MTInternalMessageParser.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0121ADD983C007D9ED6 /* MTInternalMessageParser.h */; }; - D0D1A0451ADD983C007D9ED6 /* MTInternalMessageParser.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0131ADD983C007D9ED6 /* MTInternalMessageParser.m */; }; - D0D1A0461ADD983C007D9ED6 /* MTMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0141ADD983C007D9ED6 /* MTMessage.h */; }; - D0D1A0471ADD983C007D9ED6 /* MTMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0151ADD983C007D9ED6 /* MTMessage.m */; }; - D0D1A0481ADD983C007D9ED6 /* MTMsgAllInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0161ADD983C007D9ED6 /* MTMsgAllInfoMessage.h */; }; - D0D1A0491ADD983C007D9ED6 /* MTMsgAllInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0171ADD983C007D9ED6 /* MTMsgAllInfoMessage.m */; }; - D0D1A04A1ADD983C007D9ED6 /* MTMsgContainerMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0181ADD983C007D9ED6 /* MTMsgContainerMessage.h */; }; - D0D1A04B1ADD983C007D9ED6 /* MTMsgContainerMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0191ADD983C007D9ED6 /* MTMsgContainerMessage.m */; }; - D0D1A04C1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01A1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h */; }; - D0D1A04D1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01B1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m */; }; - D0D1A04E1ADD983C007D9ED6 /* MTMsgResendReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01C1ADD983C007D9ED6 /* MTMsgResendReqMessage.h */; }; - D0D1A04F1ADD983C007D9ED6 /* MTMsgResendReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01D1ADD983C007D9ED6 /* MTMsgResendReqMessage.m */; }; - D0D1A0501ADD983C007D9ED6 /* MTMsgsAckMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A01E1ADD983C007D9ED6 /* MTMsgsAckMessage.h */; }; - D0D1A0511ADD983C007D9ED6 /* MTMsgsAckMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A01F1ADD983C007D9ED6 /* MTMsgsAckMessage.m */; }; - D0D1A0521ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0201ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h */; }; - D0D1A0531ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0211ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m */; }; - D0D1A0541ADD983C007D9ED6 /* MTMsgsStateReqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0221ADD983C007D9ED6 /* MTMsgsStateReqMessage.h */; }; - D0D1A0551ADD983C007D9ED6 /* MTMsgsStateReqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0231ADD983C007D9ED6 /* MTMsgsStateReqMessage.m */; }; - D0D1A0561ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0241ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h */; }; - D0D1A0571ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0251ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m */; }; - D0D1A0581ADD983C007D9ED6 /* MTPingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0261ADD983C007D9ED6 /* MTPingMessage.h */; }; - D0D1A0591ADD983C007D9ED6 /* MTPingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0271ADD983C007D9ED6 /* MTPingMessage.m */; }; - D0D1A05A1ADD983C007D9ED6 /* MTPongMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0281ADD983C007D9ED6 /* MTPongMessage.h */; }; - D0D1A05B1ADD983C007D9ED6 /* MTPongMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0291ADD983C007D9ED6 /* MTPongMessage.m */; }; - D0D1A05C1ADD983C007D9ED6 /* MTResPqMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02A1ADD983C007D9ED6 /* MTResPqMessage.h */; }; - D0D1A05D1ADD983C007D9ED6 /* MTResPqMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02B1ADD983C007D9ED6 /* MTResPqMessage.m */; }; - D0D1A05E1ADD983C007D9ED6 /* MTRpcError.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02C1ADD983C007D9ED6 /* MTRpcError.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0D1A05F1ADD983C007D9ED6 /* MTRpcError.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02D1ADD983C007D9ED6 /* MTRpcError.m */; }; - D0D1A0601ADD983C007D9ED6 /* MTRpcResultMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A02E1ADD983C007D9ED6 /* MTRpcResultMessage.h */; }; - D0D1A0611ADD983C007D9ED6 /* MTRpcResultMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A02F1ADD983C007D9ED6 /* MTRpcResultMessage.m */; }; - D0D1A0621ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0301ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h */; }; - D0D1A0631ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0311ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m */; }; - D0D1A0641ADD983C007D9ED6 /* MTServerDhParamsMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0321ADD983C007D9ED6 /* MTServerDhParamsMessage.h */; }; - D0D1A0651ADD983C007D9ED6 /* MTServerDhParamsMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0331ADD983C007D9ED6 /* MTServerDhParamsMessage.m */; }; - D0D1A0661ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0341ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h */; }; - D0D1A0671ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A0351ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m */; }; - D0D1A06B1ADD987A007D9ED6 /* MTDatacenterAddressListData.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D1A0691ADD987A007D9ED6 /* MTDatacenterAddressListData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0D1A06C1ADD987A007D9ED6 /* MTDatacenterAddressListData.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D1A06A1ADD987A007D9ED6 /* MTDatacenterAddressListData.m */; }; - D0D225101B4D817B0085E26D /* MtProtoKitDynamic.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D2250F1B4D817B0085E26D /* MtProtoKitDynamic.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0D225161B4D817B0085E26D /* MtProtoKitDynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D2250B1B4D817B0085E26D /* MtProtoKitDynamic.framework */; }; - D0D2251D1B4D817B0085E26D /* MtProtoKitDynamicTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D2251C1B4D817B0085E26D /* MtProtoKitDynamicTests.m */; }; - D0D2689E1D7A055400C422DA /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CD990F1D75C16100F41187 /* libcrypto.a */; }; - D0D58B282347E5F000CF7782 /* tonlib_api.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AF52347E5F000CF7782 /* tonlib_api.h */; }; - D0D58B292347E5F000CF7782 /* TlObject.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AF72347E5F000CF7782 /* TlObject.h */; }; - D0D58B2A2347E5F000CF7782 /* tonlib_client_json.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AF92347E5F000CF7782 /* tonlib_client_json.h */; }; - D0D58B2B2347E5F000CF7782 /* tonlibjson_export.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AFA2347E5F000CF7782 /* tonlibjson_export.h */; }; - D0D58B2C2347E5F000CF7782 /* Client.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AFB2347E5F000CF7782 /* Client.h */; }; - D0D58B2D2347E5F000CF7782 /* Slice-decl.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AFE2347E5F000CF7782 /* Slice-decl.h */; }; - D0D58B2E2347E5F000CF7782 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58AFF2347E5F000CF7782 /* config.h */; }; - D0D58B2F2347E5F000CF7782 /* SharedSlice.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B002347E5F000CF7782 /* SharedSlice.h */; }; - D0D58B302347E5F000CF7782 /* Slice.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B012347E5F000CF7782 /* Slice.h */; }; - D0D58B312347E5F000CF7782 /* int_types.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B022347E5F000CF7782 /* int_types.h */; }; - D0D58B322347E5F000CF7782 /* common.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B032347E5F000CF7782 /* common.h */; }; - D0D58B332347E5F000CF7782 /* check.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B042347E5F000CF7782 /* check.h */; }; - D0D58B342347E5F000CF7782 /* unique_ptr.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B052347E5F000CF7782 /* unique_ptr.h */; }; - D0D58B352347E5F000CF7782 /* platform.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D58B072347E5F000CF7782 /* platform.h */; }; - D0D58B362347E5F000CF7782 /* libtl-lite-utils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B092347E5F000CF7782 /* libtl-lite-utils.a */; }; - D0D58B372347E5F000CF7782 /* libtdactor.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B0A2347E5F000CF7782 /* libtdactor.a */; }; - D0D58B3D2347E5F000CF7782 /* libton_block.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B122347E5F000CF7782 /* libton_block.a */; }; - D0D58B3E2347E5F000CF7782 /* libadnllite.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B132347E5F000CF7782 /* libadnllite.a */; }; - D0D58B402347E5F000CF7782 /* libtddb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B152347E5F000CF7782 /* libtddb.a */; }; - D0D58B412347E5F000CF7782 /* libkeys.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B162347E5F000CF7782 /* libkeys.a */; }; - D0D58B422347E5F000CF7782 /* libtdnet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B172347E5F000CF7782 /* libtdnet.a */; }; - D0D58B432347E5F000CF7782 /* libtdutils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B182347E5F000CF7782 /* libtdutils.a */; }; - D0D58B442347E5F000CF7782 /* libton_crypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B192347E5F000CF7782 /* libton_crypto.a */; }; - D0D58B4B2347E5F000CF7782 /* libtl-utils.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B212347E5F000CF7782 /* libtl-utils.a */; }; - D0D58B4C2347E5F000CF7782 /* libtl_lite_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B222347E5F000CF7782 /* libtl_lite_api.a */; }; - D0D58B4D2347E5F000CF7782 /* libcrc32c.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B232347E5F000CF7782 /* libcrc32c.a */; }; - D0D58B4E2347E5F000CF7782 /* libtl_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B242347E5F000CF7782 /* libtl_api.a */; }; - D0D58B4F2347E5F000CF7782 /* libtonlib.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B252347E5F000CF7782 /* libtonlib.a */; }; - D0D58B502347E5F000CF7782 /* liblite-client-common.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B262347E5F000CF7782 /* liblite-client-common.a */; }; - D0D58B512347E5F000CF7782 /* libtl_tonlib_api.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D58B272347E5F000CF7782 /* libtl_tonlib_api.a */; }; - D0D58B522347E64000CF7782 /* TON.h in Headers */ = {isa = PBXBuildFile; fileRef = D08A159B22DD32F20073B508 /* TON.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0D58B532347E6A100CF7782 /* TON.mm in Sources */ = {isa = PBXBuildFile; fileRef = D08A159C22DD32F20073B508 /* TON.mm */; }; - D0E2E17720866780005737E8 /* MTDNS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E2E17520866780005737E8 /* MTDNS.h */; }; - D0E2E17820866780005737E8 /* MTDNS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E2E17520866780005737E8 /* MTDNS.h */; }; - D0E2E17920866780005737E8 /* MTDNS.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E2E17520866780005737E8 /* MTDNS.h */; }; - D0E2E17A20866780005737E8 /* MTDNS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E2E17620866780005737E8 /* MTDNS.m */; }; - D0E2E17B20866780005737E8 /* MTDNS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E2E17620866780005737E8 /* MTDNS.m */; }; - D0E2E17C20866780005737E8 /* MTDNS.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E2E17620866780005737E8 /* MTDNS.m */; }; - D0E9B9ED1F0176DA00F079A4 /* MTBackupAddressSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E9B9EB1F0176DA00F079A4 /* MTBackupAddressSignals.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0E9B9EE1F0176DA00F079A4 /* MTBackupAddressSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E9B9EB1F0176DA00F079A4 /* MTBackupAddressSignals.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0E9B9EF1F0176DA00F079A4 /* MTBackupAddressSignals.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E9B9EB1F0176DA00F079A4 /* MTBackupAddressSignals.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0E9B9F01F0176DA00F079A4 /* MTBackupAddressSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E9B9EC1F0176DA00F079A4 /* MTBackupAddressSignals.m */; }; - D0E9B9F11F0176DA00F079A4 /* MTBackupAddressSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E9B9EC1F0176DA00F079A4 /* MTBackupAddressSignals.m */; }; - D0E9B9F21F0176DA00F079A4 /* MTBackupAddressSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0E9B9EC1F0176DA00F079A4 /* MTBackupAddressSignals.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - D003546B1C173BF0006610DA /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D05A830A18AFB3F9007F1076 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D0CB05F61ADC4483005E298F; - remoteInfo = MtProtoKit; - }; - D0D225171B4D817B0085E26D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D05A830A18AFB3F9007F1076 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D0D2250A1B4D817B0085E26D; - remoteInfo = MtProtoKitDynamic; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 93DBD22F18B2D72800631ADC /* MTRequestErrorContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTRequestErrorContext.h; path = MtProtoKit/MTRequestErrorContext.h; sourceTree = ""; }; - 93DBD23018B2D72800631ADC /* MTRequestErrorContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTRequestErrorContext.m; path = MtProtoKit/MTRequestErrorContext.m; sourceTree = ""; }; - 93DBD23318B2D9AA00631ADC /* MTTime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MTTime.h; path = MtProtoKit/MTTime.h; sourceTree = ""; }; - 93DBD23418B2DA1E00631ADC /* MTTime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTime.m; path = MtProtoKit/MTTime.m; sourceTree = ""; }; - D00083C822DD33E500EC418C /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; - D00083CA22DD42F600EC418C /* libtonlibjson.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtonlibjson.dylib; path = TON/libtonlibjson.dylib; sourceTree = ""; }; - D00083D722DD467100EC418C /* libtdjson.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtdjson.dylib; path = TON/libtdjson.dylib; sourceTree = ""; }; - D00354651C173BF0006610DA /* MtProtoKitStabilityTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MtProtoKitStabilityTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - D00354671C173BF0006610DA /* MtProtoKitStabilityTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MtProtoKitStabilityTests.m; sourceTree = ""; }; - D00354691C173BF0006610DA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D00354711C173CD0006610DA /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; - D00354731C173CD9006610DA /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; - D010DB7B1D70ABEE0012AD96 /* MTRsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTRsa.h; sourceTree = ""; }; - D010DB7C1D70ABEE0012AD96 /* MTRsa.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTRsa.m; sourceTree = ""; }; - D010DB7F1D70B3B90012AD96 /* MTAes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTAes.h; sourceTree = ""; }; - D010DB801D70B3B90012AD96 /* MTAes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTAes.m; sourceTree = ""; }; - D0119CBF20CAD34800895300 /* MTConnectionProbing.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTConnectionProbing.h; sourceTree = ""; }; - D0119CC020CAD34800895300 /* MTConnectionProbing.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTConnectionProbing.m; sourceTree = ""; }; - D0119CC720CAD65D00895300 /* PingFoundation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PingFoundation.h; sourceTree = ""; }; - D0119CC820CAD65D00895300 /* PingFoundation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PingFoundation.m; sourceTree = ""; }; - D015E016225CD19E00CB9E8A /* MTGzip.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTGzip.h; sourceTree = ""; }; - D015E017225CD19E00CB9E8A /* MTGzip.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTGzip.m; sourceTree = ""; }; - D018558A22DDD36C00AC458A /* Client.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Client.h; sourceTree = ""; }; - D018558B22DDD36C00AC458A /* TlObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlObject.h; sourceTree = ""; }; - D018558C22DDD36C00AC458A /* tonlib_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tonlib_api.h; sourceTree = ""; }; - D018558D22DDD36C00AC458A /* int_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = int_types.h; sourceTree = ""; }; - D018558E22DDD36C00AC458A /* TonlibCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TonlibCallback.h; sourceTree = ""; }; - D018558F22DDD36C00AC458A /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = ""; }; - D018559F22DDD38B00AC458A /* libtl_lite_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_lite_api.a; path = TON/libtl_lite_api.a; sourceTree = ""; }; - D01855A022DDD38C00AC458A /* libadnllite.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libadnllite.a; path = TON/libadnllite.a; sourceTree = ""; }; - D01855A122DDD38C00AC458A /* libfift.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfift.a; path = TON/libfift.a; sourceTree = ""; }; - D01855A222DDD38C00AC458A /* libkeys.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libkeys.a; path = TON/libkeys.a; sourceTree = ""; }; - D01855A322DDD38C00AC458A /* libtl-lite-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-lite-utils.a"; path = "TON/libtl-lite-utils.a"; sourceTree = ""; }; - D01855A422DDD38C00AC458A /* libtl-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-utils.a"; path = "TON/libtl-utils.a"; sourceTree = ""; }; - D01855A522DDD38C00AC458A /* libton_db.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_db.a; path = TON/libton_db.a; sourceTree = ""; }; - D01855A622DDD38C00AC458A /* libtonlib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlib.a; path = TON/libtonlib.a; sourceTree = ""; }; - D01855A722DDD38C00AC458A /* libterminal.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libterminal.a; path = TON/libterminal.a; sourceTree = ""; }; - D01855A822DDD38C00AC458A /* libtonlibjson_private.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlibjson_private.a; path = TON/libtonlibjson_private.a; sourceTree = ""; }; - D01855A922DDD38C00AC458A /* libton_crypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_crypto.a; path = TON/libton_crypto.a; sourceTree = ""; }; - D01855AA22DDD38C00AC458A /* libtl_tonlib_api_json.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_tonlib_api_json.a; path = TON/libtl_tonlib_api_json.a; sourceTree = ""; }; - D01855AB22DDD38C00AC458A /* libtdnet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdnet.a; path = TON/libtdnet.a; sourceTree = ""; }; - D01855AC22DDD38C00AC458A /* libtl_tonlib_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_tonlib_api.a; path = TON/libtl_tonlib_api.a; sourceTree = ""; }; - D01855AD22DDD38C00AC458A /* libtonlibjson_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlibjson_static.a; path = TON/libtonlibjson_static.a; sourceTree = ""; }; - D01855AE22DDD38D00AC458A /* libton_block.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_block.a; path = TON/libton_block.a; sourceTree = ""; }; - D01855AF22DDD38D00AC458A /* libtl_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_api.a; path = TON/libtl_api.a; sourceTree = ""; }; - D01855B022DDD38D00AC458A /* libcrc32c.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrc32c.a; path = TON/libcrc32c.a; sourceTree = ""; }; - D01855B122DDD38D00AC458A /* libtdtl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdtl.a; path = TON/libtdtl.a; sourceTree = ""; }; - D01855B222DDD38D00AC458A /* libmemprof.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmemprof.a; path = TON/libmemprof.a; sourceTree = ""; }; - D0185E702089D265005E1A6C /* MTProxyConnectivity.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTProxyConnectivity.h; sourceTree = ""; }; - D0185E712089D265005E1A6C /* MTProxyConnectivity.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTProxyConnectivity.m; sourceTree = ""; }; - D01B262623324B8F00A6448B /* libtdnet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdnet.a; path = TON/lib/macos/libtdnet.a; sourceTree = ""; }; - D01B262723324B9000A6448B /* libtl_tonlib_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_tonlib_api.a; path = TON/lib/macos/libtl_tonlib_api.a; sourceTree = ""; }; - D01B262823324B9000A6448B /* libtdutils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdutils.a; path = TON/lib/macos/libtdutils.a; sourceTree = ""; }; - D01B262923324B9000A6448B /* libtl_lite_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_lite_api.a; path = TON/lib/macos/libtl_lite_api.a; sourceTree = ""; }; - D01B262A23324B9000A6448B /* libtl-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-utils.a"; path = "TON/lib/macos/libtl-utils.a"; sourceTree = ""; }; - D01B262B23324B9000A6448B /* libton_block.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_block.a; path = TON/lib/macos/libton_block.a; sourceTree = ""; }; - D01B262C23324B9000A6448B /* libtonlib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlib.a; path = TON/lib/macos/libtonlib.a; sourceTree = ""; }; - D01B262D23324B9000A6448B /* liblite-client-common.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "liblite-client-common.a"; path = "TON/lib/macos/liblite-client-common.a"; sourceTree = ""; }; - D01B262E23324B9000A6448B /* libtddb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtddb.a; path = TON/lib/macos/libtddb.a; sourceTree = ""; }; - D01B262F23324B9000A6448B /* libadnllite.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libadnllite.a; path = TON/lib/macos/libadnllite.a; sourceTree = ""; }; - D01B263023324B9000A6448B /* libton_crypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_crypto.a; path = TON/lib/macos/libton_crypto.a; sourceTree = ""; }; - D01B263123324B9000A6448B /* libtdactor.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdactor.a; path = TON/lib/macos/libtdactor.a; sourceTree = ""; }; - D01B263223324B9000A6448B /* libtl-lite-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-lite-utils.a"; path = "TON/lib/macos/libtl-lite-utils.a"; sourceTree = ""; }; - D01B263323324B9000A6448B /* libkeys.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libkeys.a; path = TON/lib/macos/libkeys.a; sourceTree = ""; }; - D01B263423324B9000A6448B /* libtl_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_api.a; path = TON/lib/macos/libtl_api.a; sourceTree = ""; }; - D01B263523324B9000A6448B /* libcrc32c.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrc32c.a; path = TON/lib/macos/libcrc32c.a; sourceTree = ""; }; - D020FAF81D994E3100F279AA /* MTHttpRequestOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTHttpRequestOperation.h; path = MTProtoKit/MTHttpRequestOperation.h; sourceTree = ""; }; - D020FAF91D994E3100F279AA /* MTHttpRequestOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTHttpRequestOperation.m; path = MTProtoKit/MTHttpRequestOperation.m; sourceTree = ""; }; - D0254CC518B10404009452AA /* MTEncryption.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTEncryption.h; path = MTProtoKit/MTEncryption.h; sourceTree = ""; }; - D0338737223BC115007A2CE4 /* MTPKCS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTPKCS.h; sourceTree = ""; }; - D0338738223BC115007A2CE4 /* MTPKCS.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTPKCS.m; sourceTree = ""; }; - D038789D2332500A00DB441C /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libc++.tbd"; sourceTree = DEVELOPER_DIR; }; - D038789F2332503300DB441C /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; - D03878A12332503E00DB441C /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; - D03878A32332504600DB441C /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; }; - D03878A52332506700DB441C /* libton_crypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_crypto.a; path = TON/lib/ios/libton_crypto.a; sourceTree = ""; }; - D03878A62332506700DB441C /* libmemprof.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmemprof.a; path = TON/lib/ios/libmemprof.a; sourceTree = ""; }; - D03878A72332506700DB441C /* libtonlib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlib.a; path = TON/lib/ios/libtonlib.a; sourceTree = ""; }; - D03878A82332506700DB441C /* libtonlibjson_private.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlibjson_private.a; path = TON/lib/ios/libtonlibjson_private.a; sourceTree = ""; }; - D03878A92332506700DB441C /* libtdtl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdtl.a; path = TON/lib/ios/libtdtl.a; sourceTree = ""; }; - D03878AA2332506700DB441C /* libkeys.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libkeys.a; path = TON/lib/ios/libkeys.a; sourceTree = ""; }; - D03878AB2332506700DB441C /* libtdnet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdnet.a; path = TON/lib/ios/libtdnet.a; sourceTree = ""; }; - D03878AC2332506700DB441C /* libtonlibjson_static.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlibjson_static.a; path = TON/lib/ios/libtonlibjson_static.a; sourceTree = ""; }; - D03878AD2332506700DB441C /* libfift.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libfift.a; path = TON/lib/ios/libfift.a; sourceTree = ""; }; - D03878AE2332506800DB441C /* libtl_tonlib_api_json.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_tonlib_api_json.a; path = TON/lib/ios/libtl_tonlib_api_json.a; sourceTree = ""; }; - D03878AF2332506800DB441C /* libtl-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-utils.a"; path = "TON/lib/ios/libtl-utils.a"; sourceTree = ""; }; - D03878B02332506800DB441C /* libadnllite.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libadnllite.a; path = TON/lib/ios/libadnllite.a; sourceTree = ""; }; - D03878B12332506800DB441C /* libtl_tonlib_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_tonlib_api.a; path = TON/lib/ios/libtl_tonlib_api.a; sourceTree = ""; }; - D03878B22332506800DB441C /* libtdutils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdutils.a; path = TON/lib/ios/libtdutils.a; sourceTree = ""; }; - D03878B32332506800DB441C /* libterminal.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libterminal.a; path = TON/lib/ios/libterminal.a; sourceTree = ""; }; - D03878B42332506800DB441C /* libtl_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_api.a; path = TON/lib/ios/libtl_api.a; sourceTree = ""; }; - D03878B52332506800DB441C /* libcrc32c.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrc32c.a; path = TON/lib/ios/libcrc32c.a; sourceTree = ""; }; - D03878B62332506800DB441C /* libtl-lite-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libtl-lite-utils.a"; path = "TON/lib/ios/libtl-lite-utils.a"; sourceTree = ""; }; - D03878B72332506800DB441C /* libtddb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtddb.a; path = TON/lib/ios/libtddb.a; sourceTree = ""; }; - D03878B82332506800DB441C /* libtl_lite_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtl_lite_api.a; path = TON/lib/ios/libtl_lite_api.a; sourceTree = ""; }; - D03878B92332506800DB441C /* libton_block.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_block.a; path = TON/lib/ios/libton_block.a; sourceTree = ""; }; - D03878BA2332506800DB441C /* libton_db.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libton_db.a; path = TON/lib/ios/libton_db.a; sourceTree = ""; }; - D03878BB2332506800DB441C /* libtdactor.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdactor.a; path = TON/lib/ios/libtdactor.a; sourceTree = ""; }; - D03878D3233250CF00DB441C /* libtonlibjson.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtonlibjson.dylib; path = TON/lib/macos/libtonlibjson.dylib; sourceTree = ""; }; - D03878D4233250CF00DB441C /* libtonlibjson.0.5.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtonlibjson.0.5.dylib; path = TON/lib/macos/libtonlibjson.0.5.dylib; sourceTree = ""; }; - D0503AD818B027F80074C3FE /* MTOutputStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTOutputStream.h; path = MTProtoKit/MTOutputStream.h; sourceTree = ""; }; - D0503AD918B027F80074C3FE /* MTOutputStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTOutputStream.m; path = MTProtoKit/MTOutputStream.m; sourceTree = ""; }; - D0503ADC18B029480074C3FE /* MTInputStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTInputStream.h; path = MTProtoKit/MTInputStream.h; sourceTree = ""; }; - D0503ADD18B029480074C3FE /* MTInputStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTInputStream.m; path = MTProtoKit/MTInputStream.m; sourceTree = ""; }; - D0529D2921A434BF00D7C3C4 /* MTTransportSchemeStats.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTTransportSchemeStats.h; sourceTree = ""; }; - D0529D2A21A434BF00D7C3C4 /* MTTransportSchemeStats.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTTransportSchemeStats.m; sourceTree = ""; }; - D0580ABE1B0F3E7100E8235B /* SSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SSignalKit.framework; path = "../../../../Library/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos/SSignalKit.framework"; sourceTree = ""; }; - D0580AC01B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTDiscoverConnectionSignals.h; sourceTree = ""; }; - D0580AC11B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTDiscoverConnectionSignals.m; sourceTree = ""; }; - D05A831718AFB3F9007F1076 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - D05A832818AFB3F9007F1076 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - D05A832B18AFB3F9007F1076 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - D05A833418AFB3F9007F1076 /* MtProtoKitTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MtProtoKitTests-Info.plist"; sourceTree = ""; }; - D05A833618AFB3F9007F1076 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - D05A833818AFB3F9007F1076 /* MtProtoKitTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MtProtoKitTests.m; sourceTree = ""; }; - D05A834818AFB40C007F1076 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; - D05A834B18AFB40C007F1076 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - D05A834C18AFB40C007F1076 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; - D05A834D18AFB40C007F1076 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; - D05A835018AFB40C007F1076 /* MtProtoKitOSX-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MtProtoKitOSX-Info.plist"; sourceTree = ""; }; - D05A835218AFB40C007F1076 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - D05A835418AFB40C007F1076 /* MtProtoKitOSX-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MtProtoKitOSX-Prefix.pch"; sourceTree = ""; }; - D05A839C18AFB75B007F1076 /* MTContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTContext.m; path = MTProtoKit/MTContext.m; sourceTree = ""; }; - D05A839D18AFB75B007F1076 /* MTDatacenterTransferAuthAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterTransferAuthAction.m; path = MTProtoKit/MTDatacenterTransferAuthAction.m; sourceTree = ""; }; - D05A839E18AFB75B007F1076 /* MTContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTContext.h; path = MTProtoKit/MTContext.h; sourceTree = ""; }; - D05A839F18AFB75B007F1076 /* MTDatacenterTransferAuthAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterTransferAuthAction.h; path = MTProtoKit/MTDatacenterTransferAuthAction.h; sourceTree = ""; }; - D05A83A018AFB75B007F1076 /* MTDatacenterAuthAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAuthAction.h; path = MTProtoKit/MTDatacenterAuthAction.h; sourceTree = ""; }; - D05A83A318AFB75B007F1076 /* MTKeychain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTKeychain.m; path = MTProtoKit/MTKeychain.m; sourceTree = ""; }; - D05A83B018AFB75B007F1076 /* MTDatacenterAuthMessageService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAuthMessageService.m; path = MTProtoKit/MTDatacenterAuthMessageService.m; sourceTree = ""; }; - D05A83B518AFB75B007F1076 /* MTSerialization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTSerialization.h; path = MTProtoKit/MTSerialization.h; sourceTree = ""; }; - D05A83C018AFB75B007F1076 /* MTKeychain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTKeychain.h; path = MTProtoKit/MTKeychain.h; sourceTree = ""; }; - D05A83C618AFB75B007F1076 /* MTDatacenterSaltInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterSaltInfo.m; path = MTProtoKit/MTDatacenterSaltInfo.m; sourceTree = ""; }; - D05A83C718AFB75B007F1076 /* MTDatacenterSaltInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterSaltInfo.h; path = MTProtoKit/MTDatacenterSaltInfo.h; sourceTree = ""; }; - D05A83C818AFB75B007F1076 /* MTDatacenterAuthInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAuthInfo.m; path = MTProtoKit/MTDatacenterAuthInfo.m; sourceTree = ""; }; - D05A83C918AFB75B007F1076 /* MTDatacenterAuthInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAuthInfo.h; path = MTProtoKit/MTDatacenterAuthInfo.h; sourceTree = ""; }; - D05A83CA18AFB75B007F1076 /* MTDatacenterAddress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAddress.m; path = MTProtoKit/MTDatacenterAddress.m; sourceTree = ""; }; - D05A83CB18AFB75B007F1076 /* MTDatacenterAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAddress.h; path = MTProtoKit/MTDatacenterAddress.h; sourceTree = ""; }; - D05A83CC18AFB75B007F1076 /* MTDatacenterAddressSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAddressSet.m; path = MTProtoKit/MTDatacenterAddressSet.m; sourceTree = ""; }; - D05A83CD18AFB75B007F1076 /* MTDatacenterAddressSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAddressSet.h; path = MTProtoKit/MTDatacenterAddressSet.h; sourceTree = ""; }; - D05A83CE18AFB75B007F1076 /* MTDatacenterAuthAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAuthAction.m; path = MTProtoKit/MTDatacenterAuthAction.m; sourceTree = ""; }; - D05A83D118AFB75B007F1076 /* MTInternalId.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTInternalId.h; path = MTProtoKit/MTInternalId.h; sourceTree = ""; }; - D05A83D418AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDiscoverDatacenterAddressAction.m; path = MTProtoKit/MTDiscoverDatacenterAddressAction.m; sourceTree = ""; }; - D05A83D518AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDiscoverDatacenterAddressAction.h; path = MTProtoKit/MTDiscoverDatacenterAddressAction.h; sourceTree = ""; }; - D05A83D918AFB75B007F1076 /* MTDatacenterAuthMessageService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAuthMessageService.h; path = MTProtoKit/MTDatacenterAuthMessageService.h; sourceTree = ""; }; - D05A849F18AFCF8E007F1076 /* MTQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTQueue.h; path = MTProtoKit/MTQueue.h; sourceTree = ""; }; - D05A84A018AFCF8E007F1076 /* MTQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTQueue.m; path = MTProtoKit/MTQueue.m; sourceTree = ""; }; - D05A84D818AFE81C007F1076 /* MTTimer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTimer.m; path = MTProtoKit/MTTimer.m; sourceTree = ""; }; - D05A84D918AFE81D007F1076 /* MTTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTimer.h; path = MTProtoKit/MTTimer.h; sourceTree = ""; }; - D05A84DA18AFE81D007F1076 /* MTLogging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTLogging.h; path = MTProtoKit/MTLogging.h; sourceTree = ""; }; - D05A84DB18AFE81D007F1076 /* MTLogging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTLogging.m; path = MTProtoKit/MTLogging.m; sourceTree = ""; }; - D05A84DC18AFE81D007F1076 /* MTEncryption.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTEncryption.m; path = MTProtoKit/MTEncryption.m; sourceTree = ""; }; - D05A84EB18AFF259007F1076 /* AFHTTPRequestOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFHTTPRequestOperation.h; sourceTree = ""; }; - D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFHTTPRequestOperation.m; sourceTree = ""; }; - D05A84F418AFF259007F1076 /* AFURLConnectionOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AFURLConnectionOperation.h; sourceTree = ""; }; - D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AFURLConnectionOperation.m; sourceTree = ""; }; - D05A84F718AFF259007F1076 /* GCDAsyncSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDAsyncSocket.h; sourceTree = ""; }; - D05A84F818AFF259007F1076 /* GCDAsyncSocket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDAsyncSocket.m; sourceTree = ""; }; - D063A2F918B14AB500C65116 /* libcrypto.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcrypto.dylib; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/lib/libcrypto.dylib; sourceTree = DEVELOPER_DIR; }; - D063A31518B157F700C65116 /* MtProtoKit-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "MtProtoKit-Prefix.pch"; path = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; sourceTree = SOURCE_ROOT; }; - D063A31818B157F700C65116 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = InfoPlist.strings; sourceTree = ""; }; - D063A31918B157F700C65116 /* MtProtoKit-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "MtProtoKit-Info.plist"; path = "MtProtoKitiOS/MtProtoKit-Info.plist"; sourceTree = SOURCE_ROOT; }; - D063A31D18B158AE00C65116 /* MTProtoKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTProtoKit.h; path = MTProtoKit/MTProtoKit.h; sourceTree = ""; }; - D063A32018B1618D00C65116 /* MTOutgoingMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTOutgoingMessage.h; path = MTProtoKit/MTOutgoingMessage.h; sourceTree = ""; }; - D063A32118B1618D00C65116 /* MTOutgoingMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTOutgoingMessage.m; path = MTProtoKit/MTOutgoingMessage.m; sourceTree = ""; }; - D063A32218B1618D00C65116 /* MTPreparedMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTPreparedMessage.h; path = MTProtoKit/MTPreparedMessage.h; sourceTree = ""; }; - D063A32318B1618D00C65116 /* MTPreparedMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTPreparedMessage.m; path = MTProtoKit/MTPreparedMessage.m; sourceTree = ""; }; - D063A32418B1618D00C65116 /* MTProto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTProto.h; path = MTProtoKit/MTProto.h; sourceTree = ""; }; - D063A32518B1618D00C65116 /* MTProto.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTProto.m; path = MTProtoKit/MTProto.m; sourceTree = ""; }; - D063A32618B1618D00C65116 /* MTSessionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTSessionInfo.h; path = MTProtoKit/MTSessionInfo.h; sourceTree = ""; }; - D063A32718B1618D00C65116 /* MTSessionInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTSessionInfo.m; path = MTProtoKit/MTSessionInfo.m; sourceTree = ""; }; - D063A32818B1618D00C65116 /* MTTimeFixContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTimeFixContext.h; path = MTProtoKit/MTTimeFixContext.h; sourceTree = ""; }; - D063A32918B1618D00C65116 /* MTTimeFixContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTimeFixContext.m; path = MTProtoKit/MTTimeFixContext.m; sourceTree = ""; }; - D063A33418B161B600C65116 /* MTTransportScheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTransportScheme.h; path = MTProtoKit/MTTransportScheme.h; sourceTree = ""; }; - D063A33518B161B600C65116 /* MTTransportScheme.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTransportScheme.m; path = MTProtoKit/MTTransportScheme.m; sourceTree = ""; }; - D063A33618B161B600C65116 /* MTIncomingMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTIncomingMessage.h; path = MTProtoKit/MTIncomingMessage.h; sourceTree = ""; }; - D063A33718B161B600C65116 /* MTIncomingMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTIncomingMessage.m; path = MTProtoKit/MTIncomingMessage.m; sourceTree = ""; }; - D063A33818B161B600C65116 /* MTMessageEncryptionKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMessageEncryptionKey.h; path = MTProtoKit/MTMessageEncryptionKey.h; sourceTree = ""; }; - D063A33918B161B600C65116 /* MTMessageEncryptionKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMessageEncryptionKey.m; path = MTProtoKit/MTMessageEncryptionKey.m; sourceTree = ""; }; - D063A35018B1631900C65116 /* MTMessageService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMessageService.h; path = MTProtoKit/MTMessageService.h; sourceTree = ""; }; - D063A35118B1631900C65116 /* MTMessageTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMessageTransaction.h; path = MTProtoKit/MTMessageTransaction.h; sourceTree = ""; }; - D063A35218B1631900C65116 /* MTMessageTransaction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMessageTransaction.m; path = MTProtoKit/MTMessageTransaction.m; sourceTree = ""; }; - D063A35918B164BA00C65116 /* MTTimeSyncMessageService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTimeSyncMessageService.h; path = MTProtoKit/MTTimeSyncMessageService.h; sourceTree = ""; }; - D063A35A18B164BA00C65116 /* MTTimeSyncMessageService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTimeSyncMessageService.m; path = MTProtoKit/MTTimeSyncMessageService.m; sourceTree = ""; }; - D063A35F18B164D600C65116 /* MTApiEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTApiEnvironment.h; path = MTProtoKit/MTApiEnvironment.h; sourceTree = ""; }; - D063A36018B164D600C65116 /* MTApiEnvironment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTApiEnvironment.m; path = MTProtoKit/MTApiEnvironment.m; sourceTree = ""; }; - D063A36118B164D600C65116 /* MTDropResponseContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDropResponseContext.h; path = MTProtoKit/MTDropResponseContext.h; sourceTree = ""; }; - D063A36218B164D600C65116 /* MTDropResponseContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDropResponseContext.m; path = MTProtoKit/MTDropResponseContext.m; sourceTree = ""; }; - D063A36318B164D600C65116 /* MTRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTRequest.h; path = MTProtoKit/MTRequest.h; sourceTree = ""; }; - D063A36418B164D600C65116 /* MTRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTRequest.m; path = MTProtoKit/MTRequest.m; sourceTree = ""; }; - D063A36518B164D600C65116 /* MTRequestContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTRequestContext.h; path = MTProtoKit/MTRequestContext.h; sourceTree = ""; }; - D063A36618B164D600C65116 /* MTRequestContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTRequestContext.m; path = MTProtoKit/MTRequestContext.m; sourceTree = ""; }; - D063A36718B164D600C65116 /* MTRequestMessageService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTRequestMessageService.h; path = MTProtoKit/MTRequestMessageService.h; sourceTree = ""; }; - D063A36818B164D600C65116 /* MTRequestMessageService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTRequestMessageService.m; path = MTProtoKit/MTRequestMessageService.m; sourceTree = ""; }; - D063A37D18B164E600C65116 /* MTResendMessageService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTResendMessageService.h; path = MTProtoKit/MTResendMessageService.h; sourceTree = ""; }; - D063A37E18B164E600C65116 /* MTResendMessageService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTResendMessageService.m; path = MTProtoKit/MTResendMessageService.m; sourceTree = ""; }; - D063A38318B164F800C65116 /* MTNetworkAvailability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTNetworkAvailability.h; path = MTProtoKit/MTNetworkAvailability.h; sourceTree = ""; }; - D063A38418B164F800C65116 /* MTNetworkAvailability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTNetworkAvailability.m; path = MTProtoKit/MTNetworkAvailability.m; sourceTree = ""; }; - D063A38518B164F800C65116 /* MTTransport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTransport.h; path = MTProtoKit/MTTransport.h; sourceTree = ""; }; - D063A38618B164F800C65116 /* MTTransport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTransport.m; path = MTProtoKit/MTTransport.m; sourceTree = ""; }; - D063A38718B164F800C65116 /* MTTransportTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTransportTransaction.h; path = MTProtoKit/MTTransportTransaction.h; sourceTree = ""; }; - D063A38818B164F800C65116 /* MTTransportTransaction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTransportTransaction.m; path = MTProtoKit/MTTransportTransaction.m; sourceTree = ""; }; - D063A39518B1650400C65116 /* MTTcpConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTcpConnection.h; path = MTProtoKit/MTTcpConnection.h; sourceTree = ""; }; - D063A39618B1650400C65116 /* MTTcpConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTcpConnection.m; path = MTProtoKit/MTTcpConnection.m; sourceTree = ""; }; - D063A39718B1650400C65116 /* MTTcpConnectionBehaviour.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTcpConnectionBehaviour.h; path = MTProtoKit/MTTcpConnectionBehaviour.h; sourceTree = ""; }; - D063A39818B1650400C65116 /* MTTcpConnectionBehaviour.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTcpConnectionBehaviour.m; path = MTProtoKit/MTTcpConnectionBehaviour.m; sourceTree = ""; }; - D063A39918B1650400C65116 /* MTTcpTransport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTTcpTransport.h; path = MTProtoKit/MTTcpTransport.h; sourceTree = ""; }; - D063A39A18B1650400C65116 /* MTTcpTransport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTTcpTransport.m; path = MTProtoKit/MTTcpTransport.m; sourceTree = ""; }; - D079AB971AF39B8000076F59 /* MtProtoKitMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MtProtoKitMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D079AB9A1AF39B8000076F59 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D079AB9B1AF39B8000076F59 /* MtProtoKitMac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MtProtoKitMac.h; sourceTree = ""; }; - D079ABA71AF39B8000076F59 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D079ABA81AF39B8000076F59 /* MtProtoKitMacTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MtProtoKitMacTests.m; sourceTree = ""; }; - D08A158F22DD32B40073B508 /* tonlibjson_export.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tonlibjson_export.h; sourceTree = ""; }; - D08A159022DD32B40073B508 /* tonlib_client_json.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tonlib_client_json.h; sourceTree = ""; }; - D08A159322DD32CF0073B508 /* libtdutils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdutils.a; path = TON/libtdutils.a; sourceTree = ""; }; - D08A159422DD32CF0073B508 /* libtdactor.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtdactor.a; path = TON/libtdactor.a; sourceTree = ""; }; - D08A159522DD32CF0073B508 /* libtddb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtddb.a; path = TON/libtddb.a; sourceTree = ""; }; - D08A159622DD32CF0073B508 /* libtonlibjson.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libtonlibjson.a; path = TON/libtonlibjson.a; sourceTree = ""; }; - D08A159B22DD32F20073B508 /* TON.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TON.h; sourceTree = ""; }; - D08A159C22DD32F20073B508 /* TON.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = TON.mm; sourceTree = ""; }; - D09A59561B582EFF00FC3724 /* MTFileBasedKeychain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTFileBasedKeychain.h; path = MTProtoKit/MTFileBasedKeychain.h; sourceTree = ""; }; - D09A59571B582EFF00FC3724 /* MTFileBasedKeychain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTFileBasedKeychain.m; path = MTProtoKit/MTFileBasedKeychain.m; sourceTree = ""; }; - D0B0DF5C1DD7E75B003BA12D /* MTBag.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTBag.m; sourceTree = ""; }; - D0B0DF601DD7E768003BA12D /* MTBag.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTBag.h; sourceTree = ""; }; - D0B418741D7E04B7004562A4 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/CFNetwork.framework; sourceTree = DEVELOPER_DIR; }; - D0B418761D7E04C3004562A4 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; - D0B418781D7E04CB004562A4 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; - D0B4187A1D7E04CF004562A4 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/lib/libz.tbd; sourceTree = DEVELOPER_DIR; }; - D0B4187C1D7E04EB004562A4 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = openssl/OSX/libcrypto.a; sourceTree = ""; }; - D0BFAE5E20AB504600793CF2 /* MTDatacenterVerificationData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTDatacenterVerificationData.h; sourceTree = ""; }; - D0BFAE5F20AB504600793CF2 /* MTDatacenterVerificationData.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTDatacenterVerificationData.m; sourceTree = ""; }; - D0C0EAE41FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTBindingTempAuthKeyContext.h; sourceTree = ""; }; - D0C0EAE51FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTBindingTempAuthKeyContext.m; sourceTree = ""; }; - D0C932211E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTNetworkUsageCalculationInfo.h; sourceTree = ""; }; - D0C932221E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTNetworkUsageCalculationInfo.m; sourceTree = ""; }; - D0C932291E095E280074F044 /* MTNetworkUsageManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTNetworkUsageManager.h; sourceTree = ""; }; - D0C9322A1E095E280074F044 /* MTNetworkUsageManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTNetworkUsageManager.m; sourceTree = ""; }; - D0CAF2C91D75E24C0011F558 /* MTSignal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTSignal.h; sourceTree = ""; }; - D0CAF2CA1D75E24C0011F558 /* MTSignal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTSignal.m; sourceTree = ""; }; - D0CAF2D11D75E26D0011F558 /* MTSubscriber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTSubscriber.h; sourceTree = ""; }; - D0CAF2D21D75E26D0011F558 /* MTSubscriber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTSubscriber.m; sourceTree = ""; }; - D0CAF2D51D75E2840011F558 /* MTDisposable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTDisposable.h; sourceTree = ""; }; - D0CAF2D61D75E2840011F558 /* MTDisposable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTDisposable.m; sourceTree = ""; }; - D0CAF2E11D75E7F30011F558 /* MTAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTAtomic.h; sourceTree = ""; }; - D0CAF2E21D75E7F30011F558 /* MTAtomic.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTAtomic.m; sourceTree = ""; }; - D0CAF2EB1D75F4520011F558 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; - D0CAF2EE1D75F4E20011F558 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - D0CAF2F01D75F4EA0011F558 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; - D0CB05F71ADC4483005E298F /* MtProtoKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MtProtoKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0CB05FA1ADC4483005E298F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0CB05FB1ADC4483005E298F /* MtProtoKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MtProtoKit.h; sourceTree = ""; }; - D0CB06071ADC4483005E298F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0CB06081ADC4483005E298F /* MtProtoKitTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MtProtoKitTests.m; sourceTree = ""; }; - D0CD98E61D75BFAE00F41187 /* SSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SSignalKit.framework; path = "../SSignalKit/build/Debug-iphoneos/SSignalKit.framework"; sourceTree = ""; }; - D0CD990F1D75C16100F41187 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = openssl/iOS/libcrypto.a; sourceTree = ""; }; - D0D1A0041ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTBadMsgNotificationMessage.h; path = MTProtoKit/MTBadMsgNotificationMessage.h; sourceTree = ""; }; - D0D1A0051ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTBadMsgNotificationMessage.m; path = MTProtoKit/MTBadMsgNotificationMessage.m; sourceTree = ""; }; - D0D1A0061ADD983C007D9ED6 /* MTBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTBuffer.h; path = MTProtoKit/MTBuffer.h; sourceTree = ""; }; - D0D1A0071ADD983C007D9ED6 /* MTBuffer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTBuffer.m; path = MTProtoKit/MTBuffer.m; sourceTree = ""; }; - D0D1A0081ADD983C007D9ED6 /* MTBufferReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTBufferReader.h; path = MTProtoKit/MTBufferReader.h; sourceTree = ""; }; - D0D1A0091ADD983C007D9ED6 /* MTBufferReader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTBufferReader.m; path = MTProtoKit/MTBufferReader.m; sourceTree = ""; }; - D0D1A00A1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDestroySessionResponseMessage.h; path = MTProtoKit/MTDestroySessionResponseMessage.h; sourceTree = ""; }; - D0D1A00B1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDestroySessionResponseMessage.m; path = MTProtoKit/MTDestroySessionResponseMessage.m; sourceTree = ""; }; - D0D1A00C1ADD983C007D9ED6 /* MTDropRpcResultMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDropRpcResultMessage.h; path = MTProtoKit/MTDropRpcResultMessage.h; sourceTree = ""; }; - D0D1A00D1ADD983C007D9ED6 /* MTDropRpcResultMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDropRpcResultMessage.m; path = MTProtoKit/MTDropRpcResultMessage.m; sourceTree = ""; }; - D0D1A00E1ADD983C007D9ED6 /* MTExportedAuthorizationData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTExportedAuthorizationData.h; path = MTProtoKit/MTExportedAuthorizationData.h; sourceTree = ""; }; - D0D1A00F1ADD983C007D9ED6 /* MTExportedAuthorizationData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTExportedAuthorizationData.m; path = MTProtoKit/MTExportedAuthorizationData.m; sourceTree = ""; }; - D0D1A0101ADD983C007D9ED6 /* MTFutureSaltsMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTFutureSaltsMessage.h; path = MTProtoKit/MTFutureSaltsMessage.h; sourceTree = ""; }; - D0D1A0111ADD983C007D9ED6 /* MTFutureSaltsMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTFutureSaltsMessage.m; path = MTProtoKit/MTFutureSaltsMessage.m; sourceTree = ""; }; - D0D1A0121ADD983C007D9ED6 /* MTInternalMessageParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTInternalMessageParser.h; path = MTProtoKit/MTInternalMessageParser.h; sourceTree = ""; }; - D0D1A0131ADD983C007D9ED6 /* MTInternalMessageParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTInternalMessageParser.m; path = MTProtoKit/MTInternalMessageParser.m; sourceTree = ""; }; - D0D1A0141ADD983C007D9ED6 /* MTMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMessage.h; path = MTProtoKit/MTMessage.h; sourceTree = ""; }; - D0D1A0151ADD983C007D9ED6 /* MTMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMessage.m; path = MTProtoKit/MTMessage.m; sourceTree = ""; }; - D0D1A0161ADD983C007D9ED6 /* MTMsgAllInfoMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgAllInfoMessage.h; path = MTProtoKit/MTMsgAllInfoMessage.h; sourceTree = ""; }; - D0D1A0171ADD983C007D9ED6 /* MTMsgAllInfoMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgAllInfoMessage.m; path = MTProtoKit/MTMsgAllInfoMessage.m; sourceTree = ""; }; - D0D1A0181ADD983C007D9ED6 /* MTMsgContainerMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgContainerMessage.h; path = MTProtoKit/MTMsgContainerMessage.h; sourceTree = ""; }; - D0D1A0191ADD983C007D9ED6 /* MTMsgContainerMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgContainerMessage.m; path = MTProtoKit/MTMsgContainerMessage.m; sourceTree = ""; }; - D0D1A01A1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgDetailedInfoMessage.h; path = MTProtoKit/MTMsgDetailedInfoMessage.h; sourceTree = ""; }; - D0D1A01B1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgDetailedInfoMessage.m; path = MTProtoKit/MTMsgDetailedInfoMessage.m; sourceTree = ""; }; - D0D1A01C1ADD983C007D9ED6 /* MTMsgResendReqMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgResendReqMessage.h; path = MTProtoKit/MTMsgResendReqMessage.h; sourceTree = ""; }; - D0D1A01D1ADD983C007D9ED6 /* MTMsgResendReqMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgResendReqMessage.m; path = MTProtoKit/MTMsgResendReqMessage.m; sourceTree = ""; }; - D0D1A01E1ADD983C007D9ED6 /* MTMsgsAckMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgsAckMessage.h; path = MTProtoKit/MTMsgsAckMessage.h; sourceTree = ""; }; - D0D1A01F1ADD983C007D9ED6 /* MTMsgsAckMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgsAckMessage.m; path = MTProtoKit/MTMsgsAckMessage.m; sourceTree = ""; }; - D0D1A0201ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgsStateInfoMessage.h; path = MTProtoKit/MTMsgsStateInfoMessage.h; sourceTree = ""; }; - D0D1A0211ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgsStateInfoMessage.m; path = MTProtoKit/MTMsgsStateInfoMessage.m; sourceTree = ""; }; - D0D1A0221ADD983C007D9ED6 /* MTMsgsStateReqMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTMsgsStateReqMessage.h; path = MTProtoKit/MTMsgsStateReqMessage.h; sourceTree = ""; }; - D0D1A0231ADD983C007D9ED6 /* MTMsgsStateReqMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTMsgsStateReqMessage.m; path = MTProtoKit/MTMsgsStateReqMessage.m; sourceTree = ""; }; - D0D1A0241ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTNewSessionCreatedMessage.h; path = MTProtoKit/MTNewSessionCreatedMessage.h; sourceTree = ""; }; - D0D1A0251ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTNewSessionCreatedMessage.m; path = MTProtoKit/MTNewSessionCreatedMessage.m; sourceTree = ""; }; - D0D1A0261ADD983C007D9ED6 /* MTPingMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTPingMessage.h; path = MTProtoKit/MTPingMessage.h; sourceTree = ""; }; - D0D1A0271ADD983C007D9ED6 /* MTPingMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTPingMessage.m; path = MTProtoKit/MTPingMessage.m; sourceTree = ""; }; - D0D1A0281ADD983C007D9ED6 /* MTPongMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTPongMessage.h; path = MTProtoKit/MTPongMessage.h; sourceTree = ""; }; - D0D1A0291ADD983C007D9ED6 /* MTPongMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTPongMessage.m; path = MTProtoKit/MTPongMessage.m; sourceTree = ""; }; - D0D1A02A1ADD983C007D9ED6 /* MTResPqMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTResPqMessage.h; path = MTProtoKit/MTResPqMessage.h; sourceTree = ""; }; - D0D1A02B1ADD983C007D9ED6 /* MTResPqMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTResPqMessage.m; path = MTProtoKit/MTResPqMessage.m; sourceTree = ""; }; - D0D1A02C1ADD983C007D9ED6 /* MTRpcError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTRpcError.h; path = MTProtoKit/MTRpcError.h; sourceTree = ""; }; - D0D1A02D1ADD983C007D9ED6 /* MTRpcError.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTRpcError.m; path = MTProtoKit/MTRpcError.m; sourceTree = ""; }; - D0D1A02E1ADD983C007D9ED6 /* MTRpcResultMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTRpcResultMessage.h; path = MTProtoKit/MTRpcResultMessage.h; sourceTree = ""; }; - D0D1A02F1ADD983C007D9ED6 /* MTRpcResultMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTRpcResultMessage.m; path = MTProtoKit/MTRpcResultMessage.m; sourceTree = ""; }; - D0D1A0301ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTServerDhInnerDataMessage.h; path = MTProtoKit/MTServerDhInnerDataMessage.h; sourceTree = ""; }; - D0D1A0311ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTServerDhInnerDataMessage.m; path = MTProtoKit/MTServerDhInnerDataMessage.m; sourceTree = ""; }; - D0D1A0321ADD983C007D9ED6 /* MTServerDhParamsMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTServerDhParamsMessage.h; path = MTProtoKit/MTServerDhParamsMessage.h; sourceTree = ""; }; - D0D1A0331ADD983C007D9ED6 /* MTServerDhParamsMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTServerDhParamsMessage.m; path = MTProtoKit/MTServerDhParamsMessage.m; sourceTree = ""; }; - D0D1A0341ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTSetClientDhParamsResponseMessage.h; path = MTProtoKit/MTSetClientDhParamsResponseMessage.h; sourceTree = ""; }; - D0D1A0351ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTSetClientDhParamsResponseMessage.m; path = MTProtoKit/MTSetClientDhParamsResponseMessage.m; sourceTree = ""; }; - D0D1A0691ADD987A007D9ED6 /* MTDatacenterAddressListData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MTDatacenterAddressListData.h; path = MTProtoKit/MTDatacenterAddressListData.h; sourceTree = ""; }; - D0D1A06A1ADD987A007D9ED6 /* MTDatacenterAddressListData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MTDatacenterAddressListData.m; path = MTProtoKit/MTDatacenterAddressListData.m; sourceTree = ""; }; - D0D1A0711ADDE2FC007D9ED6 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; - D0D2250B1B4D817B0085E26D /* MtProtoKitDynamic.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MtProtoKitDynamic.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0D2250E1B4D817B0085E26D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0D2250F1B4D817B0085E26D /* MtProtoKitDynamic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MtProtoKitDynamic.h; sourceTree = ""; }; - D0D225151B4D817B0085E26D /* MtProtoKitDynamicTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MtProtoKitDynamicTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - D0D2251B1B4D817B0085E26D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0D2251C1B4D817B0085E26D /* MtProtoKitDynamicTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MtProtoKitDynamicTests.m; sourceTree = ""; }; - D0D58AF52347E5F000CF7782 /* tonlib_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tonlib_api.h; sourceTree = ""; }; - D0D58AF72347E5F000CF7782 /* TlObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TlObject.h; sourceTree = ""; }; - D0D58AF92347E5F000CF7782 /* tonlib_client_json.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tonlib_client_json.h; sourceTree = ""; }; - D0D58AFA2347E5F000CF7782 /* tonlibjson_export.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tonlibjson_export.h; sourceTree = ""; }; - D0D58AFB2347E5F000CF7782 /* Client.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Client.h; sourceTree = ""; }; - D0D58AFE2347E5F000CF7782 /* Slice-decl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Slice-decl.h"; sourceTree = ""; }; - D0D58AFF2347E5F000CF7782 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = ""; }; - D0D58B002347E5F000CF7782 /* SharedSlice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SharedSlice.h; sourceTree = ""; }; - D0D58B012347E5F000CF7782 /* Slice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Slice.h; sourceTree = ""; }; - D0D58B022347E5F000CF7782 /* int_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = int_types.h; sourceTree = ""; }; - D0D58B032347E5F000CF7782 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; - D0D58B042347E5F000CF7782 /* check.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = check.h; sourceTree = ""; }; - D0D58B052347E5F000CF7782 /* unique_ptr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unique_ptr.h; sourceTree = ""; }; - D0D58B072347E5F000CF7782 /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = ""; }; - D0D58B092347E5F000CF7782 /* libtl-lite-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libtl-lite-utils.a"; sourceTree = ""; }; - D0D58B0A2347E5F000CF7782 /* libtdactor.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libtdactor.a; sourceTree = ""; }; - D0D58B0B2347E5F000CF7782 /* libtonlibjson.0.5.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libtonlibjson.0.5.dylib; sourceTree = ""; }; - D0D58B0E2347E5F000CF7782 /* TonlibConfigVersion.cmake */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TonlibConfigVersion.cmake; sourceTree = ""; }; - D0D58B0F2347E5F000CF7782 /* TonlibConfig.cmake */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TonlibConfig.cmake; sourceTree = ""; }; - D0D58B102347E5F000CF7782 /* TonlibTargets-release.cmake */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "TonlibTargets-release.cmake"; sourceTree = ""; }; - D0D58B112347E5F000CF7782 /* TonlibTargets.cmake */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TonlibTargets.cmake; sourceTree = ""; }; - D0D58B122347E5F000CF7782 /* libton_block.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libton_block.a; sourceTree = ""; }; - D0D58B132347E5F000CF7782 /* libadnllite.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libadnllite.a; sourceTree = ""; }; - D0D58B142347E5F000CF7782 /* libtonlibjson.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libtonlibjson.dylib; sourceTree = ""; }; - D0D58B152347E5F000CF7782 /* libtddb.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libtddb.a; sourceTree = ""; }; - D0D58B162347E5F000CF7782 /* libkeys.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libkeys.a; sourceTree = ""; }; - D0D58B172347E5F000CF7782 /* libtdnet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libtdnet.a; sourceTree = ""; }; - D0D58B182347E5F000CF7782 /* libtdutils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libtdutils.a; sourceTree = ""; }; - D0D58B192347E5F000CF7782 /* libton_crypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libton_crypto.a; sourceTree = ""; }; - D0D58B1B2347E5F000CF7782 /* Lisp.fif */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Lisp.fif; sourceTree = ""; }; - D0D58B1C2347E5F000CF7782 /* Asm.fif */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Asm.fif; sourceTree = ""; }; - D0D58B1D2347E5F000CF7782 /* TonUtil.fif */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TonUtil.fif; sourceTree = ""; }; - D0D58B1E2347E5F000CF7782 /* Fift.fif */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Fift.fif; sourceTree = ""; }; - D0D58B1F2347E5F000CF7782 /* Lists.fif */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Lists.fif; sourceTree = ""; }; - D0D58B202347E5F000CF7782 /* Stack.fif */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Stack.fif; sourceTree = ""; }; - D0D58B212347E5F000CF7782 /* libtl-utils.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libtl-utils.a"; sourceTree = ""; }; - D0D58B222347E5F000CF7782 /* libtl_lite_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libtl_lite_api.a; sourceTree = ""; }; - D0D58B232347E5F000CF7782 /* libcrc32c.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libcrc32c.a; sourceTree = ""; }; - D0D58B242347E5F000CF7782 /* libtl_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libtl_api.a; sourceTree = ""; }; - D0D58B252347E5F000CF7782 /* libtonlib.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libtonlib.a; sourceTree = ""; }; - D0D58B262347E5F000CF7782 /* liblite-client-common.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "liblite-client-common.a"; sourceTree = ""; }; - D0D58B272347E5F000CF7782 /* libtl_tonlib_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libtl_tonlib_api.a; sourceTree = ""; }; - D0E1D6731CBC20BA00B04029 /* SSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SSignalKit.framework; path = "../../../../Library/Developer/Xcode/DerivedData/Telegram-iOS-diblohvjozhgaifjcniwdlixlilx/Build/Products/Debug-iphonesimulator/SSignalKit.framework"; sourceTree = ""; }; - D0E2E17520866780005737E8 /* MTDNS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MTDNS.h; sourceTree = ""; }; - D0E2E17620866780005737E8 /* MTDNS.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MTDNS.m; sourceTree = ""; }; - D0E9B9EB1F0176DA00F079A4 /* MTBackupAddressSignals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MTBackupAddressSignals.h; sourceTree = ""; }; - D0E9B9EC1F0176DA00F079A4 /* MTBackupAddressSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MTBackupAddressSignals.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - D00354621C173BF0006610DA /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D00354741C173CD9006610DA /* SystemConfiguration.framework in Frameworks */, - D00354721C173CD0006610DA /* libz.tbd in Frameworks */, - D00354701C173CB9006610DA /* SSignalKit.framework in Frameworks */, - D003546A1C173BF0006610DA /* MtProtoKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D079AB931AF39B8000076F59 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D0D58B512347E5F000CF7782 /* libtl_tonlib_api.a in Frameworks */, - D03878A42332504600DB441C /* CFNetwork.framework in Frameworks */, - D0D58B412347E5F000CF7782 /* libkeys.a in Frameworks */, - D0D58B442347E5F000CF7782 /* libton_crypto.a in Frameworks */, - D0D58B362347E5F000CF7782 /* libtl-lite-utils.a in Frameworks */, - D03878A22332503E00DB441C /* SystemConfiguration.framework in Frameworks */, - D0D58B4E2347E5F000CF7782 /* libtl_api.a in Frameworks */, - D0D58B4F2347E5F000CF7782 /* libtonlib.a in Frameworks */, - D0D58B502347E5F000CF7782 /* liblite-client-common.a in Frameworks */, - D0D58B402347E5F000CF7782 /* libtddb.a in Frameworks */, - D0D58B3E2347E5F000CF7782 /* libadnllite.a in Frameworks */, - D0D58B372347E5F000CF7782 /* libtdactor.a in Frameworks */, - D03878A02332503300DB441C /* Security.framework in Frameworks */, - D0D58B4B2347E5F000CF7782 /* libtl-utils.a in Frameworks */, - D0B4187D1D7E04EB004562A4 /* libcrypto.a in Frameworks */, - D0D58B432347E5F000CF7782 /* libtdutils.a in Frameworks */, - D0D58B422347E5F000CF7782 /* libtdnet.a in Frameworks */, - D0D58B4C2347E5F000CF7782 /* libtl_lite_api.a in Frameworks */, - D0D58B3D2347E5F000CF7782 /* libton_block.a in Frameworks */, - D0D58B4D2347E5F000CF7782 /* libcrc32c.a in Frameworks */, - D038789E2332500A00DB441C /* libc++.tbd in Frameworks */, - D0B4187B1D7E04CF004562A4 /* libz.tbd in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0CB05F31ADC4483005E298F /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D0D2689E1D7A055400C422DA /* libcrypto.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0D225071B4D817B0085E26D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D03878BC2332506800DB441C /* libton_crypto.a in Frameworks */, - D03878BD2332506800DB441C /* libmemprof.a in Frameworks */, - D03878BE2332506800DB441C /* libtonlib.a in Frameworks */, - D03878BF2332506800DB441C /* libtonlibjson_private.a in Frameworks */, - D03878C02332506800DB441C /* libtdtl.a in Frameworks */, - D03878C12332506800DB441C /* libkeys.a in Frameworks */, - D03878C22332506800DB441C /* libtdnet.a in Frameworks */, - D03878C32332506800DB441C /* libtonlibjson_static.a in Frameworks */, - D03878C42332506800DB441C /* libfift.a in Frameworks */, - D03878C52332506800DB441C /* libtl_tonlib_api_json.a in Frameworks */, - D03878C62332506800DB441C /* libtl-utils.a in Frameworks */, - D03878C72332506800DB441C /* libadnllite.a in Frameworks */, - D03878C82332506800DB441C /* libtl_tonlib_api.a in Frameworks */, - D03878C92332506800DB441C /* libtdutils.a in Frameworks */, - D03878CA2332506800DB441C /* libterminal.a in Frameworks */, - D03878CB2332506800DB441C /* libtl_api.a in Frameworks */, - D03878CC2332506800DB441C /* libcrc32c.a in Frameworks */, - D03878CD2332506800DB441C /* libtl-lite-utils.a in Frameworks */, - D03878CE2332506800DB441C /* libtddb.a in Frameworks */, - D03878CF2332506800DB441C /* libtl_lite_api.a in Frameworks */, - D03878D02332506800DB441C /* libton_block.a in Frameworks */, - D03878D12332506800DB441C /* libton_db.a in Frameworks */, - D03878D22332506800DB441C /* libtdactor.a in Frameworks */, - D00083C922DD33E500EC418C /* libc++.tbd in Frameworks */, - D0CAF2FD1D7628FD0011F558 /* libcrypto.a in Frameworks */, - D0CAF2F11D75F4EA0011F558 /* CFNetwork.framework in Frameworks */, - D0CAF2EF1D75F4E20011F558 /* UIKit.framework in Frameworks */, - D0CAF2ED1D75F4570011F558 /* SystemConfiguration.framework in Frameworks */, - D0CAF2EC1D75F4520011F558 /* Security.framework in Frameworks */, - D0CD990E1D75C12C00F41187 /* libz.tbd in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0D225121B4D817B0085E26D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D0D225161B4D817B0085E26D /* MtProtoKitDynamic.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 9389BC4F18DA1EDB00F9C1A6 /* Transport Scheme */ = { - isa = PBXGroup; - children = ( - D063A33418B161B600C65116 /* MTTransportScheme.h */, - D063A33518B161B600C65116 /* MTTransportScheme.m */, - D0580AC01B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h */, - D0580AC11B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m */, - ); - name = "Transport Scheme"; - sourceTree = ""; - }; - D00354661C173BF0006610DA /* MtProtoKitStabilityTests */ = { - isa = PBXGroup; - children = ( - D00354671C173BF0006610DA /* MtProtoKitStabilityTests.m */, - D00354691C173BF0006610DA /* Info.plist */, - ); - path = MtProtoKitStabilityTests; - sourceTree = ""; - }; - D018558922DDD36C00AC458A /* include */ = { - isa = PBXGroup; - children = ( - D018558A22DDD36C00AC458A /* Client.h */, - D018558B22DDD36C00AC458A /* TlObject.h */, - D018558C22DDD36C00AC458A /* tonlib_api.h */, - D018558D22DDD36C00AC458A /* int_types.h */, - D018558E22DDD36C00AC458A /* TonlibCallback.h */, - D018558F22DDD36C00AC458A /* platform.h */, - ); - path = include; - sourceTree = ""; - }; - D05A830918AFB3F9007F1076 = { - isa = PBXGroup; - children = ( - D08A158E22DD32740073B508 /* TON */, - D05A84E718AFF0EE007F1076 /* Third Party */, - D05A849B18AFCA3D007F1076 /* MTProtoKit */, - D05A831918AFB3F9007F1076 /* MtProtoKit iOS */, - D05A834E18AFB40C007F1076 /* MtProtoKitOSX */, - D05A833218AFB3F9007F1076 /* MtProtoKit Tests */, - D0CB05F81ADC4483005E298F /* MtProtoKit */, - D0CB06051ADC4483005E298F /* MtProtoKitTests */, - D079AB981AF39B8000076F59 /* MtProtoKitMac */, - D079ABA51AF39B8000076F59 /* MtProtoKitMacTests */, - D0D2250C1B4D817B0085E26D /* MtProtoKitDynamic */, - D0D225191B4D817B0085E26D /* MtProtoKitDynamicTests */, - D00354661C173BF0006610DA /* MtProtoKitStabilityTests */, - D05A831618AFB3F9007F1076 /* Frameworks */, - D05A831518AFB3F9007F1076 /* Products */, - ); - sourceTree = ""; - }; - D05A831518AFB3F9007F1076 /* Products */ = { - isa = PBXGroup; - children = ( - D0CB05F71ADC4483005E298F /* MtProtoKit.framework */, - D079AB971AF39B8000076F59 /* MtProtoKitMac.framework */, - D0D2250B1B4D817B0085E26D /* MtProtoKitDynamic.framework */, - D0D225151B4D817B0085E26D /* MtProtoKitDynamicTests.xctest */, - D00354651C173BF0006610DA /* MtProtoKitStabilityTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - D05A831618AFB3F9007F1076 /* Frameworks */ = { - isa = PBXGroup; - children = ( - D03878D4233250CF00DB441C /* libtonlibjson.0.5.dylib */, - D03878D3233250CF00DB441C /* libtonlibjson.dylib */, - D03878B02332506800DB441C /* libadnllite.a */, - D03878B52332506800DB441C /* libcrc32c.a */, - D03878AD2332506700DB441C /* libfift.a */, - D03878AA2332506700DB441C /* libkeys.a */, - D03878A62332506700DB441C /* libmemprof.a */, - D03878BB2332506800DB441C /* libtdactor.a */, - D03878B72332506800DB441C /* libtddb.a */, - D03878AB2332506700DB441C /* libtdnet.a */, - D03878A92332506700DB441C /* libtdtl.a */, - D03878B22332506800DB441C /* libtdutils.a */, - D03878B32332506800DB441C /* libterminal.a */, - D03878B42332506800DB441C /* libtl_api.a */, - D03878B82332506800DB441C /* libtl_lite_api.a */, - D03878AE2332506800DB441C /* libtl_tonlib_api_json.a */, - D03878B12332506800DB441C /* libtl_tonlib_api.a */, - D03878B62332506800DB441C /* libtl-lite-utils.a */, - D03878AF2332506800DB441C /* libtl-utils.a */, - D03878B92332506800DB441C /* libton_block.a */, - D03878A52332506700DB441C /* libton_crypto.a */, - D03878BA2332506800DB441C /* libton_db.a */, - D03878A72332506700DB441C /* libtonlib.a */, - D03878A82332506700DB441C /* libtonlibjson_private.a */, - D03878AC2332506700DB441C /* libtonlibjson_static.a */, - D03878A32332504600DB441C /* CFNetwork.framework */, - D03878A12332503E00DB441C /* SystemConfiguration.framework */, - D038789F2332503300DB441C /* Security.framework */, - D038789D2332500A00DB441C /* libc++.tbd */, - D01855A022DDD38C00AC458A /* libadnllite.a */, - D01855B022DDD38D00AC458A /* libcrc32c.a */, - D01B262F23324B9000A6448B /* libadnllite.a */, - D01B263523324B9000A6448B /* libcrc32c.a */, - D01B263323324B9000A6448B /* libkeys.a */, - D01B262D23324B9000A6448B /* liblite-client-common.a */, - D01B263123324B9000A6448B /* libtdactor.a */, - D01B262E23324B9000A6448B /* libtddb.a */, - D01B262623324B8F00A6448B /* libtdnet.a */, - D01B262823324B9000A6448B /* libtdutils.a */, - D01B263423324B9000A6448B /* libtl_api.a */, - D01B262923324B9000A6448B /* libtl_lite_api.a */, - D01B262723324B9000A6448B /* libtl_tonlib_api.a */, - D01B263223324B9000A6448B /* libtl-lite-utils.a */, - D01B262A23324B9000A6448B /* libtl-utils.a */, - D01B262B23324B9000A6448B /* libton_block.a */, - D01B263023324B9000A6448B /* libton_crypto.a */, - D01B262C23324B9000A6448B /* libtonlib.a */, - D01855A122DDD38C00AC458A /* libfift.a */, - D01855A222DDD38C00AC458A /* libkeys.a */, - D01855B222DDD38D00AC458A /* libmemprof.a */, - D01855AB22DDD38C00AC458A /* libtdnet.a */, - D01855B122DDD38D00AC458A /* libtdtl.a */, - D01855A722DDD38C00AC458A /* libterminal.a */, - D01855AF22DDD38D00AC458A /* libtl_api.a */, - D018559F22DDD38B00AC458A /* libtl_lite_api.a */, - D01855AA22DDD38C00AC458A /* libtl_tonlib_api_json.a */, - D01855AC22DDD38C00AC458A /* libtl_tonlib_api.a */, - D01855A322DDD38C00AC458A /* libtl-lite-utils.a */, - D01855A422DDD38C00AC458A /* libtl-utils.a */, - D01855AE22DDD38D00AC458A /* libton_block.a */, - D01855A922DDD38C00AC458A /* libton_crypto.a */, - D01855A522DDD38C00AC458A /* libton_db.a */, - D01855A622DDD38C00AC458A /* libtonlib.a */, - D01855A822DDD38C00AC458A /* libtonlibjson_private.a */, - D01855AD22DDD38C00AC458A /* libtonlibjson_static.a */, - D00083D722DD467100EC418C /* libtdjson.dylib */, - D00083CA22DD42F600EC418C /* libtonlibjson.dylib */, - D00083C822DD33E500EC418C /* libc++.tbd */, - D08A159422DD32CF0073B508 /* libtdactor.a */, - D08A159522DD32CF0073B508 /* libtddb.a */, - D08A159322DD32CF0073B508 /* libtdutils.a */, - D08A159622DD32CF0073B508 /* libtonlibjson.a */, - D0B4187C1D7E04EB004562A4 /* libcrypto.a */, - D0B4187A1D7E04CF004562A4 /* libz.tbd */, - D0B418781D7E04CB004562A4 /* Security.framework */, - D0B418761D7E04C3004562A4 /* SystemConfiguration.framework */, - D0B418741D7E04B7004562A4 /* CFNetwork.framework */, - D0CAF2F01D75F4EA0011F558 /* CFNetwork.framework */, - D0CAF2EE1D75F4E20011F558 /* UIKit.framework */, - D0CAF2EB1D75F4520011F558 /* Security.framework */, - D0CD990F1D75C16100F41187 /* libcrypto.a */, - D0CD98E61D75BFAE00F41187 /* SSignalKit.framework */, - D0E1D6731CBC20BA00B04029 /* SSignalKit.framework */, - D00354731C173CD9006610DA /* SystemConfiguration.framework */, - D00354711C173CD0006610DA /* libz.tbd */, - D0580ABE1B0F3E7100E8235B /* SSignalKit.framework */, - D0D1A0711ADDE2FC007D9ED6 /* libz.dylib */, - D063A2F918B14AB500C65116 /* libcrypto.dylib */, - D05A831718AFB3F9007F1076 /* Foundation.framework */, - D05A832818AFB3F9007F1076 /* XCTest.framework */, - D05A832B18AFB3F9007F1076 /* UIKit.framework */, - D05A834818AFB40C007F1076 /* Cocoa.framework */, - D05A834A18AFB40C007F1076 /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - D05A831918AFB3F9007F1076 /* MtProtoKit iOS */ = { - isa = PBXGroup; - children = ( - D05A831A18AFB3F9007F1076 /* Supporting Files */, - ); - name = "MtProtoKit iOS"; - path = MtProtoKit; - sourceTree = ""; - }; - D05A831A18AFB3F9007F1076 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D063A31518B157F700C65116 /* MtProtoKit-Prefix.pch */, - D063A31618B157F700C65116 /* en.lproj */, - D063A31918B157F700C65116 /* MtProtoKit-Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D05A833218AFB3F9007F1076 /* MtProtoKit Tests */ = { - isa = PBXGroup; - children = ( - D05A833818AFB3F9007F1076 /* MtProtoKitTests.m */, - D05A833318AFB3F9007F1076 /* Supporting Files */, - ); - name = "MtProtoKit Tests"; - path = MtProtoKitTests; - sourceTree = ""; - }; - D05A833318AFB3F9007F1076 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D05A833418AFB3F9007F1076 /* MtProtoKitTests-Info.plist */, - D05A833518AFB3F9007F1076 /* InfoPlist.strings */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D05A834A18AFB40C007F1076 /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - D05A834B18AFB40C007F1076 /* Foundation.framework */, - D05A834C18AFB40C007F1076 /* CoreData.framework */, - D05A834D18AFB40C007F1076 /* AppKit.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - D05A834E18AFB40C007F1076 /* MtProtoKitOSX */ = { - isa = PBXGroup; - children = ( - D05A834F18AFB40C007F1076 /* Supporting Files */, - ); - path = MtProtoKitOSX; - sourceTree = ""; - }; - D05A834F18AFB40C007F1076 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D05A835018AFB40C007F1076 /* MtProtoKitOSX-Info.plist */, - D05A835118AFB40C007F1076 /* InfoPlist.strings */, - D05A835418AFB40C007F1076 /* MtProtoKitOSX-Prefix.pch */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D05A842B18AFB770007F1076 /* Utils */ = { - isa = PBXGroup; - children = ( - D0CD99111D75C5D100F41187 /* Signals */, - 93DBD23318B2D9AA00631ADC /* MTTime.h */, - 93DBD23418B2DA1E00631ADC /* MTTime.m */, - D05A84D918AFE81D007F1076 /* MTTimer.h */, - D05A84D818AFE81C007F1076 /* MTTimer.m */, - D05A84DA18AFE81D007F1076 /* MTLogging.h */, - D05A84DB18AFE81D007F1076 /* MTLogging.m */, - D0254CC518B10404009452AA /* MTEncryption.h */, - D05A84DC18AFE81D007F1076 /* MTEncryption.m */, - D05A83D118AFB75B007F1076 /* MTInternalId.h */, - D05A849F18AFCF8E007F1076 /* MTQueue.h */, - D05A84A018AFCF8E007F1076 /* MTQueue.m */, - D0503AD818B027F80074C3FE /* MTOutputStream.h */, - D0503AD918B027F80074C3FE /* MTOutputStream.m */, - D0503ADC18B029480074C3FE /* MTInputStream.h */, - D0503ADD18B029480074C3FE /* MTInputStream.m */, - D010DB7B1D70ABEE0012AD96 /* MTRsa.h */, - D010DB7C1D70ABEE0012AD96 /* MTRsa.m */, - D010DB7F1D70B3B90012AD96 /* MTAes.h */, - D010DB801D70B3B90012AD96 /* MTAes.m */, - D020FAF81D994E3100F279AA /* MTHttpRequestOperation.h */, - D020FAF91D994E3100F279AA /* MTHttpRequestOperation.m */, - D0C932211E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h */, - D0C932221E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m */, - D0C932291E095E280074F044 /* MTNetworkUsageManager.h */, - D0C9322A1E095E280074F044 /* MTNetworkUsageManager.m */, - D0E9B9EB1F0176DA00F079A4 /* MTBackupAddressSignals.h */, - D0E9B9EC1F0176DA00F079A4 /* MTBackupAddressSignals.m */, - D0E2E17520866780005737E8 /* MTDNS.h */, - D0E2E17620866780005737E8 /* MTDNS.m */, - D0185E702089D265005E1A6C /* MTProxyConnectivity.h */, - D0185E712089D265005E1A6C /* MTProxyConnectivity.m */, - D0119CBF20CAD34800895300 /* MTConnectionProbing.h */, - D0119CC020CAD34800895300 /* MTConnectionProbing.m */, - D0119CC720CAD65D00895300 /* PingFoundation.h */, - D0119CC820CAD65D00895300 /* PingFoundation.m */, - D0338737223BC115007A2CE4 /* MTPKCS.h */, - D0338738223BC115007A2CE4 /* MTPKCS.m */, - D015E016225CD19E00CB9E8A /* MTGzip.h */, - D015E017225CD19E00CB9E8A /* MTGzip.m */, - ); - name = Utils; - sourceTree = ""; - }; - D05A842C18AFB783007F1076 /* Serialization */ = { - isa = PBXGroup; - children = ( - D05A83B518AFB75B007F1076 /* MTSerialization.h */, - D0D1A0681ADD9844007D9ED6 /* Messages */, - ); - name = Serialization; - sourceTree = ""; - }; - D05A842D18AFB79D007F1076 /* Keychain */ = { - isa = PBXGroup; - children = ( - D05A83C018AFB75B007F1076 /* MTKeychain.h */, - D05A83A318AFB75B007F1076 /* MTKeychain.m */, - D09A59561B582EFF00FC3724 /* MTFileBasedKeychain.h */, - D09A59571B582EFF00FC3724 /* MTFileBasedKeychain.m */, - ); - name = Keychain; - sourceTree = ""; - }; - D05A842E18AFB7B7007F1076 /* MTProto */ = { - isa = PBXGroup; - children = ( - D063A32418B1618D00C65116 /* MTProto.h */, - D063A32518B1618D00C65116 /* MTProto.m */, - D063A32618B1618D00C65116 /* MTSessionInfo.h */, - D063A32718B1618D00C65116 /* MTSessionInfo.m */, - D063A32818B1618D00C65116 /* MTTimeFixContext.h */, - D063A32918B1618D00C65116 /* MTTimeFixContext.m */, - D0C0EAE41FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.h */, - D0C0EAE51FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m */, - D063A32218B1618D00C65116 /* MTPreparedMessage.h */, - D063A32318B1618D00C65116 /* MTPreparedMessage.m */, - D063A32018B1618D00C65116 /* MTOutgoingMessage.h */, - D063A32118B1618D00C65116 /* MTOutgoingMessage.m */, - D063A33618B161B600C65116 /* MTIncomingMessage.h */, - D063A33718B161B600C65116 /* MTIncomingMessage.m */, - D063A33818B161B600C65116 /* MTMessageEncryptionKey.h */, - D063A33918B161B600C65116 /* MTMessageEncryptionKey.m */, - D05A843018AFB875007F1076 /* Service */, - ); - name = MTProto; - sourceTree = ""; - }; - D05A843018AFB875007F1076 /* Service */ = { - isa = PBXGroup; - children = ( - D063A35018B1631900C65116 /* MTMessageService.h */, - D063A35118B1631900C65116 /* MTMessageTransaction.h */, - D063A35218B1631900C65116 /* MTMessageTransaction.m */, - D05A843118AFB897007F1076 /* Time Synchronization */, - D05A843218AFB8A9007F1076 /* RPC */, - D05A843318AFB8B3007F1076 /* Message Resending */, - ); - name = Service; - sourceTree = ""; - }; - D05A843118AFB897007F1076 /* Time Synchronization */ = { - isa = PBXGroup; - children = ( - D063A35918B164BA00C65116 /* MTTimeSyncMessageService.h */, - D063A35A18B164BA00C65116 /* MTTimeSyncMessageService.m */, - ); - name = "Time Synchronization"; - sourceTree = ""; - }; - D05A843218AFB8A9007F1076 /* RPC */ = { - isa = PBXGroup; - children = ( - D063A36718B164D600C65116 /* MTRequestMessageService.h */, - D063A36818B164D600C65116 /* MTRequestMessageService.m */, - D063A36318B164D600C65116 /* MTRequest.h */, - D063A36418B164D600C65116 /* MTRequest.m */, - D063A36518B164D600C65116 /* MTRequestContext.h */, - D063A36618B164D600C65116 /* MTRequestContext.m */, - 93DBD22F18B2D72800631ADC /* MTRequestErrorContext.h */, - 93DBD23018B2D72800631ADC /* MTRequestErrorContext.m */, - D063A36118B164D600C65116 /* MTDropResponseContext.h */, - D063A36218B164D600C65116 /* MTDropResponseContext.m */, - D063A35F18B164D600C65116 /* MTApiEnvironment.h */, - D063A36018B164D600C65116 /* MTApiEnvironment.m */, - ); - name = RPC; - sourceTree = ""; - }; - D05A843318AFB8B3007F1076 /* Message Resending */ = { - isa = PBXGroup; - children = ( - D063A37D18B164E600C65116 /* MTResendMessageService.h */, - D063A37E18B164E600C65116 /* MTResendMessageService.m */, - ); - name = "Message Resending"; - sourceTree = ""; - }; - D05A843418AFB925007F1076 /* Context */ = { - isa = PBXGroup; - children = ( - D05A839E18AFB75B007F1076 /* MTContext.h */, - D05A839C18AFB75B007F1076 /* MTContext.m */, - D0529D2921A434BF00D7C3C4 /* MTTransportSchemeStats.h */, - D0529D2A21A434BF00D7C3C4 /* MTTransportSchemeStats.m */, - 9389BC4F18DA1EDB00F9C1A6 /* Transport Scheme */, - D05A843518AFB941007F1076 /* Discover Address */, - D05A843618AFB955007F1076 /* Authorization */, - ); - name = Context; - sourceTree = ""; - }; - D05A843518AFB941007F1076 /* Discover Address */ = { - isa = PBXGroup; - children = ( - D05A83D518AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.h */, - D05A83D418AFB75B007F1076 /* MTDiscoverDatacenterAddressAction.m */, - ); - name = "Discover Address"; - sourceTree = ""; - }; - D05A843618AFB955007F1076 /* Authorization */ = { - isa = PBXGroup; - children = ( - D05A839F18AFB75B007F1076 /* MTDatacenterTransferAuthAction.h */, - D05A839D18AFB75B007F1076 /* MTDatacenterTransferAuthAction.m */, - D05A83A018AFB75B007F1076 /* MTDatacenterAuthAction.h */, - D05A83CE18AFB75B007F1076 /* MTDatacenterAuthAction.m */, - D05A83D918AFB75B007F1076 /* MTDatacenterAuthMessageService.h */, - D05A83B018AFB75B007F1076 /* MTDatacenterAuthMessageService.m */, - ); - name = Authorization; - sourceTree = ""; - }; - D05A843718AFB985007F1076 /* Datacenter */ = { - isa = PBXGroup; - children = ( - D05A83CB18AFB75B007F1076 /* MTDatacenterAddress.h */, - D05A83CA18AFB75B007F1076 /* MTDatacenterAddress.m */, - D05A83CD18AFB75B007F1076 /* MTDatacenterAddressSet.h */, - D05A83CC18AFB75B007F1076 /* MTDatacenterAddressSet.m */, - D05A83C918AFB75B007F1076 /* MTDatacenterAuthInfo.h */, - D05A83C818AFB75B007F1076 /* MTDatacenterAuthInfo.m */, - D05A83C718AFB75B007F1076 /* MTDatacenterSaltInfo.h */, - D05A83C618AFB75B007F1076 /* MTDatacenterSaltInfo.m */, - D0D1A0691ADD987A007D9ED6 /* MTDatacenterAddressListData.h */, - D0D1A06A1ADD987A007D9ED6 /* MTDatacenterAddressListData.m */, - ); - name = Datacenter; - sourceTree = ""; - }; - D05A843818AFB9C4007F1076 /* Transport */ = { - isa = PBXGroup; - children = ( - D063A38318B164F800C65116 /* MTNetworkAvailability.h */, - D063A38418B164F800C65116 /* MTNetworkAvailability.m */, - D063A38518B164F800C65116 /* MTTransport.h */, - D063A38618B164F800C65116 /* MTTransport.m */, - D063A38718B164F800C65116 /* MTTransportTransaction.h */, - D063A38818B164F800C65116 /* MTTransportTransaction.m */, - D05A843918AFB9DA007F1076 /* TCP */, - ); - name = Transport; - sourceTree = ""; - }; - D05A843918AFB9DA007F1076 /* TCP */ = { - isa = PBXGroup; - children = ( - D063A39918B1650400C65116 /* MTTcpTransport.h */, - D063A39A18B1650400C65116 /* MTTcpTransport.m */, - D063A39518B1650400C65116 /* MTTcpConnection.h */, - D063A39618B1650400C65116 /* MTTcpConnection.m */, - D063A39718B1650400C65116 /* MTTcpConnectionBehaviour.h */, - D063A39818B1650400C65116 /* MTTcpConnectionBehaviour.m */, - ); - name = TCP; - sourceTree = ""; - }; - D05A849B18AFCA3D007F1076 /* MTProtoKit */ = { - isa = PBXGroup; - children = ( - D063A31D18B158AE00C65116 /* MTProtoKit.h */, - D05A842B18AFB770007F1076 /* Utils */, - D05A842C18AFB783007F1076 /* Serialization */, - D05A842D18AFB79D007F1076 /* Keychain */, - D05A843418AFB925007F1076 /* Context */, - D05A843718AFB985007F1076 /* Datacenter */, - D05A842E18AFB7B7007F1076 /* MTProto */, - D05A843818AFB9C4007F1076 /* Transport */, - ); - name = MTProtoKit; - sourceTree = ""; - }; - D05A84E718AFF0EE007F1076 /* Third Party */ = { - isa = PBXGroup; - children = ( - D05A84E818AFF259007F1076 /* AFNetworking */, - D05A84F618AFF259007F1076 /* AsyncSocket */, - ); - name = "Third Party"; - sourceTree = ""; - }; - D05A84E818AFF259007F1076 /* AFNetworking */ = { - isa = PBXGroup; - children = ( - D05A84EB18AFF259007F1076 /* AFHTTPRequestOperation.h */, - D05A84EC18AFF259007F1076 /* AFHTTPRequestOperation.m */, - D05A84F418AFF259007F1076 /* AFURLConnectionOperation.h */, - D05A84F518AFF259007F1076 /* AFURLConnectionOperation.m */, - ); - name = AFNetworking; - path = thirdparty/AFNetworking; - sourceTree = ""; - }; - D05A84F618AFF259007F1076 /* AsyncSocket */ = { - isa = PBXGroup; - children = ( - D05A84F718AFF259007F1076 /* GCDAsyncSocket.h */, - D05A84F818AFF259007F1076 /* GCDAsyncSocket.m */, - ); - name = AsyncSocket; - path = thirdparty/AsyncSocket; - sourceTree = ""; - }; - D063A31618B157F700C65116 /* en.lproj */ = { - isa = PBXGroup; - children = ( - D063A31718B157F700C65116 /* InfoPlist.strings */, - ); - name = en.lproj; - path = MtProtoKitiOS/en.lproj; - sourceTree = SOURCE_ROOT; - }; - D079AB981AF39B8000076F59 /* MtProtoKitMac */ = { - isa = PBXGroup; - children = ( - D079AB9B1AF39B8000076F59 /* MtProtoKitMac.h */, - D079AB991AF39B8000076F59 /* Supporting Files */, - ); - path = MtProtoKitMac; - sourceTree = ""; - }; - D079AB991AF39B8000076F59 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D079AB9A1AF39B8000076F59 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D079ABA51AF39B8000076F59 /* MtProtoKitMacTests */ = { - isa = PBXGroup; - children = ( - D079ABA81AF39B8000076F59 /* MtProtoKitMacTests.m */, - D079ABA61AF39B8000076F59 /* Supporting Files */, - ); - path = MtProtoKitMacTests; - sourceTree = ""; - }; - D079ABA61AF39B8000076F59 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D079ABA71AF39B8000076F59 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D08A158E22DD32740073B508 /* TON */ = { - isa = PBXGroup; - children = ( - D0D58AF12347E5F000CF7782 /* macOS */, - D018558922DDD36C00AC458A /* include */, - D08A159022DD32B40073B508 /* tonlib_client_json.h */, - D08A158F22DD32B40073B508 /* tonlibjson_export.h */, - D08A159B22DD32F20073B508 /* TON.h */, - D08A159C22DD32F20073B508 /* TON.mm */, - ); - path = TON; - sourceTree = ""; - }; - D0CB05F81ADC4483005E298F /* MtProtoKit */ = { - isa = PBXGroup; - children = ( - D0CB05FB1ADC4483005E298F /* MtProtoKit.h */, - D0CB05F91ADC4483005E298F /* Supporting Files */, - ); - path = MtProtoKit; - sourceTree = ""; - }; - D0CB05F91ADC4483005E298F /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D0CB05FA1ADC4483005E298F /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D0CB06051ADC4483005E298F /* MtProtoKitTests */ = { - isa = PBXGroup; - children = ( - D0CB06081ADC4483005E298F /* MtProtoKitTests.m */, - D0CB06061ADC4483005E298F /* Supporting Files */, - ); - path = MtProtoKitTests; - sourceTree = ""; - }; - D0CB06061ADC4483005E298F /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D0CB06071ADC4483005E298F /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D0CD99111D75C5D100F41187 /* Signals */ = { - isa = PBXGroup; - children = ( - D0B0DF601DD7E768003BA12D /* MTBag.h */, - D0B0DF5C1DD7E75B003BA12D /* MTBag.m */, - D0CAF2E11D75E7F30011F558 /* MTAtomic.h */, - D0CAF2E21D75E7F30011F558 /* MTAtomic.m */, - D0CAF2D51D75E2840011F558 /* MTDisposable.h */, - D0CAF2D61D75E2840011F558 /* MTDisposable.m */, - D0CAF2D11D75E26D0011F558 /* MTSubscriber.h */, - D0CAF2D21D75E26D0011F558 /* MTSubscriber.m */, - D0CAF2C91D75E24C0011F558 /* MTSignal.h */, - D0CAF2CA1D75E24C0011F558 /* MTSignal.m */, - ); - name = Signals; - sourceTree = ""; - }; - D0D1A0681ADD9844007D9ED6 /* Messages */ = { - isa = PBXGroup; - children = ( - D0D1A0041ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h */, - D0D1A0051ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m */, - D0D1A0061ADD983C007D9ED6 /* MTBuffer.h */, - D0D1A0071ADD983C007D9ED6 /* MTBuffer.m */, - D0D1A0081ADD983C007D9ED6 /* MTBufferReader.h */, - D0D1A0091ADD983C007D9ED6 /* MTBufferReader.m */, - D0D1A00A1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h */, - D0D1A00B1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m */, - D0D1A00C1ADD983C007D9ED6 /* MTDropRpcResultMessage.h */, - D0D1A00D1ADD983C007D9ED6 /* MTDropRpcResultMessage.m */, - D0D1A00E1ADD983C007D9ED6 /* MTExportedAuthorizationData.h */, - D0D1A00F1ADD983C007D9ED6 /* MTExportedAuthorizationData.m */, - D0BFAE5E20AB504600793CF2 /* MTDatacenterVerificationData.h */, - D0BFAE5F20AB504600793CF2 /* MTDatacenterVerificationData.m */, - D0D1A0101ADD983C007D9ED6 /* MTFutureSaltsMessage.h */, - D0D1A0111ADD983C007D9ED6 /* MTFutureSaltsMessage.m */, - D0D1A0121ADD983C007D9ED6 /* MTInternalMessageParser.h */, - D0D1A0131ADD983C007D9ED6 /* MTInternalMessageParser.m */, - D0D1A0141ADD983C007D9ED6 /* MTMessage.h */, - D0D1A0151ADD983C007D9ED6 /* MTMessage.m */, - D0D1A0161ADD983C007D9ED6 /* MTMsgAllInfoMessage.h */, - D0D1A0171ADD983C007D9ED6 /* MTMsgAllInfoMessage.m */, - D0D1A0181ADD983C007D9ED6 /* MTMsgContainerMessage.h */, - D0D1A0191ADD983C007D9ED6 /* MTMsgContainerMessage.m */, - D0D1A01A1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h */, - D0D1A01B1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m */, - D0D1A01C1ADD983C007D9ED6 /* MTMsgResendReqMessage.h */, - D0D1A01D1ADD983C007D9ED6 /* MTMsgResendReqMessage.m */, - D0D1A01E1ADD983C007D9ED6 /* MTMsgsAckMessage.h */, - D0D1A01F1ADD983C007D9ED6 /* MTMsgsAckMessage.m */, - D0D1A0201ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h */, - D0D1A0211ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m */, - D0D1A0221ADD983C007D9ED6 /* MTMsgsStateReqMessage.h */, - D0D1A0231ADD983C007D9ED6 /* MTMsgsStateReqMessage.m */, - D0D1A0241ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h */, - D0D1A0251ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m */, - D0D1A0261ADD983C007D9ED6 /* MTPingMessage.h */, - D0D1A0271ADD983C007D9ED6 /* MTPingMessage.m */, - D0D1A0281ADD983C007D9ED6 /* MTPongMessage.h */, - D0D1A0291ADD983C007D9ED6 /* MTPongMessage.m */, - D0D1A02A1ADD983C007D9ED6 /* MTResPqMessage.h */, - D0D1A02B1ADD983C007D9ED6 /* MTResPqMessage.m */, - D0D1A02C1ADD983C007D9ED6 /* MTRpcError.h */, - D0D1A02D1ADD983C007D9ED6 /* MTRpcError.m */, - D0D1A02E1ADD983C007D9ED6 /* MTRpcResultMessage.h */, - D0D1A02F1ADD983C007D9ED6 /* MTRpcResultMessage.m */, - D0D1A0301ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h */, - D0D1A0311ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m */, - D0D1A0321ADD983C007D9ED6 /* MTServerDhParamsMessage.h */, - D0D1A0331ADD983C007D9ED6 /* MTServerDhParamsMessage.m */, - D0D1A0341ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h */, - D0D1A0351ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m */, - ); - name = Messages; - sourceTree = ""; - }; - D0D2250C1B4D817B0085E26D /* MtProtoKitDynamic */ = { - isa = PBXGroup; - children = ( - D0D2250F1B4D817B0085E26D /* MtProtoKitDynamic.h */, - D0D2250D1B4D817B0085E26D /* Supporting Files */, - ); - path = MtProtoKitDynamic; - sourceTree = ""; - }; - D0D2250D1B4D817B0085E26D /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D0D2250E1B4D817B0085E26D /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D0D225191B4D817B0085E26D /* MtProtoKitDynamicTests */ = { - isa = PBXGroup; - children = ( - D0D2251C1B4D817B0085E26D /* MtProtoKitDynamicTests.m */, - D0D2251A1B4D817B0085E26D /* Supporting Files */, - ); - path = MtProtoKitDynamicTests; - sourceTree = ""; - }; - D0D2251A1B4D817B0085E26D /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D0D2251B1B4D817B0085E26D /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D0D58AF12347E5F000CF7782 /* macOS */ = { - isa = PBXGroup; - children = ( - D0D58AF22347E5F000CF7782 /* include */, - D0D58B082347E5F000CF7782 /* lib */, - ); - path = macOS; - sourceTree = ""; - }; - D0D58AF22347E5F000CF7782 /* include */ = { - isa = PBXGroup; - children = ( - D0D58AF32347E5F000CF7782 /* auto */, - D0D58AF62347E5F000CF7782 /* tl */, - D0D58AF82347E5F000CF7782 /* tonlib */, - D0D58AFC2347E5F000CF7782 /* td */, - ); - path = include; - sourceTree = ""; - }; - D0D58AF32347E5F000CF7782 /* auto */ = { - isa = PBXGroup; - children = ( - D0D58AF42347E5F000CF7782 /* tl */, - ); - path = auto; - sourceTree = ""; - }; - D0D58AF42347E5F000CF7782 /* tl */ = { - isa = PBXGroup; - children = ( - D0D58AF52347E5F000CF7782 /* tonlib_api.h */, - ); - path = tl; - sourceTree = ""; - }; - D0D58AF62347E5F000CF7782 /* tl */ = { - isa = PBXGroup; - children = ( - D0D58AF72347E5F000CF7782 /* TlObject.h */, - ); - path = tl; - sourceTree = ""; - }; - D0D58AF82347E5F000CF7782 /* tonlib */ = { - isa = PBXGroup; - children = ( - D0D58AF92347E5F000CF7782 /* tonlib_client_json.h */, - D0D58AFA2347E5F000CF7782 /* tonlibjson_export.h */, - D0D58AFB2347E5F000CF7782 /* Client.h */, - ); - path = tonlib; - sourceTree = ""; - }; - D0D58AFC2347E5F000CF7782 /* td */ = { - isa = PBXGroup; - children = ( - D0D58AFD2347E5F000CF7782 /* utils */, - ); - path = td; - sourceTree = ""; - }; - D0D58AFD2347E5F000CF7782 /* utils */ = { - isa = PBXGroup; - children = ( - D0D58AFE2347E5F000CF7782 /* Slice-decl.h */, - D0D58AFF2347E5F000CF7782 /* config.h */, - D0D58B002347E5F000CF7782 /* SharedSlice.h */, - D0D58B012347E5F000CF7782 /* Slice.h */, - D0D58B022347E5F000CF7782 /* int_types.h */, - D0D58B032347E5F000CF7782 /* common.h */, - D0D58B042347E5F000CF7782 /* check.h */, - D0D58B052347E5F000CF7782 /* unique_ptr.h */, - D0D58B062347E5F000CF7782 /* port */, - ); - path = utils; - sourceTree = ""; - }; - D0D58B062347E5F000CF7782 /* port */ = { - isa = PBXGroup; - children = ( - D0D58B072347E5F000CF7782 /* platform.h */, - ); - path = port; - sourceTree = ""; - }; - D0D58B082347E5F000CF7782 /* lib */ = { - isa = PBXGroup; - children = ( - D0D58B092347E5F000CF7782 /* libtl-lite-utils.a */, - D0D58B0A2347E5F000CF7782 /* libtdactor.a */, - D0D58B0B2347E5F000CF7782 /* libtonlibjson.0.5.dylib */, - D0D58B0C2347E5F000CF7782 /* cmake */, - D0D58B122347E5F000CF7782 /* libton_block.a */, - D0D58B132347E5F000CF7782 /* libadnllite.a */, - D0D58B142347E5F000CF7782 /* libtonlibjson.dylib */, - D0D58B152347E5F000CF7782 /* libtddb.a */, - D0D58B162347E5F000CF7782 /* libkeys.a */, - D0D58B172347E5F000CF7782 /* libtdnet.a */, - D0D58B182347E5F000CF7782 /* libtdutils.a */, - D0D58B192347E5F000CF7782 /* libton_crypto.a */, - D0D58B1A2347E5F000CF7782 /* fift */, - D0D58B212347E5F000CF7782 /* libtl-utils.a */, - D0D58B222347E5F000CF7782 /* libtl_lite_api.a */, - D0D58B232347E5F000CF7782 /* libcrc32c.a */, - D0D58B242347E5F000CF7782 /* libtl_api.a */, - D0D58B252347E5F000CF7782 /* libtonlib.a */, - D0D58B262347E5F000CF7782 /* liblite-client-common.a */, - D0D58B272347E5F000CF7782 /* libtl_tonlib_api.a */, - ); - path = lib; - sourceTree = ""; - }; - D0D58B0C2347E5F000CF7782 /* cmake */ = { - isa = PBXGroup; - children = ( - D0D58B0D2347E5F000CF7782 /* Tonlib */, - ); - path = cmake; - sourceTree = ""; - }; - D0D58B0D2347E5F000CF7782 /* Tonlib */ = { - isa = PBXGroup; - children = ( - D0D58B0E2347E5F000CF7782 /* TonlibConfigVersion.cmake */, - D0D58B0F2347E5F000CF7782 /* TonlibConfig.cmake */, - D0D58B102347E5F000CF7782 /* TonlibTargets-release.cmake */, - D0D58B112347E5F000CF7782 /* TonlibTargets.cmake */, - ); - path = Tonlib; - sourceTree = ""; - }; - D0D58B1A2347E5F000CF7782 /* fift */ = { - isa = PBXGroup; - children = ( - D0D58B1B2347E5F000CF7782 /* Lisp.fif */, - D0D58B1C2347E5F000CF7782 /* Asm.fif */, - D0D58B1D2347E5F000CF7782 /* TonUtil.fif */, - D0D58B1E2347E5F000CF7782 /* Fift.fif */, - D0D58B1F2347E5F000CF7782 /* Lists.fif */, - D0D58B202347E5F000CF7782 /* Stack.fif */, - ); - path = fift; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - D079AB941AF39B8000076F59 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D0D58B522347E64000CF7782 /* TON.h in Headers */, - D0CD97FD1D74B96300F41187 /* MTBuffer.h in Headers */, - D0D58B352347E5F000CF7782 /* platform.h in Headers */, - D0CD98131D74B99400F41187 /* MTInternalMessageParser.h in Headers */, - D0CD98EE1D75C0C900F41187 /* MTTimeSyncMessageService.h in Headers */, - D0CD989F1D74BA6500F41187 /* MTProto.h in Headers */, - D0CD98F21D75C0D700F41187 /* MTRequestMessageService.h in Headers */, - D0CFBB881FD7188200B65C0D /* AFURLConnectionOperation.h in Headers */, - D0CD97D21D74B91400F41187 /* MTTime.h in Headers */, - D0CD98151D74B99400F41187 /* MTMsgAllInfoMessage.h in Headers */, - D0CD98A31D74BA6500F41187 /* MTOutgoingMessage.h in Headers */, - D0CD97F81D74B94B00F41187 /* MTRsa.h in Headers */, - D0CD98C01D74BA8200F41187 /* MTTcpTransport.h in Headers */, - D0CD98CA1D74BA9400F41187 /* MTTcpConnectionBehaviour.h in Headers */, - D0CD981F1D74B99400F41187 /* MTResPqMessage.h in Headers */, - D0CD98E81D75C0BB00F41187 /* MTMessageService.h in Headers */, - D0B0DF621DD7E7A3003BA12D /* MTBag.h in Headers */, - D015E019225CD19E00CB9E8A /* MTGzip.h in Headers */, - D0CD98681D74B9E200F41187 /* MTContext.h in Headers */, - D0CD985B1D74B9BF00F41187 /* MTSetClientDhParamsResponseMessage.h in Headers */, - D0CD98741D74BA0100F41187 /* MTDiscoverDatacenterAddressAction.h in Headers */, - D0185E732089D265005E1A6C /* MTProxyConnectivity.h in Headers */, - D0CD98EA1D75C0C100F41187 /* MTMessageTransaction.h in Headers */, - D0CD98B41D74BA7500F41187 /* MTNetworkAvailability.h in Headers */, - D0E9B9EE1F0176DA00F079A4 /* MTBackupAddressSignals.h in Headers */, - D0CD98A21D74BA6500F41187 /* MTPreparedMessage.h in Headers */, - D0CD98F91D75C0E400F41187 /* MTDropResponseContext.h in Headers */, - D0CD986C1D74B9EF00F41187 /* MTTransportScheme.h in Headers */, - D0CD984D1D74B9AE00F41187 /* MTRpcError.h in Headers */, - D0CD98171D74B99400F41187 /* MTMsgDetailedInfoMessage.h in Headers */, - D0CD98A41D74BA6500F41187 /* MTIncomingMessage.h in Headers */, - D0CD97FC1D74B96300F41187 /* MTBadMsgNotificationMessage.h in Headers */, - D0CD98121D74B99400F41187 /* MTFutureSaltsMessage.h in Headers */, - D0D58B322347E5F000CF7782 /* common.h in Headers */, - D0D58B2D2347E5F000CF7782 /* Slice-decl.h in Headers */, - D0CD985A1D74B9BF00F41187 /* MTServerDhParamsMessage.h in Headers */, - D0CAF2E51D75EA790011F558 /* MTAtomic.h in Headers */, - D0CD98A11D74BA6500F41187 /* MTTimeFixContext.h in Headers */, - D0CD97FE1D74B96300F41187 /* MTBufferReader.h in Headers */, - D0CD97FF1D74B96300F41187 /* MTDestroySessionResponseMessage.h in Headers */, - D0CD97FA1D74B95000F41187 /* MTSerialization.h in Headers */, - D0CD98641D74B9D700F41187 /* MTFileBasedKeychain.h in Headers */, - D0CD98A01D74BA6500F41187 /* MTSessionInfo.h in Headers */, - D0CD97D61D74B91E00F41187 /* MTTimer.h in Headers */, - D0529D2C21A434BF00D7C3C4 /* MTTransportSchemeStats.h in Headers */, - D0CD98F81D75C0E400F41187 /* MTRequestErrorContext.h in Headers */, - D0D58B342347E5F000CF7782 /* unique_ptr.h in Headers */, - D0CD98A51D74BA6500F41187 /* MTMessageEncryptionKey.h in Headers */, - D0CD981D1D74B99400F41187 /* MTPingMessage.h in Headers */, - D0CD97F91D74B94B00F41187 /* MTAes.h in Headers */, - D033873A223BC115007A2CE4 /* MTPKCS.h in Headers */, - D0CD98581D74B9BF00F41187 /* MTRpcResultMessage.h in Headers */, - D079AB9C1AF39B8000076F59 /* MtProtoKitMac.h in Headers */, - D0CD98161D74B99400F41187 /* MTMsgContainerMessage.h in Headers */, - D0CD981A1D74B99400F41187 /* MTMsgsStateInfoMessage.h in Headers */, - D0CD98191D74B99400F41187 /* MTMsgsAckMessage.h in Headers */, - D0119CC220CAD34800895300 /* MTConnectionProbing.h in Headers */, - D0CD98FA1D75C0E400F41187 /* MTApiEnvironment.h in Headers */, - D0CD98881D74BA5100F41187 /* MTDatacenterAddressListData.h in Headers */, - D0CD98591D74B9BF00F41187 /* MTServerDhInnerDataMessage.h in Headers */, - D0CD98601D74B9D000F41187 /* MTKeychain.h in Headers */, - D0CD98181D74B99400F41187 /* MTMsgResendReqMessage.h in Headers */, - D0CD97E81D74B94300F41187 /* MTLogging.h in Headers */, - D0CD98F61D75C0E400F41187 /* MTRequest.h in Headers */, - D0CAF2D91D75E3160011F558 /* MTSubscriber.h in Headers */, - D0CD981B1D74B99400F41187 /* MTMsgsStateReqMessage.h in Headers */, - D0C9322C1E095E280074F044 /* MTNetworkUsageManager.h in Headers */, - D0CD98101D74B96F00F41187 /* MTExportedAuthorizationData.h in Headers */, - D0D58B2E2347E5F000CF7782 /* config.h in Headers */, - D0CD98F71D75C0E400F41187 /* MTRequestContext.h in Headers */, - D0E2E17820866780005737E8 /* MTDNS.h in Headers */, - D0CD98871D74BA5100F41187 /* MTDatacenterSaltInfo.h in Headers */, - D0D58B332347E5F000CF7782 /* check.h in Headers */, - D0CD97ED1D74B94300F41187 /* MTInputStream.h in Headers */, - D0D58B312347E5F000CF7782 /* int_types.h in Headers */, - D0CD98141D74B99400F41187 /* MTMessage.h in Headers */, - D0CD987A1D74BA4100F41187 /* MTDatacenterAuthMessageService.h in Headers */, - D0CD98861D74BA5100F41187 /* MTDatacenterAuthInfo.h in Headers */, - D0CD98B51D74BA7500F41187 /* MTTransport.h in Headers */, - D0CD97EC1D74B94300F41187 /* MTOutputStream.h in Headers */, - D0CD98701D74B9F700F41187 /* MTDiscoverConnectionSignals.h in Headers */, - D0D58B2A2347E5F000CF7782 /* tonlib_client_json.h in Headers */, - D0CD97E91D74B94300F41187 /* MTEncryption.h in Headers */, - D0D58B292347E5F000CF7782 /* TlObject.h in Headers */, - D0D58B2B2347E5F000CF7782 /* tonlibjson_export.h in Headers */, - D0C932241E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h in Headers */, - D0CD97EB1D74B94300F41187 /* MTQueue.h in Headers */, - D0CD98001D74B96300F41187 /* MTDropRpcResultMessage.h in Headers */, - D0CD98791D74BA4100F41187 /* MTDatacenterAuthAction.h in Headers */, - D0CD981C1D74B99400F41187 /* MTNewSessionCreatedMessage.h in Headers */, - D0D58B2F2347E5F000CF7782 /* SharedSlice.h in Headers */, - D0CD98781D74BA4100F41187 /* MTDatacenterTransferAuthAction.h in Headers */, - D0CD990A1D75C0F300F41187 /* MTResendMessageService.h in Headers */, - D020FAFB1D994E3100F279AA /* MTHttpRequestOperation.h in Headers */, - D0BFAE6220AB505400793CF2 /* MTDatacenterVerificationData.h in Headers */, - D0CFBB8B1FD718C500B65C0D /* AFHTTPRequestOperation.h in Headers */, - D0CD98841D74BA5100F41187 /* MTDatacenterAddress.h in Headers */, - D0CD97EA1D74B94300F41187 /* MTInternalId.h in Headers */, - D0119CCA20CAD65D00895300 /* PingFoundation.h in Headers */, - D0CAF2DB1D75E31A0011F558 /* MTDisposable.h in Headers */, - D0CD98851D74BA5100F41187 /* MTDatacenterAddressSet.h in Headers */, - D0CD98B61D74BA7500F41187 /* MTTransportTransaction.h in Headers */, - D0D58B2C2347E5F000CF7782 /* Client.h in Headers */, - D0CD981E1D74B99400F41187 /* MTPongMessage.h in Headers */, - D0D58B282347E5F000CF7782 /* tonlib_api.h in Headers */, - D0D58B302347E5F000CF7782 /* Slice.h in Headers */, - D0CD98C51D74BA8D00F41187 /* MTTcpConnection.h in Headers */, - D0CAF2CD1D75E2570011F558 /* MTSignal.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0CB05F41ADC4483005E298F /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D0D1A0381ADD983C007D9ED6 /* MTBuffer.h in Headers */, - D0CB06181ADC4541005E298F /* MTTime.h in Headers */, - D0CAF2E31D75E7F30011F558 /* MTAtomic.h in Headers */, - D0D1A0581ADD983C007D9ED6 /* MTPingMessage.h in Headers */, - D0CB064E1ADC45B1005E298F /* MTDropResponseContext.h in Headers */, - D0D1A06B1ADD987A007D9ED6 /* MTDatacenterAddressListData.h in Headers */, - D0CB06231ADC4558005E298F /* MTContext.h in Headers */, - D0D1A03A1ADD983C007D9ED6 /* MTBufferReader.h in Headers */, - D0CB065C1ADC45CE005E298F /* MTTcpConnection.h in Headers */, - D0D1A0501ADD983C007D9ED6 /* MTMsgsAckMessage.h in Headers */, - D018559322DDD36C00AC458A /* int_types.h in Headers */, - D0CAF2CB1D75E24C0011F558 /* MTSignal.h in Headers */, - D0CB06461ADC45A2005E298F /* MTMessageService.h in Headers */, - D0B0DF611DD7E7A2003BA12D /* MTBag.h in Headers */, - D0D1A0601ADD983C007D9ED6 /* MTRpcResultMessage.h in Headers */, - D0D1A0461ADD983C007D9ED6 /* MTMessage.h in Headers */, - D0D1A0441ADD983C007D9ED6 /* MTInternalMessageParser.h in Headers */, - D0D1A05A1ADD983C007D9ED6 /* MTPongMessage.h in Headers */, - D0CFBB8A1FD718C500B65C0D /* AFHTTPRequestOperation.h in Headers */, - D018559422DDD36C00AC458A /* TonlibCallback.h in Headers */, - D0D1A0481ADD983C007D9ED6 /* MTMsgAllInfoMessage.h in Headers */, - D0CFBB871FD7188200B65C0D /* AFURLConnectionOperation.h in Headers */, - D0CAF2D71D75E2840011F558 /* MTDisposable.h in Headers */, - D0CB062A1ADC4575005E298F /* MTDatacenterTransferAuthAction.h in Headers */, - D0CB064F1ADC45B1005E298F /* MTApiEnvironment.h in Headers */, - D0CB06191ADC4541005E298F /* MTTimer.h in Headers */, - D018559122DDD36C00AC458A /* TlObject.h in Headers */, - D0CB06381ADC4591005E298F /* MTProto.h in Headers */, - D0CB06321ADC4583005E298F /* MTDatacenterAuthInfo.h in Headers */, - D0D1A0541ADD983C007D9ED6 /* MTMsgsStateReqMessage.h in Headers */, - D0CB06201ADC454C005E298F /* MTSerialization.h in Headers */, - D0119CC920CAD65D00895300 /* PingFoundation.h in Headers */, - D0D1A0401ADD983C007D9ED6 /* MTExportedAuthorizationData.h in Headers */, - D0CB063C1ADC4591005E298F /* MTOutgoingMessage.h in Headers */, - D0D1A0361ADD983C007D9ED6 /* MTBadMsgNotificationMessage.h in Headers */, - D0529D2B21A434BF00D7C3C4 /* MTTransportSchemeStats.h in Headers */, - D0CB06581ADC45CE005E298F /* MTNetworkAvailability.h in Headers */, - D018559522DDD36C00AC458A /* platform.h in Headers */, - D0CB06211ADC454C005E298F /* MTKeychain.h in Headers */, - D0580AC21B0F3E9C00E8235B /* MTDiscoverConnectionSignals.h in Headers */, - D0C932231E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h in Headers */, - D0CB063B1ADC4591005E298F /* MTPreparedMessage.h in Headers */, - D0D1A04A1ADD983C007D9ED6 /* MTMsgContainerMessage.h in Headers */, - D0CB06491ADC45B1005E298F /* MTTimeSyncMessageService.h in Headers */, - D0CB05FC1ADC4483005E298F /* MtProtoKit.h in Headers */, - D0CB063E1ADC4591005E298F /* MTMessageEncryptionKey.h in Headers */, - D0D1A04C1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.h in Headers */, - D0CB064A1ADC45B1005E298F /* MTRequestMessageService.h in Headers */, - D0D1A0561ADD983C007D9ED6 /* MTNewSessionCreatedMessage.h in Headers */, - D0CB061A1ADC4541005E298F /* MTLogging.h in Headers */, - D0CAF2D31D75E26D0011F558 /* MTSubscriber.h in Headers */, - D0CB065A1ADC45CE005E298F /* MTTransportTransaction.h in Headers */, - D0CB06281ADC456A005E298F /* MTDiscoverDatacenterAddressAction.h in Headers */, - D0CB06591ADC45CE005E298F /* MTTransport.h in Headers */, - D0CB061F1ADC4541005E298F /* MTInputStream.h in Headers */, - D0CB063D1ADC4591005E298F /* MTIncomingMessage.h in Headers */, - D010DB7D1D70ABEE0012AD96 /* MTRsa.h in Headers */, - D0CB06251ADC4562005E298F /* MTTransportScheme.h in Headers */, - D0D1A05C1ADD983C007D9ED6 /* MTResPqMessage.h in Headers */, - D0D1A03E1ADD983C007D9ED6 /* MTDropRpcResultMessage.h in Headers */, - D0119CC120CAD34800895300 /* MTConnectionProbing.h in Headers */, - D0185E722089D265005E1A6C /* MTProxyConnectivity.h in Headers */, - D0D1A05E1ADD983C007D9ED6 /* MTRpcError.h in Headers */, - D0E2E17720866780005737E8 /* MTDNS.h in Headers */, - D0C9322B1E095E280074F044 /* MTNetworkUsageManager.h in Headers */, - D018559022DDD36C00AC458A /* Client.h in Headers */, - D0CB063A1ADC4591005E298F /* MTTimeFixContext.h in Headers */, - D0CB065D1ADC45CE005E298F /* MTTcpConnectionBehaviour.h in Headers */, - D09A59581B582EFF00FC3724 /* MTFileBasedKeychain.h in Headers */, - D0E9B9ED1F0176DA00F079A4 /* MTBackupAddressSignals.h in Headers */, - D0C0EAE61FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.h in Headers */, - D0CB06311ADC4583005E298F /* MTDatacenterAddressSet.h in Headers */, - D0D1A03C1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.h in Headers */, - D0CB061E1ADC4541005E298F /* MTOutputStream.h in Headers */, - D0CB06301ADC4583005E298F /* MTDatacenterAddress.h in Headers */, - D020FAFA1D994E3100F279AA /* MTHttpRequestOperation.h in Headers */, - D0CB065B1ADC45CE005E298F /* MTTcpTransport.h in Headers */, - D0CB061B1ADC4541005E298F /* MTEncryption.h in Headers */, - D0D1A0661ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.h in Headers */, - D0CB06471ADC45A2005E298F /* MTMessageTransaction.h in Headers */, - D0BFAE6020AB504600793CF2 /* MTDatacenterVerificationData.h in Headers */, - D0D1A0641ADD983C007D9ED6 /* MTServerDhParamsMessage.h in Headers */, - D0D1A0621ADD983C007D9ED6 /* MTServerDhInnerDataMessage.h in Headers */, - D0338739223BC115007A2CE4 /* MTPKCS.h in Headers */, - D0D1A04E1ADD983C007D9ED6 /* MTMsgResendReqMessage.h in Headers */, - D0CB064D1ADC45B1005E298F /* MTRequestErrorContext.h in Headers */, - D0CB064C1ADC45B1005E298F /* MTRequestContext.h in Headers */, - D0CB066A1ADC4846005E298F /* MTResendMessageService.h in Headers */, - D0CB061D1ADC4541005E298F /* MTQueue.h in Headers */, - D0CB06171ADC4536005E298F /* MTProtoKit.h in Headers */, - D018559222DDD36C00AC458A /* tonlib_api.h in Headers */, - D0CB06391ADC4591005E298F /* MTSessionInfo.h in Headers */, - D0CB06331ADC4583005E298F /* MTDatacenterSaltInfo.h in Headers */, - D0CB062B1ADC4575005E298F /* MTDatacenterAuthAction.h in Headers */, - D0D1A0521ADD983C007D9ED6 /* MTMsgsStateInfoMessage.h in Headers */, - D0D1A0421ADD983C007D9ED6 /* MTFutureSaltsMessage.h in Headers */, - D0CB064B1ADC45B1005E298F /* MTRequest.h in Headers */, - D010DB811D70B3B90012AD96 /* MTAes.h in Headers */, - D015E018225CD19E00CB9E8A /* MTGzip.h in Headers */, - D0CB062C1ADC4575005E298F /* MTDatacenterAuthMessageService.h in Headers */, - D0CB061C1ADC4541005E298F /* MTInternalId.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0D225081B4D817B0085E26D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D0CD98021D74B96400F41187 /* MTBuffer.h in Headers */, - D0CD98211D74B99500F41187 /* MTInternalMessageParser.h in Headers */, - D0CD98EF1D75C0CA00F41187 /* MTTimeSyncMessageService.h in Headers */, - D0CD98981D74BA6500F41187 /* MTProto.h in Headers */, - D0CD98F31D75C0D700F41187 /* MTRequestMessageService.h in Headers */, - D0CFBB891FD7188200B65C0D /* AFURLConnectionOperation.h in Headers */, - D0CD97D31D74B91700F41187 /* MTTime.h in Headers */, - D0CD98231D74B99500F41187 /* MTMsgAllInfoMessage.h in Headers */, - D0CD989C1D74BA6500F41187 /* MTOutgoingMessage.h in Headers */, - D0CD97F61D74B94B00F41187 /* MTRsa.h in Headers */, - D0CD98C11D74BA8300F41187 /* MTTcpTransport.h in Headers */, - D0CD98CB1D74BA9500F41187 /* MTTcpConnectionBehaviour.h in Headers */, - D08A159D22DD32F20073B508 /* TON.h in Headers */, - D0CD982D1D74B99500F41187 /* MTResPqMessage.h in Headers */, - D0CD98E91D75C0BB00F41187 /* MTMessageService.h in Headers */, - D0B0DF631DD7E7A4003BA12D /* MTBag.h in Headers */, - D015E01A225CD19E00CB9E8A /* MTGzip.h in Headers */, - D0CD98691D74B9E300F41187 /* MTContext.h in Headers */, - D0CD985F1D74B9BF00F41187 /* MTSetClientDhParamsResponseMessage.h in Headers */, - D0CD98751D74BA0100F41187 /* MTDiscoverDatacenterAddressAction.h in Headers */, - D0185E742089D265005E1A6C /* MTProxyConnectivity.h in Headers */, - D0CD98EB1D75C0C100F41187 /* MTMessageTransaction.h in Headers */, - D0CD98B71D74BA7500F41187 /* MTNetworkAvailability.h in Headers */, - D0E9B9EF1F0176DA00F079A4 /* MTBackupAddressSignals.h in Headers */, - D0CD989B1D74BA6500F41187 /* MTPreparedMessage.h in Headers */, - D0CD98FE1D75C0E500F41187 /* MTDropResponseContext.h in Headers */, - D0CD986D1D74B9F000F41187 /* MTTransportScheme.h in Headers */, - D0CD984C1D74B9AD00F41187 /* MTRpcError.h in Headers */, - D0CD98251D74B99500F41187 /* MTMsgDetailedInfoMessage.h in Headers */, - D0CD989D1D74BA6500F41187 /* MTIncomingMessage.h in Headers */, - D08A159222DD32B40073B508 /* tonlib_client_json.h in Headers */, - D018559722DDD37300AC458A /* TlObject.h in Headers */, - D0CD98011D74B96400F41187 /* MTBadMsgNotificationMessage.h in Headers */, - D0CD98201D74B99500F41187 /* MTFutureSaltsMessage.h in Headers */, - D0CD985E1D74B9BF00F41187 /* MTServerDhParamsMessage.h in Headers */, - D0CAF2E61D75EA7A0011F558 /* MTAtomic.h in Headers */, - D0CD989A1D74BA6500F41187 /* MTTimeFixContext.h in Headers */, - D0CD98031D74B96400F41187 /* MTBufferReader.h in Headers */, - D0CD98041D74B96400F41187 /* MTDestroySessionResponseMessage.h in Headers */, - D0CD97FB1D74B95100F41187 /* MTSerialization.h in Headers */, - D0CD98651D74B9D800F41187 /* MTFileBasedKeychain.h in Headers */, - D018559622DDD37300AC458A /* Client.h in Headers */, - D0CD98991D74BA6500F41187 /* MTSessionInfo.h in Headers */, - D0CD97D71D74B92000F41187 /* MTTimer.h in Headers */, - D0529D2D21A434BF00D7C3C4 /* MTTransportSchemeStats.h in Headers */, - D0CD98FD1D75C0E500F41187 /* MTRequestErrorContext.h in Headers */, - D0CD989E1D74BA6500F41187 /* MTMessageEncryptionKey.h in Headers */, - D0CD982B1D74B99500F41187 /* MTPingMessage.h in Headers */, - D0CD97F71D74B94B00F41187 /* MTAes.h in Headers */, - D033873B223BC115007A2CE4 /* MTPKCS.h in Headers */, - D0CD985C1D74B9BF00F41187 /* MTRpcResultMessage.h in Headers */, - D0D225101B4D817B0085E26D /* MtProtoKitDynamic.h in Headers */, - D018559922DDD37300AC458A /* int_types.h in Headers */, - D0CD98241D74B99500F41187 /* MTMsgContainerMessage.h in Headers */, - D0CD98281D74B99500F41187 /* MTMsgsStateInfoMessage.h in Headers */, - D0CD98271D74B99500F41187 /* MTMsgsAckMessage.h in Headers */, - D0119CC320CAD34800895300 /* MTConnectionProbing.h in Headers */, - D0CD98FF1D75C0E500F41187 /* MTApiEnvironment.h in Headers */, - D0CD988D1D74BA5200F41187 /* MTDatacenterAddressListData.h in Headers */, - D0CD985D1D74B9BF00F41187 /* MTServerDhInnerDataMessage.h in Headers */, - D0CD98611D74B9D000F41187 /* MTKeychain.h in Headers */, - D018559822DDD37300AC458A /* tonlib_api.h in Headers */, - D0CD98261D74B99500F41187 /* MTMsgResendReqMessage.h in Headers */, - D018559B22DDD37300AC458A /* platform.h in Headers */, - D0CD97EE1D74B94300F41187 /* MTLogging.h in Headers */, - D0CD98FB1D75C0E500F41187 /* MTRequest.h in Headers */, - D0CAF2DA1D75E3160011F558 /* MTSubscriber.h in Headers */, - D0CD98291D74B99500F41187 /* MTMsgsStateReqMessage.h in Headers */, - D0C9322D1E095E280074F044 /* MTNetworkUsageManager.h in Headers */, - D0CD98111D74B97000F41187 /* MTExportedAuthorizationData.h in Headers */, - D0CD98FC1D75C0E500F41187 /* MTRequestContext.h in Headers */, - D0E2E17920866780005737E8 /* MTDNS.h in Headers */, - D0CD988C1D74BA5200F41187 /* MTDatacenterSaltInfo.h in Headers */, - D0CD97F31D74B94300F41187 /* MTInputStream.h in Headers */, - D0CD98221D74B99500F41187 /* MTMessage.h in Headers */, - D0CD987D1D74BA4100F41187 /* MTDatacenterAuthMessageService.h in Headers */, - D0CD988B1D74BA5200F41187 /* MTDatacenterAuthInfo.h in Headers */, - D0CD98B81D74BA7500F41187 /* MTTransport.h in Headers */, - D0CD97F21D74B94300F41187 /* MTOutputStream.h in Headers */, - D0CD98711D74B9F700F41187 /* MTDiscoverConnectionSignals.h in Headers */, - D0CD97EF1D74B94300F41187 /* MTEncryption.h in Headers */, - D0C932251E095D6A0074F044 /* MTNetworkUsageCalculationInfo.h in Headers */, - D0CD97F11D74B94300F41187 /* MTQueue.h in Headers */, - D0CD98051D74B96400F41187 /* MTDropRpcResultMessage.h in Headers */, - D0CD987C1D74BA4100F41187 /* MTDatacenterAuthAction.h in Headers */, - D018559A22DDD37300AC458A /* TonlibCallback.h in Headers */, - D08A159122DD32B40073B508 /* tonlibjson_export.h in Headers */, - D0CD982A1D74B99500F41187 /* MTNewSessionCreatedMessage.h in Headers */, - D0CD987B1D74BA4100F41187 /* MTDatacenterTransferAuthAction.h in Headers */, - D0CD990B1D75C0F400F41187 /* MTResendMessageService.h in Headers */, - D020FAFC1D994E3100F279AA /* MTHttpRequestOperation.h in Headers */, - D0BFAE6320AB505400793CF2 /* MTDatacenterVerificationData.h in Headers */, - D0CFBB8C1FD718C600B65C0D /* AFHTTPRequestOperation.h in Headers */, - D0CD98891D74BA5200F41187 /* MTDatacenterAddress.h in Headers */, - D0CD97F01D74B94300F41187 /* MTInternalId.h in Headers */, - D0119CCB20CAD65D00895300 /* PingFoundation.h in Headers */, - D0CAF2DC1D75E31B0011F558 /* MTDisposable.h in Headers */, - D0CD988A1D74BA5200F41187 /* MTDatacenterAddressSet.h in Headers */, - D0CD98B91D74BA7500F41187 /* MTTransportTransaction.h in Headers */, - D0CD982C1D74B99500F41187 /* MTPongMessage.h in Headers */, - D0CD98C61D74BA8D00F41187 /* MTTcpConnection.h in Headers */, - D0CAF2CE1D75E2580011F558 /* MTSignal.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - D00354641C173BF0006610DA /* MtProtoKitStabilityTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = D003546F1C173BF0006610DA /* Build configuration list for PBXNativeTarget "MtProtoKitStabilityTests" */; - buildPhases = ( - D00354611C173BF0006610DA /* Sources */, - D00354621C173BF0006610DA /* Frameworks */, - D00354631C173BF0006610DA /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - D003546C1C173BF0006610DA /* PBXTargetDependency */, - ); - name = MtProtoKitStabilityTests; - productName = MtProtoKitStabilityTests; - productReference = D00354651C173BF0006610DA /* MtProtoKitStabilityTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - D079AB961AF39B8000076F59 /* MtProtoKitMac */ = { - isa = PBXNativeTarget; - buildConfigurationList = D079ABAE1AF39B8000076F59 /* Build configuration list for PBXNativeTarget "MtProtoKitMac" */; - buildPhases = ( - D079AB921AF39B8000076F59 /* Sources */, - D079AB931AF39B8000076F59 /* Frameworks */, - D079AB941AF39B8000076F59 /* Headers */, - D079AB951AF39B8000076F59 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = MtProtoKitMac; - productName = MtProtoKitMac; - productReference = D079AB971AF39B8000076F59 /* MtProtoKitMac.framework */; - productType = "com.apple.product-type.framework"; - }; - D0CB05F61ADC4483005E298F /* MtProtoKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0CB060E1ADC4483005E298F /* Build configuration list for PBXNativeTarget "MtProtoKit" */; - buildPhases = ( - D0CB05F21ADC4483005E298F /* Sources */, - D0CB05F31ADC4483005E298F /* Frameworks */, - D0CB05F41ADC4483005E298F /* Headers */, - D0CB05F51ADC4483005E298F /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = MtProtoKit; - productName = MtProtoKit; - productReference = D0CB05F71ADC4483005E298F /* MtProtoKit.framework */; - productType = "com.apple.product-type.framework"; - }; - D0D2250A1B4D817B0085E26D /* MtProtoKitDynamic */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0D225221B4D817B0085E26D /* Build configuration list for PBXNativeTarget "MtProtoKitDynamic" */; - buildPhases = ( - D0D225061B4D817B0085E26D /* Sources */, - D0D225071B4D817B0085E26D /* Frameworks */, - D0D225081B4D817B0085E26D /* Headers */, - D0D225091B4D817B0085E26D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = MtProtoKitDynamic; - productName = MtProtoKitDynamic; - productReference = D0D2250B1B4D817B0085E26D /* MtProtoKitDynamic.framework */; - productType = "com.apple.product-type.framework"; - }; - D0D225141B4D817B0085E26D /* MtProtoKitDynamicTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0D225231B4D817B0085E26D /* Build configuration list for PBXNativeTarget "MtProtoKitDynamicTests" */; - buildPhases = ( - D0D225111B4D817B0085E26D /* Sources */, - D0D225121B4D817B0085E26D /* Frameworks */, - D0D225131B4D817B0085E26D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - D0D225181B4D817B0085E26D /* PBXTargetDependency */, - ); - name = MtProtoKitDynamicTests; - productName = MtProtoKitDynamicTests; - productReference = D0D225151B4D817B0085E26D /* MtProtoKitDynamicTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D05A830A18AFB3F9007F1076 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0800; - ORGANIZATIONNAME = Telegram; - TargetAttributes = { - D00354641C173BF0006610DA = { - CreatedOnToolsVersion = 7.2; - }; - D079AB961AF39B8000076F59 = { - CreatedOnToolsVersion = 6.3.1; - LastSwiftMigration = 1010; - }; - D0CB05F61ADC4483005E298F = { - CreatedOnToolsVersion = 6.3; - LastSwiftMigration = 1010; - ProvisioningStyle = Manual; - }; - D0D2250A1B4D817B0085E26D = { - CreatedOnToolsVersion = 6.4; - LastSwiftMigration = 1010; - ProvisioningStyle = Manual; - }; - D0D225141B4D817B0085E26D = { - CreatedOnToolsVersion = 6.4; - }; - }; - }; - buildConfigurationList = D05A830D18AFB3F9007F1076 /* Build configuration list for PBXProject "MtProtoKit_Xcode" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - ); - mainGroup = D05A830918AFB3F9007F1076; - productRefGroup = D05A831518AFB3F9007F1076 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - D0CB05F61ADC4483005E298F /* MtProtoKit */, - D079AB961AF39B8000076F59 /* MtProtoKitMac */, - D0D2250A1B4D817B0085E26D /* MtProtoKitDynamic */, - D0D225141B4D817B0085E26D /* MtProtoKitDynamicTests */, - D00354641C173BF0006610DA /* MtProtoKitStabilityTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - D00354631C173BF0006610DA /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D079AB951AF39B8000076F59 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0CB05F51ADC4483005E298F /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0D225091B4D817B0085E26D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0D225131B4D817B0085E26D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - D00354611C173BF0006610DA /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D00354681C173BF0006610DA /* MtProtoKitStabilityTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D079AB921AF39B8000076F59 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D0D58B532347E6A100CF7782 /* TON.mm in Sources */, - D0CD99021D75C0ED00F41187 /* MTRequestErrorContext.m in Sources */, - D0CD98371D74B9AA00F41187 /* MTMsgsStateInfoMessage.m in Sources */, - D0CD99011D75C0ED00F41187 /* MTRequestContext.m in Sources */, - D0CAF2DE1D75E31E0011F558 /* MTSubscriber.m in Sources */, - D0CD984E1D74B9B700F41187 /* MTRpcError.m in Sources */, - D0CD98361D74B9AA00F41187 /* MTMsgsAckMessage.m in Sources */, - D0CD97E71D74B93300F41187 /* MTAes.m in Sources */, - D0CD98EC1D75C0C500F41187 /* MTMessageTransaction.m in Sources */, - D0CD98C71D74BA9000F41187 /* MTTcpConnection.m in Sources */, - D0CD98621D74B9D500F41187 /* MTKeychain.m in Sources */, - D0CD987F1D74BA4900F41187 /* MTDatacenterAuthAction.m in Sources */, - D0CD98911D74BA5900F41187 /* MTDatacenterSaltInfo.m in Sources */, - D0CD98761D74BA0700F41187 /* MTDiscoverDatacenterAddressAction.m in Sources */, - D0CD98CC1D74BA9700F41187 /* MTTcpConnectionBehaviour.m in Sources */, - D0CD983A1D74B9AA00F41187 /* MTPingMessage.m in Sources */, - D0CD97E31D74B93300F41187 /* MTQueue.m in Sources */, - D0CAF2DD1D75E31E0011F558 /* MTDisposable.m in Sources */, - D0CD987E1D74BA4900F41187 /* MTDatacenterTransferAuthAction.m in Sources */, - D0CD988F1D74BA5900F41187 /* MTDatacenterAddressSet.m in Sources */, - D0CD98091D74B96C00F41187 /* MTDestroySessionResponseMessage.m in Sources */, - D0119CC520CAD34800895300 /* MTConnectionProbing.m in Sources */, - D0CD982E1D74B9AA00F41187 /* MTExportedAuthorizationData.m in Sources */, - D0CD986E1D74B9F400F41187 /* MTTransportScheme.m in Sources */, - D0CD98A71D74BA6E00F41187 /* MTSessionInfo.m in Sources */, - D0CD98BA1D74BA7C00F41187 /* MTNetworkAvailability.m in Sources */, - D0CD990C1D75C0F900F41187 /* MTResendMessageService.m in Sources */, - D0CD97E61D74B93300F41187 /* MTRsa.m in Sources */, - D0CD98921D74BA5900F41187 /* MTDatacenterAddressListData.m in Sources */, - D0CD98071D74B96C00F41187 /* MTBuffer.m in Sources */, - D0CD97E01D74B93300F41187 /* MTTimer.m in Sources */, - D0CD98671D74B9DD00F41187 /* MTFileBasedKeychain.m in Sources */, - D0CD986A1D74B9E900F41187 /* MTContext.m in Sources */, - D0CD98DE1D74BAEA00F41187 /* AFHTTPRequestOperation.m in Sources */, - D0CD98081D74B96C00F41187 /* MTBufferReader.m in Sources */, - D0CD98341D74B9AA00F41187 /* MTMsgDetailedInfoMessage.m in Sources */, - D0CD984F1D74B9B700F41187 /* MTRpcResultMessage.m in Sources */, - D0119CCD20CAD65D00895300 /* PingFoundation.m in Sources */, - D020FAFE1D994E3100F279AA /* MTHttpRequestOperation.m in Sources */, - D0CD98391D74B9AA00F41187 /* MTNewSessionCreatedMessage.m in Sources */, - D0CD98381D74B9AA00F41187 /* MTMsgsStateReqMessage.m in Sources */, - D033873D223BC115007A2CE4 /* MTPKCS.m in Sources */, - D0C9322F1E095E280074F044 /* MTNetworkUsageManager.m in Sources */, - D0BFAE6420AB505700793CF2 /* MTDatacenterVerificationData.m in Sources */, - D0CD98801D74BA4900F41187 /* MTDatacenterAuthMessageService.m in Sources */, - D0CD98AA1D74BA6F00F41187 /* MTOutgoingMessage.m in Sources */, - D0CD98E41D74BAF400F41187 /* GCDAsyncSocket.m in Sources */, - D0CAF2E81D75EA7E0011F558 /* MTAtomic.m in Sources */, - D0CD98901D74BA5900F41187 /* MTDatacenterAuthInfo.m in Sources */, - D0CD97E51D74B93300F41187 /* MTInputStream.m in Sources */, - D0CD98BB1D74BA7C00F41187 /* MTTransport.m in Sources */, - D0E9B9F11F0176DA00F079A4 /* MTBackupAddressSignals.m in Sources */, - D0CD982F1D74B9AA00F41187 /* MTFutureSaltsMessage.m in Sources */, - D0CD98A61D74BA6E00F41187 /* MTProto.m in Sources */, - D0529D2F21A434BF00D7C3C4 /* MTTransportSchemeStats.m in Sources */, - D0CD98331D74B9AA00F41187 /* MTMsgContainerMessage.m in Sources */, - D0CD980A1D74B96C00F41187 /* MTDropRpcResultMessage.m in Sources */, - D0CD98511D74B9B700F41187 /* MTServerDhParamsMessage.m in Sources */, - D0CD97E21D74B93300F41187 /* MTEncryption.m in Sources */, - D0CD97E11D74B93300F41187 /* MTLogging.m in Sources */, - D0CD98AB1D74BA6F00F41187 /* MTIncomingMessage.m in Sources */, - D0CD98501D74B9B700F41187 /* MTServerDhInnerDataMessage.m in Sources */, - D0CD99031D75C0ED00F41187 /* MTDropResponseContext.m in Sources */, - D0CD983B1D74B9AA00F41187 /* MTPongMessage.m in Sources */, - D0CD98BC1D74BA7C00F41187 /* MTTransportTransaction.m in Sources */, - D0CD98F41D75C0DD00F41187 /* MTRequestMessageService.m in Sources */, - D0CD98A81D74BA6E00F41187 /* MTTimeFixContext.m in Sources */, - D0185E762089D265005E1A6C /* MTProxyConnectivity.m in Sources */, - D0CD98721D74B9F900F41187 /* MTDiscoverConnectionSignals.m in Sources */, - D0CD98061D74B96C00F41187 /* MTBadMsgNotificationMessage.m in Sources */, - D0CD98311D74B9AA00F41187 /* MTMessage.m in Sources */, - D0CD99001D75C0ED00F41187 /* MTRequest.m in Sources */, - D0CD98F01D75C0D200F41187 /* MTTimeSyncMessageService.m in Sources */, - D0CD98A91D74BA6F00F41187 /* MTPreparedMessage.m in Sources */, - D0B0DF5E1DD7E75B003BA12D /* MTBag.m in Sources */, - D0CD99041D75C0ED00F41187 /* MTApiEnvironment.m in Sources */, - D0CD983C1D74B9AA00F41187 /* MTResPqMessage.m in Sources */, - D073D2D81FB5E493009E1DA2 /* MTBindingTempAuthKeyContext.m in Sources */, - D0CD98C41D74BA8A00F41187 /* MTTcpTransport.m in Sources */, - D0CD98AC1D74BA6F00F41187 /* MTMessageEncryptionKey.m in Sources */, - D0CD98301D74B9AA00F41187 /* MTInternalMessageParser.m in Sources */, - D0CD98DF1D74BAEA00F41187 /* AFURLConnectionOperation.m in Sources */, - D0CD98321D74B9AA00F41187 /* MTMsgAllInfoMessage.m in Sources */, - D0CD97D51D74B91C00F41187 /* MTTime.m in Sources */, - D0CD98351D74B9AA00F41187 /* MTMsgResendReqMessage.m in Sources */, - D0CD97E41D74B93300F41187 /* MTOutputStream.m in Sources */, - D0E2E17B20866780005737E8 /* MTDNS.m in Sources */, - D0CD988E1D74BA5900F41187 /* MTDatacenterAddress.m in Sources */, - D0CD98521D74B9B700F41187 /* MTSetClientDhParamsResponseMessage.m in Sources */, - D0C932271E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m in Sources */, - D015E01C225CD19E00CB9E8A /* MTGzip.m in Sources */, - D0CAF2CF1D75E25B0011F558 /* MTSignal.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0CB05F21ADC4483005E298F /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D0D1A0531ADD983C007D9ED6 /* MTMsgsStateInfoMessage.m in Sources */, - D0CB062F1ADC457B005E298F /* MTDatacenterAuthMessageService.m in Sources */, - D0CB06351ADC4588005E298F /* MTDatacenterAddressSet.m in Sources */, - D0CB06621ADC45DA005E298F /* MTTransport.m in Sources */, - D0CB06631ADC45DA005E298F /* MTTransportTransaction.m in Sources */, - D0CB06421ADC4599005E298F /* MTPreparedMessage.m in Sources */, - D0CB06641ADC45DA005E298F /* MTTcpTransport.m in Sources */, - D0D1A04D1ADD983C007D9ED6 /* MTMsgDetailedInfoMessage.m in Sources */, - D0CB06141ADC44B7005E298F /* MTQueue.m in Sources */, - D0CB06711ADC4A50005E298F /* MTTransportScheme.m in Sources */, - D0D1A04B1ADD983C007D9ED6 /* MTMsgContainerMessage.m in Sources */, - D0580AC31B0F3E9C00E8235B /* MTDiscoverConnectionSignals.m in Sources */, - D0CB06341ADC4588005E298F /* MTDatacenterAddress.m in Sources */, - D0CB06111ADC44B7005E298F /* MTTimer.m in Sources */, - D0CB062E1ADC457B005E298F /* MTDatacenterAuthAction.m in Sources */, - D0CB06441ADC4599005E298F /* MTIncomingMessage.m in Sources */, - D0D1A0511ADD983C007D9ED6 /* MTMsgsAckMessage.m in Sources */, - D010DB821D70B3B90012AD96 /* MTAes.m in Sources */, - D0CB066F1ADC49FF005E298F /* AFHTTPRequestOperation.m in Sources */, - D0D1A06C1ADD987A007D9ED6 /* MTDatacenterAddressListData.m in Sources */, - D09A59591B582EFF00FC3724 /* MTFileBasedKeychain.m in Sources */, - D0119CC420CAD34800895300 /* MTConnectionProbing.m in Sources */, - D0CB06561ADC45BA005E298F /* MTApiEnvironment.m in Sources */, - D0D1A05F1ADD983C007D9ED6 /* MTRpcError.m in Sources */, - D0CB06701ADC49FF005E298F /* AFURLConnectionOperation.m in Sources */, - D0CB06371ADC4588005E298F /* MTDatacenterSaltInfo.m in Sources */, - D0CB06501ADC45BA005E298F /* MTTimeSyncMessageService.m in Sources */, - D0CB06161ADC44B7005E298F /* MTInputStream.m in Sources */, - D0CB06651ADC45DA005E298F /* MTTcpConnection.m in Sources */, - D0CB06511ADC45BA005E298F /* MTRequestMessageService.m in Sources */, - D0CB06661ADC45DA005E298F /* MTTcpConnectionBehaviour.m in Sources */, - D0CB066C1ADC49FA005E298F /* GCDAsyncSocket.m in Sources */, - D0D1A0451ADD983C007D9ED6 /* MTInternalMessageParser.m in Sources */, - D0D1A0431ADD983C007D9ED6 /* MTFutureSaltsMessage.m in Sources */, - D0D1A0391ADD983C007D9ED6 /* MTBuffer.m in Sources */, - D0D1A0591ADD983C007D9ED6 /* MTPingMessage.m in Sources */, - D0CB06361ADC4588005E298F /* MTDatacenterAuthInfo.m in Sources */, - D0119CCC20CAD65D00895300 /* PingFoundation.m in Sources */, - D020FAFD1D994E3100F279AA /* MTHttpRequestOperation.m in Sources */, - D0CB062D1ADC457B005E298F /* MTDatacenterTransferAuthAction.m in Sources */, - D033873C223BC115007A2CE4 /* MTPKCS.m in Sources */, - D0D1A04F1ADD983C007D9ED6 /* MTMsgResendReqMessage.m in Sources */, - D0C9322E1E095E280074F044 /* MTNetworkUsageManager.m in Sources */, - D0BFAE6120AB504600793CF2 /* MTDatacenterVerificationData.m in Sources */, - D0D1A0371ADD983C007D9ED6 /* MTBadMsgNotificationMessage.m in Sources */, - D0CAF2E41D75E7F30011F558 /* MTAtomic.m in Sources */, - D0CB06611ADC45DA005E298F /* MTNetworkAvailability.m in Sources */, - D0D1A0611ADD983C007D9ED6 /* MTRpcResultMessage.m in Sources */, - D0CB06131ADC44B7005E298F /* MTEncryption.m in Sources */, - D0E9B9F01F0176DA00F079A4 /* MTBackupAddressSignals.m in Sources */, - D0CAF2D41D75E26D0011F558 /* MTSubscriber.m in Sources */, - D0CB06531ADC45BA005E298F /* MTRequestContext.m in Sources */, - D0529D2E21A434BF00D7C3C4 /* MTTransportSchemeStats.m in Sources */, - D0D1A03F1ADD983C007D9ED6 /* MTDropRpcResultMessage.m in Sources */, - D0D1A0651ADD983C007D9ED6 /* MTServerDhParamsMessage.m in Sources */, - D0CAF2D81D75E2840011F558 /* MTDisposable.m in Sources */, - D0CB06541ADC45BA005E298F /* MTRequestErrorContext.m in Sources */, - D0D1A05B1ADD983C007D9ED6 /* MTPongMessage.m in Sources */, - D0CB06241ADC455C005E298F /* MTContext.m in Sources */, - D0D1A03B1ADD983C007D9ED6 /* MTBufferReader.m in Sources */, - D0D1A05D1ADD983C007D9ED6 /* MTResPqMessage.m in Sources */, - D0CB06521ADC45BA005E298F /* MTRequest.m in Sources */, - D0CB06481ADC45A6005E298F /* MTMessageTransaction.m in Sources */, - D0CB06221ADC4551005E298F /* MTKeychain.m in Sources */, - D0185E752089D265005E1A6C /* MTProxyConnectivity.m in Sources */, - D0D1A0471ADD983C007D9ED6 /* MTMessage.m in Sources */, - D0CB06121ADC44B7005E298F /* MTLogging.m in Sources */, - D0CB063F1ADC4599005E298F /* MTProto.m in Sources */, - D0CB06101ADC44B7005E298F /* MTTime.m in Sources */, - D0CB06401ADC4599005E298F /* MTSessionInfo.m in Sources */, - D0CB06411ADC4599005E298F /* MTTimeFixContext.m in Sources */, - D0CB06291ADC456E005E298F /* MTDiscoverDatacenterAddressAction.m in Sources */, - D0B0DF5D1DD7E75B003BA12D /* MTBag.m in Sources */, - D0D1A0551ADD983C007D9ED6 /* MTMsgsStateReqMessage.m in Sources */, - D0D1A0411ADD983C007D9ED6 /* MTExportedAuthorizationData.m in Sources */, - D0C0EAE71FB5DBEA00DCF07C /* MTBindingTempAuthKeyContext.m in Sources */, - D0CB06571ADC45BA005E298F /* MTResendMessageService.m in Sources */, - D0CB06551ADC45BA005E298F /* MTDropResponseContext.m in Sources */, - D0CB06451ADC4599005E298F /* MTMessageEncryptionKey.m in Sources */, - D0D1A0671ADD983C007D9ED6 /* MTSetClientDhParamsResponseMessage.m in Sources */, - D0CB06431ADC4599005E298F /* MTOutgoingMessage.m in Sources */, - D0D1A03D1ADD983C007D9ED6 /* MTDestroySessionResponseMessage.m in Sources */, - D0CB06151ADC44B7005E298F /* MTOutputStream.m in Sources */, - D0D1A0491ADD983C007D9ED6 /* MTMsgAllInfoMessage.m in Sources */, - D0E2E17A20866780005737E8 /* MTDNS.m in Sources */, - D010DB7E1D70ABEE0012AD96 /* MTRsa.m in Sources */, - D0D1A0631ADD983C007D9ED6 /* MTServerDhInnerDataMessage.m in Sources */, - D0D1A0571ADD983C007D9ED6 /* MTNewSessionCreatedMessage.m in Sources */, - D0C932261E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m in Sources */, - D015E01B225CD19E00CB9E8A /* MTGzip.m in Sources */, - D0CAF2CC1D75E24C0011F558 /* MTSignal.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0D225061B4D817B0085E26D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D0CD99071D75C0ED00F41187 /* MTRequestErrorContext.m in Sources */, - D0CD98461D74B9AA00F41187 /* MTMsgsStateInfoMessage.m in Sources */, - D0CD99061D75C0ED00F41187 /* MTRequestContext.m in Sources */, - D0CAF2E01D75E31F0011F558 /* MTSubscriber.m in Sources */, - D0CD98531D74B9B700F41187 /* MTRpcError.m in Sources */, - D0CD98451D74B9AA00F41187 /* MTMsgsAckMessage.m in Sources */, - D0CD97DF1D74B93100F41187 /* MTAes.m in Sources */, - D0CD98ED1D75C0C500F41187 /* MTMessageTransaction.m in Sources */, - D0CD98C81D74BA9100F41187 /* MTTcpConnection.m in Sources */, - D0CD98631D74B9D500F41187 /* MTKeychain.m in Sources */, - D0CD98821D74BA4900F41187 /* MTDatacenterAuthAction.m in Sources */, - D0CD98961D74BA5A00F41187 /* MTDatacenterSaltInfo.m in Sources */, - D0CD98771D74BA0700F41187 /* MTDiscoverDatacenterAddressAction.m in Sources */, - D08A159E22DD32F20073B508 /* TON.mm in Sources */, - D0CD98CD1D74BA9700F41187 /* MTTcpConnectionBehaviour.m in Sources */, - D0CD98491D74B9AA00F41187 /* MTPingMessage.m in Sources */, - D0CD97DB1D74B93100F41187 /* MTQueue.m in Sources */, - D0CAF2DF1D75E31F0011F558 /* MTDisposable.m in Sources */, - D0CD98811D74BA4900F41187 /* MTDatacenterTransferAuthAction.m in Sources */, - D0CD98941D74BA5A00F41187 /* MTDatacenterAddressSet.m in Sources */, - D0CD980E1D74B96C00F41187 /* MTDestroySessionResponseMessage.m in Sources */, - D0119CC620CAD34800895300 /* MTConnectionProbing.m in Sources */, - D0CD983D1D74B9AA00F41187 /* MTExportedAuthorizationData.m in Sources */, - D0CD986F1D74B9F500F41187 /* MTTransportScheme.m in Sources */, - D0CD98AE1D74BA6F00F41187 /* MTSessionInfo.m in Sources */, - D0CD98BD1D74BA7C00F41187 /* MTNetworkAvailability.m in Sources */, - D0CD990D1D75C0F900F41187 /* MTResendMessageService.m in Sources */, - D0CD97DE1D74B93100F41187 /* MTRsa.m in Sources */, - D0CD98971D74BA5A00F41187 /* MTDatacenterAddressListData.m in Sources */, - D0CD980C1D74B96C00F41187 /* MTBuffer.m in Sources */, - D0CD97D81D74B93100F41187 /* MTTimer.m in Sources */, - D0CD98661D74B9DD00F41187 /* MTFileBasedKeychain.m in Sources */, - D0CD986B1D74B9E900F41187 /* MTContext.m in Sources */, - D0CD98E21D74BAEB00F41187 /* AFHTTPRequestOperation.m in Sources */, - D0CD980D1D74B96C00F41187 /* MTBufferReader.m in Sources */, - D0CD98431D74B9AA00F41187 /* MTMsgDetailedInfoMessage.m in Sources */, - D0CD98541D74B9B700F41187 /* MTRpcResultMessage.m in Sources */, - D0119CCE20CAD65D00895300 /* PingFoundation.m in Sources */, - D020FAFF1D994E3100F279AA /* MTHttpRequestOperation.m in Sources */, - D0CD98481D74B9AA00F41187 /* MTNewSessionCreatedMessage.m in Sources */, - D0CD98471D74B9AA00F41187 /* MTMsgsStateReqMessage.m in Sources */, - D033873E223BC115007A2CE4 /* MTPKCS.m in Sources */, - D0C932301E095E280074F044 /* MTNetworkUsageManager.m in Sources */, - D0BFAE6520AB505800793CF2 /* MTDatacenterVerificationData.m in Sources */, - D0CD98831D74BA4900F41187 /* MTDatacenterAuthMessageService.m in Sources */, - D0CD98B11D74BA6F00F41187 /* MTOutgoingMessage.m in Sources */, - D0CD98E51D74BAF400F41187 /* GCDAsyncSocket.m in Sources */, - D0CAF2E71D75EA7E0011F558 /* MTAtomic.m in Sources */, - D0CD98951D74BA5A00F41187 /* MTDatacenterAuthInfo.m in Sources */, - D0CD97DD1D74B93100F41187 /* MTInputStream.m in Sources */, - D0CD98BE1D74BA7C00F41187 /* MTTransport.m in Sources */, - D0E9B9F21F0176DA00F079A4 /* MTBackupAddressSignals.m in Sources */, - D0CD983E1D74B9AA00F41187 /* MTFutureSaltsMessage.m in Sources */, - D0CD98AD1D74BA6F00F41187 /* MTProto.m in Sources */, - D0529D3021A434BF00D7C3C4 /* MTTransportSchemeStats.m in Sources */, - D0CD98421D74B9AA00F41187 /* MTMsgContainerMessage.m in Sources */, - D0CD980F1D74B96C00F41187 /* MTDropRpcResultMessage.m in Sources */, - D0CD98561D74B9B700F41187 /* MTServerDhParamsMessage.m in Sources */, - D0CD97DA1D74B93100F41187 /* MTEncryption.m in Sources */, - D0CD97D91D74B93100F41187 /* MTLogging.m in Sources */, - D0CD98B21D74BA6F00F41187 /* MTIncomingMessage.m in Sources */, - D0CD98551D74B9B700F41187 /* MTServerDhInnerDataMessage.m in Sources */, - D0CD99081D75C0ED00F41187 /* MTDropResponseContext.m in Sources */, - D0CD984A1D74B9AA00F41187 /* MTPongMessage.m in Sources */, - D0CD98BF1D74BA7C00F41187 /* MTTransportTransaction.m in Sources */, - D0CD98F51D75C0DD00F41187 /* MTRequestMessageService.m in Sources */, - D0CD98AF1D74BA6F00F41187 /* MTTimeFixContext.m in Sources */, - D0185E772089D265005E1A6C /* MTProxyConnectivity.m in Sources */, - D0CD98731D74B9F900F41187 /* MTDiscoverConnectionSignals.m in Sources */, - D0CD980B1D74B96C00F41187 /* MTBadMsgNotificationMessage.m in Sources */, - D0CD98401D74B9AA00F41187 /* MTMessage.m in Sources */, - D0CD99051D75C0ED00F41187 /* MTRequest.m in Sources */, - D0CD98F11D75C0D300F41187 /* MTTimeSyncMessageService.m in Sources */, - D0CD98B01D74BA6F00F41187 /* MTPreparedMessage.m in Sources */, - D0B0DF5F1DD7E75B003BA12D /* MTBag.m in Sources */, - D0CD99091D75C0ED00F41187 /* MTApiEnvironment.m in Sources */, - D0CD984B1D74B9AA00F41187 /* MTResPqMessage.m in Sources */, - D073D2D91FB5E494009E1DA2 /* MTBindingTempAuthKeyContext.m in Sources */, - D0CD98C31D74BA8A00F41187 /* MTTcpTransport.m in Sources */, - D0CD98B31D74BA6F00F41187 /* MTMessageEncryptionKey.m in Sources */, - D0CD983F1D74B9AA00F41187 /* MTInternalMessageParser.m in Sources */, - D0CD98E31D74BAEB00F41187 /* AFURLConnectionOperation.m in Sources */, - D0CD98411D74B9AA00F41187 /* MTMsgAllInfoMessage.m in Sources */, - D0CD97D41D74B91B00F41187 /* MTTime.m in Sources */, - D0CD98441D74B9AA00F41187 /* MTMsgResendReqMessage.m in Sources */, - D0CD97DC1D74B93100F41187 /* MTOutputStream.m in Sources */, - D0E2E17C20866780005737E8 /* MTDNS.m in Sources */, - D0CD98931D74BA5A00F41187 /* MTDatacenterAddress.m in Sources */, - D0CD98571D74B9B700F41187 /* MTSetClientDhParamsResponseMessage.m in Sources */, - D0C932281E095D6A0074F044 /* MTNetworkUsageCalculationInfo.m in Sources */, - D015E01D225CD19E00CB9E8A /* MTGzip.m in Sources */, - D0CAF2D01D75E25B0011F558 /* MTSignal.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0D225111B4D817B0085E26D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D0D2251D1B4D817B0085E26D /* MtProtoKitDynamicTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - D003546C1C173BF0006610DA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D0CB05F61ADC4483005E298F /* MtProtoKit */; - targetProxy = D003546B1C173BF0006610DA /* PBXContainerItemProxy */; - }; - D0D225181B4D817B0085E26D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D0D2250A1B4D817B0085E26D /* MtProtoKitDynamic */; - targetProxy = D0D225171B4D817B0085E26D /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - D05A833518AFB3F9007F1076 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - D05A833618AFB3F9007F1076 /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - D05A835118AFB40C007F1076 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - D05A835218AFB40C007F1076 /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - D063A31718B157F700C65116 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - D063A31818B157F700C65116 /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C22069C21E8EB4B300E82730 /* AppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = AppStore; - }; - C22069C31E8EB4B300E82730 /* AppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = AppStore; - }; - C22069C41E8EB4B300E82730 /* AppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = AppStore; - }; - C22069C51E8EB4B300E82730 /* AppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = AppStore; - }; - C22069C61E8EB4B300E82730 /* AppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = AppStore; - }; - C22069C71E8EB4B300E82730 /* AppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = AppStore; - }; - D003546D1C173BF0006610DA /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - D003546E1C173BF0006610DA /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - D013CAD5209C3BE2009A0B6F /* DebugForkAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - }; - name = DebugForkAppStore; - }; - D013CAD6209C3BE2009A0B6F /* DebugForkAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugForkAppStore; - }; - D013CAD7209C3BE2009A0B6F /* DebugForkAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugForkAppStore; - }; - D013CAD8209C3BE2009A0B6F /* DebugForkAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugForkAppStore; - }; - D013CAD9209C3BE2009A0B6F /* DebugForkAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugForkAppStore; - }; - D013CADA209C3BE2009A0B6F /* DebugForkAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugForkAppStore; - }; - D021D4FC219CB1CD0064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - }; - name = DebugFork; - }; - D021D4FD219CB1CD0064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugFork; - }; - D021D4FE219CB1CD0064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - "BETA=1", - ); - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugFork; - }; - D021D4FF219CB1CD0064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugFork; - }; - D021D500219CB1CD0064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugFork; - }; - D021D501219CB1CD0064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugFork; - }; - D0364D4722B3E35B002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - }; - name = HockeyappMacAlpha; - }; - D0364D4822B3E35B002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = HockeyappMacAlpha; - }; - D0364D4922B3E35B002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - "BETA=1", - ); - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = HockeyappMacAlpha; - }; - D0364D4A22B3E35B002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = HockeyappMacAlpha; - }; - D0364D4B22B3E35B002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = HockeyappMacAlpha; - }; - D0364D4C22B3E35B002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = HockeyappMacAlpha; - }; - D05A833A18AFB3F9007F1076 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - }; - name = Debug; - }; - D05A833B18AFB3F9007F1076 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - D079ABAA1AF39B8000076F59 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ""; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - D079ABAB1AF39B8000076F59 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - D079FD101F06BE440038FADE /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - }; - name = DebugHockeyapp; - }; - D079FD111F06BE440038FADE /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D079FD121F06BE440038FADE /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - "BETA=1", - ); - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D079FD131F06BE440038FADE /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D079FD141F06BE440038FADE /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugHockeyapp; - }; - D079FD151F06BE440038FADE /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugHockeyapp; - }; - D079FD161F06BE4D0038FADE /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = ReleaseAppStore; - }; - D079FD171F06BE4D0038FADE /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStore; - }; - D079FD181F06BE4D0038FADE /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = APPSTORE; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStore; - }; - D079FD191F06BE4D0038FADE /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStore; - }; - D079FD1A1F06BE4D0038FADE /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseAppStore; - }; - D079FD1B1F06BE4D0038FADE /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseAppStore; - }; - D079FD1C1F06BE540038FADE /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = ReleaseHockeyapp; - }; - D079FD1D1F06BE540038FADE /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.1; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyapp; - }; - D079FD1E1F06BE540038FADE /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = STABLE; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyapp; - }; - D079FD1F1F06BE540038FADE /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyapp; - }; - D079FD201F06BE540038FADE /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseHockeyapp; - }; - D079FD211F06BE540038FADE /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseHockeyapp; - }; - D0924FDC1FE52BFE003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = ReleaseHockeyappInternal; - }; - D0924FDD1FE52BFE003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.1; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; - D0924FDE1FE52BFE003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; - D0924FDF1FE52BFE003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; - D0924FE01FE52BFE003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseHockeyappInternal; - }; - D0924FE11FE52BFE003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseHockeyappInternal; - }; - D096C2D21CC3C664006D814E /* Hockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Hockeyapp; - }; - D096C2D31CC3C664006D814E /* Hockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.1; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Hockeyapp; - }; - D096C2D41CC3C664006D814E /* Hockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Hockeyapp; - }; - D096C2D51CC3C664006D814E /* Hockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Hockeyapp; - }; - D096C2D61CC3C664006D814E /* Hockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Hockeyapp; - }; - D096C2D71CC3C664006D814E /* Hockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Hockeyapp; - }; - D0ADF928212B3ACC00310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - }; - name = DebugAppStoreLLC; - }; - D0ADF929212B3ACC00310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - D0ADF92A212B3ACC00310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - "BETA=1", - ); - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - D0ADF92B212B3ACC00310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - D0ADF92C212B3ACC00310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugAppStoreLLC; - }; - D0ADF92D212B3ACC00310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugAppStoreLLC; - }; - D0CB060A1ADC4483005E298F /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - D0CB060B1ADC4483005E298F /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - D0CE6EE9213DC2F900BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EEA213DC2F900BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EEB213DC2F900BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = APPSTORE; - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EEC213DC2F900BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EED213DC2F900BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EEE213DC2F900BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseAppStoreLLC; - }; - D0D2251E1B4D817B0085E26D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - D0D2251F1B4D817B0085E26D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - D0D225201B4D817B0085E26D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - D0D225211B4D817B0085E26D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; - D0DB57B01E5C4B470071854C /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_MODULES_AUTOLINK = NO; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; - MACOSX_DEPLOYMENT_TARGET = 10.11; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - }; - name = DebugAppStore; - }; - D0DB57B11E5C4B470071854C /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(USER_LIBRARY_DIR)/Developer/Xcode/DerivedData/Telegraph-dzhgyeoibunjpxfckifwvbawfdmi/Build/Products/Debug-iphoneos", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "MtProtoKitiOS/MtProtoKit-Prefix.pch"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(PROJECT_DIR)/openssl", - ); - INFOPLIST_FILE = MtProtoKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - ); - MACH_O_TYPE = staticlib; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = NO; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = "-lz"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = MtProtoKit; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStore; - }; - D0DB57B21E5C4B470071854C /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - "BETA=1", - ); - HEADER_SEARCH_PATHS = ( - "$(PROJECT_DIR)/openssl", - "$(PROJECT_DIR)/TON/macOS/include", - ); - INFOPLIST_FILE = MtProtoKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/OSX", - "$(PROJECT_DIR)/TON/macOS/lib", - ); - MACH_O_TYPE = mh_dylib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitMacFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStore; - }; - D0DB57B31E5C4B470071854C /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++14"; - CLANG_ENABLE_MODULES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEPLOYMENT_POSTPROCESSING = NO; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/thirdparty", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_TREAT_WARNINGS_AS_ERRORS = NO; - HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/openssl"; - INFOPLIST_FILE = MtProtoKitDynamic/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/openssl/iOS", - "$(PROJECT_DIR)/TON", - "$(PROJECT_DIR)/TON/lib/ios", - "$(PROJECT_DIR)/TON/lib/macos", - ); - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = "-DMtProtoKitDynamicFramework=1"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SEPARATE_STRIP = NO; - SKIP_INSTALL = YES; - STRIPFLAGS = ""; - STRIP_STYLE = debugging; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStore; - }; - D0DB57B41E5C4B470071854C /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = MtProtoKitDynamicTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.4; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugAppStore; - }; - D0DB57B51E5C4B470071854C /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = MtProtoKitStabilityTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.MtProtoKitStabilityTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugAppStore; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - D003546F1C173BF0006610DA /* Build configuration list for PBXNativeTarget "MtProtoKitStabilityTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D003546D1C173BF0006610DA /* Debug */, - D079FD151F06BE440038FADE /* DebugHockeyapp */, - D0364D4C22B3E35B002A6EF0 /* HockeyappMacAlpha */, - D021D501219CB1CD0064BEBA /* DebugFork */, - D0DB57B51E5C4B470071854C /* DebugAppStore */, - D0ADF92D212B3ACC00310BBC /* DebugAppStoreLLC */, - D013CADA209C3BE2009A0B6F /* DebugForkAppStore */, - D003546E1C173BF0006610DA /* Release */, - C22069C71E8EB4B300E82730 /* AppStore */, - D079FD1B1F06BE4D0038FADE /* ReleaseAppStore */, - D0CE6EEE213DC2F900BCD44B /* ReleaseAppStoreLLC */, - D096C2D71CC3C664006D814E /* Hockeyapp */, - D079FD211F06BE540038FADE /* ReleaseHockeyapp */, - D0924FE11FE52BFE003F693F /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D05A830D18AFB3F9007F1076 /* Build configuration list for PBXProject "MtProtoKit_Xcode" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D05A833A18AFB3F9007F1076 /* Debug */, - D079FD101F06BE440038FADE /* DebugHockeyapp */, - D0364D4722B3E35B002A6EF0 /* HockeyappMacAlpha */, - D021D4FC219CB1CD0064BEBA /* DebugFork */, - D0DB57B01E5C4B470071854C /* DebugAppStore */, - D0ADF928212B3ACC00310BBC /* DebugAppStoreLLC */, - D013CAD5209C3BE2009A0B6F /* DebugForkAppStore */, - D05A833B18AFB3F9007F1076 /* Release */, - C22069C21E8EB4B300E82730 /* AppStore */, - D079FD161F06BE4D0038FADE /* ReleaseAppStore */, - D0CE6EE9213DC2F900BCD44B /* ReleaseAppStoreLLC */, - D096C2D21CC3C664006D814E /* Hockeyapp */, - D079FD1C1F06BE540038FADE /* ReleaseHockeyapp */, - D0924FDC1FE52BFE003F693F /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D079ABAE1AF39B8000076F59 /* Build configuration list for PBXNativeTarget "MtProtoKitMac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D079ABAA1AF39B8000076F59 /* Debug */, - D079FD121F06BE440038FADE /* DebugHockeyapp */, - D0364D4922B3E35B002A6EF0 /* HockeyappMacAlpha */, - D021D4FE219CB1CD0064BEBA /* DebugFork */, - D0DB57B21E5C4B470071854C /* DebugAppStore */, - D0ADF92A212B3ACC00310BBC /* DebugAppStoreLLC */, - D013CAD7209C3BE2009A0B6F /* DebugForkAppStore */, - D079ABAB1AF39B8000076F59 /* Release */, - C22069C41E8EB4B300E82730 /* AppStore */, - D079FD181F06BE4D0038FADE /* ReleaseAppStore */, - D0CE6EEB213DC2F900BCD44B /* ReleaseAppStoreLLC */, - D096C2D41CC3C664006D814E /* Hockeyapp */, - D079FD1E1F06BE540038FADE /* ReleaseHockeyapp */, - D0924FDE1FE52BFE003F693F /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D0CB060E1ADC4483005E298F /* Build configuration list for PBXNativeTarget "MtProtoKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0CB060A1ADC4483005E298F /* Debug */, - D079FD111F06BE440038FADE /* DebugHockeyapp */, - D0364D4822B3E35B002A6EF0 /* HockeyappMacAlpha */, - D021D4FD219CB1CD0064BEBA /* DebugFork */, - D0DB57B11E5C4B470071854C /* DebugAppStore */, - D0ADF929212B3ACC00310BBC /* DebugAppStoreLLC */, - D013CAD6209C3BE2009A0B6F /* DebugForkAppStore */, - D0CB060B1ADC4483005E298F /* Release */, - C22069C31E8EB4B300E82730 /* AppStore */, - D079FD171F06BE4D0038FADE /* ReleaseAppStore */, - D0CE6EEA213DC2F900BCD44B /* ReleaseAppStoreLLC */, - D096C2D31CC3C664006D814E /* Hockeyapp */, - D079FD1D1F06BE540038FADE /* ReleaseHockeyapp */, - D0924FDD1FE52BFE003F693F /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D0D225221B4D817B0085E26D /* Build configuration list for PBXNativeTarget "MtProtoKitDynamic" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0D2251E1B4D817B0085E26D /* Debug */, - D079FD131F06BE440038FADE /* DebugHockeyapp */, - D0364D4A22B3E35B002A6EF0 /* HockeyappMacAlpha */, - D021D4FF219CB1CD0064BEBA /* DebugFork */, - D0DB57B31E5C4B470071854C /* DebugAppStore */, - D0ADF92B212B3ACC00310BBC /* DebugAppStoreLLC */, - D013CAD8209C3BE2009A0B6F /* DebugForkAppStore */, - D0D2251F1B4D817B0085E26D /* Release */, - C22069C51E8EB4B300E82730 /* AppStore */, - D079FD191F06BE4D0038FADE /* ReleaseAppStore */, - D0CE6EEC213DC2F900BCD44B /* ReleaseAppStoreLLC */, - D096C2D51CC3C664006D814E /* Hockeyapp */, - D079FD1F1F06BE540038FADE /* ReleaseHockeyapp */, - D0924FDF1FE52BFE003F693F /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - D0D225231B4D817B0085E26D /* Build configuration list for PBXNativeTarget "MtProtoKitDynamicTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0D225201B4D817B0085E26D /* Debug */, - D079FD141F06BE440038FADE /* DebugHockeyapp */, - D0364D4B22B3E35B002A6EF0 /* HockeyappMacAlpha */, - D021D500219CB1CD0064BEBA /* DebugFork */, - D0DB57B41E5C4B470071854C /* DebugAppStore */, - D0ADF92C212B3ACC00310BBC /* DebugAppStoreLLC */, - D013CAD9209C3BE2009A0B6F /* DebugForkAppStore */, - D0D225211B4D817B0085E26D /* Release */, - C22069C61E8EB4B300E82730 /* AppStore */, - D079FD1A1F06BE4D0038FADE /* ReleaseAppStore */, - D0CE6EED213DC2F900BCD44B /* ReleaseAppStoreLLC */, - D096C2D61CC3C664006D814E /* Hockeyapp */, - D079FD201F06BE540038FADE /* ReleaseHockeyapp */, - D0924FE01FE52BFE003F693F /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = D05A830A18AFB3F9007F1076 /* Project object */; -} diff --git a/submodules/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcshareddata/xcschemes/MtProtoKitMac.xcscheme b/submodules/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcshareddata/xcschemes/MtProtoKitMac.xcscheme deleted file mode 100644 index 617e7bfff5..0000000000 --- a/submodules/MtProtoKit/MtProtoKit_Xcode.xcodeproj/xcshareddata/xcschemes/MtProtoKitMac.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/submodules/MtProtoKit/MtProtoKitiOS/MtProtoKit-Info.plist b/submodules/MtProtoKit/MtProtoKitiOS/MtProtoKit-Info.plist deleted file mode 100644 index 94a585e1e0..0000000000 --- a/submodules/MtProtoKit/MtProtoKitiOS/MtProtoKit-Info.plist +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.telegram.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - NSPrincipalClass - - - diff --git a/submodules/MtProtoKit/MtProtoKitiOS/MtProtoKit-Prefix.pch b/submodules/MtProtoKit/MtProtoKitiOS/MtProtoKit-Prefix.pch deleted file mode 100644 index 1bcc23b7ad..0000000000 --- a/submodules/MtProtoKit/MtProtoKitiOS/MtProtoKit-Prefix.pch +++ /dev/null @@ -1,10 +0,0 @@ -// -// Prefix header -// -// The contents of this file are implicitly included at the beginning of every source file. -// - -#ifdef __OBJC__ - #import -#endif - diff --git a/submodules/MtProtoKit/MtProtoKitiOS/en.lproj/InfoPlist.strings b/submodules/MtProtoKit/MtProtoKitiOS/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28ff8f..0000000000 --- a/submodules/MtProtoKit/MtProtoKitiOS/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/submodules/MtProtoKit/TON/macOS/include/auto/tl/tonlib_api.h b/submodules/MtProtoKit/TON/macOS/include/auto/tl/tonlib_api.h deleted file mode 100644 index a9f5430c73..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/auto/tl/tonlib_api.h +++ /dev/null @@ -1,1658 +0,0 @@ -#pragma once - -#include "tl/TlObject.h" - -#include "td/utils/int_types.h" - -#include -#include "td/utils/SharedSlice.h" - -#include -#include -#include -#include - -namespace td { -class TlStorerToString; -} // namespace td - -namespace ton { -namespace tonlib_api{ -using BaseObject = ::ton::TlObject; - -template -using object_ptr = ::ton::tl_object_ptr; - -template -object_ptr make_object(Args &&... args) { - return object_ptr(new Type(std::forward(args)...)); -} - -template -object_ptr move_object_as(FromType &&from) { - return object_ptr(static_cast(from.release())); -} - -std::string to_string(const BaseObject &value); - -template -std::string to_string(const object_ptr &value) { - if (value == nullptr) { - return "null"; - } - - return to_string(*value); -} - -class accountAddress; - -class bip39Hints; - -class config; - -class data; - -class error; - -class exportedEncryptedKey; - -class exportedKey; - -class exportedPemKey; - -class inputKey; - -class key; - -class KeyStoreType; - -class LogStream; - -class logTags; - -class logVerbosityLevel; - -class ok; - -class options; - -class sendGramsResult; - -class unpackedAccountAddress; - -class updateSendLiteServerQuery; - -class generic_AccountState; - -class internal_transactionId; - -class raw_accountState; - -class raw_initialAccountState; - -class raw_message; - -class raw_transaction; - -class raw_transactions; - -class testGiver_accountState; - -class testWallet_accountState; - -class testWallet_initialAccountState; - -class uninited_accountState; - -class wallet_accountState; - -class wallet_initialAccountState; - -class Object; - -class Object: public TlObject { - public: -}; - -class Function: public TlObject { - public: -}; - -class accountAddress final : public Object { - public: - std::string account_address_; - - accountAddress(); - - explicit accountAddress(std::string const &account_address_); - - static const std::int32_t ID = 755613099; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class bip39Hints final : public Object { - public: - std::vector words_; - - bip39Hints(); - - explicit bip39Hints(std::vector &&words_); - - static const std::int32_t ID = 1012243456; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class config final : public Object { - public: - std::string config_; - std::string blockchain_name_; - bool use_callbacks_for_network_; - bool ignore_cache_; - - config(); - - config(std::string const &config_, std::string const &blockchain_name_, bool use_callbacks_for_network_, bool ignore_cache_); - - static const std::int32_t ID = -1538391496; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class data final : public Object { - public: - td::SecureString bytes_; - - data(); - - explicit data(td::SecureString &&bytes_); - - static const std::int32_t ID = -414733967; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class error final : public Object { - public: - std::int32_t code_; - std::string message_; - - error(); - - error(std::int32_t code_, std::string const &message_); - - static const std::int32_t ID = -1679978726; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class exportedEncryptedKey final : public Object { - public: - td::SecureString data_; - - exportedEncryptedKey(); - - explicit exportedEncryptedKey(td::SecureString &&data_); - - static const std::int32_t ID = 2024406612; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class exportedKey final : public Object { - public: - std::vector word_list_; - - exportedKey(); - - explicit exportedKey(std::vector &&word_list_); - - static const std::int32_t ID = -1449248297; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class exportedPemKey final : public Object { - public: - td::SecureString pem_; - - exportedPemKey(); - - explicit exportedPemKey(td::SecureString &&pem_); - - static const std::int32_t ID = 1425473725; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class inputKey final : public Object { - public: - object_ptr key_; - td::SecureString local_password_; - - inputKey(); - - inputKey(object_ptr &&key_, td::SecureString &&local_password_); - - static const std::int32_t ID = 869287093; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class key final : public Object { - public: - std::string public_key_; - td::SecureString secret_; - - key(); - - key(std::string const &public_key_, td::SecureString &&secret_); - - static const std::int32_t ID = -1978362923; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class KeyStoreType: public Object { - public: -}; - -class keyStoreTypeDirectory final : public KeyStoreType { - public: - std::string directory_; - - keyStoreTypeDirectory(); - - explicit keyStoreTypeDirectory(std::string const &directory_); - - static const std::int32_t ID = -378990038; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class keyStoreTypeInMemory final : public KeyStoreType { - public: - - keyStoreTypeInMemory(); - - static const std::int32_t ID = -2106848825; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class LogStream: public Object { - public: -}; - -class logStreamDefault final : public LogStream { - public: - - logStreamDefault(); - - static const std::int32_t ID = 1390581436; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class logStreamFile final : public LogStream { - public: - std::string path_; - std::int64_t max_file_size_; - - logStreamFile(); - - logStreamFile(std::string const &path_, std::int64_t max_file_size_); - - static const std::int32_t ID = -1880085930; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class logStreamEmpty final : public LogStream { - public: - - logStreamEmpty(); - - static const std::int32_t ID = -499912244; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class logTags final : public Object { - public: - std::vector tags_; - - logTags(); - - explicit logTags(std::vector &&tags_); - - static const std::int32_t ID = -1604930601; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class logVerbosityLevel final : public Object { - public: - std::int32_t verbosity_level_; - - logVerbosityLevel(); - - explicit logVerbosityLevel(std::int32_t verbosity_level_); - - static const std::int32_t ID = 1734624234; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class ok final : public Object { - public: - - ok(); - - static const std::int32_t ID = -722616727; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class options final : public Object { - public: - object_ptr config_; - object_ptr keystore_type_; - - options(); - - options(object_ptr &&config_, object_ptr &&keystore_type_); - - static const std::int32_t ID = -1924388359; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class sendGramsResult final : public Object { - public: - std::int64_t sent_until_; - std::string body_hash_; - - sendGramsResult(); - - sendGramsResult(std::int64_t sent_until_, std::string const &body_hash_); - - static const std::int32_t ID = 426872238; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class unpackedAccountAddress final : public Object { - public: - std::int32_t workchain_id_; - bool bounceable_; - bool testnet_; - std::string addr_; - - unpackedAccountAddress(); - - unpackedAccountAddress(std::int32_t workchain_id_, bool bounceable_, bool testnet_, std::string const &addr_); - - static const std::int32_t ID = 1892946998; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class updateSendLiteServerQuery final : public Object { - public: - std::int64_t id_; - std::string data_; - - updateSendLiteServerQuery(); - - updateSendLiteServerQuery(std::int64_t id_, std::string const &data_); - - static const std::int32_t ID = -1555130916; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class generic_AccountState: public Object { - public: -}; - -class generic_accountStateRaw final : public generic_AccountState { - public: - object_ptr account_state_; - - generic_accountStateRaw(); - - explicit generic_accountStateRaw(object_ptr &&account_state_); - - static const std::int32_t ID = -1387096685; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class generic_accountStateTestWallet final : public generic_AccountState { - public: - object_ptr account_state_; - - generic_accountStateTestWallet(); - - explicit generic_accountStateTestWallet(object_ptr &&account_state_); - - static const std::int32_t ID = -1041955397; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class generic_accountStateWallet final : public generic_AccountState { - public: - object_ptr account_state_; - - generic_accountStateWallet(); - - explicit generic_accountStateWallet(object_ptr &&account_state_); - - static const std::int32_t ID = 942582925; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class generic_accountStateTestGiver final : public generic_AccountState { - public: - object_ptr account_state_; - - generic_accountStateTestGiver(); - - explicit generic_accountStateTestGiver(object_ptr &&account_state_); - - static const std::int32_t ID = 1134654598; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class generic_accountStateUninited final : public generic_AccountState { - public: - object_ptr account_state_; - - generic_accountStateUninited(); - - explicit generic_accountStateUninited(object_ptr &&account_state_); - - static const std::int32_t ID = -908702008; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class internal_transactionId final : public Object { - public: - std::int64_t lt_; - std::string hash_; - - internal_transactionId(); - - internal_transactionId(std::int64_t lt_, std::string const &hash_); - - static const std::int32_t ID = -989527262; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class raw_accountState final : public Object { - public: - std::int64_t balance_; - std::string code_; - std::string data_; - object_ptr last_transaction_id_; - std::string frozen_hash_; - std::int64_t sync_utime_; - - raw_accountState(); - - raw_accountState(std::int64_t balance_, std::string const &code_, std::string const &data_, object_ptr &&last_transaction_id_, std::string const &frozen_hash_, std::int64_t sync_utime_); - - static const std::int32_t ID = 1205935434; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class raw_initialAccountState final : public Object { - public: - std::string code_; - std::string data_; - - raw_initialAccountState(); - - raw_initialAccountState(std::string const &code_, std::string const &data_); - - static const std::int32_t ID = 777456197; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class raw_message final : public Object { - public: - std::string source_; - std::string destination_; - std::int64_t value_; - std::int64_t fwd_fee_; - std::int64_t ihr_fee_; - std::int64_t created_lt_; - std::string body_hash_; - std::string message_; - - raw_message(); - - raw_message(std::string const &source_, std::string const &destination_, std::int64_t value_, std::int64_t fwd_fee_, std::int64_t ihr_fee_, std::int64_t created_lt_, std::string const &body_hash_, std::string const &message_); - - static const std::int32_t ID = -906281442; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class raw_transaction final : public Object { - public: - std::int64_t utime_; - std::string data_; - object_ptr transaction_id_; - std::int64_t fee_; - std::int64_t storage_fee_; - std::int64_t other_fee_; - object_ptr in_msg_; - std::vector> out_msgs_; - - raw_transaction(); - - raw_transaction(std::int64_t utime_, std::string const &data_, object_ptr &&transaction_id_, std::int64_t fee_, std::int64_t storage_fee_, std::int64_t other_fee_, object_ptr &&in_msg_, std::vector> &&out_msgs_); - - static const std::int32_t ID = 1887601793; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class raw_transactions final : public Object { - public: - std::vector> transactions_; - object_ptr previous_transaction_id_; - - raw_transactions(); - - raw_transactions(std::vector> &&transactions_, object_ptr &&previous_transaction_id_); - - static const std::int32_t ID = -2063931155; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class testGiver_accountState final : public Object { - public: - std::int64_t balance_; - std::int32_t seqno_; - object_ptr last_transaction_id_; - std::int64_t sync_utime_; - - testGiver_accountState(); - - testGiver_accountState(std::int64_t balance_, std::int32_t seqno_, object_ptr &&last_transaction_id_, std::int64_t sync_utime_); - - static const std::int32_t ID = 860930426; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class testWallet_accountState final : public Object { - public: - std::int64_t balance_; - std::int32_t seqno_; - object_ptr last_transaction_id_; - std::int64_t sync_utime_; - - testWallet_accountState(); - - testWallet_accountState(std::int64_t balance_, std::int32_t seqno_, object_ptr &&last_transaction_id_, std::int64_t sync_utime_); - - static const std::int32_t ID = 305698744; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class testWallet_initialAccountState final : public Object { - public: - std::string public_key_; - - testWallet_initialAccountState(); - - explicit testWallet_initialAccountState(std::string const &public_key_); - - static const std::int32_t ID = -1231516227; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class uninited_accountState final : public Object { - public: - std::int64_t balance_; - object_ptr last_transaction_id_; - std::string frozen_hash_; - std::int64_t sync_utime_; - - uninited_accountState(); - - uninited_accountState(std::int64_t balance_, object_ptr &&last_transaction_id_, std::string const &frozen_hash_, std::int64_t sync_utime_); - - static const std::int32_t ID = -918880075; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class wallet_accountState final : public Object { - public: - std::int64_t balance_; - std::int32_t seqno_; - object_ptr last_transaction_id_; - std::int64_t sync_utime_; - - wallet_accountState(); - - wallet_accountState(std::int64_t balance_, std::int32_t seqno_, object_ptr &&last_transaction_id_, std::int64_t sync_utime_); - - static const std::int32_t ID = -1919815977; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class wallet_initialAccountState final : public Object { - public: - std::string public_key_; - - wallet_initialAccountState(); - - explicit wallet_initialAccountState(std::string const &public_key_); - - static const std::int32_t ID = -1079249978; - std::int32_t get_id() const final { - return ID; - } - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class addLogMessage final : public Function { - public: - std::int32_t verbosity_level_; - std::string text_; - - addLogMessage(); - - addLogMessage(std::int32_t verbosity_level_, std::string const &text_); - - static const std::int32_t ID = 1597427692; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class changeLocalPassword final : public Function { - public: - object_ptr input_key_; - td::SecureString new_local_password_; - - changeLocalPassword(); - - changeLocalPassword(object_ptr &&input_key_, td::SecureString &&new_local_password_); - - static const std::int32_t ID = -1685491421; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class close final : public Function { - public: - - close(); - - static const std::int32_t ID = -1187782273; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class createNewKey final : public Function { - public: - td::SecureString local_password_; - td::SecureString mnemonic_password_; - td::SecureString random_extra_seed_; - - createNewKey(); - - createNewKey(td::SecureString &&local_password_, td::SecureString &&mnemonic_password_, td::SecureString &&random_extra_seed_); - - static const std::int32_t ID = -1861385712; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class decrypt final : public Function { - public: - td::SecureString encrypted_data_; - td::SecureString secret_; - - decrypt(); - - decrypt(td::SecureString &&encrypted_data_, td::SecureString &&secret_); - - static const std::int32_t ID = 357991854; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class deleteAllKeys final : public Function { - public: - - deleteAllKeys(); - - static const std::int32_t ID = 1608776483; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class deleteKey final : public Function { - public: - object_ptr key_; - - deleteKey(); - - explicit deleteKey(object_ptr &&key_); - - static const std::int32_t ID = -1579595571; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class encrypt final : public Function { - public: - td::SecureString decrypted_data_; - td::SecureString secret_; - - encrypt(); - - encrypt(td::SecureString &&decrypted_data_, td::SecureString &&secret_); - - static const std::int32_t ID = -1821422820; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class exportEncryptedKey final : public Function { - public: - object_ptr input_key_; - td::SecureString key_password_; - - exportEncryptedKey(); - - exportEncryptedKey(object_ptr &&input_key_, td::SecureString &&key_password_); - - static const std::int32_t ID = 155352861; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class exportKey final : public Function { - public: - object_ptr input_key_; - - exportKey(); - - explicit exportKey(object_ptr &&input_key_); - - static const std::int32_t ID = 399723440; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class exportPemKey final : public Function { - public: - object_ptr input_key_; - td::SecureString key_password_; - - exportPemKey(); - - exportPemKey(object_ptr &&input_key_, td::SecureString &&key_password_); - - static const std::int32_t ID = -2047752448; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class generic_getAccountState final : public Function { - public: - object_ptr account_address_; - - generic_getAccountState(); - - explicit generic_getAccountState(object_ptr &&account_address_); - - static const std::int32_t ID = -657000446; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class generic_sendGrams final : public Function { - public: - object_ptr private_key_; - object_ptr source_; - object_ptr destination_; - std::int64_t amount_; - std::int32_t timeout_; - bool allow_send_to_uninited_; - std::string message_; - - generic_sendGrams(); - - generic_sendGrams(object_ptr &&private_key_, object_ptr &&source_, object_ptr &&destination_, std::int64_t amount_, std::int32_t timeout_, bool allow_send_to_uninited_, std::string const &message_); - - static const std::int32_t ID = -758801136; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class getBip39Hints final : public Function { - public: - std::string prefix_; - - getBip39Hints(); - - explicit getBip39Hints(std::string const &prefix_); - - static const std::int32_t ID = -1889640982; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class getLogStream final : public Function { - public: - - getLogStream(); - - static const std::int32_t ID = 1167608667; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class getLogTagVerbosityLevel final : public Function { - public: - std::string tag_; - - getLogTagVerbosityLevel(); - - explicit getLogTagVerbosityLevel(std::string const &tag_); - - static const std::int32_t ID = 951004547; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class getLogTags final : public Function { - public: - - getLogTags(); - - static const std::int32_t ID = -254449190; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class getLogVerbosityLevel final : public Function { - public: - - getLogVerbosityLevel(); - - static const std::int32_t ID = 594057956; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class importEncryptedKey final : public Function { - public: - td::SecureString local_password_; - td::SecureString key_password_; - object_ptr exported_encrypted_key_; - - importEncryptedKey(); - - importEncryptedKey(td::SecureString &&local_password_, td::SecureString &&key_password_, object_ptr &&exported_encrypted_key_); - - static const std::int32_t ID = 656724958; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class importKey final : public Function { - public: - td::SecureString local_password_; - td::SecureString mnemonic_password_; - object_ptr exported_key_; - - importKey(); - - importKey(td::SecureString &&local_password_, td::SecureString &&mnemonic_password_, object_ptr &&exported_key_); - - static const std::int32_t ID = -1607900903; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class importPemKey final : public Function { - public: - td::SecureString local_password_; - td::SecureString key_password_; - object_ptr exported_key_; - - importPemKey(); - - importPemKey(td::SecureString &&local_password_, td::SecureString &&key_password_, object_ptr &&exported_key_); - - static const std::int32_t ID = 76385617; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class init final : public Function { - public: - object_ptr options_; - - init(); - - explicit init(object_ptr &&options_); - - static const std::int32_t ID = -2014661877; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class kdf final : public Function { - public: - td::SecureString password_; - td::SecureString salt_; - std::int32_t iterations_; - - kdf(); - - kdf(td::SecureString &&password_, td::SecureString &&salt_, std::int32_t iterations_); - - static const std::int32_t ID = -1667861635; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class onLiteServerQueryError final : public Function { - public: - std::int64_t id_; - object_ptr error_; - - onLiteServerQueryError(); - - onLiteServerQueryError(std::int64_t id_, object_ptr &&error_); - - static const std::int32_t ID = -677427533; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class onLiteServerQueryResult final : public Function { - public: - std::int64_t id_; - std::string bytes_; - - onLiteServerQueryResult(); - - onLiteServerQueryResult(std::int64_t id_, std::string const &bytes_); - - static const std::int32_t ID = 2056444510; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class options_setConfig final : public Function { - public: - object_ptr config_; - - options_setConfig(); - - explicit options_setConfig(object_ptr &&config_); - - static const std::int32_t ID = 646497241; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class packAccountAddress final : public Function { - public: - object_ptr account_address_; - - packAccountAddress(); - - explicit packAccountAddress(object_ptr &&account_address_); - - static const std::int32_t ID = -1388561940; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class raw_getAccountAddress final : public Function { - public: - object_ptr initital_account_state_; - - raw_getAccountAddress(); - - explicit raw_getAccountAddress(object_ptr &&initital_account_state_); - - static const std::int32_t ID = -521283849; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class raw_getAccountState final : public Function { - public: - object_ptr account_address_; - - raw_getAccountState(); - - explicit raw_getAccountState(object_ptr &&account_address_); - - static const std::int32_t ID = 663706721; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class raw_getTransactions final : public Function { - public: - object_ptr account_address_; - object_ptr from_transaction_id_; - - raw_getTransactions(); - - raw_getTransactions(object_ptr &&account_address_, object_ptr &&from_transaction_id_); - - static const std::int32_t ID = 935377269; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class raw_sendMessage final : public Function { - public: - object_ptr destination_; - std::string initial_account_state_; - std::string data_; - - raw_sendMessage(); - - raw_sendMessage(object_ptr &&destination_, std::string const &initial_account_state_, std::string const &data_); - - static const std::int32_t ID = 473889461; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class runTests final : public Function { - public: - std::string dir_; - - runTests(); - - explicit runTests(std::string const &dir_); - - static const std::int32_t ID = -2039925427; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class setLogStream final : public Function { - public: - object_ptr log_stream_; - - setLogStream(); - - explicit setLogStream(object_ptr &&log_stream_); - - static const std::int32_t ID = -1364199535; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class setLogTagVerbosityLevel final : public Function { - public: - std::string tag_; - std::int32_t new_verbosity_level_; - - setLogTagVerbosityLevel(); - - setLogTagVerbosityLevel(std::string const &tag_, std::int32_t new_verbosity_level_); - - static const std::int32_t ID = -2095589738; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class setLogVerbosityLevel final : public Function { - public: - std::int32_t new_verbosity_level_; - - setLogVerbosityLevel(); - - explicit setLogVerbosityLevel(std::int32_t new_verbosity_level_); - - static const std::int32_t ID = -303429678; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class testGiver_getAccountAddress final : public Function { - public: - - testGiver_getAccountAddress(); - - static const std::int32_t ID = -540100768; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class testGiver_getAccountState final : public Function { - public: - - testGiver_getAccountState(); - - static const std::int32_t ID = 267738275; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class testGiver_sendGrams final : public Function { - public: - object_ptr destination_; - std::int32_t seqno_; - std::int64_t amount_; - std::string message_; - - testGiver_sendGrams(); - - testGiver_sendGrams(object_ptr &&destination_, std::int32_t seqno_, std::int64_t amount_, std::string const &message_); - - static const std::int32_t ID = -1785750375; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class testWallet_getAccountAddress final : public Function { - public: - object_ptr initital_account_state_; - - testWallet_getAccountAddress(); - - explicit testWallet_getAccountAddress(object_ptr &&initital_account_state_); - - static const std::int32_t ID = -1557748223; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class testWallet_getAccountState final : public Function { - public: - object_ptr account_address_; - - testWallet_getAccountState(); - - explicit testWallet_getAccountState(object_ptr &&account_address_); - - static const std::int32_t ID = 654082364; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class testWallet_init final : public Function { - public: - object_ptr private_key_; - - testWallet_init(); - - explicit testWallet_init(object_ptr &&private_key_); - - static const std::int32_t ID = 419055225; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class testWallet_sendGrams final : public Function { - public: - object_ptr private_key_; - object_ptr destination_; - std::int32_t seqno_; - std::int64_t amount_; - std::string message_; - - testWallet_sendGrams(); - - testWallet_sendGrams(object_ptr &&private_key_, object_ptr &&destination_, std::int32_t seqno_, std::int64_t amount_, std::string const &message_); - - static const std::int32_t ID = 1290131585; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class unpackAccountAddress final : public Function { - public: - std::string account_address_; - - unpackAccountAddress(); - - explicit unpackAccountAddress(std::string const &account_address_); - - static const std::int32_t ID = -682459063; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class wallet_getAccountAddress final : public Function { - public: - object_ptr initital_account_state_; - - wallet_getAccountAddress(); - - explicit wallet_getAccountAddress(object_ptr &&initital_account_state_); - - static const std::int32_t ID = -1004103180; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class wallet_getAccountState final : public Function { - public: - object_ptr account_address_; - - wallet_getAccountState(); - - explicit wallet_getAccountState(object_ptr &&account_address_); - - static const std::int32_t ID = 462294850; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class wallet_init final : public Function { - public: - object_ptr private_key_; - - wallet_init(); - - explicit wallet_init(object_ptr &&private_key_); - - static const std::int32_t ID = 1528056782; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -class wallet_sendGrams final : public Function { - public: - object_ptr private_key_; - object_ptr destination_; - std::int32_t seqno_; - std::int64_t valid_until_; - std::int64_t amount_; - std::string message_; - - wallet_sendGrams(); - - wallet_sendGrams(object_ptr &&private_key_, object_ptr &&destination_, std::int32_t seqno_, std::int64_t valid_until_, std::int64_t amount_, std::string const &message_); - - static const std::int32_t ID = -1837893526; - std::int32_t get_id() const final { - return ID; - } - - using ReturnType = object_ptr; - - void store(td::TlStorerToString &s, const char *field_name) const final; -}; - -} // namespace tonlib_api -} // namespace ton diff --git a/submodules/MtProtoKit/TON/macOS/include/td/utils/SharedSlice.h b/submodules/MtProtoKit/TON/macOS/include/td/utils/SharedSlice.h deleted file mode 100644 index ab941cb588..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/td/utils/SharedSlice.h +++ /dev/null @@ -1,392 +0,0 @@ -/* - This file is part of TON Blockchain Library. - - TON Blockchain Library is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - TON Blockchain Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with TON Blockchain Library. If not, see . - - Copyright 2017-2019 Telegram Systems LLP -*/ -#pragma once - -#include "td/utils/Slice.h" - -#include -#include - -namespace td { - -namespace detail { -struct SharedSliceHeader { - explicit SharedSliceHeader(size_t size) : refcnt_{1}, size_{size} { - } - - void inc() { - refcnt_.fetch_add(1, std::memory_order_relaxed); - } - - bool dec() { - return refcnt_.fetch_sub(1, std::memory_order_acq_rel) == 1; - } - - bool is_unique() const { - // NB: race if std::memory_order_relaxed is used - // reader may see a change by a new writer - return refcnt_.load(std::memory_order_acquire) == 1; - } - - size_t size() const { - return size_; - } - - private: - std::atomic refcnt_; - size_t size_; -}; - -struct UniqueSliceHeader { - explicit UniqueSliceHeader(size_t size) : size_{size} { - } - - void inc() { - } - - bool dec() { - return true; - } - - bool is_unique() const { - return true; - } - - size_t size() const { - return size_; - } - - private: - size_t size_; -}; - -template -class UnsafeSharedSlice { - public: - UnsafeSharedSlice() = default; - UnsafeSharedSlice clone() const { - if (is_null()) { - return UnsafeSharedSlice(); - } - header()->inc(); - return UnsafeSharedSlice(ptr_.get()); - } - - bool is_null() const { - return !ptr_; - } - - bool is_unique() const { - if (is_null()) { - return true; - } - return header()->is_unique(); - } - - MutableSlice as_mutable_slice() { - if (is_null()) { - return MutableSlice(); - } - return MutableSlice(ptr_.get() + sizeof(HeaderT), header()->size()); - } - - Slice as_slice() const { - if (is_null()) { - return Slice(); - } - return Slice(ptr_.get() + sizeof(HeaderT), header()->size()); - } - - size_t size() const { - if (is_null()) { - return 0; - } - return header()->size(); - } - - static UnsafeSharedSlice create(size_t size) { - static_assert(std::is_standard_layout::value, "HeaderT must have statdard layout"); - auto ptr = std::make_unique(size + sizeof(HeaderT)); - auto header_ptr = new (ptr.get()) HeaderT(size); - CHECK(reinterpret_cast(header_ptr) == ptr.get()); - - return UnsafeSharedSlice(std::move(ptr)); - } - - static UnsafeSharedSlice create(Slice slice) { - auto res = create(slice.size()); - res.as_mutable_slice().copy_from(slice); - return res; - } - - void clear() { - ptr_.reset(); - } - - private: - explicit UnsafeSharedSlice(char *ptr) : ptr_(ptr) { - } - explicit UnsafeSharedSlice(std::unique_ptr from) : ptr_(from.release()) { - } - - HeaderT *header() const { - return reinterpret_cast(ptr_.get()); - } - - struct Destructor { - void operator()(char *ptr) { - auto header = reinterpret_cast(ptr); - if (header->dec()) { - if (zero_on_destruct) { - MutableSlice(ptr, sizeof(HeaderT) + header->size()).fill_zero_secure(); - } - std::default_delete()(ptr); - } - } - }; - - std::unique_ptr ptr_; -}; -} // namespace detail - -class BufferSlice; - -class UniqueSharedSlice; - -class SharedSlice { - using Impl = detail::UnsafeSharedSlice; - - public: - SharedSlice() = default; - - explicit SharedSlice(Slice slice) : impl_(Impl::create(slice.size())) { - impl_.as_mutable_slice().copy_from(slice); - } - - explicit SharedSlice(UniqueSharedSlice from); - - SharedSlice(const char *ptr, size_t size) : SharedSlice(Slice(ptr, size)) { - } - - SharedSlice clone() const { - return SharedSlice(impl_.clone()); - } - - Slice as_slice() const { - return impl_.as_slice(); - } - - BufferSlice clone_as_buffer_slice() const; - - operator Slice() const { - return as_slice(); - } - - // like in std::string - const char *data() const { - return as_slice().data(); - } - - char operator[](size_t at) const { - return as_slice()[at]; - } - - bool empty() const { - return size() == 0; - } - - size_t size() const { - return impl_.size(); - } - - // like in std::string - size_t length() const { - return size(); - } - - void clear() { - impl_.clear(); - } - - private: - friend class UniqueSharedSlice; - explicit SharedSlice(Impl impl) : impl_(std::move(impl)) { - } - Impl impl_; -}; - -class UniqueSharedSlice { - using Impl = detail::UnsafeSharedSlice; - - public: - UniqueSharedSlice() = default; - - explicit UniqueSharedSlice(size_t size) : impl_(Impl::create(size)) { - } - explicit UniqueSharedSlice(Slice slice) : impl_(Impl::create(slice)) { - } - - UniqueSharedSlice(const char *ptr, size_t size) : UniqueSharedSlice(Slice(ptr, size)) { - } - explicit UniqueSharedSlice(SharedSlice from) : impl_() { - if (from.impl_.is_unique()) { - impl_ = std::move(from.impl_); - } else { - impl_ = Impl::create(from.as_slice()); - } - } - - UniqueSharedSlice copy() const { - return UniqueSharedSlice(as_slice()); - } - - Slice as_slice() const { - return impl_.as_slice(); - } - - MutableSlice as_mutable_slice() { - return impl_.as_mutable_slice(); - } - - operator Slice() const { - return as_slice(); - } - - // like in std::string - char *data() { - return as_mutable_slice().data(); - } - const char *data() const { - return as_slice().data(); - } - char operator[](size_t at) const { - return as_slice()[at]; - } - - bool empty() const { - return size() == 0; - } - - size_t size() const { - return impl_.size(); - } - - // like in std::string - size_t length() const { - return size(); - } - - void clear() { - impl_.clear(); - } - - private: - friend class SharedSlice; - explicit UniqueSharedSlice(Impl impl) : impl_(std::move(impl)) { - } - Impl impl_; -}; - -inline SharedSlice::SharedSlice(UniqueSharedSlice from) : impl_(std::move(from.impl_)) { -} - -template -class UniqueSliceImpl { - using Impl = detail::UnsafeSharedSlice; - - public: - UniqueSliceImpl() = default; - - explicit UniqueSliceImpl(size_t size) : impl_(Impl::create(size)) { - } - UniqueSliceImpl(size_t size, char c) : impl_(Impl::create(size)) { - std::memset(as_mutable_slice().data(), c, size); - } - explicit UniqueSliceImpl(Slice slice) : impl_(Impl::create(slice)) { - } - - UniqueSliceImpl(const char *ptr, size_t size) : UniqueSliceImpl(Slice(ptr, size)) { - } - - UniqueSliceImpl copy() const { - return UniqueSliceImpl(as_slice()); - } - - Slice as_slice() const { - return impl_.as_slice(); - } - - MutableSlice as_mutable_slice() { - return impl_.as_mutable_slice(); - } - - operator Slice() const { - return as_slice(); - } - - // like in std::string - char *data() { - return as_mutable_slice().data(); - } - const char *data() const { - return as_slice().data(); - } - char operator[](size_t at) const { - return as_slice()[at]; - } - - bool empty() const { - return size() == 0; - } - - size_t size() const { - return impl_.size(); - } - - // like in std::string - size_t length() const { - return size(); - } - - void clear() { - impl_.clear(); - } - - private: - explicit UniqueSliceImpl(Impl impl) : impl_(std::move(impl)) { - } - Impl impl_; -}; - -using UniqueSlice = UniqueSliceImpl; -using SecureString = UniqueSliceImpl; - -inline MutableSlice as_mutable_slice(UniqueSharedSlice &unique_shared_slice) { - return unique_shared_slice.as_mutable_slice(); -} - -inline MutableSlice as_mutable_slice(UniqueSlice &unique_slice) { - return unique_slice.as_mutable_slice(); -} - -inline MutableSlice as_mutable_slice(SecureString &secure_string) { - return secure_string.as_mutable_slice(); -} - -} // namespace td diff --git a/submodules/MtProtoKit/TON/macOS/include/td/utils/Slice-decl.h b/submodules/MtProtoKit/TON/macOS/include/td/utils/Slice-decl.h deleted file mode 100644 index 5f86c33797..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/td/utils/Slice-decl.h +++ /dev/null @@ -1,224 +0,0 @@ -/* - This file is part of TON Blockchain Library. - - TON Blockchain Library is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - TON Blockchain Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with TON Blockchain Library. If not, see . - - Copyright 2017-2019 Telegram Systems LLP -*/ -#pragma once - -#include "td/utils/common.h" - -#include - -namespace td { - -class Slice; - -class MutableSlice { - char *s_; - size_t len_; - - struct private_tag {}; - - public: - MutableSlice(); - MutableSlice(char *s, size_t len); - MutableSlice(unsigned char *s, size_t len); - MutableSlice(string &s); - template - explicit MutableSlice(T s, std::enable_if_t::value, private_tag> = {}); - MutableSlice(char *s, char *t); - MutableSlice(unsigned char *s, unsigned char *t); - template - constexpr MutableSlice(char (&a)[N]) = delete; - - bool empty() const; - size_t size() const; - - MutableSlice &remove_prefix(size_t prefix_len); - MutableSlice &remove_suffix(size_t suffix_len); - MutableSlice &truncate(size_t size); - - MutableSlice copy() const; - - char *data() const; - char *begin() const; - unsigned char *ubegin() const; - char *end() const; - unsigned char *uend() const; - - string str() const; - MutableSlice substr(size_t from) const; - MutableSlice substr(size_t from, size_t size) const; - size_t find(char c) const; - size_t rfind(char c) const; - void fill(char c); - void fill_zero(); - void fill_zero_secure(); - - void copy_from(Slice from); - - char &back(); - char &operator[](size_t i); - - static const size_t npos = string::npos; -}; - -class Slice { - const char *s_; - size_t len_; - - struct private_tag {}; - - public: - Slice(); - Slice(const MutableSlice &other); - Slice(const char *s, size_t len); - Slice(const unsigned char *s, size_t len); - Slice(const string &s); - template - explicit Slice(T s, std::enable_if_t>::value, private_tag> = {}); - template - explicit Slice(T s, std::enable_if_t>::value, private_tag> = {}); - Slice(const char *s, const char *t); - Slice(const unsigned char *s, const unsigned char *t); - - template - constexpr Slice(char (&a)[N]) = delete; - - template - constexpr Slice(const char (&a)[N]) : s_(a), len_(N - 1) { - } - - Slice &operator=(string &&s) = delete; - - template - constexpr Slice &operator=(char (&a)[N]) = delete; - - template - constexpr Slice &operator=(const char (&a)[N]) { - s_ = a; - len_ = N - 1; - return *this; - } - - bool empty() const; - size_t size() const; - - Slice &remove_prefix(size_t prefix_len); - Slice &remove_suffix(size_t suffix_len); - Slice &truncate(size_t size); - - Slice copy() const; - - const char *data() const; - const char *begin() const; - const unsigned char *ubegin() const; - const char *end() const; - const unsigned char *uend() const; - - string str() const; - Slice substr(size_t from) const; - Slice substr(size_t from, size_t size) const; - size_t find(char c) const; - size_t rfind(char c) const; - - char back() const; - char operator[](size_t i) const; - - static const size_t npos = string::npos; -}; - -bool operator==(const Slice &a, const Slice &b); -bool operator!=(const Slice &a, const Slice &b); -bool operator<(const Slice &a, const Slice &b); - -class MutableCSlice : public MutableSlice { - struct private_tag {}; - - MutableSlice &remove_suffix(size_t suffix_len) = delete; - MutableSlice &truncate(size_t size) = delete; - - public: - MutableCSlice() = delete; - MutableCSlice(string &s) : MutableSlice(s) { - } - template - explicit MutableCSlice(T s, std::enable_if_t::value, private_tag> = {}) : MutableSlice(s) { - } - MutableCSlice(char *s, char *t); - - template - constexpr MutableCSlice(char (&a)[N]) = delete; - - const char *c_str() const { - return begin(); - } -}; - -class CSlice : public Slice { - struct private_tag {}; - - Slice &remove_suffix(size_t suffix_len) = delete; - Slice &truncate(size_t size) = delete; - - public: - explicit CSlice(const MutableSlice &other) : Slice(other) { - } - CSlice(const MutableCSlice &other) : Slice(other.begin(), other.size()) { - } - CSlice(const string &s) : Slice(s) { - } - template - explicit CSlice(T s, std::enable_if_t>::value, private_tag> = {}) - : Slice(s) { - } - template - explicit CSlice(T s, std::enable_if_t>::value, private_tag> = {}) - : Slice(s) { - } - CSlice(const char *s, const char *t); - - template - constexpr CSlice(char (&a)[N]) = delete; - - template - constexpr CSlice(const char (&a)[N]) : Slice(a) { - } - - CSlice() : CSlice("") { - } - - CSlice &operator=(string &&s) = delete; - - template - constexpr CSlice &operator=(char (&a)[N]) = delete; - - template - constexpr CSlice &operator=(const char (&a)[N]) { - this->Slice::operator=(a); - return *this; - } - - const char *c_str() const { - return begin(); - } -}; - -struct SliceHash { - std::size_t operator()(Slice slice) const; -}; - -} // namespace td diff --git a/submodules/MtProtoKit/TON/macOS/include/td/utils/Slice.h b/submodules/MtProtoKit/TON/macOS/include/td/utils/Slice.h deleted file mode 100644 index 2bd02c89fe..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/td/utils/Slice.h +++ /dev/null @@ -1,339 +0,0 @@ -/* - This file is part of TON Blockchain Library. - - TON Blockchain Library is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - TON Blockchain Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with TON Blockchain Library. If not, see . - - Copyright 2017-2019 Telegram Systems LLP -*/ -#pragma once - -#include "td/utils/common.h" -#include "td/utils/Slice-decl.h" - -#include -#include - -namespace td { - -inline MutableSlice::MutableSlice() : s_(const_cast("")), len_(0) { -} - -inline MutableSlice::MutableSlice(char *s, size_t len) : s_(s), len_(len) { - CHECK(s_ != nullptr); -} - -inline MutableSlice::MutableSlice(unsigned char *s, size_t len) : s_(reinterpret_cast(s)), len_(len) { - CHECK(s_ != nullptr); -} - -inline MutableSlice::MutableSlice(string &s) : s_(&s[0]), len_(s.size()) { -} - -template -MutableSlice::MutableSlice(T s, std::enable_if_t::value, private_tag>) : s_(s) { - CHECK(s_ != nullptr); - len_ = std::strlen(s_); -} - -inline MutableSlice::MutableSlice(char *s, char *t) : MutableSlice(s, t - s) { -} - -inline MutableSlice::MutableSlice(unsigned char *s, unsigned char *t) : MutableSlice(s, t - s) { -} - -inline size_t MutableSlice::size() const { - return len_; -} - -inline MutableSlice &MutableSlice::remove_prefix(size_t prefix_len) { - CHECK(prefix_len <= len_); - s_ += prefix_len; - len_ -= prefix_len; - return *this; -} -inline MutableSlice &MutableSlice::remove_suffix(size_t suffix_len) { - CHECK(suffix_len <= len_); - len_ -= suffix_len; - return *this; -} - -inline MutableSlice &MutableSlice::truncate(size_t size) { - if (len_ > size) { - len_ = size; - } - return *this; -} - -inline MutableSlice MutableSlice::copy() const { - return *this; -} - -inline bool MutableSlice::empty() const { - return len_ == 0; -} - -inline char *MutableSlice::data() const { - return s_; -} - -inline char *MutableSlice::begin() const { - return s_; -} - -inline unsigned char *MutableSlice::ubegin() const { - return reinterpret_cast(s_); -} - -inline char *MutableSlice::end() const { - return s_ + len_; -} - -inline unsigned char *MutableSlice::uend() const { - return reinterpret_cast(s_) + len_; -} - -inline string MutableSlice::str() const { - return string(begin(), size()); -} - -inline MutableSlice MutableSlice::substr(size_t from) const { - CHECK(from <= len_); - return MutableSlice(s_ + from, len_ - from); -} -inline MutableSlice MutableSlice::substr(size_t from, size_t size) const { - CHECK(from <= len_); - return MutableSlice(s_ + from, min(size, len_ - from)); -} - -inline size_t MutableSlice::find(char c) const { - for (size_t pos = 0; pos < len_; pos++) { - if (s_[pos] == c) { - return pos; - } - } - return npos; -} - -inline size_t MutableSlice::rfind(char c) const { - for (size_t pos = len_; pos-- > 0;) { - if (s_[pos] == c) { - return pos; - } - } - return npos; -} - -inline void MutableSlice::copy_from(Slice from) { - CHECK(size() >= from.size()); - std::memcpy(ubegin(), from.ubegin(), from.size()); -} - -inline char &MutableSlice::back() { - CHECK(1 <= len_); - return s_[len_ - 1]; -} - -inline char &MutableSlice::operator[](size_t i) { - return s_[i]; -} - -inline Slice::Slice() : s_(""), len_(0) { -} - -inline Slice::Slice(const MutableSlice &other) : s_(other.begin()), len_(other.size()) { -} - -inline Slice::Slice(const char *s, size_t len) : s_(s), len_(len) { - CHECK(s_ != nullptr); -} - -inline Slice::Slice(const unsigned char *s, size_t len) : s_(reinterpret_cast(s)), len_(len) { - CHECK(s_ != nullptr); -} - -inline Slice::Slice(const string &s) : s_(s.c_str()), len_(s.size()) { -} - -template -Slice::Slice(T s, std::enable_if_t>::value, private_tag>) : s_(s) { - CHECK(s_ != nullptr); - len_ = std::strlen(s_); -} - -template -Slice::Slice(T s, std::enable_if_t>::value, private_tag>) : s_(s) { - CHECK(s_ != nullptr); - len_ = std::strlen(s_); -} - -inline Slice::Slice(const char *s, const char *t) : s_(s), len_(t - s) { - CHECK(s_ != nullptr); -} - -inline Slice::Slice(const unsigned char *s, const unsigned char *t) - : s_(reinterpret_cast(s)), len_(t - s) { - CHECK(s_ != nullptr); -} - -inline size_t Slice::size() const { - return len_; -} - -inline Slice &Slice::remove_prefix(size_t prefix_len) { - CHECK(prefix_len <= len_); - s_ += prefix_len; - len_ -= prefix_len; - return *this; -} - -inline Slice &Slice::remove_suffix(size_t suffix_len) { - CHECK(suffix_len <= len_); - len_ -= suffix_len; - return *this; -} - -inline Slice &Slice::truncate(size_t size) { - if (len_ > size) { - len_ = size; - } - return *this; -} - -inline Slice Slice::copy() const { - return *this; -} - -inline bool Slice::empty() const { - return len_ == 0; -} - -inline const char *Slice::data() const { - return s_; -} - -inline const char *Slice::begin() const { - return s_; -} - -inline const unsigned char *Slice::ubegin() const { - return reinterpret_cast(s_); -} - -inline const char *Slice::end() const { - return s_ + len_; -} - -inline const unsigned char *Slice::uend() const { - return reinterpret_cast(s_) + len_; -} - -inline string Slice::str() const { - return string(begin(), size()); -} - -inline Slice Slice::substr(size_t from) const { - CHECK(from <= len_); - return Slice(s_ + from, len_ - from); -} -inline Slice Slice::substr(size_t from, size_t size) const { - CHECK(from <= len_); - return Slice(s_ + from, min(size, len_ - from)); -} - -inline size_t Slice::find(char c) const { - for (size_t pos = 0; pos < len_; pos++) { - if (s_[pos] == c) { - return pos; - } - } - return npos; -} - -inline size_t Slice::rfind(char c) const { - for (size_t pos = len_; pos-- > 0;) { - if (s_[pos] == c) { - return pos; - } - } - return npos; -} - -inline char Slice::back() const { - CHECK(1 <= len_); - return s_[len_ - 1]; -} - -inline char Slice::operator[](size_t i) const { - return s_[i]; -} - -inline bool operator==(const Slice &a, const Slice &b) { - return a.size() == b.size() && std::memcmp(a.data(), b.data(), a.size()) == 0; -} - -inline bool operator!=(const Slice &a, const Slice &b) { - return !(a == b); -} - -inline bool operator<(const Slice &a, const Slice &b) { - auto x = std::memcmp(a.data(), b.data(), td::min(a.size(), b.size())); - if (x == 0) { - return a.size() < b.size(); - } - return x < 0; -} - -inline MutableCSlice::MutableCSlice(char *s, char *t) : MutableSlice(s, t) { - CHECK(*t == '\0'); -} - -inline CSlice::CSlice(const char *s, const char *t) : Slice(s, t) { - CHECK(*t == '\0'); -} - -inline std::size_t SliceHash::operator()(Slice slice) const { - // simple string hash - std::size_t result = 0; - constexpr std::size_t MUL = 123456789; - for (auto c : slice) { - result = result * MUL + c; - } - return result; -} - -inline Slice as_slice(Slice slice) { - return slice; -} - -inline MutableSlice as_slice(MutableSlice slice) { - return slice; -} - -inline Slice as_slice(const string &str) { - return str; -} - -inline MutableSlice as_slice(string &str) { - return str; -} - -inline MutableSlice as_mutable_slice(MutableSlice slice) { - return slice; -} - -inline MutableSlice as_mutable_slice(string &str) { - return str; -} - -} // namespace td diff --git a/submodules/MtProtoKit/TON/macOS/include/td/utils/check.h b/submodules/MtProtoKit/TON/macOS/include/td/utils/check.h deleted file mode 100644 index 938323236f..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/td/utils/check.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - This file is part of TON Blockchain Library. - - TON Blockchain Library is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - TON Blockchain Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with TON Blockchain Library. If not, see . - - Copyright 2017-2019 Telegram Systems LLP -*/ -#pragma once - -#define TD_DUMMY_CHECK(condition) ((void)(condition)) - -#define CHECK(condition) \ - if (!(condition)) { \ - ::td::detail::process_check_error(#condition, __FILE__, __LINE__); \ - } - -// clang-format off -#ifdef NDEBUG - #define DCHECK TD_DUMMY_CHECK -#else - #define DCHECK CHECK -#endif -// clang-format on - -#define UNREACHABLE() ::td::detail::process_check_error("Unreachable", __FILE__, __LINE__) - -namespace td { -namespace detail { - -[[noreturn]] void process_check_error(const char *message, const char *file, int line); - -} // namespace detail -} // namespace td diff --git a/submodules/MtProtoKit/TON/macOS/include/td/utils/common.h b/submodules/MtProtoKit/TON/macOS/include/td/utils/common.h deleted file mode 100644 index dcfb767745..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/td/utils/common.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - This file is part of TON Blockchain Library. - - TON Blockchain Library is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - TON Blockchain Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with TON Blockchain Library. If not, see . - - Copyright 2017-2019 Telegram Systems LLP -*/ -#pragma once - -#include "td/utils/config.h" -#include "td/utils/port/platform.h" - -// clang-format off -#if TD_WINDOWS - #ifndef NTDDI_VERSION - #define NTDDI_VERSION 0x06020000 - #endif - #ifndef WINVER - #define WINVER 0x0602 - #endif - #ifndef _WIN32_WINNT - #define _WIN32_WINNT 0x0602 - #endif - #ifndef NOMINMAX - #define NOMINMAX - #endif - #ifndef UNICODE - #define UNICODE - #endif - #ifndef _UNICODE - #define _UNICODE - #endif - #ifndef _CRT_SECURE_NO_WARNINGS - #define _CRT_SECURE_NO_WARNINGS - #endif - - #include - #include - - #include - #include - #undef ERROR -#endif -// clang-format on - -#include "td/utils/check.h" -#include "td/utils/int_types.h" -#include "td/utils/unique_ptr.h" - -#include -#include - -#define TD_DEBUG - -#define TD_DEFINE_STR_IMPL(x) #x -#define TD_DEFINE_STR(x) TD_DEFINE_STR_IMPL(x) -#define TD_CONCAT_IMPL(x, y) x##y -#define TD_CONCAT(x, y) TD_CONCAT_IMPL(x, y) - -// clang-format off -#if TD_WINDOWS - #define TD_DIR_SLASH '\\' -#else - #define TD_DIR_SLASH '/' -#endif -// clang-format on - -#if TD_USE_ASAN -#include -#define TD_LSAN_IGNORE(x) __lsan_ignore_object(x) -#else -#define TD_LSAN_IGNORE(x) (void)(x) -#endif - -namespace td { - -inline bool likely(bool x) { -#if TD_CLANG || TD_GCC || TD_INTEL - return __builtin_expect(x, 1); -#else - return x; -#endif -} - -inline bool unlikely(bool x) { -#if TD_CLANG || TD_GCC || TD_INTEL - return __builtin_expect(x, 0); -#else - return x; -#endif -} - -// replace std::max and std::min to not have to include everywhere -// as a side bonus, accept parameters by value, so constexpr variables aren't required to be instantiated -template -T max(T a, T b) { - return a < b ? b : a; -} - -template -T min(T a, T b) { - return a < b ? a : b; -} - -using string = std::string; - -template -using vector = std::vector; - -struct Unit {}; - -struct Auto { - template - operator ToT() const { - return ToT(); - } -}; - -} // namespace td diff --git a/submodules/MtProtoKit/TON/macOS/include/td/utils/config.h b/submodules/MtProtoKit/TON/macOS/include/td/utils/config.h deleted file mode 100644 index bb671cfa26..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/td/utils/config.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once - -#define TD_HAVE_OPENSSL 1 -#define TD_HAVE_ZLIB 1 -#define TD_HAVE_CRC32C 1 -#define TD_HAVE_COROUTINES 0 -#define TD_HAVE_ABSL 0 -#define TD_HAVE_GETOPT 1 -#define TD_FD_DEBUG 0 diff --git a/submodules/MtProtoKit/TON/macOS/include/td/utils/int_types.h b/submodules/MtProtoKit/TON/macOS/include/td/utils/int_types.h deleted file mode 100644 index b7fb0115cf..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/td/utils/int_types.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - This file is part of TON Blockchain Library. - - TON Blockchain Library is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - TON Blockchain Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with TON Blockchain Library. If not, see . - - Copyright 2017-2019 Telegram Systems LLP -*/ -#pragma once - -#include "td/utils/port/platform.h" - -#include -#include - -namespace td { - -#if !TD_WINDOWS -using size_t = std::size_t; -#endif - -using int8 = std::int8_t; -using int16 = std::int16_t; -using uint16 = std::uint16_t; -using int32 = std::int32_t; -using uint32 = std::uint32_t; -using int64 = std::int64_t; -using uint64 = std::uint64_t; - -static_assert(sizeof(std::uint8_t) == sizeof(unsigned char), "Unsigned char expected to be 8-bit"); -using uint8 = unsigned char; - -#if TD_MSVC -#pragma warning(push) -#pragma warning(disable : 4309) -#endif - -static_assert(static_cast(128) == -128 || static_cast(128) == 128, - "Unexpected cast to char implementation-defined behaviour"); -static_assert(static_cast(256) == 0, "Unexpected cast to char implementation-defined behaviour"); -static_assert(static_cast(-256) == 0, "Unexpected cast to char implementation-defined behaviour"); - -#if TD_MSVC -#pragma warning(pop) -#endif - -} // namespace td diff --git a/submodules/MtProtoKit/TON/macOS/include/td/utils/port/platform.h b/submodules/MtProtoKit/TON/macOS/include/td/utils/port/platform.h deleted file mode 100644 index 821685e29d..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/td/utils/port/platform.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - This file is part of TON Blockchain Library. - - TON Blockchain Library is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - TON Blockchain Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with TON Blockchain Library. If not, see . - - Copyright 2017-2019 Telegram Systems LLP -*/ -#pragma once - -// clang-format off - -/*** Platform macros ***/ -#if defined(_WIN32) || defined(_WINDOWS) // _WINDOWS is defined by CMake - #if defined(__cplusplus_winrt) - #define TD_WINRT 1 - #endif - #if defined(__cplusplus_cli) - #define TD_CLI 1 - #endif - #define TD_WINDOWS 1 -#elif defined(__APPLE__) - #include "TargetConditionals.h" - #if TARGET_OS_IPHONE - // iOS/watchOS/tvOS - #if TARGET_OS_IOS - #define TD_DARWIN_IOS 1 - #elif TARGET_OS_TV - #define TD_DARWIN_TV_OS 1 - #elif TARGET_OS_WATCH - #define TD_DARWIN_WATCH_OS 1 - #else - #warning "Probably unsupported Apple iPhone platform. Feel free to try to compile" - #endif - #elif TARGET_OS_MAC - // Other kinds of macOS - #define TD_DARWIN_MAC 1 - #else - #warning "Probably unsupported Apple platform. Feel free to try to compile" - #endif - #define TD_DARWIN 1 -#elif defined(ANDROID) || defined(__ANDROID__) - #define TD_ANDROID 1 -#elif defined(TIZEN_DEPRECATION) - #define TD_TIZEN 1 -#elif defined(__linux__) - #define TD_LINUX 1 -#elif defined(__FreeBSD__) - #define TD_FREEBSD 1 -#elif defined(__OpenBSD__) - #define TD_OPENBSD 1 -#elif defined(__NetBSD__) - #define TD_NETBSD 1 -#elif defined(__CYGWIN__) - #define TD_CYGWIN 1 -#elif defined(__EMSCRIPTEN__) - #define TD_EMSCRIPTEN 1 -#elif defined(__unix__) // all unices not caught above - #warning "Probably unsupported Unix platform. Feel free to try to compile" - #define TD_CYGWIN 1 -#else - #error "Probably unsupported platform. Feel free to remove the error and try to recompile" -#endif - -#if defined(__ICC) || defined(__INTEL_COMPILER) - #define TD_INTEL 1 -#elif defined(__clang__) - #define TD_CLANG 1 -#elif defined(__GNUC__) || defined(__GNUG__) - #define TD_GCC 1 -#elif defined(_MSC_VER) - #define TD_MSVC 1 -#else - #warning "Probably unsupported compiler. Feel free to try to compile" -#endif - -#if TD_GCC || TD_CLANG || TD_INTEL - #define TD_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) - #define TD_ATTRIBUTE_FORMAT_PRINTF(from, to) __attribute__((format(printf, from, to))) -#else - #define TD_WARN_UNUSED_RESULT - #define TD_ATTRIBUTE_FORMAT_PRINTF(from, to) -#endif - -#if TD_MSVC - #define TD_UNUSED __pragma(warning(suppress : 4100)) -#elif TD_CLANG || TD_GCC || TD_INTEL - #define TD_UNUSED __attribute__((unused)) -#else - #define TD_UNUSED -#endif - -#define TD_HAVE_ATOMIC_SHARED_PTR 1 - -// No atomic operations on std::shared_ptr in libstdc++ before 5.0 -// see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57250 -#ifdef __GLIBCXX__ - #undef TD_HAVE_ATOMIC_SHARED_PTR -#endif - -// Also no atomic operations on std::shared_ptr when clang __has_feature(cxx_atomic) is defined and zero -#if defined(__has_feature) - #if !__has_feature(cxx_atomic) - #undef TD_HAVE_ATOMIC_SHARED_PTR - #endif -#endif - -#ifdef TD_HAVE_ATOMIC_SHARED_PTR // unfortunately we can't check for __GLIBCXX__ here, it is not defined yet - #undef TD_HAVE_ATOMIC_SHARED_PTR -#endif - -#define TD_CONCURRENCY_PAD 128 - -#if !TD_WINDOWS && defined(__SIZEOF_INT128__) -#define TD_HAVE_INT128 1 -#endif - -// clang-format on diff --git a/submodules/MtProtoKit/TON/macOS/include/td/utils/unique_ptr.h b/submodules/MtProtoKit/TON/macOS/include/td/utils/unique_ptr.h deleted file mode 100644 index eed4cb65e2..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/td/utils/unique_ptr.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - This file is part of TON Blockchain Library. - - TON Blockchain Library is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - TON Blockchain Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with TON Blockchain Library. If not, see . - - Copyright 2017-2019 Telegram Systems LLP -*/ -#pragma once - -#include -#include -#include - -namespace td { - -// const-correct and compiler-friendly (g++ RAM and CPU usage 10 times less than for std::unique_ptr) -// replacement for std::unique_ptr -template -class unique_ptr final { - public: - using pointer = T *; - using element_type = T; - - unique_ptr() noexcept = default; - unique_ptr(const unique_ptr &other) = delete; - unique_ptr &operator=(const unique_ptr &other) = delete; - unique_ptr(unique_ptr &&other) noexcept : ptr_(other.release()) { - } - unique_ptr &operator=(unique_ptr &&other) noexcept { - reset(other.release()); - return *this; - } - ~unique_ptr() { - reset(); - } - - unique_ptr(std::nullptr_t) noexcept { - } - explicit unique_ptr(T *ptr) noexcept : ptr_(ptr) { - } - template ::value>> - unique_ptr(unique_ptr &&other) noexcept : ptr_(static_cast(other.release())) { - } - template ::value>> - unique_ptr &operator=(unique_ptr &&other) noexcept { - reset(static_cast(other.release())); - return *this; - } - void reset(T *new_ptr = nullptr) noexcept { - delete ptr_; - ptr_ = new_ptr; - } - T *release() noexcept { - auto res = ptr_; - ptr_ = nullptr; - return res; - } - T *get() noexcept { - return ptr_; - } - const T *get() const noexcept { - return ptr_; - } - T *operator->() noexcept { - return ptr_; - } - const T *operator->() const noexcept { - return ptr_; - } - T &operator*() noexcept { - return *ptr_; - } - const T &operator*() const noexcept { - return *ptr_; - } - explicit operator bool() const noexcept { - return ptr_ != nullptr; - } - - private: - T *ptr_{nullptr}; -}; - -template -bool operator==(std::nullptr_t, const unique_ptr &p) { - return !p; -} -template -bool operator==(const unique_ptr &p, std::nullptr_t) { - return !p; -} -template -bool operator!=(std::nullptr_t, const unique_ptr &p) { - return static_cast(p); -} -template -bool operator!=(const unique_ptr &p, std::nullptr_t) { - return static_cast(p); -} - -template -unique_ptr make_unique(Args &&... args) { - return unique_ptr(new Type(std::forward(args)...)); -} - -} // namespace td diff --git a/submodules/MtProtoKit/TON/macOS/include/tl/TlObject.h b/submodules/MtProtoKit/TON/macOS/include/tl/TlObject.h deleted file mode 100644 index b98996b04f..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/tl/TlObject.h +++ /dev/null @@ -1,177 +0,0 @@ -/* - This file is part of TON Blockchain Library. - - TON Blockchain Library is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - TON Blockchain Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with TON Blockchain Library. If not, see . - - Copyright 2017-2019 Telegram Systems LLP -*/ -#pragma once - -/** - * \file - * Contains declarations of a base class for all TL-objects and some helper methods - */ - -#include -#include -#include -#include - -namespace td { -class TlStorerCalcLength; - -class TlStorerUnsafe; - -class TlStorerToString; -} // namespace td -namespace ton { -/** - * This class is a base class for all TL-objects. - */ -class TlObject { - public: - /** - * Returns identifier uniquely determining TL-type of the object. - */ - virtual std::int32_t get_id() const = 0; - - /** - * Appends object to the storer serializing object to a buffer of fixed length. - * \param[in] s Storer to which object will be appended. - */ - virtual void store(td::TlStorerUnsafe &s) const { - } - - /** - * Appends object to the storer calculating TL-length of the serialized object. - * \param[in] s Storer to which object will be appended. - */ - virtual void store(td::TlStorerCalcLength &s) const { - } - - /** - * Helper function for to_string method. Appends string representation of the object to the storer. - * \param[in] s Storer to which object string representation will be appended. - * \param[in] field_name Object field_name if applicable. - */ - virtual void store(td::TlStorerToString &s, const char *field_name) const = 0; - - /** - * Default constructor. - */ - TlObject() = default; - - /** - * Deleted copy constructor. - */ - TlObject(const TlObject &) = delete; - - /** - * Deleted copy assignment operator. - */ - TlObject &operator=(const TlObject &) = delete; - - /** - * Default move constructor. - */ - TlObject(TlObject &&) = default; - - /** - * Default move assignment operator. - */ - TlObject &operator=(TlObject &&) = default; - - /** - * Virtual desctructor. - */ - virtual ~TlObject() = default; -}; - -/** - * A smart wrapper to store a pointer to a TL-object. - */ -template -using tl_object_ptr = std::unique_ptr; - -/** - * A function to create a dynamically allocated TL-object. Can be treated as an analogue of std::make_unique. - * Examples of usage: - * \code - * auto get_auth_state_request = td::create_tl_object(); - * auto send_message_request = td::create_tl_object(chat_id, 0, false, false, nullptr, - * td::create_tl_object("Hello, world!!!", false, true, {}, nullptr)); - * \endcode - * - * \tparam Type Type of a TL-object to construct. - * \param[in] args Arguments to pass to the object constructor. - * \return Wrapped pointer to the created TL-object. - */ -template -tl_object_ptr create_tl_object(Args &&... args) { - return tl_object_ptr(new Type(std::forward(args)...)); -} - -/** - * A function to downcast a wrapped pointer to TL-object to a pointer to its subclass. - * It is undefined behaviour to cast an object to the wrong type. - * Examples of usage: - * \code - * td::tl_object_ptr auth_state = ...; - * switch (auth_state->get_id()) { - * case td::td_api::authStateWaitPhoneNumber::ID: { - * auto state = td::move_tl_object_as(auth_state); - * // use state - * break; - * } - * case td::td_api::authStateWaitCode::ID: { - * auto state = td::move_tl_object_as(auth_state); - * // use state - * break; - * } - * case td::td_api::authStateWaitPassword::ID: { - * auto state = td::move_tl_object_as(auth_state); - * // use state - * break; - * } - * case td::td_api::authStateOk::ID: { - * auto state = td::move_tl_object_as(auth_state); - * // use state - * break; - * } - * case td::td_api::authStateLoggingOut::ID: { - * auto state = td::move_tl_object_as(auth_state); - * // use state - * break; - * } - * } - * \endcode - * - * \tparam ToT Type of a TL-object to move to. - * \tparam FromT Type of a TL-object to move from, auto-deduced. - * \param[in] from Wrapped pointer to a TL-object. - */ -template -tl_object_ptr move_tl_object_as(tl_object_ptr &from) { - return tl_object_ptr(static_cast(from.release())); -} - -/** - * \overload - */ -template -tl_object_ptr move_tl_object_as(tl_object_ptr &&from) { - return tl_object_ptr(static_cast(from.release())); -} - -} // namespace ton diff --git a/submodules/MtProtoKit/TON/macOS/include/tonlib/Client.h b/submodules/MtProtoKit/TON/macOS/include/tonlib/Client.h deleted file mode 100644 index 42da243ef3..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/tonlib/Client.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - This file is part of TON Blockchain Library. - - TON Blockchain Library is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - TON Blockchain Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with TON Blockchain Library. If not, see . - - Copyright 2017-2019 Telegram Systems LLP -*/ -#pragma once -#include "auto/tl/tonlib_api.h" - -namespace tonlib_api = ton::tonlib_api; - -namespace tonlib { -class Client final { - public: - Client(); - struct Request { - std::uint64_t id; - tonlib_api::object_ptr function; - }; - - void send(Request&& request); - - struct Response { - std::uint64_t id; - tonlib_api::object_ptr object; - }; - - Response receive(double timeout); - - static Response execute(Request&& request); - - ~Client(); - Client(Client&& other); - Client& operator=(Client&& other); - - private: - class Impl; - std::unique_ptr impl_; -}; -} // namespace tonlib diff --git a/submodules/MtProtoKit/TON/macOS/include/tonlib/tonlib_client_json.h b/submodules/MtProtoKit/TON/macOS/include/tonlib/tonlib_client_json.h deleted file mode 100644 index 0e08d78456..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/tonlib/tonlib_client_json.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - This file is part of TON Blockchain Library. - - TON Blockchain Library is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - TON Blockchain Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with TON Blockchain Library. If not, see . - - Copyright 2017-2019 Telegram Systems LLP -*/ -#pragma once - -#include "tonlib/tonlibjson_export.h" - -#ifdef __cplusplus -extern "C" { -#endif - -TONLIBJSON_EXPORT void *tonlib_client_json_create(); - -TONLIBJSON_EXPORT void tonlib_client_json_send(void *client, const char *request); - -TONLIBJSON_EXPORT const char *tonlib_client_json_receive(void *client, double timeout); - -TONLIBJSON_EXPORT const char *tonlib_client_json_execute(void *client, const char *request); - -TONLIBJSON_EXPORT void tonlib_client_json_destroy(void *client); - -#ifdef __cplusplus -} // extern "C" -#endif diff --git a/submodules/MtProtoKit/TON/macOS/include/tonlib/tonlibjson_export.h b/submodules/MtProtoKit/TON/macOS/include/tonlib/tonlibjson_export.h deleted file mode 100644 index 72cf92e451..0000000000 --- a/submodules/MtProtoKit/TON/macOS/include/tonlib/tonlibjson_export.h +++ /dev/null @@ -1,42 +0,0 @@ - -#ifndef TONLIBJSON_EXPORT_H -#define TONLIBJSON_EXPORT_H - -#ifdef TONLIBJSON_STATIC_DEFINE -# define TONLIBJSON_EXPORT -# define TONLIBJSON_NO_EXPORT -#else -# ifndef TONLIBJSON_EXPORT -# ifdef tonlibjson_EXPORTS - /* We are building this library */ -# define TONLIBJSON_EXPORT __attribute__((visibility("default"))) -# else - /* We are using this library */ -# define TONLIBJSON_EXPORT __attribute__((visibility("default"))) -# endif -# endif - -# ifndef TONLIBJSON_NO_EXPORT -# define TONLIBJSON_NO_EXPORT __attribute__((visibility("hidden"))) -# endif -#endif - -#ifndef TONLIBJSON_DEPRECATED -# define TONLIBJSON_DEPRECATED __attribute__ ((__deprecated__)) -#endif - -#ifndef TONLIBJSON_DEPRECATED_EXPORT -# define TONLIBJSON_DEPRECATED_EXPORT TONLIBJSON_EXPORT TONLIBJSON_DEPRECATED -#endif - -#ifndef TONLIBJSON_DEPRECATED_NO_EXPORT -# define TONLIBJSON_DEPRECATED_NO_EXPORT TONLIBJSON_NO_EXPORT TONLIBJSON_DEPRECATED -#endif - -#if 0 /* DEFINE_NO_DEPRECATED */ -# ifndef TONLIBJSON_NO_DEPRECATED -# define TONLIBJSON_NO_DEPRECATED -# endif -#endif - -#endif /* TONLIBJSON_EXPORT_H */ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libadnllite.a b/submodules/MtProtoKit/TON/macOS/lib/libadnllite.a deleted file mode 100644 index 89ef8e6c8c..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libadnllite.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libcrc32c.a b/submodules/MtProtoKit/TON/macOS/lib/libcrc32c.a deleted file mode 100644 index 372a674793..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libcrc32c.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libkeys.a b/submodules/MtProtoKit/TON/macOS/lib/libkeys.a deleted file mode 100644 index 2cc66cafa3..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libkeys.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/liblite-client-common.a b/submodules/MtProtoKit/TON/macOS/lib/liblite-client-common.a deleted file mode 100644 index a2b8cf9498..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/liblite-client-common.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libtdactor.a b/submodules/MtProtoKit/TON/macOS/lib/libtdactor.a deleted file mode 100644 index bd3d8b5c3d..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libtdactor.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libtddb.a b/submodules/MtProtoKit/TON/macOS/lib/libtddb.a deleted file mode 100644 index 64fc662a60..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libtddb.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libtdnet.a b/submodules/MtProtoKit/TON/macOS/lib/libtdnet.a deleted file mode 100644 index c89a057fac..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libtdnet.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libtdutils.a b/submodules/MtProtoKit/TON/macOS/lib/libtdutils.a deleted file mode 100644 index fd2c4bcace..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libtdutils.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libtl-lite-utils.a b/submodules/MtProtoKit/TON/macOS/lib/libtl-lite-utils.a deleted file mode 100644 index 9fcd141f26..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libtl-lite-utils.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libtl-utils.a b/submodules/MtProtoKit/TON/macOS/lib/libtl-utils.a deleted file mode 100644 index e510f4d164..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libtl-utils.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libtl_api.a b/submodules/MtProtoKit/TON/macOS/lib/libtl_api.a deleted file mode 100644 index c0ccbd0c4d..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libtl_api.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libtl_lite_api.a b/submodules/MtProtoKit/TON/macOS/lib/libtl_lite_api.a deleted file mode 100644 index 13fdbfcc80..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libtl_lite_api.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libtl_tonlib_api.a b/submodules/MtProtoKit/TON/macOS/lib/libtl_tonlib_api.a deleted file mode 100644 index 4a2b4a100a..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libtl_tonlib_api.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libton_block.a b/submodules/MtProtoKit/TON/macOS/lib/libton_block.a deleted file mode 100644 index 2a5612b1f5..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libton_block.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libton_crypto.a b/submodules/MtProtoKit/TON/macOS/lib/libton_crypto.a deleted file mode 100644 index a58ca3cc21..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libton_crypto.a and /dev/null differ diff --git a/submodules/MtProtoKit/TON/macOS/lib/libtonlib.a b/submodules/MtProtoKit/TON/macOS/lib/libtonlib.a deleted file mode 100644 index c2453fd167..0000000000 Binary files a/submodules/MtProtoKit/TON/macOS/lib/libtonlib.a and /dev/null differ diff --git a/submodules/MtProtoKit/openssl/OSX/libcrypto.a b/submodules/MtProtoKit/openssl/OSX/libcrypto.a deleted file mode 100644 index 7343d9795f..0000000000 Binary files a/submodules/MtProtoKit/openssl/OSX/libcrypto.a and /dev/null differ diff --git a/submodules/MtProtoKit/openssl/openssl/aes.h b/submodules/MtProtoKit/openssl/openssl/aes.h deleted file mode 100644 index 245c552abd..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/aes.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_AES_H -# define HEADER_AES_H - -# include - -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define AES_ENCRYPT 1 -# define AES_DECRYPT 0 - -/* - * Because array size can't be a const in C, the following two are macros. - * Both sizes are in bytes. - */ -# define AES_MAXNR 14 -# define AES_BLOCK_SIZE 16 - -/* This should be a hidden type, but EVP requires that the size be known */ -struct aes_key_st { -# ifdef AES_LONG - unsigned long rd_key[4 * (AES_MAXNR + 1)]; -# else - unsigned int rd_key[4 * (AES_MAXNR + 1)]; -# endif - int rounds; -}; -typedef struct aes_key_st AES_KEY; - -const char *AES_options(void); - -int AES_set_encrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); -int AES_set_decrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); - -void AES_encrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key); -void AES_decrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key); - -void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key, const int enc); -void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, const int enc); -void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num); -/* NB: the IV is _two_ blocks long */ -void AES_ige_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, const int enc); -/* NB: the IV is _four_ blocks long */ -void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - const AES_KEY *key2, const unsigned char *ivec, - const int enc); - -int AES_wrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, unsigned int inlen); -int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, unsigned int inlen); - - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/asn1.h b/submodules/MtProtoKit/openssl/openssl/asn1.h deleted file mode 100644 index 9522eec18f..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/asn1.h +++ /dev/null @@ -1,886 +0,0 @@ -/* - * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_ASN1_H -# define HEADER_ASN1_H - -# include -# include -# include -# include -# include -# include -# include - -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define V_ASN1_UNIVERSAL 0x00 -# define V_ASN1_APPLICATION 0x40 -# define V_ASN1_CONTEXT_SPECIFIC 0x80 -# define V_ASN1_PRIVATE 0xc0 - -# define V_ASN1_CONSTRUCTED 0x20 -# define V_ASN1_PRIMITIVE_TAG 0x1f -# define V_ASN1_PRIMATIVE_TAG /*compat*/ V_ASN1_PRIMITIVE_TAG - -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ - -# define V_ASN1_UNDEF -1 -/* ASN.1 tag values */ -# define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ -# define V_ASN1_INTEGER 2 -# define V_ASN1_BIT_STRING 3 -# define V_ASN1_OCTET_STRING 4 -# define V_ASN1_NULL 5 -# define V_ASN1_OBJECT 6 -# define V_ASN1_OBJECT_DESCRIPTOR 7 -# define V_ASN1_EXTERNAL 8 -# define V_ASN1_REAL 9 -# define V_ASN1_ENUMERATED 10 -# define V_ASN1_UTF8STRING 12 -# define V_ASN1_SEQUENCE 16 -# define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ -# define V_ASN1_PRINTABLESTRING 19 -# define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ -# define V_ASN1_IA5STRING 22 -# define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ -# define V_ASN1_BMPSTRING 30 - -/* - * NB the constants below are used internally by ASN1_INTEGER - * and ASN1_ENUMERATED to indicate the sign. They are *not* on - * the wire tag values. - */ - -# define V_ASN1_NEG 0x100 -# define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG) -# define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG) - -/* For use with d2i_ASN1_type_bytes() */ -# define B_ASN1_NUMERICSTRING 0x0001 -# define B_ASN1_PRINTABLESTRING 0x0002 -# define B_ASN1_T61STRING 0x0004 -# define B_ASN1_TELETEXSTRING 0x0004 -# define B_ASN1_VIDEOTEXSTRING 0x0008 -# define B_ASN1_IA5STRING 0x0010 -# define B_ASN1_GRAPHICSTRING 0x0020 -# define B_ASN1_ISO64STRING 0x0040 -# define B_ASN1_VISIBLESTRING 0x0040 -# define B_ASN1_GENERALSTRING 0x0080 -# define B_ASN1_UNIVERSALSTRING 0x0100 -# define B_ASN1_OCTET_STRING 0x0200 -# define B_ASN1_BIT_STRING 0x0400 -# define B_ASN1_BMPSTRING 0x0800 -# define B_ASN1_UNKNOWN 0x1000 -# define B_ASN1_UTF8STRING 0x2000 -# define B_ASN1_UTCTIME 0x4000 -# define B_ASN1_GENERALIZEDTIME 0x8000 -# define B_ASN1_SEQUENCE 0x10000 -/* For use with ASN1_mbstring_copy() */ -# define MBSTRING_FLAG 0x1000 -# define MBSTRING_UTF8 (MBSTRING_FLAG) -# define MBSTRING_ASC (MBSTRING_FLAG|1) -# define MBSTRING_BMP (MBSTRING_FLAG|2) -# define MBSTRING_UNIV (MBSTRING_FLAG|4) -# define SMIME_OLDMIME 0x400 -# define SMIME_CRLFEOL 0x800 -# define SMIME_STREAM 0x1000 - struct X509_algor_st; -DEFINE_STACK_OF(X509_ALGOR) - -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ -/* - * This indicates that the ASN1_STRING is not a real value but just a place - * holder for the location where indefinite length constructed data should be - * inserted in the memory buffer - */ -# define ASN1_STRING_FLAG_NDEF 0x010 - -/* - * This flag is used by the CMS code to indicate that a string is not - * complete and is a place holder for content when it had all been accessed. - * The flag will be reset when content has been written to it. - */ - -# define ASN1_STRING_FLAG_CONT 0x020 -/* - * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING - * type. - */ -# define ASN1_STRING_FLAG_MSTRING 0x040 -/* String is embedded and only content should be freed */ -# define ASN1_STRING_FLAG_EMBED 0x080 -/* String should be parsed in RFC 5280's time format */ -# define ASN1_STRING_FLAG_X509_TIME 0x100 -/* This is the base type that holds just about everything :-) */ -struct asn1_string_st { - int length; - int type; - unsigned char *data; - /* - * The value of the following field depends on the type being held. It - * is mostly being used for BIT_STRING so if the input data has a - * non-zero 'unused bits' value, it will be handled correctly - */ - long flags; -}; - -/* - * ASN1_ENCODING structure: this is used to save the received encoding of an - * ASN1 type. This is useful to get round problems with invalid encodings - * which can break signatures. - */ - -typedef struct ASN1_ENCODING_st { - unsigned char *enc; /* DER encoding */ - long len; /* Length of encoding */ - int modified; /* set to 1 if 'enc' is invalid */ -} ASN1_ENCODING; - -/* Used with ASN1 LONG type: if a long is set to this it is omitted */ -# define ASN1_LONG_UNDEF 0x7fffffffL - -# define STABLE_FLAGS_MALLOC 0x01 -/* - * A zero passed to ASN1_STRING_TABLE_new_add for the flags is interpreted - * as "don't change" and STABLE_FLAGS_MALLOC is always set. By setting - * STABLE_FLAGS_MALLOC only we can clear the existing value. Use the alias - * STABLE_FLAGS_CLEAR to reflect this. - */ -# define STABLE_FLAGS_CLEAR STABLE_FLAGS_MALLOC -# define STABLE_NO_MASK 0x02 -# define DIRSTRING_TYPE \ - (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING) -# define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING) - -typedef struct asn1_string_table_st { - int nid; - long minsize; - long maxsize; - unsigned long mask; - unsigned long flags; -} ASN1_STRING_TABLE; - -DEFINE_STACK_OF(ASN1_STRING_TABLE) - -/* size limits: this stuff is taken straight from RFC2459 */ - -# define ub_name 32768 -# define ub_common_name 64 -# define ub_locality_name 128 -# define ub_state_name 128 -# define ub_organization_name 64 -# define ub_organization_unit_name 64 -# define ub_title 64 -# define ub_email_address 128 - -/* - * Declarations for template structures: for full definitions see asn1t.h - */ -typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; -typedef struct ASN1_TLC_st ASN1_TLC; -/* This is just an opaque pointer */ -typedef struct ASN1_VALUE_st ASN1_VALUE; - -/* Declare ASN1 functions: the implement macro in in asn1t.h */ - -# define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type) - -# define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, type) - -# define DECLARE_ASN1_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) - -# define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ - type *d2i_##name(type **a, const unsigned char **in, long len); \ - int i2d_##name(type *a, unsigned char **out); \ - DECLARE_ASN1_ITEM(itname) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \ - type *d2i_##name(type **a, const unsigned char **in, long len); \ - int i2d_##name(const type *a, unsigned char **out); \ - DECLARE_ASN1_ITEM(name) - -# define DECLARE_ASN1_NDEF_FUNCTION(name) \ - int i2d_##name##_NDEF(name *a, unsigned char **out); - -# define DECLARE_ASN1_FUNCTIONS_const(name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS(name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_const(name, name) - -# define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - type *name##_new(void); \ - void name##_free(type *a); - -# define DECLARE_ASN1_PRINT_FUNCTION(stname) \ - DECLARE_ASN1_PRINT_FUNCTION_fname(stname, stname) - -# define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \ - int fname##_print_ctx(BIO *out, stname *x, int indent, \ - const ASN1_PCTX *pctx); - -# define D2I_OF(type) type *(*)(type **,const unsigned char **,long) -# define I2D_OF(type) int (*)(type *,unsigned char **) -# define I2D_OF_const(type) int (*)(const type *,unsigned char **) - -# define CHECKED_D2I_OF(type, d2i) \ - ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0))) -# define CHECKED_I2D_OF(type, i2d) \ - ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0))) -# define CHECKED_NEW_OF(type, xnew) \ - ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0))) -# define CHECKED_PTR_OF(type, p) \ - ((void*) (1 ? p : (type*)0)) -# define CHECKED_PPTR_OF(type, p) \ - ((void**) (1 ? p : (type**)0)) - -# define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long) -# define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(type *,unsigned char **) -# define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type) - -TYPEDEF_D2I2D_OF(void); - -/*- - * The following macros and typedefs allow an ASN1_ITEM - * to be embedded in a structure and referenced. Since - * the ASN1_ITEM pointers need to be globally accessible - * (possibly from shared libraries) they may exist in - * different forms. On platforms that support it the - * ASN1_ITEM structure itself will be globally exported. - * Other platforms will export a function that returns - * an ASN1_ITEM pointer. - * - * To handle both cases transparently the macros below - * should be used instead of hard coding an ASN1_ITEM - * pointer in a structure. - * - * The structure will look like this: - * - * typedef struct SOMETHING_st { - * ... - * ASN1_ITEM_EXP *iptr; - * ... - * } SOMETHING; - * - * It would be initialised as e.g.: - * - * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; - * - * and the actual pointer extracted with: - * - * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); - * - * Finally an ASN1_ITEM pointer can be extracted from an - * appropriate reference with: ASN1_ITEM_rptr(X509). This - * would be used when a function takes an ASN1_ITEM * argument. - * - */ - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* ASN1_ITEM pointer exported type */ -typedef const ASN1_ITEM ASN1_ITEM_EXP; - -/* Macro to obtain ASN1_ITEM pointer from exported type */ -# define ASN1_ITEM_ptr(iptr) (iptr) - -/* Macro to include ASN1_ITEM pointer from base type */ -# define ASN1_ITEM_ref(iptr) (&(iptr##_it)) - -# define ASN1_ITEM_rptr(ref) (&(ref##_it)) - -# define DECLARE_ASN1_ITEM(name) \ - OPENSSL_EXTERN const ASN1_ITEM name##_it; - -# else - -/* - * Platforms that can't easily handle shared global variables are declared as - * functions returning ASN1_ITEM pointers. - */ - -/* ASN1_ITEM pointer exported type */ -typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); - -/* Macro to obtain ASN1_ITEM pointer from exported type */ -# define ASN1_ITEM_ptr(iptr) (iptr()) - -/* Macro to include ASN1_ITEM pointer from base type */ -# define ASN1_ITEM_ref(iptr) (iptr##_it) - -# define ASN1_ITEM_rptr(ref) (ref##_it()) - -# define DECLARE_ASN1_ITEM(name) \ - const ASN1_ITEM * name##_it(void); - -# endif - -/* Parameters used by ASN1_STRING_print_ex() */ - -/* - * These determine which characters to escape: RFC2253 special characters, - * control characters and MSB set characters - */ - -# define ASN1_STRFLGS_ESC_2253 1 -# define ASN1_STRFLGS_ESC_CTRL 2 -# define ASN1_STRFLGS_ESC_MSB 4 - -/* - * This flag determines how we do escaping: normally RC2253 backslash only, - * set this to use backslash and quote. - */ - -# define ASN1_STRFLGS_ESC_QUOTE 8 - -/* These three flags are internal use only. */ - -/* Character is a valid PrintableString character */ -# define CHARTYPE_PRINTABLESTRING 0x10 -/* Character needs escaping if it is the first character */ -# define CHARTYPE_FIRST_ESC_2253 0x20 -/* Character needs escaping if it is the last character */ -# define CHARTYPE_LAST_ESC_2253 0x40 - -/* - * NB the internal flags are safely reused below by flags handled at the top - * level. - */ - -/* - * If this is set we convert all character strings to UTF8 first - */ - -# define ASN1_STRFLGS_UTF8_CONVERT 0x10 - -/* - * If this is set we don't attempt to interpret content: just assume all - * strings are 1 byte per character. This will produce some pretty odd - * looking output! - */ - -# define ASN1_STRFLGS_IGNORE_TYPE 0x20 - -/* If this is set we include the string type in the output */ -# define ASN1_STRFLGS_SHOW_TYPE 0x40 - -/* - * This determines which strings to display and which to 'dump' (hex dump of - * content octets or DER encoding). We can only dump non character strings or - * everything. If we don't dump 'unknown' they are interpreted as character - * strings with 1 octet per character and are subject to the usual escaping - * options. - */ - -# define ASN1_STRFLGS_DUMP_ALL 0x80 -# define ASN1_STRFLGS_DUMP_UNKNOWN 0x100 - -/* - * These determine what 'dumping' does, we can dump the content octets or the - * DER encoding: both use the RFC2253 #XXXXX notation. - */ - -# define ASN1_STRFLGS_DUMP_DER 0x200 - -/* - * This flag specifies that RC2254 escaping shall be performed. - */ -#define ASN1_STRFLGS_ESC_2254 0x400 - -/* - * All the string flags consistent with RFC2253, escaping control characters - * isn't essential in RFC2253 but it is advisable anyway. - */ - -# define ASN1_STRFLGS_RFC2253 (ASN1_STRFLGS_ESC_2253 | \ - ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - ASN1_STRFLGS_UTF8_CONVERT | \ - ASN1_STRFLGS_DUMP_UNKNOWN | \ - ASN1_STRFLGS_DUMP_DER) - -DEFINE_STACK_OF(ASN1_INTEGER) - -DEFINE_STACK_OF(ASN1_GENERALSTRING) - -DEFINE_STACK_OF(ASN1_UTF8STRING) - -typedef struct asn1_type_st { - int type; - union { - char *ptr; - ASN1_BOOLEAN boolean; - ASN1_STRING *asn1_string; - ASN1_OBJECT *object; - ASN1_INTEGER *integer; - ASN1_ENUMERATED *enumerated; - ASN1_BIT_STRING *bit_string; - ASN1_OCTET_STRING *octet_string; - ASN1_PRINTABLESTRING *printablestring; - ASN1_T61STRING *t61string; - ASN1_IA5STRING *ia5string; - ASN1_GENERALSTRING *generalstring; - ASN1_BMPSTRING *bmpstring; - ASN1_UNIVERSALSTRING *universalstring; - ASN1_UTCTIME *utctime; - ASN1_GENERALIZEDTIME *generalizedtime; - ASN1_VISIBLESTRING *visiblestring; - ASN1_UTF8STRING *utf8string; - /* - * set and sequence are left complete and still contain the set or - * sequence bytes - */ - ASN1_STRING *set; - ASN1_STRING *sequence; - ASN1_VALUE *asn1_value; - } value; -} ASN1_TYPE; - -DEFINE_STACK_OF(ASN1_TYPE) - -typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY; - -DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) -DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SET_ANY) - -/* This is used to contain a list of bit names */ -typedef struct BIT_STRING_BITNAME_st { - int bitnum; - const char *lname; - const char *sname; -} BIT_STRING_BITNAME; - -# define B_ASN1_TIME \ - B_ASN1_UTCTIME | \ - B_ASN1_GENERALIZEDTIME - -# define B_ASN1_PRINTABLE \ - B_ASN1_NUMERICSTRING| \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_T61STRING| \ - B_ASN1_IA5STRING| \ - B_ASN1_BIT_STRING| \ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UTF8STRING|\ - B_ASN1_SEQUENCE|\ - B_ASN1_UNKNOWN - -# define B_ASN1_DIRECTORYSTRING \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_TELETEXSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_UTF8STRING - -# define B_ASN1_DISPLAYTEXT \ - B_ASN1_IA5STRING| \ - B_ASN1_VISIBLESTRING| \ - B_ASN1_BMPSTRING|\ - B_ASN1_UTF8STRING - -DECLARE_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) - -int ASN1_TYPE_get(const ASN1_TYPE *a); -void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); -int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); -int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); - -ASN1_TYPE *ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t); -void *ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t); - -ASN1_OBJECT *ASN1_OBJECT_new(void); -void ASN1_OBJECT_free(ASN1_OBJECT *a); -int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp); -ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, - long length); - -DECLARE_ASN1_ITEM(ASN1_OBJECT) - -DEFINE_STACK_OF(ASN1_OBJECT) - -ASN1_STRING *ASN1_STRING_new(void); -void ASN1_STRING_free(ASN1_STRING *a); -void ASN1_STRING_clear_free(ASN1_STRING *a); -int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); -ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a); -ASN1_STRING *ASN1_STRING_type_new(int type); -int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); - /* - * Since this is used to store all sorts of things, via macros, for now, - * make its data void * - */ -int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); -void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); -int ASN1_STRING_length(const ASN1_STRING *x); -void ASN1_STRING_length_set(ASN1_STRING *x, int n); -int ASN1_STRING_type(const ASN1_STRING *x); -DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x)) -const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x); - -DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING) -int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); -int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); -int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n); -int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, - const unsigned char *flags, int flags_len); - -int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, - BIT_STRING_BITNAME *tbl, int indent); -int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl); -int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value, - BIT_STRING_BITNAME *tbl); - -DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER) -ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, - long length); -ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x); -int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); - -DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED) - -int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); -ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); -ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, - int offset_day, long offset_sec); -int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); -int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); - -int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); -ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, - time_t t); -ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, - time_t t, int offset_day, - long offset_sec); -int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); - -int ASN1_TIME_diff(int *pday, int *psec, - const ASN1_TIME *from, const ASN1_TIME *to); - -DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING) -ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); -int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, - const ASN1_OCTET_STRING *b); -int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, - int len); - -DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTF8STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_NULL) -DECLARE_ASN1_FUNCTIONS(ASN1_BMPSTRING) - -int UTF8_getc(const unsigned char *str, int len, unsigned long *val); -int UTF8_putc(unsigned char *str, int len, unsigned long value); - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) -DECLARE_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_T61STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_IA5STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_TIME) - -DECLARE_ASN1_ITEM(ASN1_OCTET_STRING_NDEF) - -ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); -ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, - int offset_day, long offset_sec); -int ASN1_TIME_check(const ASN1_TIME *t); -ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(const ASN1_TIME *t, - ASN1_GENERALIZEDTIME **out); -int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); -int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str); -int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm); -int ASN1_TIME_normalize(ASN1_TIME *s); -int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t); -int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b); - -int i2a_ASN1_INTEGER(BIO *bp, const ASN1_INTEGER *a); -int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); -int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a); -int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); -int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a); -int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); -int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type); -int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a); - -int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); -ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, - const char *sn, const char *ln); - -int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a); -int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r); -int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a); -int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r); - -int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); -long ASN1_INTEGER_get(const ASN1_INTEGER *a); -ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); -BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); - -int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a); -int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r); - - -int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); -long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a); -ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai); -BIGNUM *ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn); - -/* General */ -/* given a string, return the correct type, max is the maximum length */ -int ASN1_PRINTABLE_type(const unsigned char *s, int max); - -unsigned long ASN1_tag2bit(int tag); - -/* SPECIALS */ -int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, - int *pclass, long omax); -int ASN1_check_infinite_end(unsigned char **p, long len); -int ASN1_const_check_infinite_end(const unsigned char **p, long len); -void ASN1_put_object(unsigned char **pp, int constructed, int length, - int tag, int xclass); -int ASN1_put_eoc(unsigned char **pp); -int ASN1_object_size(int constructed, int length, int tag); - -/* Used to implement other functions */ -void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x); - -# define ASN1_dup_of(type,i2d,d2i,x) \ - ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \ - CHECKED_D2I_OF(type, d2i), \ - CHECKED_PTR_OF(type, x))) - -# define ASN1_dup_of_const(type,i2d,d2i,x) \ - ((type*)ASN1_dup(CHECKED_I2D_OF(const type, i2d), \ - CHECKED_D2I_OF(type, d2i), \ - CHECKED_PTR_OF(const type, x))) - -void *ASN1_item_dup(const ASN1_ITEM *it, void *x); - -/* ASN1 alloc/free macros for when a type is only used internally */ - -# define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type)) -# define M_ASN1_free_of(x, type) \ - ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type)) - -# ifndef OPENSSL_NO_STDIO -void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); - -# define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \ - ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); -int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x); - -# define ASN1_i2d_fp_of(type,i2d,out,x) \ - (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(type, x))) - -# define ASN1_i2d_fp_of_const(type,i2d,out,x) \ - (ASN1_i2d_fp(CHECKED_I2D_OF(const type, i2d), \ - out, \ - CHECKED_PTR_OF(const type, x))) - -int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); -int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags); -# endif - -int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in); - -void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); - -# define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \ - ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); -int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x); - -# define ASN1_i2d_bio_of(type,i2d,out,x) \ - (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(type, x))) - -# define ASN1_i2d_bio_of_const(type,i2d,out,x) \ - (ASN1_i2d_bio(CHECKED_I2D_OF(const type, i2d), \ - out, \ - CHECKED_PTR_OF(const type, x))) - -int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); -int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); -int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); -int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a); -int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); -int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags); -int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off); -int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, - unsigned char *buf, int off); -int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); -int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, - int dump); -const char *ASN1_tag2str(int tag); - -/* Used to load and write Netscape format cert */ - -int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); - -int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); -int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len); -int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, - unsigned char *data, int len); -int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, - unsigned char *data, int max_len); - -void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); - -ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, - ASN1_OCTET_STRING **oct); - -void ASN1_STRING_set_default_mask(unsigned long mask); -int ASN1_STRING_set_default_mask_asc(const char *p); -unsigned long ASN1_STRING_get_default_mask(void); -int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask); -int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask, - long minsize, long maxsize); - -ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, - const unsigned char *in, int inlen, - int inform, int nid); -ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); -int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); -void ASN1_STRING_TABLE_cleanup(void); - -/* ASN1 template functions */ - -/* Old API compatible functions */ -ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); -void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); -ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, - long len, const ASN1_ITEM *it); -int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); -int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, - const ASN1_ITEM *it); - -void ASN1_add_oid_module(void); -void ASN1_add_stable_module(void); - -ASN1_TYPE *ASN1_generate_nconf(const char *str, CONF *nconf); -ASN1_TYPE *ASN1_generate_v3(const char *str, X509V3_CTX *cnf); -int ASN1_str2mask(const char *str, unsigned long *pmask); - -/* ASN1 Print flags */ - -/* Indicate missing OPTIONAL fields */ -# define ASN1_PCTX_FLAGS_SHOW_ABSENT 0x001 -/* Mark start and end of SEQUENCE */ -# define ASN1_PCTX_FLAGS_SHOW_SEQUENCE 0x002 -/* Mark start and end of SEQUENCE/SET OF */ -# define ASN1_PCTX_FLAGS_SHOW_SSOF 0x004 -/* Show the ASN1 type of primitives */ -# define ASN1_PCTX_FLAGS_SHOW_TYPE 0x008 -/* Don't show ASN1 type of ANY */ -# define ASN1_PCTX_FLAGS_NO_ANY_TYPE 0x010 -/* Don't show ASN1 type of MSTRINGs */ -# define ASN1_PCTX_FLAGS_NO_MSTRING_TYPE 0x020 -/* Don't show field names in SEQUENCE */ -# define ASN1_PCTX_FLAGS_NO_FIELD_NAME 0x040 -/* Show structure names of each SEQUENCE field */ -# define ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME 0x080 -/* Don't show structure name even at top level */ -# define ASN1_PCTX_FLAGS_NO_STRUCT_NAME 0x100 - -int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, - const ASN1_ITEM *it, const ASN1_PCTX *pctx); -ASN1_PCTX *ASN1_PCTX_new(void); -void ASN1_PCTX_free(ASN1_PCTX *p); -unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); - -ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx)); -void ASN1_SCTX_free(ASN1_SCTX *p); -const ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p); -const ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p); -unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p); -void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data); -void *ASN1_SCTX_get_app_data(ASN1_SCTX *p); - -const BIO_METHOD *BIO_f_asn1(void); - -BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); - -int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const ASN1_ITEM *it); -int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const char *hdr, const ASN1_ITEM *it); -int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, - int ctype_nid, int econt_nid, - STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it); -ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); -int SMIME_crlf_copy(BIO *in, BIO *out, int flags); -int SMIME_text(BIO *in, BIO *out); - -const ASN1_ITEM *ASN1_ITEM_lookup(const char *name); -const ASN1_ITEM *ASN1_ITEM_get(size_t i); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/asn1_mac.h b/submodules/MtProtoKit/openssl/openssl/asn1_mac.h deleted file mode 100644 index 7ac1782a3f..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/asn1_mac.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#error "This file is obsolete; please update your software." diff --git a/submodules/MtProtoKit/openssl/openssl/asn1err.h b/submodules/MtProtoKit/openssl/openssl/asn1err.h deleted file mode 100644 index faed5a5518..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/asn1err.h +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_ASN1ERR_H -# define HEADER_ASN1ERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_ASN1_strings(void); - -/* - * ASN1 function codes. - */ -# define ASN1_F_A2D_ASN1_OBJECT 100 -# define ASN1_F_A2I_ASN1_INTEGER 102 -# define ASN1_F_A2I_ASN1_STRING 103 -# define ASN1_F_APPEND_EXP 176 -# define ASN1_F_ASN1_BIO_INIT 113 -# define ASN1_F_ASN1_BIT_STRING_SET_BIT 183 -# define ASN1_F_ASN1_CB 177 -# define ASN1_F_ASN1_CHECK_TLEN 104 -# define ASN1_F_ASN1_COLLECT 106 -# define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108 -# define ASN1_F_ASN1_D2I_FP 109 -# define ASN1_F_ASN1_D2I_READ_BIO 107 -# define ASN1_F_ASN1_DIGEST 184 -# define ASN1_F_ASN1_DO_ADB 110 -# define ASN1_F_ASN1_DO_LOCK 233 -# define ASN1_F_ASN1_DUP 111 -# define ASN1_F_ASN1_ENC_SAVE 115 -# define ASN1_F_ASN1_EX_C2I 204 -# define ASN1_F_ASN1_FIND_END 190 -# define ASN1_F_ASN1_GENERALIZEDTIME_ADJ 216 -# define ASN1_F_ASN1_GENERATE_V3 178 -# define ASN1_F_ASN1_GET_INT64 224 -# define ASN1_F_ASN1_GET_OBJECT 114 -# define ASN1_F_ASN1_GET_UINT64 225 -# define ASN1_F_ASN1_I2D_BIO 116 -# define ASN1_F_ASN1_I2D_FP 117 -# define ASN1_F_ASN1_ITEM_D2I_FP 206 -# define ASN1_F_ASN1_ITEM_DUP 191 -# define ASN1_F_ASN1_ITEM_EMBED_D2I 120 -# define ASN1_F_ASN1_ITEM_EMBED_NEW 121 -# define ASN1_F_ASN1_ITEM_FLAGS_I2D 118 -# define ASN1_F_ASN1_ITEM_I2D_BIO 192 -# define ASN1_F_ASN1_ITEM_I2D_FP 193 -# define ASN1_F_ASN1_ITEM_PACK 198 -# define ASN1_F_ASN1_ITEM_SIGN 195 -# define ASN1_F_ASN1_ITEM_SIGN_CTX 220 -# define ASN1_F_ASN1_ITEM_UNPACK 199 -# define ASN1_F_ASN1_ITEM_VERIFY 197 -# define ASN1_F_ASN1_MBSTRING_NCOPY 122 -# define ASN1_F_ASN1_OBJECT_NEW 123 -# define ASN1_F_ASN1_OUTPUT_DATA 214 -# define ASN1_F_ASN1_PCTX_NEW 205 -# define ASN1_F_ASN1_PRIMITIVE_NEW 119 -# define ASN1_F_ASN1_SCTX_NEW 221 -# define ASN1_F_ASN1_SIGN 128 -# define ASN1_F_ASN1_STR2TYPE 179 -# define ASN1_F_ASN1_STRING_GET_INT64 227 -# define ASN1_F_ASN1_STRING_GET_UINT64 230 -# define ASN1_F_ASN1_STRING_SET 186 -# define ASN1_F_ASN1_STRING_TABLE_ADD 129 -# define ASN1_F_ASN1_STRING_TO_BN 228 -# define ASN1_F_ASN1_STRING_TYPE_NEW 130 -# define ASN1_F_ASN1_TEMPLATE_EX_D2I 132 -# define ASN1_F_ASN1_TEMPLATE_NEW 133 -# define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 131 -# define ASN1_F_ASN1_TIME_ADJ 217 -# define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134 -# define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135 -# define ASN1_F_ASN1_UTCTIME_ADJ 218 -# define ASN1_F_ASN1_VERIFY 137 -# define ASN1_F_B64_READ_ASN1 209 -# define ASN1_F_B64_WRITE_ASN1 210 -# define ASN1_F_BIO_NEW_NDEF 208 -# define ASN1_F_BITSTR_CB 180 -# define ASN1_F_BN_TO_ASN1_STRING 229 -# define ASN1_F_C2I_ASN1_BIT_STRING 189 -# define ASN1_F_C2I_ASN1_INTEGER 194 -# define ASN1_F_C2I_ASN1_OBJECT 196 -# define ASN1_F_C2I_IBUF 226 -# define ASN1_F_C2I_UINT64_INT 101 -# define ASN1_F_COLLECT_DATA 140 -# define ASN1_F_D2I_ASN1_OBJECT 147 -# define ASN1_F_D2I_ASN1_UINTEGER 150 -# define ASN1_F_D2I_AUTOPRIVATEKEY 207 -# define ASN1_F_D2I_PRIVATEKEY 154 -# define ASN1_F_D2I_PUBLICKEY 155 -# define ASN1_F_DO_BUF 142 -# define ASN1_F_DO_CREATE 124 -# define ASN1_F_DO_DUMP 125 -# define ASN1_F_DO_TCREATE 222 -# define ASN1_F_I2A_ASN1_OBJECT 126 -# define ASN1_F_I2D_ASN1_BIO_STREAM 211 -# define ASN1_F_I2D_ASN1_OBJECT 143 -# define ASN1_F_I2D_DSA_PUBKEY 161 -# define ASN1_F_I2D_EC_PUBKEY 181 -# define ASN1_F_I2D_PRIVATEKEY 163 -# define ASN1_F_I2D_PUBLICKEY 164 -# define ASN1_F_I2D_RSA_PUBKEY 165 -# define ASN1_F_LONG_C2I 166 -# define ASN1_F_NDEF_PREFIX 127 -# define ASN1_F_NDEF_SUFFIX 136 -# define ASN1_F_OID_MODULE_INIT 174 -# define ASN1_F_PARSE_TAGGING 182 -# define ASN1_F_PKCS5_PBE2_SET_IV 167 -# define ASN1_F_PKCS5_PBE2_SET_SCRYPT 231 -# define ASN1_F_PKCS5_PBE_SET 202 -# define ASN1_F_PKCS5_PBE_SET0_ALGOR 215 -# define ASN1_F_PKCS5_PBKDF2_SET 219 -# define ASN1_F_PKCS5_SCRYPT_SET 232 -# define ASN1_F_SMIME_READ_ASN1 212 -# define ASN1_F_SMIME_TEXT 213 -# define ASN1_F_STABLE_GET 138 -# define ASN1_F_STBL_MODULE_INIT 223 -# define ASN1_F_UINT32_C2I 105 -# define ASN1_F_UINT32_NEW 139 -# define ASN1_F_UINT64_C2I 112 -# define ASN1_F_UINT64_NEW 141 -# define ASN1_F_X509_CRL_ADD0_REVOKED 169 -# define ASN1_F_X509_INFO_NEW 170 -# define ASN1_F_X509_NAME_ENCODE 203 -# define ASN1_F_X509_NAME_EX_D2I 158 -# define ASN1_F_X509_NAME_EX_NEW 171 -# define ASN1_F_X509_PKEY_NEW 173 - -/* - * ASN1 reason codes. - */ -# define ASN1_R_ADDING_OBJECT 171 -# define ASN1_R_ASN1_PARSE_ERROR 203 -# define ASN1_R_ASN1_SIG_PARSE_ERROR 204 -# define ASN1_R_AUX_ERROR 100 -# define ASN1_R_BAD_OBJECT_HEADER 102 -# define ASN1_R_BMPSTRING_IS_WRONG_LENGTH 214 -# define ASN1_R_BN_LIB 105 -# define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106 -# define ASN1_R_BUFFER_TOO_SMALL 107 -# define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108 -# define ASN1_R_CONTEXT_NOT_INITIALISED 217 -# define ASN1_R_DATA_IS_WRONG 109 -# define ASN1_R_DECODE_ERROR 110 -# define ASN1_R_DEPTH_EXCEEDED 174 -# define ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 198 -# define ASN1_R_ENCODE_ERROR 112 -# define ASN1_R_ERROR_GETTING_TIME 173 -# define ASN1_R_ERROR_LOADING_SECTION 172 -# define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114 -# define ASN1_R_EXPECTING_AN_INTEGER 115 -# define ASN1_R_EXPECTING_AN_OBJECT 116 -# define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119 -# define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120 -# define ASN1_R_FIELD_MISSING 121 -# define ASN1_R_FIRST_NUM_TOO_LARGE 122 -# define ASN1_R_HEADER_TOO_LONG 123 -# define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175 -# define ASN1_R_ILLEGAL_BOOLEAN 176 -# define ASN1_R_ILLEGAL_CHARACTERS 124 -# define ASN1_R_ILLEGAL_FORMAT 177 -# define ASN1_R_ILLEGAL_HEX 178 -# define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 -# define ASN1_R_ILLEGAL_INTEGER 180 -# define ASN1_R_ILLEGAL_NEGATIVE_VALUE 226 -# define ASN1_R_ILLEGAL_NESTED_TAGGING 181 -# define ASN1_R_ILLEGAL_NULL 125 -# define ASN1_R_ILLEGAL_NULL_VALUE 182 -# define ASN1_R_ILLEGAL_OBJECT 183 -# define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 -# define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 -# define ASN1_R_ILLEGAL_PADDING 221 -# define ASN1_R_ILLEGAL_TAGGED_ANY 127 -# define ASN1_R_ILLEGAL_TIME_VALUE 184 -# define ASN1_R_ILLEGAL_ZERO_CONTENT 222 -# define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 -# define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 -# define ASN1_R_INVALID_BIT_STRING_BITS_LEFT 220 -# define ASN1_R_INVALID_BMPSTRING_LENGTH 129 -# define ASN1_R_INVALID_DIGIT 130 -# define ASN1_R_INVALID_MIME_TYPE 205 -# define ASN1_R_INVALID_MODIFIER 186 -# define ASN1_R_INVALID_NUMBER 187 -# define ASN1_R_INVALID_OBJECT_ENCODING 216 -# define ASN1_R_INVALID_SCRYPT_PARAMETERS 227 -# define ASN1_R_INVALID_SEPARATOR 131 -# define ASN1_R_INVALID_STRING_TABLE_VALUE 218 -# define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 -# define ASN1_R_INVALID_UTF8STRING 134 -# define ASN1_R_INVALID_VALUE 219 -# define ASN1_R_LIST_ERROR 188 -# define ASN1_R_MIME_NO_CONTENT_TYPE 206 -# define ASN1_R_MIME_PARSE_ERROR 207 -# define ASN1_R_MIME_SIG_PARSE_ERROR 208 -# define ASN1_R_MISSING_EOC 137 -# define ASN1_R_MISSING_SECOND_NUMBER 138 -# define ASN1_R_MISSING_VALUE 189 -# define ASN1_R_MSTRING_NOT_UNIVERSAL 139 -# define ASN1_R_MSTRING_WRONG_TAG 140 -# define ASN1_R_NESTED_ASN1_STRING 197 -# define ASN1_R_NESTED_TOO_DEEP 201 -# define ASN1_R_NON_HEX_CHARACTERS 141 -# define ASN1_R_NOT_ASCII_FORMAT 190 -# define ASN1_R_NOT_ENOUGH_DATA 142 -# define ASN1_R_NO_CONTENT_TYPE 209 -# define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 -# define ASN1_R_NO_MULTIPART_BODY_FAILURE 210 -# define ASN1_R_NO_MULTIPART_BOUNDARY 211 -# define ASN1_R_NO_SIG_CONTENT_TYPE 212 -# define ASN1_R_NULL_IS_WRONG_LENGTH 144 -# define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191 -# define ASN1_R_ODD_NUMBER_OF_CHARS 145 -# define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 -# define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 -# define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 -# define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192 -# define ASN1_R_SHORT_LINE 150 -# define ASN1_R_SIG_INVALID_MIME_TYPE 213 -# define ASN1_R_STREAMING_NOT_SUPPORTED 202 -# define ASN1_R_STRING_TOO_LONG 151 -# define ASN1_R_STRING_TOO_SHORT 152 -# define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 -# define ASN1_R_TIME_NOT_ASCII_FORMAT 193 -# define ASN1_R_TOO_LARGE 223 -# define ASN1_R_TOO_LONG 155 -# define ASN1_R_TOO_SMALL 224 -# define ASN1_R_TYPE_NOT_CONSTRUCTED 156 -# define ASN1_R_TYPE_NOT_PRIMITIVE 195 -# define ASN1_R_UNEXPECTED_EOC 159 -# define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 -# define ASN1_R_UNKNOWN_FORMAT 160 -# define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 -# define ASN1_R_UNKNOWN_OBJECT_TYPE 162 -# define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 -# define ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM 199 -# define ASN1_R_UNKNOWN_TAG 194 -# define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 -# define ASN1_R_UNSUPPORTED_CIPHER 228 -# define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 -# define ASN1_R_UNSUPPORTED_TYPE 196 -# define ASN1_R_WRONG_INTEGER_TYPE 225 -# define ASN1_R_WRONG_PUBLIC_KEY_TYPE 200 -# define ASN1_R_WRONG_TAG 168 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/asn1t.h b/submodules/MtProtoKit/openssl/openssl/asn1t.h deleted file mode 100644 index a450ba0d9d..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/asn1t.h +++ /dev/null @@ -1,945 +0,0 @@ -/* - * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_ASN1T_H -# define HEADER_ASN1T_H - -# include -# include -# include - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -/* ASN1 template defines, structures and functions */ - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ -# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr)) - -/* Macros for start and end of ASN1_ITEM definition */ - -# define ASN1_ITEM_start(itname) \ - const ASN1_ITEM itname##_it = { - -# define static_ASN1_ITEM_start(itname) \ - static const ASN1_ITEM itname##_it = { - -# define ASN1_ITEM_end(itname) \ - }; - -# else - -/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ -# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)((iptr)())) - -/* Macros for start and end of ASN1_ITEM definition */ - -# define ASN1_ITEM_start(itname) \ - const ASN1_ITEM * itname##_it(void) \ - { \ - static const ASN1_ITEM local_it = { - -# define static_ASN1_ITEM_start(itname) \ - static ASN1_ITEM_start(itname) - -# define ASN1_ITEM_end(itname) \ - }; \ - return &local_it; \ - } - -# endif - -/* Macros to aid ASN1 template writing */ - -# define ASN1_ITEM_TEMPLATE(tname) \ - static const ASN1_TEMPLATE tname##_item_tt - -# define ASN1_ITEM_TEMPLATE_END(tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_PRIMITIVE,\ - -1,\ - &tname##_item_tt,\ - 0,\ - NULL,\ - 0,\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_ITEM_TEMPLATE_END(tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_PRIMITIVE,\ - -1,\ - &tname##_item_tt,\ - 0,\ - NULL,\ - 0,\ - #tname \ - ASN1_ITEM_end(tname) - -/* This is a ASN1 type which just embeds a template */ - -/*- - * This pair helps declare a SEQUENCE. We can do: - * - * ASN1_SEQUENCE(stname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END(stname) - * - * This will produce an ASN1_ITEM called stname_it - * for a structure called stname. - * - * If you want the same structure but a different - * name then use: - * - * ASN1_SEQUENCE(itname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END_name(stname, itname) - * - * This will create an item called itname_it using - * a structure called stname. - */ - -# define ASN1_SEQUENCE(tname) \ - static const ASN1_TEMPLATE tname##_seq_tt[] - -# define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) - -# define static_ASN1_SEQUENCE_END(stname) static_ASN1_SEQUENCE_END_name(stname, stname) - -# define ASN1_SEQUENCE_END_name(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #tname \ - ASN1_ITEM_end(tname) - -# define static_ASN1_SEQUENCE_END_name(stname, tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_NDEF_SEQUENCE(tname) \ - ASN1_SEQUENCE(tname) - -# define ASN1_NDEF_SEQUENCE_cb(tname, cb) \ - ASN1_SEQUENCE_cb(tname, cb) - -# define ASN1_SEQUENCE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_BROKEN_SEQUENCE(tname) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_BROKEN, 0, 0, 0, 0}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_ref(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), offsetof(tname, lock), cb, 0}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_enc(tname, enc, cb) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_ENCODING, 0, 0, cb, offsetof(tname, enc)}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_NDEF_SEQUENCE_END(tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(tname),\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_NDEF_SEQUENCE_END(tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(tname),\ - #tname \ - ASN1_ITEM_end(tname) - -# define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname, stname) -# define static_ASN1_BROKEN_SEQUENCE_END(stname) \ - static_ASN1_SEQUENCE_END_ref(stname, stname) - -# define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) - -# define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) -# define static_ASN1_SEQUENCE_END_cb(stname, tname) static_ASN1_SEQUENCE_END_ref(stname, tname) - -# define ASN1_SEQUENCE_END_ref(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_SEQUENCE_END_ref(stname, tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -/*- - * This pair helps declare a CHOICE type. We can do: - * - * ASN1_CHOICE(chname) = { - * ... CHOICE options ... - * ASN1_CHOICE_END(chname) - * - * This will produce an ASN1_ITEM called chname_it - * for a structure called chname. The structure - * definition must look like this: - * typedef struct { - * int type; - * union { - * ASN1_SOMETHING *opt1; - * ASN1_SOMEOTHER *opt2; - * } value; - * } chname; - * - * the name of the selector must be 'type'. - * to use an alternative selector name use the - * ASN1_CHOICE_END_selector() version. - */ - -# define ASN1_CHOICE(tname) \ - static const ASN1_TEMPLATE tname##_ch_tt[] - -# define ASN1_CHOICE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ - ASN1_CHOICE(tname) - -# define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) - -# define static_ASN1_CHOICE_END(stname) static_ASN1_CHOICE_END_name(stname, stname) - -# define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) - -# define static_ASN1_CHOICE_END_name(stname, tname) static_ASN1_CHOICE_END_selector(stname, tname, type) - -# define ASN1_CHOICE_END_selector(stname, tname, selname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define static_ASN1_CHOICE_END_selector(stname, tname, selname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_CHOICE_END_cb(stname, tname, selname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -/* This helps with the template wrapper form of ASN1_ITEM */ - -# define ASN1_EX_TEMPLATE_TYPE(flags, tag, name, type) { \ - (flags), (tag), 0,\ - #name, ASN1_ITEM_ref(type) } - -/* These help with SEQUENCE or CHOICE components */ - -/* used to declare other types */ - -# define ASN1_EX_TYPE(flags, tag, stname, field, type) { \ - (flags), (tag), offsetof(stname, field),\ - #field, ASN1_ITEM_ref(type) } - -/* implicit and explicit helper macros */ - -# define ASN1_IMP_EX(stname, field, type, tag, ex) \ - ASN1_EX_TYPE(ASN1_TFLG_IMPLICIT | (ex), tag, stname, field, type) - -# define ASN1_EXP_EX(stname, field, type, tag, ex) \ - ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | (ex), tag, stname, field, type) - -/* Any defined by macros: the field used is in the table itself */ - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION -# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } -# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } -# else -# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, tblname##_adb } -# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, tblname##_adb } -# endif -/* Plain simple type */ -# define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type) -/* Embedded simple type */ -# define ASN1_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_EMBED,0, stname, field, type) - -/* OPTIONAL simple type */ -# define ASN1_OPT(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL, 0, stname, field, type) -# define ASN1_OPT_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED, 0, stname, field, type) - -/* IMPLICIT tagged simple type */ -# define ASN1_IMP(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, 0) -# define ASN1_IMP_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) - -/* IMPLICIT tagged OPTIONAL simple type */ -# define ASN1_IMP_OPT(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) -# define ASN1_IMP_OPT_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) - -/* Same as above but EXPLICIT */ - -# define ASN1_EXP(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, 0) -# define ASN1_EXP_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) -# define ASN1_EXP_OPT(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) -# define ASN1_EXP_OPT_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) - -/* SEQUENCE OF type */ -# define ASN1_SEQUENCE_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, stname, field, type) - -/* OPTIONAL SEQUENCE OF */ -# define ASN1_SEQUENCE_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Same as above but for SET OF */ - -# define ASN1_SET_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF, 0, stname, field, type) - -# define ASN1_SET_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Finally compound types of SEQUENCE, SET, IMPLICIT, EXPLICIT and OPTIONAL */ - -# define ASN1_IMP_SET_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -# define ASN1_EXP_SET_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -# define ASN1_IMP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_EXP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_IMP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -# define ASN1_IMP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_EXP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -# define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -/* EXPLICIT using indefinite length constructed form */ -# define ASN1_NDEF_EXP(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF) - -/* EXPLICIT OPTIONAL using indefinite length constructed form */ -# define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF) - -/* Macros for the ASN1_ADB structure */ - -# define ASN1_ADB(name) \ - static const ASN1_ADB_TABLE name##_adbtbl[] - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \ - ;\ - static const ASN1_ADB name##_adb = {\ - flags,\ - offsetof(name, field),\ - adb_cb,\ - name##_adbtbl,\ - sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ - def,\ - none\ - } - -# else - -# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \ - ;\ - static const ASN1_ITEM *name##_adb(void) \ - { \ - static const ASN1_ADB internal_adb = \ - {\ - flags,\ - offsetof(name, field),\ - adb_cb,\ - name##_adbtbl,\ - sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ - def,\ - none\ - }; \ - return (const ASN1_ITEM *) &internal_adb; \ - } \ - void dummy_function(void) - -# endif - -# define ADB_ENTRY(val, template) {val, template} - -# define ASN1_ADB_TEMPLATE(name) \ - static const ASN1_TEMPLATE name##_tt - -/* - * This is the ASN1 template structure that defines a wrapper round the - * actual type. It determines the actual position of the field in the value - * structure, various flags such as OPTIONAL and the field name. - */ - -struct ASN1_TEMPLATE_st { - unsigned long flags; /* Various flags */ - long tag; /* tag, not used if no tagging */ - unsigned long offset; /* Offset of this field in structure */ - const char *field_name; /* Field name */ - ASN1_ITEM_EXP *item; /* Relevant ASN1_ITEM or ASN1_ADB */ -}; - -/* Macro to extract ASN1_ITEM and ASN1_ADB pointer from ASN1_TEMPLATE */ - -# define ASN1_TEMPLATE_item(t) (t->item_ptr) -# define ASN1_TEMPLATE_adb(t) (t->item_ptr) - -typedef struct ASN1_ADB_TABLE_st ASN1_ADB_TABLE; -typedef struct ASN1_ADB_st ASN1_ADB; - -struct ASN1_ADB_st { - unsigned long flags; /* Various flags */ - unsigned long offset; /* Offset of selector field */ - int (*adb_cb)(long *psel); /* Application callback */ - const ASN1_ADB_TABLE *tbl; /* Table of possible types */ - long tblcount; /* Number of entries in tbl */ - const ASN1_TEMPLATE *default_tt; /* Type to use if no match */ - const ASN1_TEMPLATE *null_tt; /* Type to use if selector is NULL */ -}; - -struct ASN1_ADB_TABLE_st { - long value; /* NID for an object or value for an int */ - const ASN1_TEMPLATE tt; /* item for this value */ -}; - -/* template flags */ - -/* Field is optional */ -# define ASN1_TFLG_OPTIONAL (0x1) - -/* Field is a SET OF */ -# define ASN1_TFLG_SET_OF (0x1 << 1) - -/* Field is a SEQUENCE OF */ -# define ASN1_TFLG_SEQUENCE_OF (0x2 << 1) - -/* - * Special case: this refers to a SET OF that will be sorted into DER order - * when encoded *and* the corresponding STACK will be modified to match the - * new order. - */ -# define ASN1_TFLG_SET_ORDER (0x3 << 1) - -/* Mask for SET OF or SEQUENCE OF */ -# define ASN1_TFLG_SK_MASK (0x3 << 1) - -/* - * These flags mean the tag should be taken from the tag field. If EXPLICIT - * then the underlying type is used for the inner tag. - */ - -/* IMPLICIT tagging */ -# define ASN1_TFLG_IMPTAG (0x1 << 3) - -/* EXPLICIT tagging, inner tag from underlying type */ -# define ASN1_TFLG_EXPTAG (0x2 << 3) - -# define ASN1_TFLG_TAG_MASK (0x3 << 3) - -/* context specific IMPLICIT */ -# define ASN1_TFLG_IMPLICIT (ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT) - -/* context specific EXPLICIT */ -# define ASN1_TFLG_EXPLICIT (ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT) - -/* - * If tagging is in force these determine the type of tag to use. Otherwise - * the tag is determined by the underlying type. These values reflect the - * actual octet format. - */ - -/* Universal tag */ -# define ASN1_TFLG_UNIVERSAL (0x0<<6) -/* Application tag */ -# define ASN1_TFLG_APPLICATION (0x1<<6) -/* Context specific tag */ -# define ASN1_TFLG_CONTEXT (0x2<<6) -/* Private tag */ -# define ASN1_TFLG_PRIVATE (0x3<<6) - -# define ASN1_TFLG_TAG_CLASS (0x3<<6) - -/* - * These are for ANY DEFINED BY type. In this case the 'item' field points to - * an ASN1_ADB structure which contains a table of values to decode the - * relevant type - */ - -# define ASN1_TFLG_ADB_MASK (0x3<<8) - -# define ASN1_TFLG_ADB_OID (0x1<<8) - -# define ASN1_TFLG_ADB_INT (0x1<<9) - -/* - * This flag when present in a SEQUENCE OF, SET OF or EXPLICIT causes - * indefinite length constructed encoding to be used if required. - */ - -# define ASN1_TFLG_NDEF (0x1<<11) - -/* Field is embedded and not a pointer */ -# define ASN1_TFLG_EMBED (0x1 << 12) - -/* This is the actual ASN1 item itself */ - -struct ASN1_ITEM_st { - char itype; /* The item type, primitive, SEQUENCE, CHOICE - * or extern */ - long utype; /* underlying type */ - const ASN1_TEMPLATE *templates; /* If SEQUENCE or CHOICE this contains - * the contents */ - long tcount; /* Number of templates if SEQUENCE or CHOICE */ - const void *funcs; /* functions that handle this type */ - long size; /* Structure size (usually) */ - const char *sname; /* Structure name */ -}; - -/*- - * These are values for the itype field and - * determine how the type is interpreted. - * - * For PRIMITIVE types the underlying type - * determines the behaviour if items is NULL. - * - * Otherwise templates must contain a single - * template and the type is treated in the - * same way as the type specified in the template. - * - * For SEQUENCE types the templates field points - * to the members, the size field is the - * structure size. - * - * For CHOICE types the templates field points - * to each possible member (typically a union) - * and the 'size' field is the offset of the - * selector. - * - * The 'funcs' field is used for application - * specific functions. - * - * The EXTERN type uses a new style d2i/i2d. - * The new style should be used where possible - * because it avoids things like the d2i IMPLICIT - * hack. - * - * MSTRING is a multiple string type, it is used - * for a CHOICE of character strings where the - * actual strings all occupy an ASN1_STRING - * structure. In this case the 'utype' field - * has a special meaning, it is used as a mask - * of acceptable types using the B_ASN1 constants. - * - * NDEF_SEQUENCE is the same as SEQUENCE except - * that it will use indefinite length constructed - * encoding if requested. - * - */ - -# define ASN1_ITYPE_PRIMITIVE 0x0 - -# define ASN1_ITYPE_SEQUENCE 0x1 - -# define ASN1_ITYPE_CHOICE 0x2 - -# define ASN1_ITYPE_EXTERN 0x4 - -# define ASN1_ITYPE_MSTRING 0x5 - -# define ASN1_ITYPE_NDEF_SEQUENCE 0x6 - -/* - * Cache for ASN1 tag and length, so we don't keep re-reading it for things - * like CHOICE - */ - -struct ASN1_TLC_st { - char valid; /* Values below are valid */ - int ret; /* return value */ - long plen; /* length */ - int ptag; /* class value */ - int pclass; /* class value */ - int hdrlen; /* header length */ -}; - -/* Typedefs for ASN1 function pointers */ -typedef int ASN1_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx); - -typedef int ASN1_ex_i2d(ASN1_VALUE **pval, unsigned char **out, - const ASN1_ITEM *it, int tag, int aclass); -typedef int ASN1_ex_new_func(ASN1_VALUE **pval, const ASN1_ITEM *it); -typedef void ASN1_ex_free_func(ASN1_VALUE **pval, const ASN1_ITEM *it); - -typedef int ASN1_ex_print_func(BIO *out, ASN1_VALUE **pval, - int indent, const char *fname, - const ASN1_PCTX *pctx); - -typedef int ASN1_primitive_i2c(ASN1_VALUE **pval, unsigned char *cont, - int *putype, const ASN1_ITEM *it); -typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont, - int len, int utype, char *free_cont, - const ASN1_ITEM *it); -typedef int ASN1_primitive_print(BIO *out, ASN1_VALUE **pval, - const ASN1_ITEM *it, int indent, - const ASN1_PCTX *pctx); - -typedef struct ASN1_EXTERN_FUNCS_st { - void *app_data; - ASN1_ex_new_func *asn1_ex_new; - ASN1_ex_free_func *asn1_ex_free; - ASN1_ex_free_func *asn1_ex_clear; - ASN1_ex_d2i *asn1_ex_d2i; - ASN1_ex_i2d *asn1_ex_i2d; - ASN1_ex_print_func *asn1_ex_print; -} ASN1_EXTERN_FUNCS; - -typedef struct ASN1_PRIMITIVE_FUNCS_st { - void *app_data; - unsigned long flags; - ASN1_ex_new_func *prim_new; - ASN1_ex_free_func *prim_free; - ASN1_ex_free_func *prim_clear; - ASN1_primitive_c2i *prim_c2i; - ASN1_primitive_i2c *prim_i2c; - ASN1_primitive_print *prim_print; -} ASN1_PRIMITIVE_FUNCS; - -/* - * This is the ASN1_AUX structure: it handles various miscellaneous - * requirements. For example the use of reference counts and an informational - * callback. The "informational callback" is called at various points during - * the ASN1 encoding and decoding. It can be used to provide minor - * customisation of the structures used. This is most useful where the - * supplied routines *almost* do the right thing but need some extra help at - * a few points. If the callback returns zero then it is assumed a fatal - * error has occurred and the main operation should be abandoned. If major - * changes in the default behaviour are required then an external type is - * more appropriate. - */ - -typedef int ASN1_aux_cb(int operation, ASN1_VALUE **in, const ASN1_ITEM *it, - void *exarg); - -typedef struct ASN1_AUX_st { - void *app_data; - int flags; - int ref_offset; /* Offset of reference value */ - int ref_lock; /* Lock type to use */ - ASN1_aux_cb *asn1_cb; - int enc_offset; /* Offset of ASN1_ENCODING structure */ -} ASN1_AUX; - -/* For print related callbacks exarg points to this structure */ -typedef struct ASN1_PRINT_ARG_st { - BIO *out; - int indent; - const ASN1_PCTX *pctx; -} ASN1_PRINT_ARG; - -/* For streaming related callbacks exarg points to this structure */ -typedef struct ASN1_STREAM_ARG_st { - /* BIO to stream through */ - BIO *out; - /* BIO with filters appended */ - BIO *ndef_bio; - /* Streaming I/O boundary */ - unsigned char **boundary; -} ASN1_STREAM_ARG; - -/* Flags in ASN1_AUX */ - -/* Use a reference count */ -# define ASN1_AFLG_REFCOUNT 1 -/* Save the encoding of structure (useful for signatures) */ -# define ASN1_AFLG_ENCODING 2 -/* The Sequence length is invalid */ -# define ASN1_AFLG_BROKEN 4 - -/* operation values for asn1_cb */ - -# define ASN1_OP_NEW_PRE 0 -# define ASN1_OP_NEW_POST 1 -# define ASN1_OP_FREE_PRE 2 -# define ASN1_OP_FREE_POST 3 -# define ASN1_OP_D2I_PRE 4 -# define ASN1_OP_D2I_POST 5 -# define ASN1_OP_I2D_PRE 6 -# define ASN1_OP_I2D_POST 7 -# define ASN1_OP_PRINT_PRE 8 -# define ASN1_OP_PRINT_POST 9 -# define ASN1_OP_STREAM_PRE 10 -# define ASN1_OP_STREAM_POST 11 -# define ASN1_OP_DETACHED_PRE 12 -# define ASN1_OP_DETACHED_POST 13 - -/* Macro to implement a primitive type */ -# define IMPLEMENT_ASN1_TYPE(stname) IMPLEMENT_ASN1_TYPE_ex(stname, stname, 0) -# define IMPLEMENT_ASN1_TYPE_ex(itname, vname, ex) \ - ASN1_ITEM_start(itname) \ - ASN1_ITYPE_PRIMITIVE, V_##vname, NULL, 0, NULL, ex, #itname \ - ASN1_ITEM_end(itname) - -/* Macro to implement a multi string type */ -# define IMPLEMENT_ASN1_MSTRING(itname, mask) \ - ASN1_ITEM_start(itname) \ - ASN1_ITYPE_MSTRING, mask, NULL, 0, NULL, sizeof(ASN1_STRING), #itname \ - ASN1_ITEM_end(itname) - -# define IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs) \ - ASN1_ITEM_start(sname) \ - ASN1_ITYPE_EXTERN, \ - tag, \ - NULL, \ - 0, \ - &fptrs, \ - 0, \ - #sname \ - ASN1_ITEM_end(sname) - -/* Macro to implement standard functions in terms of ASN1_ITEM structures */ - -# define IMPLEMENT_ASN1_FUNCTIONS(stname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_FUNCTIONS_name(stname, itname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, itname) - -# define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \ - IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname) - -# define IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(static, stname, stname, stname) - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname) \ - pre stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - pre void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \ - stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -# define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) - -# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ - } \ - int i2d_##fname(stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ - } - -# define IMPLEMENT_ASN1_NDEF_FUNCTION(stname) \ - int i2d_##stname##_NDEF(stname *a, unsigned char **out) \ - { \ - return ASN1_item_ndef_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\ - } - -# define IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(stname) \ - static stname *d2i_##stname(stname **a, \ - const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, \ - ASN1_ITEM_rptr(stname)); \ - } \ - static int i2d_##stname(stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((ASN1_VALUE *)a, out, \ - ASN1_ITEM_rptr(stname)); \ - } - -/* - * This includes evil casts to remove const: they will go away when full ASN1 - * constification is done. - */ -# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ - stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ - } \ - int i2d_##fname(const stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ - } - -# define IMPLEMENT_ASN1_DUP_FUNCTION(stname) \ - stname * stname##_dup(stname *x) \ - { \ - return ASN1_item_dup(ASN1_ITEM_rptr(stname), x); \ - } - -# define IMPLEMENT_ASN1_PRINT_FUNCTION(stname) \ - IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, itname, fname) \ - int fname##_print_ctx(BIO *out, stname *x, int indent, \ - const ASN1_PCTX *pctx) \ - { \ - return ASN1_item_print(out, (ASN1_VALUE *)x, indent, \ - ASN1_ITEM_rptr(itname), pctx); \ - } - -# define IMPLEMENT_ASN1_FUNCTIONS_const(name) \ - IMPLEMENT_ASN1_FUNCTIONS_const_fname(name, name, name) - -# define IMPLEMENT_ASN1_FUNCTIONS_const_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) - -/* external definitions for primitive types */ - -DECLARE_ASN1_ITEM(ASN1_BOOLEAN) -DECLARE_ASN1_ITEM(ASN1_TBOOLEAN) -DECLARE_ASN1_ITEM(ASN1_FBOOLEAN) -DECLARE_ASN1_ITEM(ASN1_SEQUENCE) -DECLARE_ASN1_ITEM(CBIGNUM) -DECLARE_ASN1_ITEM(BIGNUM) -DECLARE_ASN1_ITEM(INT32) -DECLARE_ASN1_ITEM(ZINT32) -DECLARE_ASN1_ITEM(UINT32) -DECLARE_ASN1_ITEM(ZUINT32) -DECLARE_ASN1_ITEM(INT64) -DECLARE_ASN1_ITEM(ZINT64) -DECLARE_ASN1_ITEM(UINT64) -DECLARE_ASN1_ITEM(ZUINT64) - -# if OPENSSL_API_COMPAT < 0x10200000L -/* - * LONG and ZLONG are strongly discouraged for use as stored data, as the - * underlying C type (long) differs in size depending on the architecture. - * They are designed with 32-bit longs in mind. - */ -DECLARE_ASN1_ITEM(LONG) -DECLARE_ASN1_ITEM(ZLONG) -# endif - -DEFINE_STACK_OF(ASN1_VALUE) - -/* Functions used internally by the ASN1 code */ - -int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it); -void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it); - -int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx); - -int ASN1_item_ex_i2d(ASN1_VALUE **pval, unsigned char **out, - const ASN1_ITEM *it, int tag, int aclass); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/async.h b/submodules/MtProtoKit/openssl/openssl/async.h deleted file mode 100644 index 7052b89052..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/async.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include - -#ifndef HEADER_ASYNC_H -# define HEADER_ASYNC_H - -#if defined(_WIN32) -# if defined(BASETYPES) || defined(_WINDEF_H) -/* application has to include to use this */ -#define OSSL_ASYNC_FD HANDLE -#define OSSL_BAD_ASYNC_FD INVALID_HANDLE_VALUE -# endif -#else -#define OSSL_ASYNC_FD int -#define OSSL_BAD_ASYNC_FD -1 -#endif -# include - - -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct async_job_st ASYNC_JOB; -typedef struct async_wait_ctx_st ASYNC_WAIT_CTX; - -#define ASYNC_ERR 0 -#define ASYNC_NO_JOBS 1 -#define ASYNC_PAUSE 2 -#define ASYNC_FINISH 3 - -int ASYNC_init_thread(size_t max_size, size_t init_size); -void ASYNC_cleanup_thread(void); - -#ifdef OSSL_ASYNC_FD -ASYNC_WAIT_CTX *ASYNC_WAIT_CTX_new(void); -void ASYNC_WAIT_CTX_free(ASYNC_WAIT_CTX *ctx); -int ASYNC_WAIT_CTX_set_wait_fd(ASYNC_WAIT_CTX *ctx, const void *key, - OSSL_ASYNC_FD fd, - void *custom_data, - void (*cleanup)(ASYNC_WAIT_CTX *, const void *, - OSSL_ASYNC_FD, void *)); -int ASYNC_WAIT_CTX_get_fd(ASYNC_WAIT_CTX *ctx, const void *key, - OSSL_ASYNC_FD *fd, void **custom_data); -int ASYNC_WAIT_CTX_get_all_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *fd, - size_t *numfds); -int ASYNC_WAIT_CTX_get_changed_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *addfd, - size_t *numaddfds, OSSL_ASYNC_FD *delfd, - size_t *numdelfds); -int ASYNC_WAIT_CTX_clear_fd(ASYNC_WAIT_CTX *ctx, const void *key); -#endif - -int ASYNC_is_capable(void); - -int ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *ctx, int *ret, - int (*func)(void *), void *args, size_t size); -int ASYNC_pause_job(void); - -ASYNC_JOB *ASYNC_get_current_job(void); -ASYNC_WAIT_CTX *ASYNC_get_wait_ctx(ASYNC_JOB *job); -void ASYNC_block_pause(void); -void ASYNC_unblock_pause(void); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/asyncerr.h b/submodules/MtProtoKit/openssl/openssl/asyncerr.h deleted file mode 100644 index 91afbbb2f5..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/asyncerr.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_ASYNCERR_H -# define HEADER_ASYNCERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_ASYNC_strings(void); - -/* - * ASYNC function codes. - */ -# define ASYNC_F_ASYNC_CTX_NEW 100 -# define ASYNC_F_ASYNC_INIT_THREAD 101 -# define ASYNC_F_ASYNC_JOB_NEW 102 -# define ASYNC_F_ASYNC_PAUSE_JOB 103 -# define ASYNC_F_ASYNC_START_FUNC 104 -# define ASYNC_F_ASYNC_START_JOB 105 -# define ASYNC_F_ASYNC_WAIT_CTX_SET_WAIT_FD 106 - -/* - * ASYNC reason codes. - */ -# define ASYNC_R_FAILED_TO_SET_POOL 101 -# define ASYNC_R_FAILED_TO_SWAP_CONTEXT 102 -# define ASYNC_R_INIT_FAILED 105 -# define ASYNC_R_INVALID_POOL_SIZE 103 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/bio.h b/submodules/MtProtoKit/openssl/openssl/bio.h deleted file mode 100644 index e1fddfb796..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/bio.h +++ /dev/null @@ -1,800 +0,0 @@ -/* - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_BIO_H -# define HEADER_BIO_H - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* There are the classes of BIOs */ -# define BIO_TYPE_DESCRIPTOR 0x0100 /* socket, fd, connect or accept */ -# define BIO_TYPE_FILTER 0x0200 -# define BIO_TYPE_SOURCE_SINK 0x0400 - -/* These are the 'types' of BIOs */ -# define BIO_TYPE_NONE 0 -# define BIO_TYPE_MEM ( 1|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_FILE ( 2|BIO_TYPE_SOURCE_SINK) - -# define BIO_TYPE_FD ( 4|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_SOCKET ( 5|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_NULL ( 6|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_SSL ( 7|BIO_TYPE_FILTER) -# define BIO_TYPE_MD ( 8|BIO_TYPE_FILTER) -# define BIO_TYPE_BUFFER ( 9|BIO_TYPE_FILTER) -# define BIO_TYPE_CIPHER (10|BIO_TYPE_FILTER) -# define BIO_TYPE_BASE64 (11|BIO_TYPE_FILTER) -# define BIO_TYPE_CONNECT (12|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_ACCEPT (13|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) - -# define BIO_TYPE_NBIO_TEST (16|BIO_TYPE_FILTER)/* server proxy BIO */ -# define BIO_TYPE_NULL_FILTER (17|BIO_TYPE_FILTER) -# define BIO_TYPE_BIO (19|BIO_TYPE_SOURCE_SINK)/* half a BIO pair */ -# define BIO_TYPE_LINEBUFFER (20|BIO_TYPE_FILTER) -# define BIO_TYPE_DGRAM (21|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_ASN1 (22|BIO_TYPE_FILTER) -# define BIO_TYPE_COMP (23|BIO_TYPE_FILTER) -# ifndef OPENSSL_NO_SCTP -# define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# endif - -#define BIO_TYPE_START 128 - -/* - * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. - * BIO_set_fp(in,stdin,BIO_NOCLOSE); - */ -# define BIO_NOCLOSE 0x00 -# define BIO_CLOSE 0x01 - -/* - * These are used in the following macros and are passed to BIO_ctrl() - */ -# define BIO_CTRL_RESET 1/* opt - rewind/zero etc */ -# define BIO_CTRL_EOF 2/* opt - are we at the eof */ -# define BIO_CTRL_INFO 3/* opt - extra tit-bits */ -# define BIO_CTRL_SET 4/* man - set the 'IO' type */ -# define BIO_CTRL_GET 5/* man - get the 'IO' type */ -# define BIO_CTRL_PUSH 6/* opt - internal, used to signify change */ -# define BIO_CTRL_POP 7/* opt - internal, used to signify change */ -# define BIO_CTRL_GET_CLOSE 8/* man - set the 'close' on free */ -# define BIO_CTRL_SET_CLOSE 9/* man - set the 'close' on free */ -# define BIO_CTRL_PENDING 10/* opt - is their more data buffered */ -# define BIO_CTRL_FLUSH 11/* opt - 'flush' buffered output */ -# define BIO_CTRL_DUP 12/* man - extra stuff for 'duped' BIO */ -# define BIO_CTRL_WPENDING 13/* opt - number of bytes still to write */ -# define BIO_CTRL_SET_CALLBACK 14/* opt - set callback function */ -# define BIO_CTRL_GET_CALLBACK 15/* opt - set callback function */ - -# define BIO_CTRL_PEEK 29/* BIO_f_buffer special */ -# define BIO_CTRL_SET_FILENAME 30/* BIO_s_file special */ - -/* dgram BIO stuff */ -# define BIO_CTRL_DGRAM_CONNECT 31/* BIO dgram special */ -# define BIO_CTRL_DGRAM_SET_CONNECTED 32/* allow for an externally connected - * socket to be passed in */ -# define BIO_CTRL_DGRAM_SET_RECV_TIMEOUT 33/* setsockopt, essentially */ -# define BIO_CTRL_DGRAM_GET_RECV_TIMEOUT 34/* getsockopt, essentially */ -# define BIO_CTRL_DGRAM_SET_SEND_TIMEOUT 35/* setsockopt, essentially */ -# define BIO_CTRL_DGRAM_GET_SEND_TIMEOUT 36/* getsockopt, essentially */ - -# define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP 37/* flag whether the last */ -# define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP 38/* I/O operation tiemd out */ - -/* #ifdef IP_MTU_DISCOVER */ -# define BIO_CTRL_DGRAM_MTU_DISCOVER 39/* set DF bit on egress packets */ -/* #endif */ - -# define BIO_CTRL_DGRAM_QUERY_MTU 40/* as kernel for current MTU */ -# define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47 -# define BIO_CTRL_DGRAM_GET_MTU 41/* get cached value for MTU */ -# define BIO_CTRL_DGRAM_SET_MTU 42/* set cached value for MTU. - * want to use this if asking - * the kernel fails */ - -# define BIO_CTRL_DGRAM_MTU_EXCEEDED 43/* check whether the MTU was - * exceed in the previous write - * operation */ - -# define BIO_CTRL_DGRAM_GET_PEER 46 -# define BIO_CTRL_DGRAM_SET_PEER 44/* Destination for the data */ - -# define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 45/* Next DTLS handshake timeout - * to adjust socket timeouts */ -# define BIO_CTRL_DGRAM_SET_DONT_FRAG 48 - -# define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD 49 - -/* Deliberately outside of OPENSSL_NO_SCTP - used in bss_dgram.c */ -# define BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE 50 -# ifndef OPENSSL_NO_SCTP -/* SCTP stuff */ -# define BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY 51 -# define BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY 52 -# define BIO_CTRL_DGRAM_SCTP_AUTH_CCS_RCVD 53 -# define BIO_CTRL_DGRAM_SCTP_GET_SNDINFO 60 -# define BIO_CTRL_DGRAM_SCTP_SET_SNDINFO 61 -# define BIO_CTRL_DGRAM_SCTP_GET_RCVINFO 62 -# define BIO_CTRL_DGRAM_SCTP_SET_RCVINFO 63 -# define BIO_CTRL_DGRAM_SCTP_GET_PRINFO 64 -# define BIO_CTRL_DGRAM_SCTP_SET_PRINFO 65 -# define BIO_CTRL_DGRAM_SCTP_SAVE_SHUTDOWN 70 -# endif - -# define BIO_CTRL_DGRAM_SET_PEEK_MODE 71 - -/* modifiers */ -# define BIO_FP_READ 0x02 -# define BIO_FP_WRITE 0x04 -# define BIO_FP_APPEND 0x08 -# define BIO_FP_TEXT 0x10 - -# define BIO_FLAGS_READ 0x01 -# define BIO_FLAGS_WRITE 0x02 -# define BIO_FLAGS_IO_SPECIAL 0x04 -# define BIO_FLAGS_RWS (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL) -# define BIO_FLAGS_SHOULD_RETRY 0x08 -# ifndef BIO_FLAGS_UPLINK -/* - * "UPLINK" flag denotes file descriptors provided by application. It - * defaults to 0, as most platforms don't require UPLINK interface. - */ -# define BIO_FLAGS_UPLINK 0 -# endif - -# define BIO_FLAGS_BASE64_NO_NL 0x100 - -/* - * This is used with memory BIOs: - * BIO_FLAGS_MEM_RDONLY means we shouldn't free up or change the data in any way; - * BIO_FLAGS_NONCLEAR_RST means we shouldn't clear data on reset. - */ -# define BIO_FLAGS_MEM_RDONLY 0x200 -# define BIO_FLAGS_NONCLEAR_RST 0x400 - -typedef union bio_addr_st BIO_ADDR; -typedef struct bio_addrinfo_st BIO_ADDRINFO; - -int BIO_get_new_index(void); -void BIO_set_flags(BIO *b, int flags); -int BIO_test_flags(const BIO *b, int flags); -void BIO_clear_flags(BIO *b, int flags); - -# define BIO_get_flags(b) BIO_test_flags(b, ~(0x0)) -# define BIO_set_retry_special(b) \ - BIO_set_flags(b, (BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_set_retry_read(b) \ - BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_set_retry_write(b) \ - BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY)) - -/* These are normally used internally in BIOs */ -# define BIO_clear_retry_flags(b) \ - BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_get_retry_flags(b) \ - BIO_test_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) - -/* These should be used by the application to tell why we should retry */ -# define BIO_should_read(a) BIO_test_flags(a, BIO_FLAGS_READ) -# define BIO_should_write(a) BIO_test_flags(a, BIO_FLAGS_WRITE) -# define BIO_should_io_special(a) BIO_test_flags(a, BIO_FLAGS_IO_SPECIAL) -# define BIO_retry_type(a) BIO_test_flags(a, BIO_FLAGS_RWS) -# define BIO_should_retry(a) BIO_test_flags(a, BIO_FLAGS_SHOULD_RETRY) - -/* - * The next three are used in conjunction with the BIO_should_io_special() - * condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int - * *reason); will walk the BIO stack and return the 'reason' for the special - * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return - * the code. - */ -/* - * Returned from the SSL bio when the certificate retrieval code had an error - */ -# define BIO_RR_SSL_X509_LOOKUP 0x01 -/* Returned from the connect BIO when a connect would have blocked */ -# define BIO_RR_CONNECT 0x02 -/* Returned from the accept BIO when an accept would have blocked */ -# define BIO_RR_ACCEPT 0x03 - -/* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 - -/* - * The callback is called before and after the underling operation, The - * BIO_CB_RETURN flag indicates if it is after the call - */ -# define BIO_CB_RETURN 0x80 -# define BIO_CB_return(a) ((a)|BIO_CB_RETURN) -# define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN)) -# define BIO_cb_post(a) ((a)&BIO_CB_RETURN) - -typedef long (*BIO_callback_fn)(BIO *b, int oper, const char *argp, int argi, - long argl, long ret); -typedef long (*BIO_callback_fn_ex)(BIO *b, int oper, const char *argp, - size_t len, int argi, - long argl, int ret, size_t *processed); -BIO_callback_fn BIO_get_callback(const BIO *b); -void BIO_set_callback(BIO *b, BIO_callback_fn callback); - -BIO_callback_fn_ex BIO_get_callback_ex(const BIO *b); -void BIO_set_callback_ex(BIO *b, BIO_callback_fn_ex callback); - -char *BIO_get_callback_arg(const BIO *b); -void BIO_set_callback_arg(BIO *b, char *arg); - -typedef struct bio_method_st BIO_METHOD; - -const char *BIO_method_name(const BIO *b); -int BIO_method_type(const BIO *b); - -typedef int BIO_info_cb(BIO *, int, int); -typedef BIO_info_cb bio_info_cb; /* backward compatibility */ - -DEFINE_STACK_OF(BIO) - -/* Prefix and suffix callback in ASN1 BIO */ -typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, - void *parg); - -# ifndef OPENSSL_NO_SCTP -/* SCTP parameter structs */ -struct bio_dgram_sctp_sndinfo { - uint16_t snd_sid; - uint16_t snd_flags; - uint32_t snd_ppid; - uint32_t snd_context; -}; - -struct bio_dgram_sctp_rcvinfo { - uint16_t rcv_sid; - uint16_t rcv_ssn; - uint16_t rcv_flags; - uint32_t rcv_ppid; - uint32_t rcv_tsn; - uint32_t rcv_cumtsn; - uint32_t rcv_context; -}; - -struct bio_dgram_sctp_prinfo { - uint16_t pr_policy; - uint32_t pr_value; -}; -# endif - -/* - * #define BIO_CONN_get_param_hostname BIO_ctrl - */ - -# define BIO_C_SET_CONNECT 100 -# define BIO_C_DO_STATE_MACHINE 101 -# define BIO_C_SET_NBIO 102 -/* # define BIO_C_SET_PROXY_PARAM 103 */ -# define BIO_C_SET_FD 104 -# define BIO_C_GET_FD 105 -# define BIO_C_SET_FILE_PTR 106 -# define BIO_C_GET_FILE_PTR 107 -# define BIO_C_SET_FILENAME 108 -# define BIO_C_SET_SSL 109 -# define BIO_C_GET_SSL 110 -# define BIO_C_SET_MD 111 -# define BIO_C_GET_MD 112 -# define BIO_C_GET_CIPHER_STATUS 113 -# define BIO_C_SET_BUF_MEM 114 -# define BIO_C_GET_BUF_MEM_PTR 115 -# define BIO_C_GET_BUFF_NUM_LINES 116 -# define BIO_C_SET_BUFF_SIZE 117 -# define BIO_C_SET_ACCEPT 118 -# define BIO_C_SSL_MODE 119 -# define BIO_C_GET_MD_CTX 120 -/* # define BIO_C_GET_PROXY_PARAM 121 */ -# define BIO_C_SET_BUFF_READ_DATA 122/* data to read first */ -# define BIO_C_GET_CONNECT 123 -# define BIO_C_GET_ACCEPT 124 -# define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125 -# define BIO_C_GET_SSL_NUM_RENEGOTIATES 126 -# define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127 -# define BIO_C_FILE_SEEK 128 -# define BIO_C_GET_CIPHER_CTX 129 -# define BIO_C_SET_BUF_MEM_EOF_RETURN 130/* return end of input - * value */ -# define BIO_C_SET_BIND_MODE 131 -# define BIO_C_GET_BIND_MODE 132 -# define BIO_C_FILE_TELL 133 -# define BIO_C_GET_SOCKS 134 -# define BIO_C_SET_SOCKS 135 - -# define BIO_C_SET_WRITE_BUF_SIZE 136/* for BIO_s_bio */ -# define BIO_C_GET_WRITE_BUF_SIZE 137 -# define BIO_C_MAKE_BIO_PAIR 138 -# define BIO_C_DESTROY_BIO_PAIR 139 -# define BIO_C_GET_WRITE_GUARANTEE 140 -# define BIO_C_GET_READ_REQUEST 141 -# define BIO_C_SHUTDOWN_WR 142 -# define BIO_C_NREAD0 143 -# define BIO_C_NREAD 144 -# define BIO_C_NWRITE0 145 -# define BIO_C_NWRITE 146 -# define BIO_C_RESET_READ_REQUEST 147 -# define BIO_C_SET_MD_CTX 148 - -# define BIO_C_SET_PREFIX 149 -# define BIO_C_GET_PREFIX 150 -# define BIO_C_SET_SUFFIX 151 -# define BIO_C_GET_SUFFIX 152 - -# define BIO_C_SET_EX_ARG 153 -# define BIO_C_GET_EX_ARG 154 - -# define BIO_C_SET_CONNECT_MODE 155 - -# define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) -# define BIO_get_app_data(s) BIO_get_ex_data(s,0) - -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) - -# ifndef OPENSSL_NO_SOCK -/* IP families we support, for BIO_s_connect() and BIO_s_accept() */ -/* Note: the underlying operating system may not support some of them */ -# define BIO_FAMILY_IPV4 4 -# define BIO_FAMILY_IPV6 6 -# define BIO_FAMILY_IPANY 256 - -/* BIO_s_connect() */ -# define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0, \ - (char *)(name)) -# define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1, \ - (char *)(port)) -# define BIO_set_conn_address(b,addr) BIO_ctrl(b,BIO_C_SET_CONNECT,2, \ - (char *)(addr)) -# define BIO_set_conn_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_CONNECT,3,f) -# define BIO_get_conn_hostname(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0)) -# define BIO_get_conn_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1)) -# define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) -# define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) -# define BIO_set_conn_mode(b,n) BIO_ctrl(b,BIO_C_SET_CONNECT_MODE,(n),NULL) - -/* BIO_s_accept() */ -# define BIO_set_accept_name(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0, \ - (char *)(name)) -# define BIO_set_accept_port(b,port) BIO_ctrl(b,BIO_C_SET_ACCEPT,1, \ - (char *)(port)) -# define BIO_get_accept_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0)) -# define BIO_get_accept_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,1)) -# define BIO_get_peer_name(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,2)) -# define BIO_get_peer_port(b) ((const char *)BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,3)) -/* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ -# define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(n)?(void *)"a":NULL) -# define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,3, \ - (char *)(bio)) -# define BIO_set_accept_ip_family(b,f) BIO_int_ctrl(b,BIO_C_SET_ACCEPT,4,f) -# define BIO_get_accept_ip_family(b) BIO_ctrl(b,BIO_C_GET_ACCEPT,4,NULL) - -/* Aliases kept for backward compatibility */ -# define BIO_BIND_NORMAL 0 -# define BIO_BIND_REUSEADDR BIO_SOCK_REUSEADDR -# define BIO_BIND_REUSEADDR_IF_UNUSED BIO_SOCK_REUSEADDR -# define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) -# define BIO_get_bind_mode(b) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) - -/* BIO_s_accept() and BIO_s_connect() */ -# define BIO_do_connect(b) BIO_do_handshake(b) -# define BIO_do_accept(b) BIO_do_handshake(b) -# endif /* OPENSSL_NO_SOCK */ - -# define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) - -/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ -# define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) -# define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)(c)) - -/* BIO_s_file() */ -# define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)(fp)) -# define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)(fpp)) - -/* BIO_s_fd() and BIO_s_file() */ -# define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) -# define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) - -/* - * name is cast to lose const, but might be better to route through a - * function so we can do it safely - */ -# ifdef CONST_STRICT -/* - * If you are wondering why this isn't defined, its because CONST_STRICT is - * purely a compile-time kludge to allow const to be checked. - */ -int BIO_read_filename(BIO *b, const char *name); -# else -# define BIO_read_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_READ,(char *)(name)) -# endif -# define BIO_write_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_WRITE,name) -# define BIO_append_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_APPEND,name) -# define BIO_rw_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name) - -/* - * WARNING WARNING, this ups the reference count on the read bio of the SSL - * structure. This is because the ssl read BIO is now pointed to by the - * next_bio field in the bio. So when you free the BIO, make sure you are - * doing a BIO_free_all() to catch the underlying BIO. - */ -# define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)(ssl)) -# define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)(sslp)) -# define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL) -# define BIO_set_ssl_renegotiate_bytes(b,num) \ - BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL) -# define BIO_get_num_renegotiates(b) \ - BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL) -# define BIO_set_ssl_renegotiate_timeout(b,seconds) \ - BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL) - -/* defined in evp.h */ -/* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)(md)) */ - -# define BIO_get_mem_data(b,pp) BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)(pp)) -# define BIO_set_mem_buf(b,bm,c) BIO_ctrl(b,BIO_C_SET_BUF_MEM,c,(char *)(bm)) -# define BIO_get_mem_ptr(b,pp) BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0, \ - (char *)(pp)) -# define BIO_set_mem_eof_return(b,v) \ - BIO_ctrl(b,BIO_C_SET_BUF_MEM_EOF_RETURN,v,NULL) - -/* For the BIO_f_buffer() type */ -# define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL) -# define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL) -# define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0) -# define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1) -# define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf) - -/* Don't use the next one unless you know what you are doing :-) */ -# define BIO_dup_state(b,ret) BIO_ctrl(b,BIO_CTRL_DUP,0,(char *)(ret)) - -# define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) -# define BIO_eof(b) (int)BIO_ctrl(b,BIO_CTRL_EOF,0,NULL) -# define BIO_set_close(b,c) (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL) -# define BIO_get_close(b) (int)BIO_ctrl(b,BIO_CTRL_GET_CLOSE,0,NULL) -# define BIO_pending(b) (int)BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) -# define BIO_wpending(b) (int)BIO_ctrl(b,BIO_CTRL_WPENDING,0,NULL) -/* ...pending macros have inappropriate return type */ -size_t BIO_ctrl_pending(BIO *b); -size_t BIO_ctrl_wpending(BIO *b); -# define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL) -# define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, \ - cbp) -# define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb) - -/* For the BIO_f_buffer() type */ -# define BIO_buffer_get_num_lines(b) BIO_ctrl(b,BIO_CTRL_GET,0,NULL) -# define BIO_buffer_peek(b,s,l) BIO_ctrl(b,BIO_CTRL_PEEK,(l),(s)) - -/* For BIO_s_bio() */ -# define BIO_set_write_buf_size(b,size) (int)BIO_ctrl(b,BIO_C_SET_WRITE_BUF_SIZE,size,NULL) -# define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL) -# define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2) -# define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL) -# define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL) -/* macros with inappropriate type -- but ...pending macros use int too: */ -# define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL) -# define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL) -size_t BIO_ctrl_get_write_guarantee(BIO *b); -size_t BIO_ctrl_get_read_request(BIO *b); -int BIO_ctrl_reset_read_request(BIO *b); - -/* ctrl macros for dgram */ -# define BIO_ctrl_dgram_connect(b,peer) \ - (int)BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0, (char *)(peer)) -# define BIO_ctrl_set_connected(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, 0, (char *)(peer)) -# define BIO_dgram_recv_timedout(b) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, NULL) -# define BIO_dgram_send_timedout(b) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP, 0, NULL) -# define BIO_dgram_get_peer(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)(peer)) -# define BIO_dgram_set_peer(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)(peer)) -# define BIO_dgram_get_mtu_overhead(b) \ - (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) - -#define BIO_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_BIO, l, p, newf, dupf, freef) -int BIO_set_ex_data(BIO *bio, int idx, void *data); -void *BIO_get_ex_data(BIO *bio, int idx); -uint64_t BIO_number_read(BIO *bio); -uint64_t BIO_number_written(BIO *bio); - -/* For BIO_f_asn1() */ -int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, - asn1_ps_func *prefix_free); -int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, - asn1_ps_func **pprefix_free); -int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, - asn1_ps_func *suffix_free); -int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, - asn1_ps_func **psuffix_free); - -const BIO_METHOD *BIO_s_file(void); -BIO *BIO_new_file(const char *filename, const char *mode); -# ifndef OPENSSL_NO_STDIO -BIO *BIO_new_fp(FILE *stream, int close_flag); -# endif -BIO *BIO_new(const BIO_METHOD *type); -int BIO_free(BIO *a); -void BIO_set_data(BIO *a, void *ptr); -void *BIO_get_data(BIO *a); -void BIO_set_init(BIO *a, int init); -int BIO_get_init(BIO *a); -void BIO_set_shutdown(BIO *a, int shut); -int BIO_get_shutdown(BIO *a); -void BIO_vfree(BIO *a); -int BIO_up_ref(BIO *a); -int BIO_read(BIO *b, void *data, int dlen); -int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); -int BIO_gets(BIO *bp, char *buf, int size); -int BIO_write(BIO *b, const void *data, int dlen); -int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); -int BIO_puts(BIO *bp, const char *buf); -int BIO_indent(BIO *b, int indent, int max); -long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); -long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp); -void *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); -long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); -BIO *BIO_push(BIO *b, BIO *append); -BIO *BIO_pop(BIO *b); -void BIO_free_all(BIO *a); -BIO *BIO_find_type(BIO *b, int bio_type); -BIO *BIO_next(BIO *b); -void BIO_set_next(BIO *b, BIO *next); -BIO *BIO_get_retry_BIO(BIO *bio, int *reason); -int BIO_get_retry_reason(BIO *bio); -void BIO_set_retry_reason(BIO *bio, int reason); -BIO *BIO_dup_chain(BIO *in); - -int BIO_nread0(BIO *bio, char **buf); -int BIO_nread(BIO *bio, char **buf, int num); -int BIO_nwrite0(BIO *bio, char **buf); -int BIO_nwrite(BIO *bio, char **buf, int num); - -long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, - long argl, long ret); - -const BIO_METHOD *BIO_s_mem(void); -const BIO_METHOD *BIO_s_secmem(void); -BIO *BIO_new_mem_buf(const void *buf, int len); -# ifndef OPENSSL_NO_SOCK -const BIO_METHOD *BIO_s_socket(void); -const BIO_METHOD *BIO_s_connect(void); -const BIO_METHOD *BIO_s_accept(void); -# endif -const BIO_METHOD *BIO_s_fd(void); -const BIO_METHOD *BIO_s_log(void); -const BIO_METHOD *BIO_s_bio(void); -const BIO_METHOD *BIO_s_null(void); -const BIO_METHOD *BIO_f_null(void); -const BIO_METHOD *BIO_f_buffer(void); -const BIO_METHOD *BIO_f_linebuffer(void); -const BIO_METHOD *BIO_f_nbio_test(void); -# ifndef OPENSSL_NO_DGRAM -const BIO_METHOD *BIO_s_datagram(void); -int BIO_dgram_non_fatal_error(int error); -BIO *BIO_new_dgram(int fd, int close_flag); -# ifndef OPENSSL_NO_SCTP -const BIO_METHOD *BIO_s_datagram_sctp(void); -BIO *BIO_new_dgram_sctp(int fd, int close_flag); -int BIO_dgram_is_sctp(BIO *bio); -int BIO_dgram_sctp_notification_cb(BIO *b, - void (*handle_notifications) (BIO *bio, - void *context, - void *buf), - void *context); -int BIO_dgram_sctp_wait_for_dry(BIO *b); -int BIO_dgram_sctp_msg_waiting(BIO *b); -# endif -# endif - -# ifndef OPENSSL_NO_SOCK -int BIO_sock_should_retry(int i); -int BIO_sock_non_fatal_error(int error); -# endif - -int BIO_fd_should_retry(int i); -int BIO_fd_non_fatal_error(int error); -int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), - void *u, const char *s, int len); -int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), - void *u, const char *s, int len, int indent); -int BIO_dump(BIO *b, const char *bytes, int len); -int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent); -# ifndef OPENSSL_NO_STDIO -int BIO_dump_fp(FILE *fp, const char *s, int len); -int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); -# endif -int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, - int datalen); - -# ifndef OPENSSL_NO_SOCK -BIO_ADDR *BIO_ADDR_new(void); -int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, - const void *where, size_t wherelen, unsigned short port); -void BIO_ADDR_free(BIO_ADDR *); -void BIO_ADDR_clear(BIO_ADDR *ap); -int BIO_ADDR_family(const BIO_ADDR *ap); -int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l); -unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap); -char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric); -char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric); -char *BIO_ADDR_path_string(const BIO_ADDR *ap); - -const BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai); -const BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai); -void BIO_ADDRINFO_free(BIO_ADDRINFO *bai); - -enum BIO_hostserv_priorities { - BIO_PARSE_PRIO_HOST, BIO_PARSE_PRIO_SERV -}; -int BIO_parse_hostserv(const char *hostserv, char **host, char **service, - enum BIO_hostserv_priorities hostserv_prio); -enum BIO_lookup_type { - BIO_LOOKUP_CLIENT, BIO_LOOKUP_SERVER -}; -int BIO_lookup(const char *host, const char *service, - enum BIO_lookup_type lookup_type, - int family, int socktype, BIO_ADDRINFO **res); -int BIO_lookup_ex(const char *host, const char *service, - int lookup_type, int family, int socktype, int protocol, - BIO_ADDRINFO **res); -int BIO_sock_error(int sock); -int BIO_socket_ioctl(int fd, long type, void *arg); -int BIO_socket_nbio(int fd, int mode); -int BIO_sock_init(void); -# if OPENSSL_API_COMPAT < 0x10100000L -# define BIO_sock_cleanup() while(0) continue -# endif -int BIO_set_tcp_ndelay(int sock, int turn_on); - -DEPRECATEDIN_1_1_0(struct hostent *BIO_gethostbyname(const char *name)) -DEPRECATEDIN_1_1_0(int BIO_get_port(const char *str, unsigned short *port_ptr)) -DEPRECATEDIN_1_1_0(int BIO_get_host_ip(const char *str, unsigned char *ip)) -DEPRECATEDIN_1_1_0(int BIO_get_accept_socket(char *host_port, int mode)) -DEPRECATEDIN_1_1_0(int BIO_accept(int sock, char **ip_port)) - -union BIO_sock_info_u { - BIO_ADDR *addr; -}; -enum BIO_sock_info_type { - BIO_SOCK_INFO_ADDRESS -}; -int BIO_sock_info(int sock, - enum BIO_sock_info_type type, union BIO_sock_info_u *info); - -# define BIO_SOCK_REUSEADDR 0x01 -# define BIO_SOCK_V6_ONLY 0x02 -# define BIO_SOCK_KEEPALIVE 0x04 -# define BIO_SOCK_NONBLOCK 0x08 -# define BIO_SOCK_NODELAY 0x10 - -int BIO_socket(int domain, int socktype, int protocol, int options); -int BIO_connect(int sock, const BIO_ADDR *addr, int options); -int BIO_bind(int sock, const BIO_ADDR *addr, int options); -int BIO_listen(int sock, const BIO_ADDR *addr, int options); -int BIO_accept_ex(int accept_sock, BIO_ADDR *addr, int options); -int BIO_closesocket(int sock); - -BIO *BIO_new_socket(int sock, int close_flag); -BIO *BIO_new_connect(const char *host_port); -BIO *BIO_new_accept(const char *host_port); -# endif /* OPENSSL_NO_SOCK*/ - -BIO *BIO_new_fd(int fd, int close_flag); - -int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, - BIO **bio2, size_t writebuf2); -/* - * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. - * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default - * value. - */ - -void BIO_copy_next_retry(BIO *b); - -/* - * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); - */ - -# define ossl_bio__attr__(x) -# if defined(__GNUC__) && defined(__STDC_VERSION__) \ - && !defined(__APPLE__) - /* - * Because we support the 'z' modifier, which made its appearance in C99, - * we can't use __attribute__ with pre C99 dialects. - */ -# if __STDC_VERSION__ >= 199901L -# undef ossl_bio__attr__ -# define ossl_bio__attr__ __attribute__ -# if __GNUC__*10 + __GNUC_MINOR__ >= 44 -# define ossl_bio__printf__ __gnu_printf__ -# else -# define ossl_bio__printf__ __printf__ -# endif -# endif -# endif -int BIO_printf(BIO *bio, const char *format, ...) -ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 3))); -int BIO_vprintf(BIO *bio, const char *format, va_list args) -ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 0))); -int BIO_snprintf(char *buf, size_t n, const char *format, ...) -ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 4))); -int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) -ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 0))); -# undef ossl_bio__attr__ -# undef ossl_bio__printf__ - - -BIO_METHOD *BIO_meth_new(int type, const char *name); -void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(const BIO_METHOD *biom)) (BIO *, const char *, int); -int (*BIO_meth_get_write_ex(const BIO_METHOD *biom)) (BIO *, const char *, size_t, - size_t *); -int BIO_meth_set_write(BIO_METHOD *biom, - int (*write) (BIO *, const char *, int)); -int BIO_meth_set_write_ex(BIO_METHOD *biom, - int (*bwrite) (BIO *, const char *, size_t, size_t *)); -int (*BIO_meth_get_read(const BIO_METHOD *biom)) (BIO *, char *, int); -int (*BIO_meth_get_read_ex(const BIO_METHOD *biom)) (BIO *, char *, size_t, size_t *); -int BIO_meth_set_read(BIO_METHOD *biom, - int (*read) (BIO *, char *, int)); -int BIO_meth_set_read_ex(BIO_METHOD *biom, - int (*bread) (BIO *, char *, size_t, size_t *)); -int (*BIO_meth_get_puts(const BIO_METHOD *biom)) (BIO *, const char *); -int BIO_meth_set_puts(BIO_METHOD *biom, - int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); -int BIO_meth_set_gets(BIO_METHOD *biom, - int (*gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); -int BIO_meth_set_ctrl(BIO_METHOD *biom, - long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); -int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); -int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); -int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, - long (*callback_ctrl) (BIO *, int, - BIO_info_cb *)); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/bioerr.h b/submodules/MtProtoKit/openssl/openssl/bioerr.h deleted file mode 100644 index 46e2c96ee3..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/bioerr.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_BIOERR_H -# define HEADER_BIOERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_BIO_strings(void); - -/* - * BIO function codes. - */ -# define BIO_F_ACPT_STATE 100 -# define BIO_F_ADDRINFO_WRAP 148 -# define BIO_F_ADDR_STRINGS 134 -# define BIO_F_BIO_ACCEPT 101 -# define BIO_F_BIO_ACCEPT_EX 137 -# define BIO_F_BIO_ACCEPT_NEW 152 -# define BIO_F_BIO_ADDR_NEW 144 -# define BIO_F_BIO_BIND 147 -# define BIO_F_BIO_CALLBACK_CTRL 131 -# define BIO_F_BIO_CONNECT 138 -# define BIO_F_BIO_CONNECT_NEW 153 -# define BIO_F_BIO_CTRL 103 -# define BIO_F_BIO_GETS 104 -# define BIO_F_BIO_GET_HOST_IP 106 -# define BIO_F_BIO_GET_NEW_INDEX 102 -# define BIO_F_BIO_GET_PORT 107 -# define BIO_F_BIO_LISTEN 139 -# define BIO_F_BIO_LOOKUP 135 -# define BIO_F_BIO_LOOKUP_EX 143 -# define BIO_F_BIO_MAKE_PAIR 121 -# define BIO_F_BIO_METH_NEW 146 -# define BIO_F_BIO_NEW 108 -# define BIO_F_BIO_NEW_DGRAM_SCTP 145 -# define BIO_F_BIO_NEW_FILE 109 -# define BIO_F_BIO_NEW_MEM_BUF 126 -# define BIO_F_BIO_NREAD 123 -# define BIO_F_BIO_NREAD0 124 -# define BIO_F_BIO_NWRITE 125 -# define BIO_F_BIO_NWRITE0 122 -# define BIO_F_BIO_PARSE_HOSTSERV 136 -# define BIO_F_BIO_PUTS 110 -# define BIO_F_BIO_READ 111 -# define BIO_F_BIO_READ_EX 105 -# define BIO_F_BIO_READ_INTERN 120 -# define BIO_F_BIO_SOCKET 140 -# define BIO_F_BIO_SOCKET_NBIO 142 -# define BIO_F_BIO_SOCK_INFO 141 -# define BIO_F_BIO_SOCK_INIT 112 -# define BIO_F_BIO_WRITE 113 -# define BIO_F_BIO_WRITE_EX 119 -# define BIO_F_BIO_WRITE_INTERN 128 -# define BIO_F_BUFFER_CTRL 114 -# define BIO_F_CONN_CTRL 127 -# define BIO_F_CONN_STATE 115 -# define BIO_F_DGRAM_SCTP_NEW 149 -# define BIO_F_DGRAM_SCTP_READ 132 -# define BIO_F_DGRAM_SCTP_WRITE 133 -# define BIO_F_DOAPR_OUTCH 150 -# define BIO_F_FILE_CTRL 116 -# define BIO_F_FILE_READ 130 -# define BIO_F_LINEBUFFER_CTRL 129 -# define BIO_F_LINEBUFFER_NEW 151 -# define BIO_F_MEM_WRITE 117 -# define BIO_F_NBIOF_NEW 154 -# define BIO_F_SLG_WRITE 155 -# define BIO_F_SSL_NEW 118 - -/* - * BIO reason codes. - */ -# define BIO_R_ACCEPT_ERROR 100 -# define BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET 141 -# define BIO_R_AMBIGUOUS_HOST_OR_SERVICE 129 -# define BIO_R_BAD_FOPEN_MODE 101 -# define BIO_R_BROKEN_PIPE 124 -# define BIO_R_CONNECT_ERROR 103 -# define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107 -# define BIO_R_GETSOCKNAME_ERROR 132 -# define BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS 133 -# define BIO_R_GETTING_SOCKTYPE 134 -# define BIO_R_INVALID_ARGUMENT 125 -# define BIO_R_INVALID_SOCKET 135 -# define BIO_R_IN_USE 123 -# define BIO_R_LENGTH_TOO_LONG 102 -# define BIO_R_LISTEN_V6_ONLY 136 -# define BIO_R_LOOKUP_RETURNED_NOTHING 142 -# define BIO_R_MALFORMED_HOST_OR_SERVICE 130 -# define BIO_R_NBIO_CONNECT_ERROR 110 -# define BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED 143 -# define BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED 144 -# define BIO_R_NO_PORT_DEFINED 113 -# define BIO_R_NO_SUCH_FILE 128 -# define BIO_R_NULL_PARAMETER 115 -# define BIO_R_UNABLE_TO_BIND_SOCKET 117 -# define BIO_R_UNABLE_TO_CREATE_SOCKET 118 -# define BIO_R_UNABLE_TO_KEEPALIVE 137 -# define BIO_R_UNABLE_TO_LISTEN_SOCKET 119 -# define BIO_R_UNABLE_TO_NODELAY 138 -# define BIO_R_UNABLE_TO_REUSEADDR 139 -# define BIO_R_UNAVAILABLE_IP_FAMILY 145 -# define BIO_R_UNINITIALIZED 120 -# define BIO_R_UNKNOWN_INFO_TYPE 140 -# define BIO_R_UNSUPPORTED_IP_FAMILY 146 -# define BIO_R_UNSUPPORTED_METHOD 121 -# define BIO_R_UNSUPPORTED_PROTOCOL_FAMILY 131 -# define BIO_R_WRITE_TO_READ_ONLY_BIO 126 -# define BIO_R_WSASTARTUP 122 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/blowfish.h b/submodules/MtProtoKit/openssl/openssl/blowfish.h deleted file mode 100644 index cd3e460e98..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/blowfish.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_BLOWFISH_H -# define HEADER_BLOWFISH_H - -# include - -# ifndef OPENSSL_NO_BF -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define BF_ENCRYPT 1 -# define BF_DECRYPT 0 - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! BF_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define BF_LONG unsigned int - -# define BF_ROUNDS 16 -# define BF_BLOCK 8 - -typedef struct bf_key_st { - BF_LONG P[BF_ROUNDS + 2]; - BF_LONG S[4 * 256]; -} BF_KEY; - -void BF_set_key(BF_KEY *key, int len, const unsigned char *data); - -void BF_encrypt(BF_LONG *data, const BF_KEY *key); -void BF_decrypt(BF_LONG *data, const BF_KEY *key); - -void BF_ecb_encrypt(const unsigned char *in, unsigned char *out, - const BF_KEY *key, int enc); -void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, - const BF_KEY *schedule, unsigned char *ivec, int enc); -void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const BF_KEY *schedule, - unsigned char *ivec, int *num, int enc); -void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const BF_KEY *schedule, - unsigned char *ivec, int *num); -const char *BF_options(void); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/bn.h b/submodules/MtProtoKit/openssl/openssl/bn.h deleted file mode 100644 index 8af05d00e5..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/bn.h +++ /dev/null @@ -1,539 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_BN_H -# define HEADER_BN_H - -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * 64-bit processor with LP64 ABI - */ -# ifdef SIXTY_FOUR_BIT_LONG -# define BN_ULONG unsigned long -# define BN_BYTES 8 -# endif - -/* - * 64-bit processor other than LP64 ABI - */ -# ifdef SIXTY_FOUR_BIT -# define BN_ULONG unsigned long long -# define BN_BYTES 8 -# endif - -# ifdef THIRTY_TWO_BIT -# define BN_ULONG unsigned int -# define BN_BYTES 4 -# endif - -# define BN_BITS2 (BN_BYTES * 8) -# define BN_BITS (BN_BITS2 * 2) -# define BN_TBIT ((BN_ULONG)1 << (BN_BITS2 - 1)) - -# define BN_FLG_MALLOCED 0x01 -# define BN_FLG_STATIC_DATA 0x02 - -/* - * avoid leaking exponent information through timing, - * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, - * BN_div() will call BN_div_no_branch, - * BN_mod_inverse() will call BN_mod_inverse_no_branch. - */ -# define BN_FLG_CONSTTIME 0x04 -# define BN_FLG_SECURE 0x08 - -# if OPENSSL_API_COMPAT < 0x00908000L -/* deprecated name for the flag */ -# define BN_FLG_EXP_CONSTTIME BN_FLG_CONSTTIME -# define BN_FLG_FREE 0x8000 /* used for debugging */ -# endif - -void BN_set_flags(BIGNUM *b, int n); -int BN_get_flags(const BIGNUM *b, int n); - -/* Values for |top| in BN_rand() */ -#define BN_RAND_TOP_ANY -1 -#define BN_RAND_TOP_ONE 0 -#define BN_RAND_TOP_TWO 1 - -/* Values for |bottom| in BN_rand() */ -#define BN_RAND_BOTTOM_ANY 0 -#define BN_RAND_BOTTOM_ODD 1 - -/* - * get a clone of a BIGNUM with changed flags, for *temporary* use only (the - * two BIGNUMs cannot be used in parallel!). Also only for *read only* use. The - * value |dest| should be a newly allocated BIGNUM obtained via BN_new() that - * has not been otherwise initialised or used. - */ -void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags); - -/* Wrapper function to make using BN_GENCB easier */ -int BN_GENCB_call(BN_GENCB *cb, int a, int b); - -BN_GENCB *BN_GENCB_new(void); -void BN_GENCB_free(BN_GENCB *cb); - -/* Populate a BN_GENCB structure with an "old"-style callback */ -void BN_GENCB_set_old(BN_GENCB *gencb, void (*callback) (int, int, void *), - void *cb_arg); - -/* Populate a BN_GENCB structure with a "new"-style callback */ -void BN_GENCB_set(BN_GENCB *gencb, int (*callback) (int, int, BN_GENCB *), - void *cb_arg); - -void *BN_GENCB_get_arg(BN_GENCB *cb); - -# define BN_prime_checks 0 /* default: select number of iterations based - * on the size of the number */ - -/* - * BN_prime_checks_for_size() returns the number of Miller-Rabin iterations - * that will be done for checking that a random number is probably prime. The - * error rate for accepting a composite number as prime depends on the size of - * the prime |b|. The error rates used are for calculating an RSA key with 2 primes, - * and so the level is what you would expect for a key of double the size of the - * prime. - * - * This table is generated using the algorithm of FIPS PUB 186-4 - * Digital Signature Standard (DSS), section F.1, page 117. - * (https://dx.doi.org/10.6028/NIST.FIPS.186-4) - * - * The following magma script was used to generate the output: - * securitybits:=125; - * k:=1024; - * for t:=1 to 65 do - * for M:=3 to Floor(2*Sqrt(k-1)-1) do - * S:=0; - * // Sum over m - * for m:=3 to M do - * s:=0; - * // Sum over j - * for j:=2 to m do - * s+:=(RealField(32)!2)^-(j+(k-1)/j); - * end for; - * S+:=2^(m-(m-1)*t)*s; - * end for; - * A:=2^(k-2-M*t); - * B:=8*(Pi(RealField(32))^2-6)/3*2^(k-2)*S; - * pkt:=2.00743*Log(2)*k*2^-k*(A+B); - * seclevel:=Floor(-Log(2,pkt)); - * if seclevel ge securitybits then - * printf "k: %5o, security: %o bits (t: %o, M: %o)\n",k,seclevel,t,M; - * break; - * end if; - * end for; - * if seclevel ge securitybits then break; end if; - * end for; - * - * It can be run online at: - * http://magma.maths.usyd.edu.au/calc - * - * And will output: - * k: 1024, security: 129 bits (t: 6, M: 23) - * - * k is the number of bits of the prime, securitybits is the level we want to - * reach. - * - * prime length | RSA key size | # MR tests | security level - * -------------+--------------|------------+--------------- - * (b) >= 6394 | >= 12788 | 3 | 256 bit - * (b) >= 3747 | >= 7494 | 3 | 192 bit - * (b) >= 1345 | >= 2690 | 4 | 128 bit - * (b) >= 1080 | >= 2160 | 5 | 128 bit - * (b) >= 852 | >= 1704 | 5 | 112 bit - * (b) >= 476 | >= 952 | 5 | 80 bit - * (b) >= 400 | >= 800 | 6 | 80 bit - * (b) >= 347 | >= 694 | 7 | 80 bit - * (b) >= 308 | >= 616 | 8 | 80 bit - * (b) >= 55 | >= 110 | 27 | 64 bit - * (b) >= 6 | >= 12 | 34 | 64 bit - */ - -# define BN_prime_checks_for_size(b) ((b) >= 3747 ? 3 : \ - (b) >= 1345 ? 4 : \ - (b) >= 476 ? 5 : \ - (b) >= 400 ? 6 : \ - (b) >= 347 ? 7 : \ - (b) >= 308 ? 8 : \ - (b) >= 55 ? 27 : \ - /* b >= 6 */ 34) - -# define BN_num_bytes(a) ((BN_num_bits(a)+7)/8) - -int BN_abs_is_word(const BIGNUM *a, const BN_ULONG w); -int BN_is_zero(const BIGNUM *a); -int BN_is_one(const BIGNUM *a); -int BN_is_word(const BIGNUM *a, const BN_ULONG w); -int BN_is_odd(const BIGNUM *a); - -# define BN_one(a) (BN_set_word((a),1)) - -void BN_zero_ex(BIGNUM *a); - -# if OPENSSL_API_COMPAT >= 0x00908000L -# define BN_zero(a) BN_zero_ex(a) -# else -# define BN_zero(a) (BN_set_word((a),0)) -# endif - -const BIGNUM *BN_value_one(void); -char *BN_options(void); -BN_CTX *BN_CTX_new(void); -BN_CTX *BN_CTX_secure_new(void); -void BN_CTX_free(BN_CTX *c); -void BN_CTX_start(BN_CTX *ctx); -BIGNUM *BN_CTX_get(BN_CTX *ctx); -void BN_CTX_end(BN_CTX *ctx); -int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); -int BN_priv_rand(BIGNUM *rnd, int bits, int top, int bottom); -int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); -int BN_priv_rand_range(BIGNUM *rnd, const BIGNUM *range); -int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); -int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); -int BN_num_bits(const BIGNUM *a); -int BN_num_bits_word(BN_ULONG l); -int BN_security_bits(int L, int N); -BIGNUM *BN_new(void); -BIGNUM *BN_secure_new(void); -void BN_clear_free(BIGNUM *a); -BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); -void BN_swap(BIGNUM *a, BIGNUM *b); -BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2bin(const BIGNUM *a, unsigned char *to); -int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen); -BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen); -BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2mpi(const BIGNUM *a, unsigned char *to); -int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); -/** BN_set_negative sets sign of a BIGNUM - * \param b pointer to the BIGNUM object - * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise - */ -void BN_set_negative(BIGNUM *b, int n); -/** BN_is_negative returns 1 if the BIGNUM is negative - * \param b pointer to the BIGNUM object - * \return 1 if a < 0 and 0 otherwise - */ -int BN_is_negative(const BIGNUM *b); - -int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, - BN_CTX *ctx); -# define BN_mod(rem,m,d,ctx) BN_div(NULL,(rem),(m),(d),(ctx)) -int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); -int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *m); -int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *m); -int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); -int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); - -BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w); -BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w); -int BN_mul_word(BIGNUM *a, BN_ULONG w); -int BN_add_word(BIGNUM *a, BN_ULONG w); -int BN_sub_word(BIGNUM *a, BN_ULONG w); -int BN_set_word(BIGNUM *a, BN_ULONG w); -BN_ULONG BN_get_word(const BIGNUM *a); - -int BN_cmp(const BIGNUM *a, const BIGNUM *b); -void BN_free(BIGNUM *a); -int BN_is_bit_set(const BIGNUM *a, int n); -int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); -int BN_lshift1(BIGNUM *r, const BIGNUM *a); -int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); - -int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, - BN_MONT_CTX *in_mont); -int BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, - const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, - BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); - -int BN_mask_bits(BIGNUM *a, int n); -# ifndef OPENSSL_NO_STDIO -int BN_print_fp(FILE *fp, const BIGNUM *a); -# endif -int BN_print(BIO *bio, const BIGNUM *a); -int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); -int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); -int BN_rshift1(BIGNUM *r, const BIGNUM *a); -void BN_clear(BIGNUM *a); -BIGNUM *BN_dup(const BIGNUM *a); -int BN_ucmp(const BIGNUM *a, const BIGNUM *b); -int BN_set_bit(BIGNUM *a, int n); -int BN_clear_bit(BIGNUM *a, int n); -char *BN_bn2hex(const BIGNUM *a); -char *BN_bn2dec(const BIGNUM *a); -int BN_hex2bn(BIGNUM **a, const char *str); -int BN_dec2bn(BIGNUM **a, const char *str); -int BN_asc2bn(BIGNUM **a, const char *str); -int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); /* returns - * -2 for - * error */ -BIGNUM *BN_mod_inverse(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); -BIGNUM *BN_mod_sqrt(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); - -void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords); - -/* Deprecated versions */ -DEPRECATEDIN_0_9_8(BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, - const BIGNUM *add, - const BIGNUM *rem, - void (*callback) (int, int, - void *), - void *cb_arg)) -DEPRECATEDIN_0_9_8(int - BN_is_prime(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), - BN_CTX *ctx, void *cb_arg)) -DEPRECATEDIN_0_9_8(int - BN_is_prime_fasttest(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), - BN_CTX *ctx, void *cb_arg, - int do_trial_division)) - -/* Newer versions */ -int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, - const BIGNUM *rem, BN_GENCB *cb); -int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); -int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, - int do_trial_division, BN_GENCB *cb); - -int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); - -int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, - const BIGNUM *Xp, const BIGNUM *Xp1, - const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, - BN_GENCB *cb); -int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, - BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, - BN_CTX *ctx, BN_GENCB *cb); - -BN_MONT_CTX *BN_MONT_CTX_new(void); -int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - BN_MONT_CTX *mont, BN_CTX *ctx); -int BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, - BN_CTX *ctx); -int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, - BN_CTX *ctx); -void BN_MONT_CTX_free(BN_MONT_CTX *mont); -int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); -BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); -BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_RWLOCK *lock, - const BIGNUM *mod, BN_CTX *ctx); - -/* BN_BLINDING flags */ -# define BN_BLINDING_NO_UPDATE 0x00000001 -# define BN_BLINDING_NO_RECREATE 0x00000002 - -BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); -void BN_BLINDING_free(BN_BLINDING *b); -int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); -int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, - BN_CTX *); - -int BN_BLINDING_is_current_thread(BN_BLINDING *b); -void BN_BLINDING_set_current_thread(BN_BLINDING *b); -int BN_BLINDING_lock(BN_BLINDING *b); -int BN_BLINDING_unlock(BN_BLINDING *b); - -unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); -void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); -BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, - const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, - int (*bn_mod_exp) (BIGNUM *r, - const BIGNUM *a, - const BIGNUM *p, - const BIGNUM *m, - BN_CTX *ctx, - BN_MONT_CTX *m_ctx), - BN_MONT_CTX *m_ctx); - -DEPRECATEDIN_0_9_8(void BN_set_params(int mul, int high, int low, int mont)) -DEPRECATEDIN_0_9_8(int BN_get_params(int which)) /* 0, mul, 1 high, 2 low, 3 - * mont */ - -BN_RECP_CTX *BN_RECP_CTX_new(void); -void BN_RECP_CTX_free(BN_RECP_CTX *recp); -int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); -int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, - BN_RECP_CTX *recp, BN_CTX *ctx); -int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, - BN_RECP_CTX *recp, BN_CTX *ctx); - -# ifndef OPENSSL_NO_EC2M - -/* - * Functions for arithmetic over binary polynomials represented by BIGNUMs. - * The BIGNUM::neg property of BIGNUMs representing binary polynomials is - * ignored. Note that input arguments are not const so that their bit arrays - * can be expanded to the appropriate size if needed. - */ - -/* - * r = a + b - */ -int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -# define BN_GF2m_sub(r, a, b) BN_GF2m_add(r, a, b) -/* - * r=a mod p - */ -int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); -/* r = (a * b) mod p */ -int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = (a * a) mod p */ -int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -/* r = (1 / b) mod p */ -int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); -/* r = (a / b) mod p */ -int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = (a ^ b) mod p */ -int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = sqrt(a) mod p */ -int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); -/* r^2 + r = a mod p */ -int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); -# define BN_GF2m_cmp(a, b) BN_ucmp((a), (b)) -/*- - * Some functions allow for representation of the irreducible polynomials - * as an unsigned int[], say p. The irreducible f(t) is then of the form: - * t^p[0] + t^p[1] + ... + t^p[k] - * where m = p[0] > p[1] > ... > p[k] = 0. - */ -/* r = a mod p */ -int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); -/* r = (a * b) mod p */ -int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = (a * a) mod p */ -int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], - BN_CTX *ctx); -/* r = (1 / b) mod p */ -int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], - BN_CTX *ctx); -/* r = (a / b) mod p */ -int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = (a ^ b) mod p */ -int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = sqrt(a) mod p */ -int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); -/* r^2 + r = a mod p */ -int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); -int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); -int BN_GF2m_arr2poly(const int p[], BIGNUM *a); - -# endif - -/* - * faster mod functions for the 'NIST primes' 0 <= a < p^2 - */ -int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); - -const BIGNUM *BN_get0_nist_prime_192(void); -const BIGNUM *BN_get0_nist_prime_224(void); -const BIGNUM *BN_get0_nist_prime_256(void); -const BIGNUM *BN_get0_nist_prime_384(void); -const BIGNUM *BN_get0_nist_prime_521(void); - -int (*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a, - const BIGNUM *field, BN_CTX *ctx); - -int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range, - const BIGNUM *priv, const unsigned char *message, - size_t message_len, BN_CTX *ctx); - -/* Primes from RFC 2409 */ -BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn); -BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn); - -/* Primes from RFC 3526 */ -BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define get_rfc2409_prime_768 BN_get_rfc2409_prime_768 -# define get_rfc2409_prime_1024 BN_get_rfc2409_prime_1024 -# define get_rfc3526_prime_1536 BN_get_rfc3526_prime_1536 -# define get_rfc3526_prime_2048 BN_get_rfc3526_prime_2048 -# define get_rfc3526_prime_3072 BN_get_rfc3526_prime_3072 -# define get_rfc3526_prime_4096 BN_get_rfc3526_prime_4096 -# define get_rfc3526_prime_6144 BN_get_rfc3526_prime_6144 -# define get_rfc3526_prime_8192 BN_get_rfc3526_prime_8192 -# endif - -int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/bnerr.h b/submodules/MtProtoKit/openssl/openssl/bnerr.h deleted file mode 100644 index 9f3c7cfaab..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/bnerr.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_BNERR_H -# define HEADER_BNERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_BN_strings(void); - -/* - * BN function codes. - */ -# define BN_F_BNRAND 127 -# define BN_F_BNRAND_RANGE 138 -# define BN_F_BN_BLINDING_CONVERT_EX 100 -# define BN_F_BN_BLINDING_CREATE_PARAM 128 -# define BN_F_BN_BLINDING_INVERT_EX 101 -# define BN_F_BN_BLINDING_NEW 102 -# define BN_F_BN_BLINDING_UPDATE 103 -# define BN_F_BN_BN2DEC 104 -# define BN_F_BN_BN2HEX 105 -# define BN_F_BN_COMPUTE_WNAF 142 -# define BN_F_BN_CTX_GET 116 -# define BN_F_BN_CTX_NEW 106 -# define BN_F_BN_CTX_START 129 -# define BN_F_BN_DIV 107 -# define BN_F_BN_DIV_RECP 130 -# define BN_F_BN_EXP 123 -# define BN_F_BN_EXPAND_INTERNAL 120 -# define BN_F_BN_GENCB_NEW 143 -# define BN_F_BN_GENERATE_DSA_NONCE 140 -# define BN_F_BN_GENERATE_PRIME_EX 141 -# define BN_F_BN_GF2M_MOD 131 -# define BN_F_BN_GF2M_MOD_EXP 132 -# define BN_F_BN_GF2M_MOD_MUL 133 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD 134 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 135 -# define BN_F_BN_GF2M_MOD_SQR 136 -# define BN_F_BN_GF2M_MOD_SQRT 137 -# define BN_F_BN_LSHIFT 145 -# define BN_F_BN_MOD_EXP2_MONT 118 -# define BN_F_BN_MOD_EXP_MONT 109 -# define BN_F_BN_MOD_EXP_MONT_CONSTTIME 124 -# define BN_F_BN_MOD_EXP_MONT_WORD 117 -# define BN_F_BN_MOD_EXP_RECP 125 -# define BN_F_BN_MOD_EXP_SIMPLE 126 -# define BN_F_BN_MOD_INVERSE 110 -# define BN_F_BN_MOD_INVERSE_NO_BRANCH 139 -# define BN_F_BN_MOD_LSHIFT_QUICK 119 -# define BN_F_BN_MOD_SQRT 121 -# define BN_F_BN_MONT_CTX_NEW 149 -# define BN_F_BN_MPI2BN 112 -# define BN_F_BN_NEW 113 -# define BN_F_BN_POOL_GET 147 -# define BN_F_BN_RAND 114 -# define BN_F_BN_RAND_RANGE 122 -# define BN_F_BN_RECP_CTX_NEW 150 -# define BN_F_BN_RSHIFT 146 -# define BN_F_BN_SET_WORDS 144 -# define BN_F_BN_STACK_PUSH 148 -# define BN_F_BN_USUB 115 - -/* - * BN reason codes. - */ -# define BN_R_ARG2_LT_ARG3 100 -# define BN_R_BAD_RECIPROCAL 101 -# define BN_R_BIGNUM_TOO_LONG 114 -# define BN_R_BITS_TOO_SMALL 118 -# define BN_R_CALLED_WITH_EVEN_MODULUS 102 -# define BN_R_DIV_BY_ZERO 103 -# define BN_R_ENCODING_ERROR 104 -# define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 -# define BN_R_INPUT_NOT_REDUCED 110 -# define BN_R_INVALID_LENGTH 106 -# define BN_R_INVALID_RANGE 115 -# define BN_R_INVALID_SHIFT 119 -# define BN_R_NOT_A_SQUARE 111 -# define BN_R_NOT_INITIALIZED 107 -# define BN_R_NO_INVERSE 108 -# define BN_R_NO_SOLUTION 116 -# define BN_R_PRIVATE_KEY_TOO_LARGE 117 -# define BN_R_P_IS_NOT_PRIME 112 -# define BN_R_TOO_MANY_ITERATIONS 113 -# define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/buffer.h b/submodules/MtProtoKit/openssl/openssl/buffer.h deleted file mode 100644 index d2765766b7..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/buffer.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_BUFFER_H -# define HEADER_BUFFER_H - -# include -# ifndef HEADER_CRYPTO_H -# include -# endif -# include - - -#ifdef __cplusplus -extern "C" { -#endif - -# include -# include - -/* - * These names are outdated as of OpenSSL 1.1; a future release - * will move them to be deprecated. - */ -# define BUF_strdup(s) OPENSSL_strdup(s) -# define BUF_strndup(s, size) OPENSSL_strndup(s, size) -# define BUF_memdup(data, size) OPENSSL_memdup(data, size) -# define BUF_strlcpy(dst, src, size) OPENSSL_strlcpy(dst, src, size) -# define BUF_strlcat(dst, src, size) OPENSSL_strlcat(dst, src, size) -# define BUF_strnlen(str, maxlen) OPENSSL_strnlen(str, maxlen) - -struct buf_mem_st { - size_t length; /* current number of bytes */ - char *data; - size_t max; /* size of buffer */ - unsigned long flags; -}; - -# define BUF_MEM_FLAG_SECURE 0x01 - -BUF_MEM *BUF_MEM_new(void); -BUF_MEM *BUF_MEM_new_ex(unsigned long flags); -void BUF_MEM_free(BUF_MEM *a); -size_t BUF_MEM_grow(BUF_MEM *str, size_t len); -size_t BUF_MEM_grow_clean(BUF_MEM *str, size_t len); -void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/buffererr.h b/submodules/MtProtoKit/openssl/openssl/buffererr.h deleted file mode 100644 index 04f6ff7a83..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/buffererr.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_BUFERR_H -# define HEADER_BUFERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_BUF_strings(void); - -/* - * BUF function codes. - */ -# define BUF_F_BUF_MEM_GROW 100 -# define BUF_F_BUF_MEM_GROW_CLEAN 105 -# define BUF_F_BUF_MEM_NEW 101 - -/* - * BUF reason codes. - */ - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/camellia.h b/submodules/MtProtoKit/openssl/openssl/camellia.h deleted file mode 100644 index 151f3c1349..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/camellia.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CAMELLIA_H -# define HEADER_CAMELLIA_H - -# include - -# ifndef OPENSSL_NO_CAMELLIA -# include -#ifdef __cplusplus -extern "C" { -#endif - -# define CAMELLIA_ENCRYPT 1 -# define CAMELLIA_DECRYPT 0 - -/* - * Because array size can't be a const in C, the following two are macros. - * Both sizes are in bytes. - */ - -/* This should be a hidden type, but EVP requires that the size be known */ - -# define CAMELLIA_BLOCK_SIZE 16 -# define CAMELLIA_TABLE_BYTE_LEN 272 -# define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4) - -typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match - * with WORD */ - -struct camellia_key_st { - union { - double d; /* ensures 64-bit align */ - KEY_TABLE_TYPE rd_key; - } u; - int grand_rounds; -}; -typedef struct camellia_key_st CAMELLIA_KEY; - -int Camellia_set_key(const unsigned char *userKey, const int bits, - CAMELLIA_KEY *key); - -void Camellia_encrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key); -void Camellia_decrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key); - -void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key, const int enc); -void Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, const int enc); -void Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num); -void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char ivec[CAMELLIA_BLOCK_SIZE], - unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE], - unsigned int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/cast.h b/submodules/MtProtoKit/openssl/openssl/cast.h deleted file mode 100644 index 2cc89ae013..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/cast.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CAST_H -# define HEADER_CAST_H - -# include - -# ifndef OPENSSL_NO_CAST -# ifdef __cplusplus -extern "C" { -# endif - -# define CAST_ENCRYPT 1 -# define CAST_DECRYPT 0 - -# define CAST_LONG unsigned int - -# define CAST_BLOCK 8 -# define CAST_KEY_LENGTH 16 - -typedef struct cast_key_st { - CAST_LONG data[32]; - int short_key; /* Use reduced rounds for short key */ -} CAST_KEY; - -void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); -void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, - const CAST_KEY *key, int enc); -void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key); -void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key); -void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *ks, unsigned char *iv, - int enc); -void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, - unsigned char *ivec, int *num, int enc); -void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, - unsigned char *ivec, int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/cmac.h b/submodules/MtProtoKit/openssl/openssl/cmac.h deleted file mode 100644 index 3535a9abf7..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/cmac.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2010-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CMAC_H -# define HEADER_CMAC_H - -# ifndef OPENSSL_NO_CMAC - -#ifdef __cplusplus -extern "C" { -#endif - -# include - -/* Opaque */ -typedef struct CMAC_CTX_st CMAC_CTX; - -CMAC_CTX *CMAC_CTX_new(void); -void CMAC_CTX_cleanup(CMAC_CTX *ctx); -void CMAC_CTX_free(CMAC_CTX *ctx); -EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx); -int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in); - -int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen, - const EVP_CIPHER *cipher, ENGINE *impl); -int CMAC_Update(CMAC_CTX *ctx, const void *data, size_t dlen); -int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen); -int CMAC_resume(CMAC_CTX *ctx); - -#ifdef __cplusplus -} -#endif - -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/cms.h b/submodules/MtProtoKit/openssl/openssl/cms.h deleted file mode 100644 index c7627968c7..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/cms.h +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright 2008-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CMS_H -# define HEADER_CMS_H - -# include - -# ifndef OPENSSL_NO_CMS -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct CMS_ContentInfo_st CMS_ContentInfo; -typedef struct CMS_SignerInfo_st CMS_SignerInfo; -typedef struct CMS_CertificateChoices CMS_CertificateChoices; -typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; -typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; -typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest; -typedef struct CMS_Receipt_st CMS_Receipt; -typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey; -typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute; - -DEFINE_STACK_OF(CMS_SignerInfo) -DEFINE_STACK_OF(CMS_RecipientEncryptedKey) -DEFINE_STACK_OF(CMS_RecipientInfo) -DEFINE_STACK_OF(CMS_RevocationInfoChoice) -DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) -DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) -DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) - -# define CMS_SIGNERINFO_ISSUER_SERIAL 0 -# define CMS_SIGNERINFO_KEYIDENTIFIER 1 - -# define CMS_RECIPINFO_NONE -1 -# define CMS_RECIPINFO_TRANS 0 -# define CMS_RECIPINFO_AGREE 1 -# define CMS_RECIPINFO_KEK 2 -# define CMS_RECIPINFO_PASS 3 -# define CMS_RECIPINFO_OTHER 4 - -/* S/MIME related flags */ - -# define CMS_TEXT 0x1 -# define CMS_NOCERTS 0x2 -# define CMS_NO_CONTENT_VERIFY 0x4 -# define CMS_NO_ATTR_VERIFY 0x8 -# define CMS_NOSIGS \ - (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY) -# define CMS_NOINTERN 0x10 -# define CMS_NO_SIGNER_CERT_VERIFY 0x20 -# define CMS_NOVERIFY 0x20 -# define CMS_DETACHED 0x40 -# define CMS_BINARY 0x80 -# define CMS_NOATTR 0x100 -# define CMS_NOSMIMECAP 0x200 -# define CMS_NOOLDMIMETYPE 0x400 -# define CMS_CRLFEOL 0x800 -# define CMS_STREAM 0x1000 -# define CMS_NOCRL 0x2000 -# define CMS_PARTIAL 0x4000 -# define CMS_REUSE_DIGEST 0x8000 -# define CMS_USE_KEYID 0x10000 -# define CMS_DEBUG_DECRYPT 0x20000 -# define CMS_KEY_PARAM 0x40000 -# define CMS_ASCIICRLF 0x80000 - -const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); - -BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont); -int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio); - -ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); -int CMS_is_detached(CMS_ContentInfo *cms); -int CMS_set_detached(CMS_ContentInfo *cms, int detached); - -# ifdef HEADER_PEM_H -DECLARE_PEM_rw_const(CMS, CMS_ContentInfo) -# endif -int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms); -CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms); -int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms); - -BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms); -int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags); -int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, - int flags); -CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont); -int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); - -int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, - unsigned int flags); - -CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, BIO *data, - unsigned int flags); - -CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, - X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, unsigned int flags); - -int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); -CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); - -int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, - unsigned int flags); - -int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, - const unsigned char *key, size_t keylen, - BIO *dcont, BIO *out, unsigned int flags); - -CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, - const unsigned char *key, - size_t keylen, unsigned int flags); - -int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, - const unsigned char *key, size_t keylen); - -int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags); - -int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, - STACK_OF(X509) *certs, - X509_STORE *store, unsigned int flags); - -STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); - -CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, - const EVP_CIPHER *cipher, unsigned int flags); - -int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, - BIO *dcont, BIO *out, unsigned int flags); - -int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert); -int CMS_decrypt_set1_key(CMS_ContentInfo *cms, - unsigned char *key, size_t keylen, - const unsigned char *id, size_t idlen); -int CMS_decrypt_set1_password(CMS_ContentInfo *cms, - unsigned char *pass, ossl_ssize_t passlen); - -STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); -int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); -EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); -CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); -CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, - X509 *recip, unsigned int flags); -int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); -int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); -int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri, - EVP_PKEY **pk, X509 **recip, - X509_ALGOR **palg); -int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, - ASN1_INTEGER **sno); - -CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, - unsigned char *key, size_t keylen, - unsigned char *id, size_t idlen, - ASN1_GENERALIZEDTIME *date, - ASN1_OBJECT *otherTypeId, - ASN1_TYPE *otherType); - -int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, - X509_ALGOR **palg, - ASN1_OCTET_STRING **pid, - ASN1_GENERALIZEDTIME **pdate, - ASN1_OBJECT **potherid, - ASN1_TYPE **pothertype); - -int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, - unsigned char *key, size_t keylen); - -int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, - const unsigned char *id, size_t idlen); - -int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, - unsigned char *pass, - ossl_ssize_t passlen); - -CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms, - int iter, int wrap_nid, - int pbe_nid, - unsigned char *pass, - ossl_ssize_t passlen, - const EVP_CIPHER *kekciph); - -int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); -int CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); - -int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags); - -int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); -const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); - -CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms); -int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert); -int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert); -STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms); - -CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms); -int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl); -int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); -STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); - -int CMS_SignedData_init(CMS_ContentInfo *cms); -CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, - X509 *signer, EVP_PKEY *pk, const EVP_MD *md, - unsigned int flags); -EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si); -EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si); -STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms); - -void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer); -int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, ASN1_INTEGER **sno); -int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert); -int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - unsigned int flags); -void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, - X509 **signer, X509_ALGOR **pdig, - X509_ALGOR **psig); -ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); -int CMS_SignerInfo_sign(CMS_SignerInfo *si); -int CMS_SignerInfo_verify(CMS_SignerInfo *si); -int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); - -int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); -int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, - int algnid, int keysize); -int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap); - -int CMS_signed_get_attr_count(const CMS_SignerInfo *si); -int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, - int lastpos); -int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc); -X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc); -int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); -int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si, - const char *attrname, int type, - const void *bytes, int len); -void *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, const ASN1_OBJECT *oid, - int lastpos, int type); - -int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si); -int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid, - int lastpos); -int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int lastpos); -X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc); -X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc); -int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); -int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si, - const char *attrname, int type, - const void *bytes, int len); -void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, - int lastpos, int type); - -int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr); -CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen, - int allorfirst, - STACK_OF(GENERAL_NAMES) - *receiptList, STACK_OF(GENERAL_NAMES) - *receiptsTo); -int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); -void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, - ASN1_STRING **pcid, - int *pallorfirst, - STACK_OF(GENERAL_NAMES) **plist, - STACK_OF(GENERAL_NAMES) **prto); -int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri, - X509_ALGOR **palg, - ASN1_OCTET_STRING **pukm); -STACK_OF(CMS_RecipientEncryptedKey) -*CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri); - -int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri, - X509_ALGOR **pubalg, - ASN1_BIT_STRING **pubkey, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, - ASN1_INTEGER **sno); - -int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert); - -int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek, - ASN1_OCTET_STRING **keyid, - ASN1_GENERALIZEDTIME **tm, - CMS_OtherKeyAttribute **other, - X509_NAME **issuer, ASN1_INTEGER **sno); -int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek, - X509 *cert); -int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); -EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri); -int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms, - CMS_RecipientInfo *ri, - CMS_RecipientEncryptedKey *rek); - -int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, - ASN1_OCTET_STRING *ukm, int keylen); - -/* Backward compatibility for spelling errors. */ -# define CMS_R_UNKNOWN_DIGEST_ALGORITM CMS_R_UNKNOWN_DIGEST_ALGORITHM -# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE \ - CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/cmserr.h b/submodules/MtProtoKit/openssl/openssl/cmserr.h deleted file mode 100644 index 7dbc13dc93..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/cmserr.h +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CMSERR_H -# define HEADER_CMSERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# include - -# ifndef OPENSSL_NO_CMS - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_CMS_strings(void); - -/* - * CMS function codes. - */ -# define CMS_F_CHECK_CONTENT 99 -# define CMS_F_CMS_ADD0_CERT 164 -# define CMS_F_CMS_ADD0_RECIPIENT_KEY 100 -# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 165 -# define CMS_F_CMS_ADD1_RECEIPTREQUEST 158 -# define CMS_F_CMS_ADD1_RECIPIENT_CERT 101 -# define CMS_F_CMS_ADD1_SIGNER 102 -# define CMS_F_CMS_ADD1_SIGNINGTIME 103 -# define CMS_F_CMS_COMPRESS 104 -# define CMS_F_CMS_COMPRESSEDDATA_CREATE 105 -# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 106 -# define CMS_F_CMS_COPY_CONTENT 107 -# define CMS_F_CMS_COPY_MESSAGEDIGEST 108 -# define CMS_F_CMS_DATA 109 -# define CMS_F_CMS_DATAFINAL 110 -# define CMS_F_CMS_DATAINIT 111 -# define CMS_F_CMS_DECRYPT 112 -# define CMS_F_CMS_DECRYPT_SET1_KEY 113 -# define CMS_F_CMS_DECRYPT_SET1_PASSWORD 166 -# define CMS_F_CMS_DECRYPT_SET1_PKEY 114 -# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 115 -# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 116 -# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 117 -# define CMS_F_CMS_DIGEST_VERIFY 118 -# define CMS_F_CMS_ENCODE_RECEIPT 161 -# define CMS_F_CMS_ENCRYPT 119 -# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT 179 -# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 120 -# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 121 -# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 122 -# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 123 -# define CMS_F_CMS_ENVELOPEDDATA_CREATE 124 -# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 125 -# define CMS_F_CMS_ENVELOPED_DATA_INIT 126 -# define CMS_F_CMS_ENV_ASN1_CTRL 171 -# define CMS_F_CMS_FINAL 127 -# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 128 -# define CMS_F_CMS_GET0_CONTENT 129 -# define CMS_F_CMS_GET0_ECONTENT_TYPE 130 -# define CMS_F_CMS_GET0_ENVELOPED 131 -# define CMS_F_CMS_GET0_REVOCATION_CHOICES 132 -# define CMS_F_CMS_GET0_SIGNED 133 -# define CMS_F_CMS_MSGSIGDIGEST_ADD1 162 -# define CMS_F_CMS_RECEIPTREQUEST_CREATE0 159 -# define CMS_F_CMS_RECEIPT_VERIFY 160 -# define CMS_F_CMS_RECIPIENTINFO_DECRYPT 134 -# define CMS_F_CMS_RECIPIENTINFO_ENCRYPT 169 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT 178 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG 175 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID 173 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS 172 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP 174 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 135 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 136 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 137 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 138 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 139 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 140 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 141 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 142 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 143 -# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 167 -# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 144 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 168 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 145 -# define CMS_F_CMS_SD_ASN1_CTRL 170 -# define CMS_F_CMS_SET1_IAS 176 -# define CMS_F_CMS_SET1_KEYID 177 -# define CMS_F_CMS_SET1_SIGNERIDENTIFIER 146 -# define CMS_F_CMS_SET_DETACHED 147 -# define CMS_F_CMS_SIGN 148 -# define CMS_F_CMS_SIGNED_DATA_INIT 149 -# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 150 -# define CMS_F_CMS_SIGNERINFO_SIGN 151 -# define CMS_F_CMS_SIGNERINFO_VERIFY 152 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 153 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 154 -# define CMS_F_CMS_SIGN_RECEIPT 163 -# define CMS_F_CMS_SI_CHECK_ATTRIBUTES 183 -# define CMS_F_CMS_STREAM 155 -# define CMS_F_CMS_UNCOMPRESS 156 -# define CMS_F_CMS_VERIFY 157 -# define CMS_F_KEK_UNWRAP_KEY 180 - -/* - * CMS reason codes. - */ -# define CMS_R_ADD_SIGNER_ERROR 99 -# define CMS_R_ATTRIBUTE_ERROR 161 -# define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 -# define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 -# define CMS_R_CERTIFICATE_VERIFY_ERROR 100 -# define CMS_R_CIPHER_INITIALISATION_ERROR 101 -# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 -# define CMS_R_CMS_DATAFINAL_ERROR 103 -# define CMS_R_CMS_LIB 104 -# define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 -# define CMS_R_CONTENT_NOT_FOUND 105 -# define CMS_R_CONTENT_TYPE_MISMATCH 171 -# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 -# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 -# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 -# define CMS_R_CONTENT_VERIFY_ERROR 109 -# define CMS_R_CTRL_ERROR 110 -# define CMS_R_CTRL_FAILURE 111 -# define CMS_R_DECRYPT_ERROR 112 -# define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 -# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 -# define CMS_R_ERROR_SETTING_KEY 115 -# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 -# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 -# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 -# define CMS_R_INVALID_KEY_LENGTH 118 -# define CMS_R_MD_BIO_INIT_ERROR 119 -# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 -# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 -# define CMS_R_MSGSIGDIGEST_ERROR 172 -# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 -# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 -# define CMS_R_NEED_ONE_SIGNER 164 -# define CMS_R_NOT_A_SIGNED_RECEIPT 165 -# define CMS_R_NOT_ENCRYPTED_DATA 122 -# define CMS_R_NOT_KEK 123 -# define CMS_R_NOT_KEY_AGREEMENT 181 -# define CMS_R_NOT_KEY_TRANSPORT 124 -# define CMS_R_NOT_PWRI 177 -# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 -# define CMS_R_NO_CIPHER 126 -# define CMS_R_NO_CONTENT 127 -# define CMS_R_NO_CONTENT_TYPE 173 -# define CMS_R_NO_DEFAULT_DIGEST 128 -# define CMS_R_NO_DIGEST_SET 129 -# define CMS_R_NO_KEY 130 -# define CMS_R_NO_KEY_OR_CERT 174 -# define CMS_R_NO_MATCHING_DIGEST 131 -# define CMS_R_NO_MATCHING_RECIPIENT 132 -# define CMS_R_NO_MATCHING_SIGNATURE 166 -# define CMS_R_NO_MSGSIGDIGEST 167 -# define CMS_R_NO_PASSWORD 178 -# define CMS_R_NO_PRIVATE_KEY 133 -# define CMS_R_NO_PUBLIC_KEY 134 -# define CMS_R_NO_RECEIPT_REQUEST 168 -# define CMS_R_NO_SIGNERS 135 -# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 -# define CMS_R_RECEIPT_DECODE_ERROR 169 -# define CMS_R_RECIPIENT_ERROR 137 -# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 -# define CMS_R_SIGNFINAL_ERROR 139 -# define CMS_R_SMIME_TEXT_ERROR 140 -# define CMS_R_STORE_INIT_ERROR 141 -# define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 -# define CMS_R_TYPE_NOT_DATA 143 -# define CMS_R_TYPE_NOT_DIGESTED_DATA 144 -# define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 -# define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 -# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 -# define CMS_R_UNKNOWN_CIPHER 148 -# define CMS_R_UNKNOWN_DIGEST_ALGORITHM 149 -# define CMS_R_UNKNOWN_ID 150 -# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 -# define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 -# define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 -# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 -# define CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE 155 -# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 -# define CMS_R_UNSUPPORTED_TYPE 156 -# define CMS_R_UNWRAP_ERROR 157 -# define CMS_R_UNWRAP_FAILURE 180 -# define CMS_R_VERIFICATION_FAILURE 158 -# define CMS_R_WRAP_ERROR 159 - -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/comp.h b/submodules/MtProtoKit/openssl/openssl/comp.h deleted file mode 100644 index d814d3cf25..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/comp.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_COMP_H -# define HEADER_COMP_H - -# include - -# ifndef OPENSSL_NO_COMP -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - - - -COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); -const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); -int COMP_CTX_get_type(const COMP_CTX* comp); -int COMP_get_type(const COMP_METHOD *meth); -const char *COMP_get_name(const COMP_METHOD *meth); -void COMP_CTX_free(COMP_CTX *ctx); - -int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, - unsigned char *in, int ilen); -int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, - unsigned char *in, int ilen); - -COMP_METHOD *COMP_zlib(void); - -#if OPENSSL_API_COMPAT < 0x10100000L -#define COMP_zlib_cleanup() while(0) continue -#endif - -# ifdef HEADER_BIO_H -# ifdef ZLIB -const BIO_METHOD *BIO_f_zlib(void); -# endif -# endif - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/comperr.h b/submodules/MtProtoKit/openssl/openssl/comperr.h deleted file mode 100644 index 90231e9aa3..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/comperr.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_COMPERR_H -# define HEADER_COMPERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# include - -# ifndef OPENSSL_NO_COMP - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_COMP_strings(void); - -/* - * COMP function codes. - */ -# define COMP_F_BIO_ZLIB_FLUSH 99 -# define COMP_F_BIO_ZLIB_NEW 100 -# define COMP_F_BIO_ZLIB_READ 101 -# define COMP_F_BIO_ZLIB_WRITE 102 -# define COMP_F_COMP_CTX_NEW 103 - -/* - * COMP reason codes. - */ -# define COMP_R_ZLIB_DEFLATE_ERROR 99 -# define COMP_R_ZLIB_INFLATE_ERROR 100 -# define COMP_R_ZLIB_NOT_SUPPORTED 101 - -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/conf.h b/submodules/MtProtoKit/openssl/openssl/conf.h deleted file mode 100644 index 7336cd2f1d..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/conf.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CONF_H -# define HEADER_CONF_H - -# include -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - char *section; - char *name; - char *value; -} CONF_VALUE; - -DEFINE_STACK_OF(CONF_VALUE) -DEFINE_LHASH_OF(CONF_VALUE); - -struct conf_st; -struct conf_method_st; -typedef struct conf_method_st CONF_METHOD; - -struct conf_method_st { - const char *name; - CONF *(*create) (CONF_METHOD *meth); - int (*init) (CONF *conf); - int (*destroy) (CONF *conf); - int (*destroy_data) (CONF *conf); - int (*load_bio) (CONF *conf, BIO *bp, long *eline); - int (*dump) (const CONF *conf, BIO *bp); - int (*is_number) (const CONF *conf, char c); - int (*to_int) (const CONF *conf, char c); - int (*load) (CONF *conf, const char *name, long *eline); -}; - -/* Module definitions */ - -typedef struct conf_imodule_st CONF_IMODULE; -typedef struct conf_module_st CONF_MODULE; - -DEFINE_STACK_OF(CONF_MODULE) -DEFINE_STACK_OF(CONF_IMODULE) - -/* DSO module function typedefs */ -typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf); -typedef void conf_finish_func (CONF_IMODULE *md); - -# define CONF_MFLAGS_IGNORE_ERRORS 0x1 -# define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2 -# define CONF_MFLAGS_SILENT 0x4 -# define CONF_MFLAGS_NO_DSO 0x8 -# define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10 -# define CONF_MFLAGS_DEFAULT_SECTION 0x20 - -int CONF_set_default_method(CONF_METHOD *meth); -void CONF_set_nconf(CONF *conf, LHASH_OF(CONF_VALUE) *hash); -LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file, - long *eline); -# ifndef OPENSSL_NO_STDIO -LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp, - long *eline); -# endif -LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp, - long *eline); -STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf, - const char *section); -char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group, - const char *name); -long CONF_get_number(LHASH_OF(CONF_VALUE) *conf, const char *group, - const char *name); -void CONF_free(LHASH_OF(CONF_VALUE) *conf); -#ifndef OPENSSL_NO_STDIO -int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out); -#endif -int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out); - -DEPRECATEDIN_1_1_0(void OPENSSL_config(const char *config_name)) - -#if OPENSSL_API_COMPAT < 0x10100000L -# define OPENSSL_no_config() \ - OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL) -#endif - -/* - * New conf code. The semantics are different from the functions above. If - * that wasn't the case, the above functions would have been replaced - */ - -struct conf_st { - CONF_METHOD *meth; - void *meth_data; - LHASH_OF(CONF_VALUE) *data; -}; - -CONF *NCONF_new(CONF_METHOD *meth); -CONF_METHOD *NCONF_default(void); -CONF_METHOD *NCONF_WIN32(void); -void NCONF_free(CONF *conf); -void NCONF_free_data(CONF *conf); - -int NCONF_load(CONF *conf, const char *file, long *eline); -# ifndef OPENSSL_NO_STDIO -int NCONF_load_fp(CONF *conf, FILE *fp, long *eline); -# endif -int NCONF_load_bio(CONF *conf, BIO *bp, long *eline); -STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, - const char *section); -char *NCONF_get_string(const CONF *conf, const char *group, const char *name); -int NCONF_get_number_e(const CONF *conf, const char *group, const char *name, - long *result); -#ifndef OPENSSL_NO_STDIO -int NCONF_dump_fp(const CONF *conf, FILE *out); -#endif -int NCONF_dump_bio(const CONF *conf, BIO *out); - -#define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r) - -/* Module functions */ - -int CONF_modules_load(const CONF *cnf, const char *appname, - unsigned long flags); -int CONF_modules_load_file(const char *filename, const char *appname, - unsigned long flags); -void CONF_modules_unload(int all); -void CONF_modules_finish(void); -#if OPENSSL_API_COMPAT < 0x10100000L -# define CONF_modules_free() while(0) continue -#endif -int CONF_module_add(const char *name, conf_init_func *ifunc, - conf_finish_func *ffunc); - -const char *CONF_imodule_get_name(const CONF_IMODULE *md); -const char *CONF_imodule_get_value(const CONF_IMODULE *md); -void *CONF_imodule_get_usr_data(const CONF_IMODULE *md); -void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); -CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md); -unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md); -void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); -void *CONF_module_get_usr_data(CONF_MODULE *pmod); -void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); - -char *CONF_get1_default_config_file(void); - -int CONF_parse_list(const char *list, int sep, int nospc, - int (*list_cb) (const char *elem, int len, void *usr), - void *arg); - -void OPENSSL_load_builtin_modules(void); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/conf_api.h b/submodules/MtProtoKit/openssl/openssl/conf_api.h deleted file mode 100644 index a0275ad79b..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/conf_api.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CONF_API_H -# define HEADER_CONF_API_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Up until OpenSSL 0.9.5a, this was new_section */ -CONF_VALUE *_CONF_new_section(CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was get_section */ -CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was CONF_get_section */ -STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf, - const char *section); - -int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value); -char *_CONF_get_string(const CONF *conf, const char *section, - const char *name); -long _CONF_get_number(const CONF *conf, const char *section, - const char *name); - -int _CONF_new_data(CONF *conf); -void _CONF_free_data(CONF *conf); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/conferr.h b/submodules/MtProtoKit/openssl/openssl/conferr.h deleted file mode 100644 index 32b9229185..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/conferr.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CONFERR_H -# define HEADER_CONFERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_CONF_strings(void); - -/* - * CONF function codes. - */ -# define CONF_F_CONF_DUMP_FP 104 -# define CONF_F_CONF_LOAD 100 -# define CONF_F_CONF_LOAD_FP 103 -# define CONF_F_CONF_PARSE_LIST 119 -# define CONF_F_DEF_LOAD 120 -# define CONF_F_DEF_LOAD_BIO 121 -# define CONF_F_GET_NEXT_FILE 107 -# define CONF_F_MODULE_ADD 122 -# define CONF_F_MODULE_INIT 115 -# define CONF_F_MODULE_LOAD_DSO 117 -# define CONF_F_MODULE_RUN 118 -# define CONF_F_NCONF_DUMP_BIO 105 -# define CONF_F_NCONF_DUMP_FP 106 -# define CONF_F_NCONF_GET_NUMBER_E 112 -# define CONF_F_NCONF_GET_SECTION 108 -# define CONF_F_NCONF_GET_STRING 109 -# define CONF_F_NCONF_LOAD 113 -# define CONF_F_NCONF_LOAD_BIO 110 -# define CONF_F_NCONF_LOAD_FP 114 -# define CONF_F_NCONF_NEW 111 -# define CONF_F_PROCESS_INCLUDE 116 -# define CONF_F_SSL_MODULE_INIT 123 -# define CONF_F_STR_COPY 101 - -/* - * CONF reason codes. - */ -# define CONF_R_ERROR_LOADING_DSO 110 -# define CONF_R_LIST_CANNOT_BE_NULL 115 -# define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 -# define CONF_R_MISSING_EQUAL_SIGN 101 -# define CONF_R_MISSING_INIT_FUNCTION 112 -# define CONF_R_MODULE_INITIALIZATION_ERROR 109 -# define CONF_R_NO_CLOSE_BRACE 102 -# define CONF_R_NO_CONF 105 -# define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 -# define CONF_R_NO_SECTION 107 -# define CONF_R_NO_SUCH_FILE 114 -# define CONF_R_NO_VALUE 108 -# define CONF_R_NUMBER_TOO_LARGE 121 -# define CONF_R_RECURSIVE_DIRECTORY_INCLUDE 111 -# define CONF_R_SSL_COMMAND_SECTION_EMPTY 117 -# define CONF_R_SSL_COMMAND_SECTION_NOT_FOUND 118 -# define CONF_R_SSL_SECTION_EMPTY 119 -# define CONF_R_SSL_SECTION_NOT_FOUND 120 -# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 -# define CONF_R_UNKNOWN_MODULE_NAME 113 -# define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116 -# define CONF_R_VARIABLE_HAS_NO_VALUE 104 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/crypto.h b/submodules/MtProtoKit/openssl/openssl/crypto.h deleted file mode 100644 index 7d0b526236..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/crypto.h +++ /dev/null @@ -1,445 +0,0 @@ -/* - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CRYPTO_H -# define HEADER_CRYPTO_H - -# include -# include - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif - -# include -# include -# include -# include -# include - -# ifdef CHARSET_EBCDIC -# include -# endif - -/* - * Resolve problems on some operating systems with symbol names that clash - * one way or another - */ -# include - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# if OPENSSL_API_COMPAT < 0x10100000L -# define SSLeay OpenSSL_version_num -# define SSLeay_version OpenSSL_version -# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER -# define SSLEAY_VERSION OPENSSL_VERSION -# define SSLEAY_CFLAGS OPENSSL_CFLAGS -# define SSLEAY_BUILT_ON OPENSSL_BUILT_ON -# define SSLEAY_PLATFORM OPENSSL_PLATFORM -# define SSLEAY_DIR OPENSSL_DIR - -/* - * Old type for allocating dynamic locks. No longer used. Use the new thread - * API instead. - */ -typedef struct { - int dummy; -} CRYPTO_dynlock; - -# endif /* OPENSSL_API_COMPAT */ - -typedef void CRYPTO_RWLOCK; - -CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void); -int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock); -int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock); -int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); -void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); - -int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); - -/* - * The following can be used to detect memory leaks in the library. If - * used, it turns on malloc checking - */ -# define CRYPTO_MEM_CHECK_OFF 0x0 /* Control only */ -# define CRYPTO_MEM_CHECK_ON 0x1 /* Control and mode bit */ -# define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ -# define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ - -struct crypto_ex_data_st { - STACK_OF(void) *sk; -}; -DEFINE_STACK_OF(void) - -/* - * Per class, we have a STACK of function pointers. - */ -# define CRYPTO_EX_INDEX_SSL 0 -# define CRYPTO_EX_INDEX_SSL_CTX 1 -# define CRYPTO_EX_INDEX_SSL_SESSION 2 -# define CRYPTO_EX_INDEX_X509 3 -# define CRYPTO_EX_INDEX_X509_STORE 4 -# define CRYPTO_EX_INDEX_X509_STORE_CTX 5 -# define CRYPTO_EX_INDEX_DH 6 -# define CRYPTO_EX_INDEX_DSA 7 -# define CRYPTO_EX_INDEX_EC_KEY 8 -# define CRYPTO_EX_INDEX_RSA 9 -# define CRYPTO_EX_INDEX_ENGINE 10 -# define CRYPTO_EX_INDEX_UI 11 -# define CRYPTO_EX_INDEX_BIO 12 -# define CRYPTO_EX_INDEX_APP 13 -# define CRYPTO_EX_INDEX_UI_METHOD 14 -# define CRYPTO_EX_INDEX_DRBG 15 -# define CRYPTO_EX_INDEX__COUNT 16 - -/* No longer needed, so this is a no-op */ -#define OPENSSL_malloc_init() while(0) continue - -int CRYPTO_mem_ctrl(int mode); - -# define OPENSSL_malloc(num) \ - CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_zalloc(num) \ - CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_realloc(addr, num) \ - CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_clear_realloc(addr, old_num, num) \ - CRYPTO_clear_realloc(addr, old_num, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_clear_free(addr, num) \ - CRYPTO_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_free(addr) \ - CRYPTO_free(addr, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_memdup(str, s) \ - CRYPTO_memdup((str), s, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_strdup(str) \ - CRYPTO_strdup(str, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_strndup(str, n) \ - CRYPTO_strndup(str, n, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_malloc(num) \ - CRYPTO_secure_malloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_zalloc(num) \ - CRYPTO_secure_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_free(addr) \ - CRYPTO_secure_free(addr, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_clear_free(addr, num) \ - CRYPTO_secure_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_actual_size(ptr) \ - CRYPTO_secure_actual_size(ptr) - -size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); -size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); -size_t OPENSSL_strnlen(const char *str, size_t maxlen); -char *OPENSSL_buf2hexstr(const unsigned char *buffer, long len); -unsigned char *OPENSSL_hexstr2buf(const char *str, long *len); -int OPENSSL_hexchar2int(unsigned char c); - -# define OPENSSL_MALLOC_MAX_NELEMS(type) (((1U<<(sizeof(int)*8-1))-1)/sizeof(type)) - -unsigned long OpenSSL_version_num(void); -const char *OpenSSL_version(int type); -# define OPENSSL_VERSION 0 -# define OPENSSL_CFLAGS 1 -# define OPENSSL_BUILT_ON 2 -# define OPENSSL_PLATFORM 3 -# define OPENSSL_DIR 4 -# define OPENSSL_ENGINES_DIR 5 - -int OPENSSL_issetugid(void); - -typedef void CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from, - void *from_d, int idx, long argl, void *argp); -__owur int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, - CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -/* No longer use an index. */ -int CRYPTO_free_ex_index(int class_index, int idx); - -/* - * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a - * given class (invokes whatever per-class callbacks are applicable) - */ -int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); -int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, - const CRYPTO_EX_DATA *from); - -void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); - -/* - * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular - * index (relative to the class type involved) - */ -int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); -void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); - -# if OPENSSL_API_COMPAT < 0x10100000L -/* - * This function cleans up all "ex_data" state. It mustn't be called under - * potential race-conditions. - */ -# define CRYPTO_cleanup_all_ex_data() while(0) continue - -/* - * The old locking functions have been removed completely without compatibility - * macros. This is because the old functions either could not properly report - * errors, or the returned error values were not clearly documented. - * Replacing the locking functions with no-ops would cause race condition - * issues in the affected applications. It is far better for them to fail at - * compile time. - * On the other hand, the locking callbacks are no longer used. Consequently, - * the callback management functions can be safely replaced with no-op macros. - */ -# define CRYPTO_num_locks() (1) -# define CRYPTO_set_locking_callback(func) -# define CRYPTO_get_locking_callback() (NULL) -# define CRYPTO_set_add_lock_callback(func) -# define CRYPTO_get_add_lock_callback() (NULL) - -/* - * These defines where used in combination with the old locking callbacks, - * they are not called anymore, but old code that's not called might still - * use them. - */ -# define CRYPTO_LOCK 1 -# define CRYPTO_UNLOCK 2 -# define CRYPTO_READ 4 -# define CRYPTO_WRITE 8 - -/* This structure is no longer used */ -typedef struct crypto_threadid_st { - int dummy; -} CRYPTO_THREADID; -/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ -# define CRYPTO_THREADID_set_numeric(id, val) -# define CRYPTO_THREADID_set_pointer(id, ptr) -# define CRYPTO_THREADID_set_callback(threadid_func) (0) -# define CRYPTO_THREADID_get_callback() (NULL) -# define CRYPTO_THREADID_current(id) -# define CRYPTO_THREADID_cmp(a, b) (-1) -# define CRYPTO_THREADID_cpy(dest, src) -# define CRYPTO_THREADID_hash(id) (0UL) - -# if OPENSSL_API_COMPAT < 0x10000000L -# define CRYPTO_set_id_callback(func) -# define CRYPTO_get_id_callback() (NULL) -# define CRYPTO_thread_id() (0UL) -# endif /* OPENSSL_API_COMPAT < 0x10000000L */ - -# define CRYPTO_set_dynlock_create_callback(dyn_create_function) -# define CRYPTO_set_dynlock_lock_callback(dyn_lock_function) -# define CRYPTO_set_dynlock_destroy_callback(dyn_destroy_function) -# define CRYPTO_get_dynlock_create_callback() (NULL) -# define CRYPTO_get_dynlock_lock_callback() (NULL) -# define CRYPTO_get_dynlock_destroy_callback() (NULL) -# endif /* OPENSSL_API_COMPAT < 0x10100000L */ - -int CRYPTO_set_mem_functions( - void *(*m) (size_t, const char *, int), - void *(*r) (void *, size_t, const char *, int), - void (*f) (void *, const char *, int)); -int CRYPTO_set_mem_debug(int flag); -void CRYPTO_get_mem_functions( - void *(**m) (size_t, const char *, int), - void *(**r) (void *, size_t, const char *, int), - void (**f) (void *, const char *, int)); - -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); -void CRYPTO_free(void *ptr, const char *file, int line); -void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); -void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); -void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, - const char *file, int line); - -int CRYPTO_secure_malloc_init(size_t sz, int minsize); -int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); -void CRYPTO_secure_free(void *ptr, const char *file, int line); -void CRYPTO_secure_clear_free(void *ptr, size_t num, - const char *file, int line); -int CRYPTO_secure_allocated(const void *ptr); -int CRYPTO_secure_malloc_initialized(void); -size_t CRYPTO_secure_actual_size(void *ptr); -size_t CRYPTO_secure_used(void); - -void OPENSSL_cleanse(void *ptr, size_t len); - -# ifndef OPENSSL_NO_CRYPTO_MDEBUG -# define OPENSSL_mem_debug_push(info) \ - CRYPTO_mem_debug_push(info, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_mem_debug_pop() \ - CRYPTO_mem_debug_pop() -int CRYPTO_mem_debug_push(const char *info, const char *file, int line); -int CRYPTO_mem_debug_pop(void); -void CRYPTO_get_alloc_counts(int *mcount, int *rcount, int *fcount); - -/*- - * Debugging functions (enabled by CRYPTO_set_mem_debug(1)) - * The flag argument has the following significance: - * 0: called before the actual memory allocation has taken place - * 1: called after the actual memory allocation has taken place - */ -void CRYPTO_mem_debug_malloc(void *addr, size_t num, int flag, - const char *file, int line); -void CRYPTO_mem_debug_realloc(void *addr1, void *addr2, size_t num, int flag, - const char *file, int line); -void CRYPTO_mem_debug_free(void *addr, int flag, - const char *file, int line); - -int CRYPTO_mem_leaks_cb(int (*cb) (const char *str, size_t len, void *u), - void *u); -# ifndef OPENSSL_NO_STDIO -int CRYPTO_mem_leaks_fp(FILE *); -# endif -int CRYPTO_mem_leaks(BIO *bio); -# endif - -/* die if we have to */ -ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line); -# if OPENSSL_API_COMPAT < 0x10100000L -# define OpenSSLDie(f,l,a) OPENSSL_die((a),(f),(l)) -# endif -# define OPENSSL_assert(e) \ - (void)((e) ? 0 : (OPENSSL_die("assertion failed: " #e, OPENSSL_FILE, OPENSSL_LINE), 1)) - -int OPENSSL_isservice(void); - -int FIPS_mode(void); -int FIPS_mode_set(int r); - -void OPENSSL_init(void); -# ifdef OPENSSL_SYS_UNIX -void OPENSSL_fork_prepare(void); -void OPENSSL_fork_parent(void); -void OPENSSL_fork_child(void); -# endif - -struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result); -int OPENSSL_gmtime_adj(struct tm *tm, int offset_day, long offset_sec); -int OPENSSL_gmtime_diff(int *pday, int *psec, - const struct tm *from, const struct tm *to); - -/* - * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. - * It takes an amount of time dependent on |len|, but independent of the - * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements - * into a defined order as the return value when a != b is undefined, other - * than to be non-zero. - */ -int CRYPTO_memcmp(const void * in_a, const void * in_b, size_t len); - -/* Standard initialisation options */ -# define OPENSSL_INIT_NO_LOAD_CRYPTO_STRINGS 0x00000001L -# define OPENSSL_INIT_LOAD_CRYPTO_STRINGS 0x00000002L -# define OPENSSL_INIT_ADD_ALL_CIPHERS 0x00000004L -# define OPENSSL_INIT_ADD_ALL_DIGESTS 0x00000008L -# define OPENSSL_INIT_NO_ADD_ALL_CIPHERS 0x00000010L -# define OPENSSL_INIT_NO_ADD_ALL_DIGESTS 0x00000020L -# define OPENSSL_INIT_LOAD_CONFIG 0x00000040L -# define OPENSSL_INIT_NO_LOAD_CONFIG 0x00000080L -# define OPENSSL_INIT_ASYNC 0x00000100L -# define OPENSSL_INIT_ENGINE_RDRAND 0x00000200L -# define OPENSSL_INIT_ENGINE_DYNAMIC 0x00000400L -# define OPENSSL_INIT_ENGINE_OPENSSL 0x00000800L -# define OPENSSL_INIT_ENGINE_CRYPTODEV 0x00001000L -# define OPENSSL_INIT_ENGINE_CAPI 0x00002000L -# define OPENSSL_INIT_ENGINE_PADLOCK 0x00004000L -# define OPENSSL_INIT_ENGINE_AFALG 0x00008000L -/* OPENSSL_INIT_ZLIB 0x00010000L */ -# define OPENSSL_INIT_ATFORK 0x00020000L -/* OPENSSL_INIT_BASE_ONLY 0x00040000L */ -# define OPENSSL_INIT_NO_ATEXIT 0x00080000L -/* OPENSSL_INIT flag range 0xfff00000 reserved for OPENSSL_init_ssl() */ -/* Max OPENSSL_INIT flag value is 0x80000000 */ - -/* openssl and dasync not counted as builtin */ -# define OPENSSL_INIT_ENGINE_ALL_BUILTIN \ - (OPENSSL_INIT_ENGINE_RDRAND | OPENSSL_INIT_ENGINE_DYNAMIC \ - | OPENSSL_INIT_ENGINE_CRYPTODEV | OPENSSL_INIT_ENGINE_CAPI | \ - OPENSSL_INIT_ENGINE_PADLOCK) - - -/* Library initialisation functions */ -void OPENSSL_cleanup(void); -int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); -int OPENSSL_atexit(void (*handler)(void)); -void OPENSSL_thread_stop(void); - -/* Low-level control of initialization */ -OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void); -# ifndef OPENSSL_NO_STDIO -int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings, - const char *config_filename); -void OPENSSL_INIT_set_config_file_flags(OPENSSL_INIT_SETTINGS *settings, - unsigned long flags); -int OPENSSL_INIT_set_config_appname(OPENSSL_INIT_SETTINGS *settings, - const char *config_appname); -# endif -void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings); - -# if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG) -# if defined(_WIN32) -# if defined(BASETYPES) || defined(_WINDEF_H) -/* application has to include in order to use this */ -typedef DWORD CRYPTO_THREAD_LOCAL; -typedef DWORD CRYPTO_THREAD_ID; - -typedef LONG CRYPTO_ONCE; -# define CRYPTO_ONCE_STATIC_INIT 0 -# endif -# else -# include -typedef pthread_once_t CRYPTO_ONCE; -typedef pthread_key_t CRYPTO_THREAD_LOCAL; -typedef pthread_t CRYPTO_THREAD_ID; - -# define CRYPTO_ONCE_STATIC_INIT PTHREAD_ONCE_INIT -# endif -# endif - -# if !defined(CRYPTO_ONCE_STATIC_INIT) -typedef unsigned int CRYPTO_ONCE; -typedef unsigned int CRYPTO_THREAD_LOCAL; -typedef unsigned int CRYPTO_THREAD_ID; -# define CRYPTO_ONCE_STATIC_INIT 0 -# endif - -int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void)); - -int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *)); -void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key); -int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val); -int CRYPTO_THREAD_cleanup_local(CRYPTO_THREAD_LOCAL *key); - -CRYPTO_THREAD_ID CRYPTO_THREAD_get_current_id(void); -int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/cryptoerr.h b/submodules/MtProtoKit/openssl/openssl/cryptoerr.h deleted file mode 100644 index 3db5a4ee99..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/cryptoerr.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CRYPTOERR_H -# define HEADER_CRYPTOERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_CRYPTO_strings(void); - -/* - * CRYPTO function codes. - */ -# define CRYPTO_F_CMAC_CTX_NEW 120 -# define CRYPTO_F_CRYPTO_DUP_EX_DATA 110 -# define CRYPTO_F_CRYPTO_FREE_EX_DATA 111 -# define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 100 -# define CRYPTO_F_CRYPTO_MEMDUP 115 -# define CRYPTO_F_CRYPTO_NEW_EX_DATA 112 -# define CRYPTO_F_CRYPTO_OCB128_COPY_CTX 121 -# define CRYPTO_F_CRYPTO_OCB128_INIT 122 -# define CRYPTO_F_CRYPTO_SET_EX_DATA 102 -# define CRYPTO_F_FIPS_MODE_SET 109 -# define CRYPTO_F_GET_AND_LOCK 113 -# define CRYPTO_F_OPENSSL_ATEXIT 114 -# define CRYPTO_F_OPENSSL_BUF2HEXSTR 117 -# define CRYPTO_F_OPENSSL_FOPEN 119 -# define CRYPTO_F_OPENSSL_HEXSTR2BUF 118 -# define CRYPTO_F_OPENSSL_INIT_CRYPTO 116 -# define CRYPTO_F_OPENSSL_LH_NEW 126 -# define CRYPTO_F_OPENSSL_SK_DEEP_COPY 127 -# define CRYPTO_F_OPENSSL_SK_DUP 128 -# define CRYPTO_F_PKEY_HMAC_INIT 123 -# define CRYPTO_F_PKEY_POLY1305_INIT 124 -# define CRYPTO_F_PKEY_SIPHASH_INIT 125 -# define CRYPTO_F_SK_RESERVE 129 - -/* - * CRYPTO reason codes. - */ -# define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 101 -# define CRYPTO_R_ILLEGAL_HEX_DIGIT 102 -# define CRYPTO_R_ODD_NUMBER_OF_DIGITS 103 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ct.h b/submodules/MtProtoKit/openssl/openssl/ct.h deleted file mode 100644 index d4262fa048..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ct.h +++ /dev/null @@ -1,476 +0,0 @@ -/* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CT_H -# define HEADER_CT_H - -# include - -# ifndef OPENSSL_NO_CT -# include -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - - -/* Minimum RSA key size, from RFC6962 */ -# define SCT_MIN_RSA_BITS 2048 - -/* All hashes are SHA256 in v1 of Certificate Transparency */ -# define CT_V1_HASHLEN SHA256_DIGEST_LENGTH - -typedef enum { - CT_LOG_ENTRY_TYPE_NOT_SET = -1, - CT_LOG_ENTRY_TYPE_X509 = 0, - CT_LOG_ENTRY_TYPE_PRECERT = 1 -} ct_log_entry_type_t; - -typedef enum { - SCT_VERSION_NOT_SET = -1, - SCT_VERSION_V1 = 0 -} sct_version_t; - -typedef enum { - SCT_SOURCE_UNKNOWN, - SCT_SOURCE_TLS_EXTENSION, - SCT_SOURCE_X509V3_EXTENSION, - SCT_SOURCE_OCSP_STAPLED_RESPONSE -} sct_source_t; - -typedef enum { - SCT_VALIDATION_STATUS_NOT_SET, - SCT_VALIDATION_STATUS_UNKNOWN_LOG, - SCT_VALIDATION_STATUS_VALID, - SCT_VALIDATION_STATUS_INVALID, - SCT_VALIDATION_STATUS_UNVERIFIED, - SCT_VALIDATION_STATUS_UNKNOWN_VERSION -} sct_validation_status_t; - -DEFINE_STACK_OF(SCT) -DEFINE_STACK_OF(CTLOG) - -/****************************************** - * CT policy evaluation context functions * - ******************************************/ - -/* - * Creates a new, empty policy evaluation context. - * The caller is responsible for calling CT_POLICY_EVAL_CTX_free when finished - * with the CT_POLICY_EVAL_CTX. - */ -CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void); - -/* Deletes a policy evaluation context and anything it owns. */ -void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx); - -/* Gets the peer certificate that the SCTs are for */ -X509* CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the certificate associated with the received SCTs. - * Increments the reference count of cert. - * Returns 1 on success, 0 otherwise. - */ -int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert); - -/* Gets the issuer of the aforementioned certificate */ -X509* CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the issuer of the certificate associated with the received SCTs. - * Increments the reference count of issuer. - * Returns 1 on success, 0 otherwise. - */ -int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer); - -/* Gets the CT logs that are trusted sources of SCTs */ -const CTLOG_STORE *CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx); - -/* Sets the log store that is in use. It must outlive the CT_POLICY_EVAL_CTX. */ -void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx, - CTLOG_STORE *log_store); - -/* - * Gets the time, in milliseconds since the Unix epoch, that will be used as the - * current time when checking whether an SCT was issued in the future. - * Such SCTs will fail validation, as required by RFC6962. - */ -uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the time to evaluate SCTs against, in milliseconds since the Unix epoch. - * If an SCT's timestamp is after this time, it will be interpreted as having - * been issued in the future. RFC6962 states that "TLS clients MUST reject SCTs - * whose timestamp is in the future", so an SCT will not validate in this case. - */ -void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms); - -/***************** - * SCT functions * - *****************/ - -/* - * Creates a new, blank SCT. - * The caller is responsible for calling SCT_free when finished with the SCT. - */ -SCT *SCT_new(void); - -/* - * Creates a new SCT from some base64-encoded strings. - * The caller is responsible for calling SCT_free when finished with the SCT. - */ -SCT *SCT_new_from_base64(unsigned char version, - const char *logid_base64, - ct_log_entry_type_t entry_type, - uint64_t timestamp, - const char *extensions_base64, - const char *signature_base64); - -/* - * Frees the SCT and the underlying data structures. - */ -void SCT_free(SCT *sct); - -/* - * Free a stack of SCTs, and the underlying SCTs themselves. - * Intended to be compatible with X509V3_EXT_FREE. - */ -void SCT_LIST_free(STACK_OF(SCT) *a); - -/* - * Returns the version of the SCT. - */ -sct_version_t SCT_get_version(const SCT *sct); - -/* - * Set the version of an SCT. - * Returns 1 on success, 0 if the version is unrecognized. - */ -__owur int SCT_set_version(SCT *sct, sct_version_t version); - -/* - * Returns the log entry type of the SCT. - */ -ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct); - -/* - * Set the log entry type of an SCT. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type); - -/* - * Gets the ID of the log that an SCT came from. - * Ownership of the log ID remains with the SCT. - * Returns the length of the log ID. - */ -size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id); - -/* - * Set the log ID of an SCT to point directly to the *log_id specified. - * The SCT takes ownership of the specified pointer. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len); - -/* - * Set the log ID of an SCT. - * This makes a copy of the log_id. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, - size_t log_id_len); - -/* - * Returns the timestamp for the SCT (epoch time in milliseconds). - */ -uint64_t SCT_get_timestamp(const SCT *sct); - -/* - * Set the timestamp of an SCT (epoch time in milliseconds). - */ -void SCT_set_timestamp(SCT *sct, uint64_t timestamp); - -/* - * Return the NID for the signature used by the SCT. - * For CT v1, this will be either NID_sha256WithRSAEncryption or - * NID_ecdsa_with_SHA256 (or NID_undef if incorrect/unset). - */ -int SCT_get_signature_nid(const SCT *sct); - -/* - * Set the signature type of an SCT - * For CT v1, this should be either NID_sha256WithRSAEncryption or - * NID_ecdsa_with_SHA256. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_signature_nid(SCT *sct, int nid); - -/* - * Set *ext to point to the extension data for the SCT. ext must not be NULL. - * The SCT retains ownership of this pointer. - * Returns length of the data pointed to. - */ -size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext); - -/* - * Set the extensions of an SCT to point directly to the *ext specified. - * The SCT takes ownership of the specified pointer. - */ -void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len); - -/* - * Set the extensions of an SCT. - * This takes a copy of the ext. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_extensions(SCT *sct, const unsigned char *ext, - size_t ext_len); - -/* - * Set *sig to point to the signature for the SCT. sig must not be NULL. - * The SCT retains ownership of this pointer. - * Returns length of the data pointed to. - */ -size_t SCT_get0_signature(const SCT *sct, unsigned char **sig); - -/* - * Set the signature of an SCT to point directly to the *sig specified. - * The SCT takes ownership of the specified pointer. - */ -void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len); - -/* - * Set the signature of an SCT to be a copy of the *sig specified. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_signature(SCT *sct, const unsigned char *sig, - size_t sig_len); - -/* - * The origin of this SCT, e.g. TLS extension, OCSP response, etc. - */ -sct_source_t SCT_get_source(const SCT *sct); - -/* - * Set the origin of this SCT, e.g. TLS extension, OCSP response, etc. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_source(SCT *sct, sct_source_t source); - -/* - * Returns a text string describing the validation status of |sct|. - */ -const char *SCT_validation_status_string(const SCT *sct); - -/* - * Pretty-prints an |sct| to |out|. - * It will be indented by the number of spaces specified by |indent|. - * If |logs| is not NULL, it will be used to lookup the CT log that the SCT came - * from, so that the log name can be printed. - */ -void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG_STORE *logs); - -/* - * Pretty-prints an |sct_list| to |out|. - * It will be indented by the number of spaces specified by |indent|. - * SCTs will be delimited by |separator|. - * If |logs| is not NULL, it will be used to lookup the CT log that each SCT - * came from, so that the log names can be printed. - */ -void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent, - const char *separator, const CTLOG_STORE *logs); - -/* - * Gets the last result of validating this SCT. - * If it has not been validated yet, returns SCT_VALIDATION_STATUS_NOT_SET. - */ -sct_validation_status_t SCT_get_validation_status(const SCT *sct); - -/* - * Validates the given SCT with the provided context. - * Sets the "validation_status" field of the SCT. - * Returns 1 if the SCT is valid and the signature verifies. - * Returns 0 if the SCT is invalid or could not be verified. - * Returns -1 if an error occurs. - */ -__owur int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx); - -/* - * Validates the given list of SCTs with the provided context. - * Sets the "validation_status" field of each SCT. - * Returns 1 if there are no invalid SCTs and all signatures verify. - * Returns 0 if at least one SCT is invalid or could not be verified. - * Returns a negative integer if an error occurs. - */ -__owur int SCT_LIST_validate(const STACK_OF(SCT) *scts, - CT_POLICY_EVAL_CTX *ctx); - - -/********************************* - * SCT parsing and serialisation * - *********************************/ - -/* - * Serialize (to TLS format) a stack of SCTs and return the length. - * "a" must not be NULL. - * If "pp" is NULL, just return the length of what would have been serialized. - * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer - * for data that caller is responsible for freeing (only if function returns - * successfully). - * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring - * that "*pp" is large enough to accept all of the serialized data. - * Returns < 0 on error, >= 0 indicating bytes written (or would have been) - * on success. - */ -__owur int i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); - -/* - * Convert TLS format SCT list to a stack of SCTs. - * If "a" or "*a" is NULL, a new stack will be created that the caller is - * responsible for freeing (by calling SCT_LIST_free). - * "**pp" and "*pp" must not be NULL. - * Upon success, "*pp" will point to after the last bytes read, and a stack - * will be returned. - * Upon failure, a NULL pointer will be returned, and the position of "*pp" is - * not defined. - */ -STACK_OF(SCT) *o2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, - size_t len); - -/* - * Serialize (to DER format) a stack of SCTs and return the length. - * "a" must not be NULL. - * If "pp" is NULL, just returns the length of what would have been serialized. - * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer - * for data that caller is responsible for freeing (only if function returns - * successfully). - * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring - * that "*pp" is large enough to accept all of the serialized data. - * Returns < 0 on error, >= 0 indicating bytes written (or would have been) - * on success. - */ -__owur int i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); - -/* - * Parses an SCT list in DER format and returns it. - * If "a" or "*a" is NULL, a new stack will be created that the caller is - * responsible for freeing (by calling SCT_LIST_free). - * "**pp" and "*pp" must not be NULL. - * Upon success, "*pp" will point to after the last bytes read, and a stack - * will be returned. - * Upon failure, a NULL pointer will be returned, and the position of "*pp" is - * not defined. - */ -STACK_OF(SCT) *d2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, - long len); - -/* - * Serialize (to TLS format) an |sct| and write it to |out|. - * If |out| is null, no SCT will be output but the length will still be returned. - * If |out| points to a null pointer, a string will be allocated to hold the - * TLS-format SCT. It is the responsibility of the caller to free it. - * If |out| points to an allocated string, the TLS-format SCT will be written - * to it. - * The length of the SCT in TLS format will be returned. - */ -__owur int i2o_SCT(const SCT *sct, unsigned char **out); - -/* - * Parses an SCT in TLS format and returns it. - * If |psct| is not null, it will end up pointing to the parsed SCT. If it - * already points to a non-null pointer, the pointer will be free'd. - * |in| should be a pointer to a string containing the TLS-format SCT. - * |in| will be advanced to the end of the SCT if parsing succeeds. - * |len| should be the length of the SCT in |in|. - * Returns NULL if an error occurs. - * If the SCT is an unsupported version, only the SCT's 'sct' and 'sct_len' - * fields will be populated (with |in| and |len| respectively). - */ -SCT *o2i_SCT(SCT **psct, const unsigned char **in, size_t len); - -/******************** - * CT log functions * - ********************/ - -/* - * Creates a new CT log instance with the given |public_key| and |name|. - * Takes ownership of |public_key| but copies |name|. - * Returns NULL if malloc fails or if |public_key| cannot be converted to DER. - * Should be deleted by the caller using CTLOG_free when no longer needed. - */ -CTLOG *CTLOG_new(EVP_PKEY *public_key, const char *name); - -/* - * Creates a new CTLOG instance with the base64-encoded SubjectPublicKeyInfo DER - * in |pkey_base64|. The |name| is a string to help users identify this log. - * Returns 1 on success, 0 on failure. - * Should be deleted by the caller using CTLOG_free when no longer needed. - */ -int CTLOG_new_from_base64(CTLOG ** ct_log, - const char *pkey_base64, const char *name); - -/* - * Deletes a CT log instance and its fields. - */ -void CTLOG_free(CTLOG *log); - -/* Gets the name of the CT log */ -const char *CTLOG_get0_name(const CTLOG *log); -/* Gets the ID of the CT log */ -void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id, - size_t *log_id_len); -/* Gets the public key of the CT log */ -EVP_PKEY *CTLOG_get0_public_key(const CTLOG *log); - -/************************** - * CT log store functions * - **************************/ - -/* - * Creates a new CT log store. - * Should be deleted by the caller using CTLOG_STORE_free when no longer needed. - */ -CTLOG_STORE *CTLOG_STORE_new(void); - -/* - * Deletes a CT log store and all of the CT log instances held within. - */ -void CTLOG_STORE_free(CTLOG_STORE *store); - -/* - * Finds a CT log in the store based on its log ID. - * Returns the CT log, or NULL if no match is found. - */ -const CTLOG *CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store, - const uint8_t *log_id, - size_t log_id_len); - -/* - * Loads a CT log list into a |store| from a |file|. - * Returns 1 if loading is successful, or 0 otherwise. - */ -__owur int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file); - -/* - * Loads the default CT log list into a |store|. - * See internal/cryptlib.h for the environment variable and file path that are - * consulted to find the default file. - * Returns 1 if loading is successful, or 0 otherwise. - */ -__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store); - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/cterr.h b/submodules/MtProtoKit/openssl/openssl/cterr.h deleted file mode 100644 index feb7bc5663..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/cterr.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CTERR_H -# define HEADER_CTERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# include - -# ifndef OPENSSL_NO_CT - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_CT_strings(void); - -/* - * CT function codes. - */ -# define CT_F_CTLOG_NEW 117 -# define CT_F_CTLOG_NEW_FROM_BASE64 118 -# define CT_F_CTLOG_NEW_FROM_CONF 119 -# define CT_F_CTLOG_STORE_LOAD_CTX_NEW 122 -# define CT_F_CTLOG_STORE_LOAD_FILE 123 -# define CT_F_CTLOG_STORE_LOAD_LOG 130 -# define CT_F_CTLOG_STORE_NEW 131 -# define CT_F_CT_BASE64_DECODE 124 -# define CT_F_CT_POLICY_EVAL_CTX_NEW 133 -# define CT_F_CT_V1_LOG_ID_FROM_PKEY 125 -# define CT_F_I2O_SCT 107 -# define CT_F_I2O_SCT_LIST 108 -# define CT_F_I2O_SCT_SIGNATURE 109 -# define CT_F_O2I_SCT 110 -# define CT_F_O2I_SCT_LIST 111 -# define CT_F_O2I_SCT_SIGNATURE 112 -# define CT_F_SCT_CTX_NEW 126 -# define CT_F_SCT_CTX_VERIFY 128 -# define CT_F_SCT_NEW 100 -# define CT_F_SCT_NEW_FROM_BASE64 127 -# define CT_F_SCT_SET0_LOG_ID 101 -# define CT_F_SCT_SET1_EXTENSIONS 114 -# define CT_F_SCT_SET1_LOG_ID 115 -# define CT_F_SCT_SET1_SIGNATURE 116 -# define CT_F_SCT_SET_LOG_ENTRY_TYPE 102 -# define CT_F_SCT_SET_SIGNATURE_NID 103 -# define CT_F_SCT_SET_VERSION 104 - -/* - * CT reason codes. - */ -# define CT_R_BASE64_DECODE_ERROR 108 -# define CT_R_INVALID_LOG_ID_LENGTH 100 -# define CT_R_LOG_CONF_INVALID 109 -# define CT_R_LOG_CONF_INVALID_KEY 110 -# define CT_R_LOG_CONF_MISSING_DESCRIPTION 111 -# define CT_R_LOG_CONF_MISSING_KEY 112 -# define CT_R_LOG_KEY_INVALID 113 -# define CT_R_SCT_FUTURE_TIMESTAMP 116 -# define CT_R_SCT_INVALID 104 -# define CT_R_SCT_INVALID_SIGNATURE 107 -# define CT_R_SCT_LIST_INVALID 105 -# define CT_R_SCT_LOG_ID_MISMATCH 114 -# define CT_R_SCT_NOT_SET 106 -# define CT_R_SCT_UNSUPPORTED_VERSION 115 -# define CT_R_UNRECOGNIZED_SIGNATURE_NID 101 -# define CT_R_UNSUPPORTED_ENTRY_TYPE 102 -# define CT_R_UNSUPPORTED_VERSION 103 - -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/des.h b/submodules/MtProtoKit/openssl/openssl/des.h deleted file mode 100644 index be4abbdfd0..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/des.h +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_DES_H -# define HEADER_DES_H - -# include - -# ifndef OPENSSL_NO_DES -# ifdef __cplusplus -extern "C" { -# endif -# include - -typedef unsigned int DES_LONG; - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -typedef unsigned char DES_cblock[8]; -typedef /* const */ unsigned char const_DES_cblock[8]; -/* - * With "const", gcc 2.8.1 on Solaris thinks that DES_cblock * and - * const_DES_cblock * are incompatible pointer types. - */ - -typedef struct DES_ks { - union { - DES_cblock cblock; - /* - * make sure things are correct size on machines with 8 byte longs - */ - DES_LONG deslong[2]; - } ks[16]; -} DES_key_schedule; - -# define DES_KEY_SZ (sizeof(DES_cblock)) -# define DES_SCHEDULE_SZ (sizeof(DES_key_schedule)) - -# define DES_ENCRYPT 1 -# define DES_DECRYPT 0 - -# define DES_CBC_MODE 0 -# define DES_PCBC_MODE 1 - -# define DES_ecb2_encrypt(i,o,k1,k2,e) \ - DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -# define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -# define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ - DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) - -# define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ - DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) - -OPENSSL_DECLARE_GLOBAL(int, DES_check_key); /* defaults to false */ -# define DES_check_key OPENSSL_GLOBAL_REF(DES_check_key) - -const char *DES_options(void); -void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, int enc); -DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output, - long length, DES_key_schedule *schedule, - const_DES_cblock *ivec); -/* DES_cbc_encrypt does not update the IV! Use DES_ncbc_encrypt instead. */ -void DES_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, const_DES_cblock *inw, - const_DES_cblock *outw, int enc); -void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks, int enc); - -/* - * This is the DES encryption function that gets called by just about every - * other DES routine in the library. You should not use this function except - * to implement 'modes' of DES. I say this because the functions that call - * this routine do the conversion from 'char *' to long, and this needs to be - * done to make sure 'non-aligned' memory access do not occur. The - * characters are loaded 'little endian'. Data is a pointer to 2 unsigned - * long's and ks is the DES_key_schedule to use. enc, is non zero specifies - * encryption, zero if decryption. - */ -void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc); - -/* - * This functions is the same as DES_encrypt1() except that the DES initial - * permutation (IP) and final permutation (FP) have been left out. As for - * DES_encrypt1(), you should not use this function. It is used by the - * routines in the library that implement triple DES. IP() DES_encrypt2() - * DES_encrypt2() DES_encrypt2() FP() is the same as DES_encrypt1() - * DES_encrypt1() DES_encrypt1() except faster :-). - */ -void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc); - -void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3); -void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3); -void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, DES_cblock *ivec, int enc); -void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num, int enc); -void DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out, - int numbits, long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int enc); -void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num); -char *DES_fcrypt(const char *buf, const char *salt, char *ret); -char *DES_crypt(const char *buf, const char *salt); -void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, - DES_cblock *ivec); -void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[], - long length, int out_count, DES_cblock *seed); -int DES_random_key(DES_cblock *ret); -void DES_set_odd_parity(DES_cblock *key); -int DES_check_key_parity(const_DES_cblock *key); -int DES_is_weak_key(const_DES_cblock *key); -/* - * DES_set_key (= set_key = DES_key_sched = key_sched) calls - * DES_set_key_checked if global variable DES_check_key is set, - * DES_set_key_unchecked otherwise. - */ -int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule); -int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule); -int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule); -void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule); -void DES_string_to_key(const char *str, DES_cblock *key); -void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2); -void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num, int enc); -void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num); - -# define DES_fixup_key_parity DES_set_odd_parity - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/des_old.h b/submodules/MtProtoKit/openssl/openssl/des_old.h deleted file mode 100644 index ee7607a241..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/des_old.h +++ /dev/null @@ -1,497 +0,0 @@ -/* crypto/des/des_old.h */ - -/*- - * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - * - * The function names in here are deprecated and are only present to - * provide an interface compatible with openssl 0.9.6 and older as - * well as libdes. OpenSSL now provides functions where "des_" has - * been replaced with "DES_" in the names, to make it possible to - * make incompatible changes that are needed for C type security and - * other stuff. - * - * This include files has two compatibility modes: - * - * - If OPENSSL_DES_LIBDES_COMPATIBILITY is defined, you get an API - * that is compatible with libdes and SSLeay. - * - If OPENSSL_DES_LIBDES_COMPATIBILITY isn't defined, you get an - * API that is compatible with OpenSSL 0.9.5x to 0.9.6x. - * - * Note that these modes break earlier snapshots of OpenSSL, where - * libdes compatibility was the only available mode or (later on) the - * prefered compatibility mode. However, after much consideration - * (and more or less violent discussions with external parties), it - * was concluded that OpenSSL should be compatible with earlier versions - * of itself before anything else. Also, in all honesty, libdes is - * an old beast that shouldn't really be used any more. - * - * Please consider starting to use the DES_ functions rather than the - * des_ ones. The des_ functions will disappear completely before - * OpenSSL 1.0! - * - * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - */ - -/* - * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project - * 2001. - */ -/* ==================================================================== - * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_DES_H -# define HEADER_DES_H - -# include /* OPENSSL_EXTERN, OPENSSL_NO_DES, DES_LONG */ - -# ifdef OPENSSL_NO_DES -# error DES is disabled. -# endif - -# ifndef HEADER_NEW_DES_H -# error You must include des.h, not des_old.h directly. -# endif - -# ifdef _KERBEROS_DES_H -# error replaces . -# endif - -# include - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# ifdef _ -# undef _ -# endif - -typedef unsigned char _ossl_old_des_cblock[8]; -typedef struct _ossl_old_des_ks_struct { - union { - _ossl_old_des_cblock _; - /* - * make sure things are correct size on machines with 8 byte longs - */ - DES_LONG pad[2]; - } ks; -} _ossl_old_des_key_schedule[16]; - -# ifndef OPENSSL_DES_LIBDES_COMPATIBILITY -# define des_cblock DES_cblock -# define const_des_cblock const_DES_cblock -# define des_key_schedule DES_key_schedule -# define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ - DES_ecb3_encrypt((i),(o),&(k1),&(k2),&(k3),(e)) -# define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ - DES_ede3_cbc_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(e)) -# define des_ede3_cbcm_encrypt(i,o,l,k1,k2,k3,iv1,iv2,e)\ - DES_ede3_cbcm_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv1),(iv2),(e)) -# define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ - DES_ede3_cfb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n),(e)) -# define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ - DES_ede3_ofb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n)) -# define des_options()\ - DES_options() -# define des_cbc_cksum(i,o,l,k,iv)\ - DES_cbc_cksum((i),(o),(l),&(k),(iv)) -# define des_cbc_encrypt(i,o,l,k,iv,e)\ - DES_cbc_encrypt((i),(o),(l),&(k),(iv),(e)) -# define des_ncbc_encrypt(i,o,l,k,iv,e)\ - DES_ncbc_encrypt((i),(o),(l),&(k),(iv),(e)) -# define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ - DES_xcbc_encrypt((i),(o),(l),&(k),(iv),(inw),(outw),(e)) -# define des_cfb_encrypt(i,o,n,l,k,iv,e)\ - DES_cfb_encrypt((i),(o),(n),(l),&(k),(iv),(e)) -# define des_ecb_encrypt(i,o,k,e)\ - DES_ecb_encrypt((i),(o),&(k),(e)) -# define des_encrypt1(d,k,e)\ - DES_encrypt1((d),&(k),(e)) -# define des_encrypt2(d,k,e)\ - DES_encrypt2((d),&(k),(e)) -# define des_encrypt3(d,k1,k2,k3)\ - DES_encrypt3((d),&(k1),&(k2),&(k3)) -# define des_decrypt3(d,k1,k2,k3)\ - DES_decrypt3((d),&(k1),&(k2),&(k3)) -# define des_xwhite_in2out(k,i,o)\ - DES_xwhite_in2out((k),(i),(o)) -# define des_enc_read(f,b,l,k,iv)\ - DES_enc_read((f),(b),(l),&(k),(iv)) -# define des_enc_write(f,b,l,k,iv)\ - DES_enc_write((f),(b),(l),&(k),(iv)) -# define des_fcrypt(b,s,r)\ - DES_fcrypt((b),(s),(r)) -# if 0 -# define des_crypt(b,s)\ - DES_crypt((b),(s)) -# if !defined(PERL5) && !defined(__FreeBSD__) && !defined(NeXT) && !defined(__OpenBSD__) -# define crypt(b,s)\ - DES_crypt((b),(s)) -# endif -# endif -# define des_ofb_encrypt(i,o,n,l,k,iv)\ - DES_ofb_encrypt((i),(o),(n),(l),&(k),(iv)) -# define des_pcbc_encrypt(i,o,l,k,iv,e)\ - DES_pcbc_encrypt((i),(o),(l),&(k),(iv),(e)) -# define des_quad_cksum(i,o,l,c,s)\ - DES_quad_cksum((i),(o),(l),(c),(s)) -# define des_random_seed(k)\ - _ossl_096_des_random_seed((k)) -# define des_random_key(r)\ - DES_random_key((r)) -# define des_read_password(k,p,v) \ - DES_read_password((k),(p),(v)) -# define des_read_2passwords(k1,k2,p,v) \ - DES_read_2passwords((k1),(k2),(p),(v)) -# define des_set_odd_parity(k)\ - DES_set_odd_parity((k)) -# define des_check_key_parity(k)\ - DES_check_key_parity((k)) -# define des_is_weak_key(k)\ - DES_is_weak_key((k)) -# define des_set_key(k,ks)\ - DES_set_key((k),&(ks)) -# define des_key_sched(k,ks)\ - DES_key_sched((k),&(ks)) -# define des_set_key_checked(k,ks)\ - DES_set_key_checked((k),&(ks)) -# define des_set_key_unchecked(k,ks)\ - DES_set_key_unchecked((k),&(ks)) -# define des_string_to_key(s,k)\ - DES_string_to_key((s),(k)) -# define des_string_to_2keys(s,k1,k2)\ - DES_string_to_2keys((s),(k1),(k2)) -# define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\ - DES_cfb64_encrypt((i),(o),(l),&(ks),(iv),(n),(e)) -# define des_ofb64_encrypt(i,o,l,ks,iv,n)\ - DES_ofb64_encrypt((i),(o),(l),&(ks),(iv),(n)) - -# define des_ecb2_encrypt(i,o,k1,k2,e) \ - des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -# define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -# define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ - des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) - -# define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ - des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) - -# define des_check_key DES_check_key -# define des_rw_mode DES_rw_mode -# else /* libdes compatibility */ -/* - * Map all symbol names to _ossl_old_des_* form, so we avoid all clashes with - * libdes - */ -# define des_cblock _ossl_old_des_cblock -# define des_key_schedule _ossl_old_des_key_schedule -# define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ - _ossl_old_des_ecb3_encrypt((i),(o),(k1),(k2),(k3),(e)) -# define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ - _ossl_old_des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) -# define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ - _ossl_old_des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n),(e)) -# define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ - _ossl_old_des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n)) -# define des_options()\ - _ossl_old_des_options() -# define des_cbc_cksum(i,o,l,k,iv)\ - _ossl_old_des_cbc_cksum((i),(o),(l),(k),(iv)) -# define des_cbc_encrypt(i,o,l,k,iv,e)\ - _ossl_old_des_cbc_encrypt((i),(o),(l),(k),(iv),(e)) -# define des_ncbc_encrypt(i,o,l,k,iv,e)\ - _ossl_old_des_ncbc_encrypt((i),(o),(l),(k),(iv),(e)) -# define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ - _ossl_old_des_xcbc_encrypt((i),(o),(l),(k),(iv),(inw),(outw),(e)) -# define des_cfb_encrypt(i,o,n,l,k,iv,e)\ - _ossl_old_des_cfb_encrypt((i),(o),(n),(l),(k),(iv),(e)) -# define des_ecb_encrypt(i,o,k,e)\ - _ossl_old_des_ecb_encrypt((i),(o),(k),(e)) -# define des_encrypt(d,k,e)\ - _ossl_old_des_encrypt((d),(k),(e)) -# define des_encrypt2(d,k,e)\ - _ossl_old_des_encrypt2((d),(k),(e)) -# define des_encrypt3(d,k1,k2,k3)\ - _ossl_old_des_encrypt3((d),(k1),(k2),(k3)) -# define des_decrypt3(d,k1,k2,k3)\ - _ossl_old_des_decrypt3((d),(k1),(k2),(k3)) -# define des_xwhite_in2out(k,i,o)\ - _ossl_old_des_xwhite_in2out((k),(i),(o)) -# define des_enc_read(f,b,l,k,iv)\ - _ossl_old_des_enc_read((f),(b),(l),(k),(iv)) -# define des_enc_write(f,b,l,k,iv)\ - _ossl_old_des_enc_write((f),(b),(l),(k),(iv)) -# define des_fcrypt(b,s,r)\ - _ossl_old_des_fcrypt((b),(s),(r)) -# define des_crypt(b,s)\ - _ossl_old_des_crypt((b),(s)) -# if 0 -# define crypt(b,s)\ - _ossl_old_crypt((b),(s)) -# endif -# define des_ofb_encrypt(i,o,n,l,k,iv)\ - _ossl_old_des_ofb_encrypt((i),(o),(n),(l),(k),(iv)) -# define des_pcbc_encrypt(i,o,l,k,iv,e)\ - _ossl_old_des_pcbc_encrypt((i),(o),(l),(k),(iv),(e)) -# define des_quad_cksum(i,o,l,c,s)\ - _ossl_old_des_quad_cksum((i),(o),(l),(c),(s)) -# define des_random_seed(k)\ - _ossl_old_des_random_seed((k)) -# define des_random_key(r)\ - _ossl_old_des_random_key((r)) -# define des_read_password(k,p,v) \ - _ossl_old_des_read_password((k),(p),(v)) -# define des_read_2passwords(k1,k2,p,v) \ - _ossl_old_des_read_2passwords((k1),(k2),(p),(v)) -# define des_set_odd_parity(k)\ - _ossl_old_des_set_odd_parity((k)) -# define des_is_weak_key(k)\ - _ossl_old_des_is_weak_key((k)) -# define des_set_key(k,ks)\ - _ossl_old_des_set_key((k),(ks)) -# define des_key_sched(k,ks)\ - _ossl_old_des_key_sched((k),(ks)) -# define des_string_to_key(s,k)\ - _ossl_old_des_string_to_key((s),(k)) -# define des_string_to_2keys(s,k1,k2)\ - _ossl_old_des_string_to_2keys((s),(k1),(k2)) -# define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\ - _ossl_old_des_cfb64_encrypt((i),(o),(l),(ks),(iv),(n),(e)) -# define des_ofb64_encrypt(i,o,l,ks,iv,n)\ - _ossl_old_des_ofb64_encrypt((i),(o),(l),(ks),(iv),(n)) - -# define des_ecb2_encrypt(i,o,k1,k2,e) \ - des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -# define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -# define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ - des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) - -# define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ - des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) - -# define des_check_key DES_check_key -# define des_rw_mode DES_rw_mode -# endif - -const char *_ossl_old_des_options(void); -void _ossl_old_des_ecb3_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, - _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3, int enc); -DES_LONG _ossl_old_des_cbc_cksum(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec); -void _ossl_old_des_cbc_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, int enc); -void _ossl_old_des_ncbc_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, int enc); -void _ossl_old_des_xcbc_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, - _ossl_old_des_cblock *inw, - _ossl_old_des_cblock *outw, int enc); -void _ossl_old_des_cfb_encrypt(unsigned char *in, unsigned char *out, - int numbits, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, int enc); -void _ossl_old_des_ecb_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, - _ossl_old_des_key_schedule ks, int enc); -void _ossl_old_des_encrypt(DES_LONG *data, _ossl_old_des_key_schedule ks, - int enc); -void _ossl_old_des_encrypt2(DES_LONG *data, _ossl_old_des_key_schedule ks, - int enc); -void _ossl_old_des_encrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3); -void _ossl_old_des_decrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3); -void _ossl_old_des_ede3_cbc_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3, - _ossl_old_des_cblock *ivec, int enc); -void _ossl_old_des_ede3_cfb64_encrypt(unsigned char *in, unsigned char *out, - long length, - _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3, - _ossl_old_des_cblock *ivec, int *num, - int enc); -void _ossl_old_des_ede3_ofb64_encrypt(unsigned char *in, unsigned char *out, - long length, - _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3, - _ossl_old_des_cblock *ivec, int *num); -# if 0 -void _ossl_old_des_xwhite_in2out(_ossl_old_des_cblock (*des_key), - _ossl_old_des_cblock (*in_white), - _ossl_old_des_cblock (*out_white)); -# endif - -int _ossl_old_des_enc_read(int fd, char *buf, int len, - _ossl_old_des_key_schedule sched, - _ossl_old_des_cblock *iv); -int _ossl_old_des_enc_write(int fd, char *buf, int len, - _ossl_old_des_key_schedule sched, - _ossl_old_des_cblock *iv); -char *_ossl_old_des_fcrypt(const char *buf, const char *salt, char *ret); -char *_ossl_old_des_crypt(const char *buf, const char *salt); -# if !defined(PERL5) && !defined(NeXT) -char *_ossl_old_crypt(const char *buf, const char *salt); -# endif -void _ossl_old_des_ofb_encrypt(unsigned char *in, unsigned char *out, - int numbits, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec); -void _ossl_old_des_pcbc_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, int enc); -DES_LONG _ossl_old_des_quad_cksum(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - int out_count, _ossl_old_des_cblock *seed); -void _ossl_old_des_random_seed(_ossl_old_des_cblock key); -void _ossl_old_des_random_key(_ossl_old_des_cblock ret); -int _ossl_old_des_read_password(_ossl_old_des_cblock *key, const char *prompt, - int verify); -int _ossl_old_des_read_2passwords(_ossl_old_des_cblock *key1, - _ossl_old_des_cblock *key2, - const char *prompt, int verify); -void _ossl_old_des_set_odd_parity(_ossl_old_des_cblock *key); -int _ossl_old_des_is_weak_key(_ossl_old_des_cblock *key); -int _ossl_old_des_set_key(_ossl_old_des_cblock *key, - _ossl_old_des_key_schedule schedule); -int _ossl_old_des_key_sched(_ossl_old_des_cblock *key, - _ossl_old_des_key_schedule schedule); -void _ossl_old_des_string_to_key(char *str, _ossl_old_des_cblock *key); -void _ossl_old_des_string_to_2keys(char *str, _ossl_old_des_cblock *key1, - _ossl_old_des_cblock *key2); -void _ossl_old_des_cfb64_encrypt(unsigned char *in, unsigned char *out, - long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, int *num, - int enc); -void _ossl_old_des_ofb64_encrypt(unsigned char *in, unsigned char *out, - long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, int *num); - -void _ossl_096_des_random_seed(des_cblock *key); - -/* - * The following definitions provide compatibility with the MIT Kerberos - * library. The _ossl_old_des_key_schedule structure is not binary - * compatible. - */ - -# define _KERBEROS_DES_H - -# define KRBDES_ENCRYPT DES_ENCRYPT -# define KRBDES_DECRYPT DES_DECRYPT - -# ifdef KERBEROS -# define ENCRYPT DES_ENCRYPT -# define DECRYPT DES_DECRYPT -# endif - -# ifndef NCOMPAT -# define C_Block des_cblock -# define Key_schedule des_key_schedule -# define KEY_SZ DES_KEY_SZ -# define string_to_key des_string_to_key -# define read_pw_string des_read_pw_string -# define random_key des_random_key -# define pcbc_encrypt des_pcbc_encrypt -# define set_key des_set_key -# define key_sched des_key_sched -# define ecb_encrypt des_ecb_encrypt -# define cbc_encrypt des_cbc_encrypt -# define ncbc_encrypt des_ncbc_encrypt -# define xcbc_encrypt des_xcbc_encrypt -# define cbc_cksum des_cbc_cksum -# define quad_cksum des_quad_cksum -# define check_parity des_check_key_parity -# endif - -# define des_fixup_key_parity DES_fixup_key_parity - -#ifdef __cplusplus -} -#endif - -/* for DES_read_pw_string et al */ -# include - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/dh.h b/submodules/MtProtoKit/openssl/openssl/dh.h deleted file mode 100644 index 3527540cdd..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/dh.h +++ /dev/null @@ -1,340 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_DH_H -# define HEADER_DH_H - -# include - -# ifndef OPENSSL_NO_DH -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_DH_MAX_MODULUS_BITS -# define OPENSSL_DH_MAX_MODULUS_BITS 10000 -# endif - -# define OPENSSL_DH_FIPS_MIN_MODULUS_BITS 1024 - -# define DH_FLAG_CACHE_MONT_P 0x01 - -# if OPENSSL_API_COMPAT < 0x10100000L -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# define DH_FLAG_NO_EXP_CONSTTIME 0x00 -# endif - -/* - * If this flag is set the DH method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define DH_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define DH_FLAG_NON_FIPS_ALLOW 0x0400 - -/* Already defined in ossl_typ.h */ -/* typedef struct dh_st DH; */ -/* typedef struct dh_method DH_METHOD; */ - -DECLARE_ASN1_ITEM(DHparams) - -# define DH_GENERATOR_2 2 -/* #define DH_GENERATOR_3 3 */ -# define DH_GENERATOR_5 5 - -/* DH_check error codes */ -# define DH_CHECK_P_NOT_PRIME 0x01 -# define DH_CHECK_P_NOT_SAFE_PRIME 0x02 -# define DH_UNABLE_TO_CHECK_GENERATOR 0x04 -# define DH_NOT_SUITABLE_GENERATOR 0x08 -# define DH_CHECK_Q_NOT_PRIME 0x10 -# define DH_CHECK_INVALID_Q_VALUE 0x20 -# define DH_CHECK_INVALID_J_VALUE 0x40 - -/* DH_check_pub_key error codes */ -# define DH_CHECK_PUBKEY_TOO_SMALL 0x01 -# define DH_CHECK_PUBKEY_TOO_LARGE 0x02 -# define DH_CHECK_PUBKEY_INVALID 0x04 - -/* - * primes p where (p-1)/2 is prime too are called "safe"; we define this for - * backward compatibility: - */ -# define DH_CHECK_P_NOT_STRONG_PRIME DH_CHECK_P_NOT_SAFE_PRIME - -# define d2i_DHparams_fp(fp,x) \ - (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ - (char *(*)())d2i_DHparams, \ - (fp), \ - (unsigned char **)(x)) -# define i2d_DHparams_fp(fp,x) \ - ASN1_i2d_fp(i2d_DHparams,(fp), (unsigned char *)(x)) -# define d2i_DHparams_bio(bp,x) \ - ASN1_d2i_bio_of(DH, DH_new, d2i_DHparams, bp, x) -# define i2d_DHparams_bio(bp,x) \ - ASN1_i2d_bio_of_const(DH,i2d_DHparams,bp,x) - -# define d2i_DHxparams_fp(fp,x) \ - (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ - (char *(*)())d2i_DHxparams, \ - (fp), \ - (unsigned char **)(x)) -# define i2d_DHxparams_fp(fp,x) \ - ASN1_i2d_fp(i2d_DHxparams,(fp), (unsigned char *)(x)) -# define d2i_DHxparams_bio(bp,x) \ - ASN1_d2i_bio_of(DH, DH_new, d2i_DHxparams, bp, x) -# define i2d_DHxparams_bio(bp,x) \ - ASN1_i2d_bio_of_const(DH, i2d_DHxparams, bp, x) - -DH *DHparams_dup(DH *); - -const DH_METHOD *DH_OpenSSL(void); - -void DH_set_default_method(const DH_METHOD *meth); -const DH_METHOD *DH_get_default_method(void); -int DH_set_method(DH *dh, const DH_METHOD *meth); -DH *DH_new_method(ENGINE *engine); - -DH *DH_new(void); -void DH_free(DH *dh); -int DH_up_ref(DH *dh); -int DH_bits(const DH *dh); -int DH_size(const DH *dh); -int DH_security_bits(const DH *dh); -#define DH_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DH, l, p, newf, dupf, freef) -int DH_set_ex_data(DH *d, int idx, void *arg); -void *DH_get_ex_data(DH *d, int idx); - -/* Deprecated version */ -DEPRECATEDIN_0_9_8(DH *DH_generate_parameters(int prime_len, int generator, - void (*callback) (int, int, - void *), - void *cb_arg)) - -/* New version */ -int DH_generate_parameters_ex(DH *dh, int prime_len, int generator, - BN_GENCB *cb); - -int DH_check_params_ex(const DH *dh); -int DH_check_ex(const DH *dh); -int DH_check_pub_key_ex(const DH *dh, const BIGNUM *pub_key); -int DH_check_params(const DH *dh, int *ret); -int DH_check(const DH *dh, int *codes); -int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes); -int DH_generate_key(DH *dh); -int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); -int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh); -DH *d2i_DHparams(DH **a, const unsigned char **pp, long length); -int i2d_DHparams(const DH *a, unsigned char **pp); -DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length); -int i2d_DHxparams(const DH *a, unsigned char **pp); -# ifndef OPENSSL_NO_STDIO -int DHparams_print_fp(FILE *fp, const DH *x); -# endif -int DHparams_print(BIO *bp, const DH *x); - -/* RFC 5114 parameters */ -DH *DH_get_1024_160(void); -DH *DH_get_2048_224(void); -DH *DH_get_2048_256(void); - -/* Named parameters, currently RFC7919 */ -DH *DH_new_by_nid(int nid); -int DH_get_nid(const DH *dh); - -# ifndef OPENSSL_NO_CMS -/* RFC2631 KDF */ -int DH_KDF_X9_42(unsigned char *out, size_t outlen, - const unsigned char *Z, size_t Zlen, - ASN1_OBJECT *key_oid, - const unsigned char *ukm, size_t ukmlen, const EVP_MD *md); -# endif - -void DH_get0_pqg(const DH *dh, - const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); -int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g); -void DH_get0_key(const DH *dh, - const BIGNUM **pub_key, const BIGNUM **priv_key); -int DH_set0_key(DH *dh, BIGNUM *pub_key, BIGNUM *priv_key); -const BIGNUM *DH_get0_p(const DH *dh); -const BIGNUM *DH_get0_q(const DH *dh); -const BIGNUM *DH_get0_g(const DH *dh); -const BIGNUM *DH_get0_priv_key(const DH *dh); -const BIGNUM *DH_get0_pub_key(const DH *dh); -void DH_clear_flags(DH *dh, int flags); -int DH_test_flags(const DH *dh, int flags); -void DH_set_flags(DH *dh, int flags); -ENGINE *DH_get0_engine(DH *d); -long DH_get_length(const DH *dh); -int DH_set_length(DH *dh, long length); - -DH_METHOD *DH_meth_new(const char *name, int flags); -void DH_meth_free(DH_METHOD *dhm); -DH_METHOD *DH_meth_dup(const DH_METHOD *dhm); -const char *DH_meth_get0_name(const DH_METHOD *dhm); -int DH_meth_set1_name(DH_METHOD *dhm, const char *name); -int DH_meth_get_flags(const DH_METHOD *dhm); -int DH_meth_set_flags(DH_METHOD *dhm, int flags); -void *DH_meth_get0_app_data(const DH_METHOD *dhm); -int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data); -int (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *); -int DH_meth_set_generate_key(DH_METHOD *dhm, int (*generate_key) (DH *)); -int (*DH_meth_get_compute_key(const DH_METHOD *dhm)) - (unsigned char *key, const BIGNUM *pub_key, DH *dh); -int DH_meth_set_compute_key(DH_METHOD *dhm, - int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh)); -int (*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm)) - (const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, - BN_CTX *, BN_MONT_CTX *); -int DH_meth_set_bn_mod_exp(DH_METHOD *dhm, - int (*bn_mod_exp) (const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); -int (*DH_meth_get_init(const DH_METHOD *dhm))(DH *); -int DH_meth_set_init(DH_METHOD *dhm, int (*init)(DH *)); -int (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *); -int DH_meth_set_finish(DH_METHOD *dhm, int (*finish) (DH *)); -int (*DH_meth_get_generate_params(const DH_METHOD *dhm)) - (DH *, int, int, BN_GENCB *); -int DH_meth_set_generate_params(DH_METHOD *dhm, - int (*generate_params) (DH *, int, int, BN_GENCB *)); - - -# define EVP_PKEY_CTX_set_dh_paramgen_prime_len(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN, len, NULL) - -# define EVP_PKEY_CTX_set_dh_paramgen_subprime_len(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN, len, NULL) - -# define EVP_PKEY_CTX_set_dh_paramgen_type(ctx, typ) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_TYPE, typ, NULL) - -# define EVP_PKEY_CTX_set_dh_paramgen_generator(ctx, gen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR, gen, NULL) - -# define EVP_PKEY_CTX_set_dh_rfc5114(ctx, gen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) - -# define EVP_PKEY_CTX_set_dhx_rfc5114(ctx, gen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) - -# define EVP_PKEY_CTX_set_dh_nid(ctx, nid) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, \ - EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_DH_NID, nid, NULL) - -# define EVP_PKEY_CTX_set_dh_pad(ctx, pad) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_PAD, pad, NULL) - -# define EVP_PKEY_CTX_set_dh_kdf_type(ctx, kdf) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_TYPE, kdf, NULL) - -# define EVP_PKEY_CTX_get_dh_kdf_type(ctx) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_TYPE, -2, NULL) - -# define EVP_PKEY_CTX_set0_dh_kdf_oid(ctx, oid) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_OID, 0, (void *)(oid)) - -# define EVP_PKEY_CTX_get0_dh_kdf_oid(ctx, poid) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_DH_KDF_OID, 0, (void *)(poid)) - -# define EVP_PKEY_CTX_set_dh_kdf_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_MD, 0, (void *)(md)) - -# define EVP_PKEY_CTX_get_dh_kdf_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_DH_KDF_MD, 0, (void *)(pmd)) - -# define EVP_PKEY_CTX_set_dh_kdf_outlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_OUTLEN, len, NULL) - -# define EVP_PKEY_CTX_get_dh_kdf_outlen(ctx, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN, 0, (void *)(plen)) - -# define EVP_PKEY_CTX_set0_dh_kdf_ukm(ctx, p, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_UKM, plen, (void *)(p)) - -# define EVP_PKEY_CTX_get0_dh_kdf_ukm(ctx, p) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_DH_KDF_UKM, 0, (void *)(p)) - -# define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_DH_RFC5114 (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_DH_KDF_TYPE (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 8) -# define EVP_PKEY_CTRL_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 10) -# define EVP_PKEY_CTRL_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 11) -# define EVP_PKEY_CTRL_GET_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 12) -# define EVP_PKEY_CTRL_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 13) -# define EVP_PKEY_CTRL_GET_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 14) -# define EVP_PKEY_CTRL_DH_NID (EVP_PKEY_ALG_CTRL + 15) -# define EVP_PKEY_CTRL_DH_PAD (EVP_PKEY_ALG_CTRL + 16) - -/* KDF types */ -# define EVP_PKEY_DH_KDF_NONE 1 -# ifndef OPENSSL_NO_CMS -# define EVP_PKEY_DH_KDF_X9_42 2 -# endif - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/dherr.h b/submodules/MtProtoKit/openssl/openssl/dherr.h deleted file mode 100644 index 916b3bed0b..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/dherr.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_DHERR_H -# define HEADER_DHERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# include - -# ifndef OPENSSL_NO_DH - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_DH_strings(void); - -/* - * DH function codes. - */ -# define DH_F_COMPUTE_KEY 102 -# define DH_F_DHPARAMS_PRINT_FP 101 -# define DH_F_DH_BUILTIN_GENPARAMS 106 -# define DH_F_DH_CHECK_EX 121 -# define DH_F_DH_CHECK_PARAMS_EX 122 -# define DH_F_DH_CHECK_PUB_KEY_EX 123 -# define DH_F_DH_CMS_DECRYPT 114 -# define DH_F_DH_CMS_SET_PEERKEY 115 -# define DH_F_DH_CMS_SET_SHARED_INFO 116 -# define DH_F_DH_METH_DUP 117 -# define DH_F_DH_METH_NEW 118 -# define DH_F_DH_METH_SET1_NAME 119 -# define DH_F_DH_NEW_BY_NID 104 -# define DH_F_DH_NEW_METHOD 105 -# define DH_F_DH_PARAM_DECODE 107 -# define DH_F_DH_PKEY_PUBLIC_CHECK 124 -# define DH_F_DH_PRIV_DECODE 110 -# define DH_F_DH_PRIV_ENCODE 111 -# define DH_F_DH_PUB_DECODE 108 -# define DH_F_DH_PUB_ENCODE 109 -# define DH_F_DO_DH_PRINT 100 -# define DH_F_GENERATE_KEY 103 -# define DH_F_PKEY_DH_CTRL_STR 120 -# define DH_F_PKEY_DH_DERIVE 112 -# define DH_F_PKEY_DH_INIT 125 -# define DH_F_PKEY_DH_KEYGEN 113 - -/* - * DH reason codes. - */ -# define DH_R_BAD_GENERATOR 101 -# define DH_R_BN_DECODE_ERROR 109 -# define DH_R_BN_ERROR 106 -# define DH_R_CHECK_INVALID_J_VALUE 115 -# define DH_R_CHECK_INVALID_Q_VALUE 116 -# define DH_R_CHECK_PUBKEY_INVALID 122 -# define DH_R_CHECK_PUBKEY_TOO_LARGE 123 -# define DH_R_CHECK_PUBKEY_TOO_SMALL 124 -# define DH_R_CHECK_P_NOT_PRIME 117 -# define DH_R_CHECK_P_NOT_SAFE_PRIME 118 -# define DH_R_CHECK_Q_NOT_PRIME 119 -# define DH_R_DECODE_ERROR 104 -# define DH_R_INVALID_PARAMETER_NAME 110 -# define DH_R_INVALID_PARAMETER_NID 114 -# define DH_R_INVALID_PUBKEY 102 -# define DH_R_KDF_PARAMETER_ERROR 112 -# define DH_R_KEYS_NOT_SET 108 -# define DH_R_MISSING_PUBKEY 125 -# define DH_R_MODULUS_TOO_LARGE 103 -# define DH_R_NOT_SUITABLE_GENERATOR 120 -# define DH_R_NO_PARAMETERS_SET 107 -# define DH_R_NO_PRIVATE_VALUE 100 -# define DH_R_PARAMETER_ENCODING_ERROR 105 -# define DH_R_PEER_KEY_ERROR 111 -# define DH_R_SHARED_INFO_ERROR 113 -# define DH_R_UNABLE_TO_CHECK_GENERATOR 121 - -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/dsa.h b/submodules/MtProtoKit/openssl/openssl/dsa.h deleted file mode 100644 index 822eff347a..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/dsa.h +++ /dev/null @@ -1,238 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_DSA_H -# define HEADER_DSA_H - -# include - -# ifndef OPENSSL_NO_DSA -# ifdef __cplusplus -extern "C" { -# endif -# include -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include - -# ifndef OPENSSL_DSA_MAX_MODULUS_BITS -# define OPENSSL_DSA_MAX_MODULUS_BITS 10000 -# endif - -# define OPENSSL_DSA_FIPS_MIN_MODULUS_BITS 1024 - -# define DSA_FLAG_CACHE_MONT_P 0x01 -# if OPENSSL_API_COMPAT < 0x10100000L -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# define DSA_FLAG_NO_EXP_CONSTTIME 0x00 -# endif - -/* - * If this flag is set the DSA method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define DSA_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define DSA_FLAG_NON_FIPS_ALLOW 0x0400 -# define DSA_FLAG_FIPS_CHECKED 0x0800 - -/* Already defined in ossl_typ.h */ -/* typedef struct dsa_st DSA; */ -/* typedef struct dsa_method DSA_METHOD; */ - -typedef struct DSA_SIG_st DSA_SIG; - -# define d2i_DSAparams_fp(fp,x) (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, \ - (char *(*)())d2i_DSAparams,(fp),(unsigned char **)(x)) -# define i2d_DSAparams_fp(fp,x) ASN1_i2d_fp(i2d_DSAparams,(fp), \ - (unsigned char *)(x)) -# define d2i_DSAparams_bio(bp,x) ASN1_d2i_bio_of(DSA,DSA_new,d2i_DSAparams,bp,x) -# define i2d_DSAparams_bio(bp,x) ASN1_i2d_bio_of_const(DSA,i2d_DSAparams,bp,x) - -DSA *DSAparams_dup(DSA *x); -DSA_SIG *DSA_SIG_new(void); -void DSA_SIG_free(DSA_SIG *a); -int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); -DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); -void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); -int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s); - -DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); -int DSA_do_verify(const unsigned char *dgst, int dgst_len, - DSA_SIG *sig, DSA *dsa); - -const DSA_METHOD *DSA_OpenSSL(void); - -void DSA_set_default_method(const DSA_METHOD *); -const DSA_METHOD *DSA_get_default_method(void); -int DSA_set_method(DSA *dsa, const DSA_METHOD *); -const DSA_METHOD *DSA_get_method(DSA *d); - -DSA *DSA_new(void); -DSA *DSA_new_method(ENGINE *engine); -void DSA_free(DSA *r); -/* "up" the DSA object's reference count */ -int DSA_up_ref(DSA *r); -int DSA_size(const DSA *); -int DSA_bits(const DSA *d); -int DSA_security_bits(const DSA *d); - /* next 4 return -1 on error */ -DEPRECATEDIN_1_2_0(int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)) -int DSA_sign(int type, const unsigned char *dgst, int dlen, - unsigned char *sig, unsigned int *siglen, DSA *dsa); -int DSA_verify(int type, const unsigned char *dgst, int dgst_len, - const unsigned char *sigbuf, int siglen, DSA *dsa); -#define DSA_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DSA, l, p, newf, dupf, freef) -int DSA_set_ex_data(DSA *d, int idx, void *arg); -void *DSA_get_ex_data(DSA *d, int idx); - -DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); -DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); -DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length); - -/* Deprecated version */ -DEPRECATEDIN_0_9_8(DSA *DSA_generate_parameters(int bits, - unsigned char *seed, - int seed_len, - int *counter_ret, - unsigned long *h_ret, void - (*callback) (int, int, - void *), - void *cb_arg)) - -/* New version */ -int DSA_generate_parameters_ex(DSA *dsa, int bits, - const unsigned char *seed, int seed_len, - int *counter_ret, unsigned long *h_ret, - BN_GENCB *cb); - -int DSA_generate_key(DSA *a); -int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); -int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); -int i2d_DSAparams(const DSA *a, unsigned char **pp); - -int DSAparams_print(BIO *bp, const DSA *x); -int DSA_print(BIO *bp, const DSA *x, int off); -# ifndef OPENSSL_NO_STDIO -int DSAparams_print_fp(FILE *fp, const DSA *x); -int DSA_print_fp(FILE *bp, const DSA *x, int off); -# endif - -# define DSS_prime_checks 64 -/* - * Primality test according to FIPS PUB 186-4, Appendix C.3. Since we only - * have one value here we set the number of checks to 64 which is the 128 bit - * security level that is the highest level and valid for creating a 3072 bit - * DSA key. - */ -# define DSA_is_prime(n, callback, cb_arg) \ - BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg) - -# ifndef OPENSSL_NO_DH -/* - * Convert DSA structure (key or just parameters) into DH structure (be - * careful to avoid small subgroup attacks when using this!) - */ -DH *DSA_dup_DH(const DSA *r); -# endif - -# define EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx, nbits) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DSA_PARAMGEN_BITS, nbits, NULL) - -# define EVP_PKEY_CTRL_DSA_PARAMGEN_BITS (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_DSA_PARAMGEN_MD (EVP_PKEY_ALG_CTRL + 3) - -void DSA_get0_pqg(const DSA *d, - const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); -int DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g); -void DSA_get0_key(const DSA *d, - const BIGNUM **pub_key, const BIGNUM **priv_key); -int DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key); -const BIGNUM *DSA_get0_p(const DSA *d); -const BIGNUM *DSA_get0_q(const DSA *d); -const BIGNUM *DSA_get0_g(const DSA *d); -const BIGNUM *DSA_get0_pub_key(const DSA *d); -const BIGNUM *DSA_get0_priv_key(const DSA *d); -void DSA_clear_flags(DSA *d, int flags); -int DSA_test_flags(const DSA *d, int flags); -void DSA_set_flags(DSA *d, int flags); -ENGINE *DSA_get0_engine(DSA *d); - -DSA_METHOD *DSA_meth_new(const char *name, int flags); -void DSA_meth_free(DSA_METHOD *dsam); -DSA_METHOD *DSA_meth_dup(const DSA_METHOD *dsam); -const char *DSA_meth_get0_name(const DSA_METHOD *dsam); -int DSA_meth_set1_name(DSA_METHOD *dsam, const char *name); -int DSA_meth_get_flags(const DSA_METHOD *dsam); -int DSA_meth_set_flags(DSA_METHOD *dsam, int flags); -void *DSA_meth_get0_app_data(const DSA_METHOD *dsam); -int DSA_meth_set0_app_data(DSA_METHOD *dsam, void *app_data); -DSA_SIG *(*DSA_meth_get_sign(const DSA_METHOD *dsam)) - (const unsigned char *, int, DSA *); -int DSA_meth_set_sign(DSA_METHOD *dsam, - DSA_SIG *(*sign) (const unsigned char *, int, DSA *)); -int (*DSA_meth_get_sign_setup(const DSA_METHOD *dsam)) - (DSA *, BN_CTX *, BIGNUM **, BIGNUM **); -int DSA_meth_set_sign_setup(DSA_METHOD *dsam, - int (*sign_setup) (DSA *, BN_CTX *, BIGNUM **, BIGNUM **)); -int (*DSA_meth_get_verify(const DSA_METHOD *dsam)) - (const unsigned char *, int, DSA_SIG *, DSA *); -int DSA_meth_set_verify(DSA_METHOD *dsam, - int (*verify) (const unsigned char *, int, DSA_SIG *, DSA *)); -int (*DSA_meth_get_mod_exp(const DSA_METHOD *dsam)) - (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *); -int DSA_meth_set_mod_exp(DSA_METHOD *dsam, - int (*mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, - BN_MONT_CTX *)); -int (*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam)) - (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, - BN_CTX *, BN_MONT_CTX *); -int DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam, - int (*bn_mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); -int (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *); -int DSA_meth_set_init(DSA_METHOD *dsam, int (*init)(DSA *)); -int (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *); -int DSA_meth_set_finish(DSA_METHOD *dsam, int (*finish) (DSA *)); -int (*DSA_meth_get_paramgen(const DSA_METHOD *dsam)) - (DSA *, int, const unsigned char *, int, int *, unsigned long *, - BN_GENCB *); -int DSA_meth_set_paramgen(DSA_METHOD *dsam, - int (*paramgen) (DSA *, int, const unsigned char *, int, int *, - unsigned long *, BN_GENCB *)); -int (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *); -int DSA_meth_set_keygen(DSA_METHOD *dsam, int (*keygen) (DSA *)); - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/dsaerr.h b/submodules/MtProtoKit/openssl/openssl/dsaerr.h deleted file mode 100644 index 495a1ac89d..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/dsaerr.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_DSAERR_H -# define HEADER_DSAERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# include - -# ifndef OPENSSL_NO_DSA - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_DSA_strings(void); - -/* - * DSA function codes. - */ -# define DSA_F_DSAPARAMS_PRINT 100 -# define DSA_F_DSAPARAMS_PRINT_FP 101 -# define DSA_F_DSA_BUILTIN_PARAMGEN 125 -# define DSA_F_DSA_BUILTIN_PARAMGEN2 126 -# define DSA_F_DSA_DO_SIGN 112 -# define DSA_F_DSA_DO_VERIFY 113 -# define DSA_F_DSA_METH_DUP 127 -# define DSA_F_DSA_METH_NEW 128 -# define DSA_F_DSA_METH_SET1_NAME 129 -# define DSA_F_DSA_NEW_METHOD 103 -# define DSA_F_DSA_PARAM_DECODE 119 -# define DSA_F_DSA_PRINT_FP 105 -# define DSA_F_DSA_PRIV_DECODE 115 -# define DSA_F_DSA_PRIV_ENCODE 116 -# define DSA_F_DSA_PUB_DECODE 117 -# define DSA_F_DSA_PUB_ENCODE 118 -# define DSA_F_DSA_SIGN 106 -# define DSA_F_DSA_SIGN_SETUP 107 -# define DSA_F_DSA_SIG_NEW 102 -# define DSA_F_OLD_DSA_PRIV_DECODE 122 -# define DSA_F_PKEY_DSA_CTRL 120 -# define DSA_F_PKEY_DSA_CTRL_STR 104 -# define DSA_F_PKEY_DSA_KEYGEN 121 - -/* - * DSA reason codes. - */ -# define DSA_R_BAD_Q_VALUE 102 -# define DSA_R_BN_DECODE_ERROR 108 -# define DSA_R_BN_ERROR 109 -# define DSA_R_DECODE_ERROR 104 -# define DSA_R_INVALID_DIGEST_TYPE 106 -# define DSA_R_INVALID_PARAMETERS 112 -# define DSA_R_MISSING_PARAMETERS 101 -# define DSA_R_MISSING_PRIVATE_KEY 111 -# define DSA_R_MODULUS_TOO_LARGE 103 -# define DSA_R_NO_PARAMETERS_SET 107 -# define DSA_R_PARAMETER_ENCODING_ERROR 105 -# define DSA_R_Q_NOT_PRIME 113 -# define DSA_R_SEED_LEN_SMALL 110 - -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/dso.h b/submodules/MtProtoKit/openssl/openssl/dso.h deleted file mode 100644 index c9013f5cea..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/dso.h +++ /dev/null @@ -1,451 +0,0 @@ -/* dso.h */ -/* - * Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL project - * 2000. - */ -/* ==================================================================== - * Copyright (c) 2000 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_DSO_H -# define HEADER_DSO_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* These values are used as commands to DSO_ctrl() */ -# define DSO_CTRL_GET_FLAGS 1 -# define DSO_CTRL_SET_FLAGS 2 -# define DSO_CTRL_OR_FLAGS 3 - -/* - * By default, DSO_load() will translate the provided filename into a form - * typical for the platform (more specifically the DSO_METHOD) using the - * dso_name_converter function of the method. Eg. win32 will transform "blah" - * into "blah.dll", and dlfcn will transform it into "libblah.so". The - * behaviour can be overriden by setting the name_converter callback in the - * DSO object (using DSO_set_name_converter()). This callback could even - * utilise the DSO_METHOD's converter too if it only wants to override - * behaviour for one or two possible DSO methods. However, the following flag - * can be set in a DSO to prevent *any* native name-translation at all - eg. - * if the caller has prompted the user for a path to a driver library so the - * filename should be interpreted as-is. - */ -# define DSO_FLAG_NO_NAME_TRANSLATION 0x01 -/* - * An extra flag to give if only the extension should be added as - * translation. This is obviously only of importance on Unix and other - * operating systems where the translation also may prefix the name with - * something, like 'lib', and ignored everywhere else. This flag is also - * ignored if DSO_FLAG_NO_NAME_TRANSLATION is used at the same time. - */ -# define DSO_FLAG_NAME_TRANSLATION_EXT_ONLY 0x02 - -/* - * The following flag controls the translation of symbol names to upper case. - * This is currently only being implemented for OpenVMS. - */ -# define DSO_FLAG_UPCASE_SYMBOL 0x10 - -/* - * This flag loads the library with public symbols. Meaning: The exported - * symbols of this library are public to all libraries loaded after this - * library. At the moment only implemented in unix. - */ -# define DSO_FLAG_GLOBAL_SYMBOLS 0x20 - -typedef void (*DSO_FUNC_TYPE) (void); - -typedef struct dso_st DSO; - -/* - * The function prototype used for method functions (or caller-provided - * callbacks) that transform filenames. They are passed a DSO structure - * pointer (or NULL if they are to be used independantly of a DSO object) and - * a filename to transform. They should either return NULL (if there is an - * error condition) or a newly allocated string containing the transformed - * form that the caller will need to free with OPENSSL_free() when done. - */ -typedef char *(*DSO_NAME_CONVERTER_FUNC)(DSO *, const char *); -/* - * The function prototype used for method functions (or caller-provided - * callbacks) that merge two file specifications. They are passed a DSO - * structure pointer (or NULL if they are to be used independantly of a DSO - * object) and two file specifications to merge. They should either return - * NULL (if there is an error condition) or a newly allocated string - * containing the result of merging that the caller will need to free with - * OPENSSL_free() when done. Here, merging means that bits and pieces are - * taken from each of the file specifications and added together in whatever - * fashion that is sensible for the DSO method in question. The only rule - * that really applies is that if the two specification contain pieces of the - * same type, the copy from the first string takes priority. One could see - * it as the first specification is the one given by the user and the second - * being a bunch of defaults to add on if they're missing in the first. - */ -typedef char *(*DSO_MERGER_FUNC)(DSO *, const char *, const char *); - -typedef struct dso_meth_st { - const char *name; - /* - * Loads a shared library, NB: new DSO_METHODs must ensure that a - * successful load populates the loaded_filename field, and likewise a - * successful unload OPENSSL_frees and NULLs it out. - */ - int (*dso_load) (DSO *dso); - /* Unloads a shared library */ - int (*dso_unload) (DSO *dso); - /* Binds a variable */ - void *(*dso_bind_var) (DSO *dso, const char *symname); - /* - * Binds a function - assumes a return type of DSO_FUNC_TYPE. This should - * be cast to the real function prototype by the caller. Platforms that - * don't have compatible representations for different prototypes (this - * is possible within ANSI C) are highly unlikely to have shared - * libraries at all, let alone a DSO_METHOD implemented for them. - */ - DSO_FUNC_TYPE (*dso_bind_func) (DSO *dso, const char *symname); -/* I don't think this would actually be used in any circumstances. */ -# if 0 - /* Unbinds a variable */ - int (*dso_unbind_var) (DSO *dso, char *symname, void *symptr); - /* Unbinds a function */ - int (*dso_unbind_func) (DSO *dso, char *symname, DSO_FUNC_TYPE symptr); -# endif - /* - * The generic (yuck) "ctrl()" function. NB: Negative return values - * (rather than zero) indicate errors. - */ - long (*dso_ctrl) (DSO *dso, int cmd, long larg, void *parg); - /* - * The default DSO_METHOD-specific function for converting filenames to a - * canonical native form. - */ - DSO_NAME_CONVERTER_FUNC dso_name_converter; - /* - * The default DSO_METHOD-specific function for converting filenames to a - * canonical native form. - */ - DSO_MERGER_FUNC dso_merger; - /* [De]Initialisation handlers. */ - int (*init) (DSO *dso); - int (*finish) (DSO *dso); - /* Return pathname of the module containing location */ - int (*pathbyaddr) (void *addr, char *path, int sz); - /* Perform global symbol lookup, i.e. among *all* modules */ - void *(*globallookup) (const char *symname); -} DSO_METHOD; - -/**********************************************************************/ -/* The low-level handle type used to refer to a loaded shared library */ - -struct dso_st { - DSO_METHOD *meth; - /* - * Standard dlopen uses a (void *). Win32 uses a HANDLE. VMS doesn't use - * anything but will need to cache the filename for use in the dso_bind - * handler. All in all, let each method control its own destiny. - * "Handles" and such go in a STACK. - */ - STACK_OF(void) *meth_data; - int references; - int flags; - /* - * For use by applications etc ... use this for your bits'n'pieces, don't - * touch meth_data! - */ - CRYPTO_EX_DATA ex_data; - /* - * If this callback function pointer is set to non-NULL, then it will be - * used in DSO_load() in place of meth->dso_name_converter. NB: This - * should normally set using DSO_set_name_converter(). - */ - DSO_NAME_CONVERTER_FUNC name_converter; - /* - * If this callback function pointer is set to non-NULL, then it will be - * used in DSO_load() in place of meth->dso_merger. NB: This should - * normally set using DSO_set_merger(). - */ - DSO_MERGER_FUNC merger; - /* - * This is populated with (a copy of) the platform-independant filename - * used for this DSO. - */ - char *filename; - /* - * This is populated with (a copy of) the translated filename by which - * the DSO was actually loaded. It is NULL iff the DSO is not currently - * loaded. NB: This is here because the filename translation process may - * involve a callback being invoked more than once not only to convert to - * a platform-specific form, but also to try different filenames in the - * process of trying to perform a load. As such, this variable can be - * used to indicate (a) whether this DSO structure corresponds to a - * loaded library or not, and (b) the filename with which it was actually - * loaded. - */ - char *loaded_filename; -}; - -DSO *DSO_new(void); -DSO *DSO_new_method(DSO_METHOD *method); -int DSO_free(DSO *dso); -int DSO_flags(DSO *dso); -int DSO_up_ref(DSO *dso); -long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg); - -/* - * This function sets the DSO's name_converter callback. If it is non-NULL, - * then it will be used instead of the associated DSO_METHOD's function. If - * oldcb is non-NULL then it is set to the function pointer value being - * replaced. Return value is non-zero for success. - */ -int DSO_set_name_converter(DSO *dso, DSO_NAME_CONVERTER_FUNC cb, - DSO_NAME_CONVERTER_FUNC *oldcb); -/* - * These functions can be used to get/set the platform-independant filename - * used for a DSO. NB: set will fail if the DSO is already loaded. - */ -const char *DSO_get_filename(DSO *dso); -int DSO_set_filename(DSO *dso, const char *filename); -/* - * This function will invoke the DSO's name_converter callback to translate a - * filename, or if the callback isn't set it will instead use the DSO_METHOD's - * converter. If "filename" is NULL, the "filename" in the DSO itself will be - * used. If the DSO_FLAG_NO_NAME_TRANSLATION flag is set, then the filename is - * simply duplicated. NB: This function is usually called from within a - * DSO_METHOD during the processing of a DSO_load() call, and is exposed so - * that caller-created DSO_METHODs can do the same thing. A non-NULL return - * value will need to be OPENSSL_free()'d. - */ -char *DSO_convert_filename(DSO *dso, const char *filename); -/* - * This function will invoke the DSO's merger callback to merge two file - * specifications, or if the callback isn't set it will instead use the - * DSO_METHOD's merger. A non-NULL return value will need to be - * OPENSSL_free()'d. - */ -char *DSO_merge(DSO *dso, const char *filespec1, const char *filespec2); -/* - * If the DSO is currently loaded, this returns the filename that it was - * loaded under, otherwise it returns NULL. So it is also useful as a test as - * to whether the DSO is currently loaded. NB: This will not necessarily - * return the same value as DSO_convert_filename(dso, dso->filename), because - * the DSO_METHOD's load function may have tried a variety of filenames (with - * and/or without the aid of the converters) before settling on the one it - * actually loaded. - */ -const char *DSO_get_loaded_filename(DSO *dso); - -void DSO_set_default_method(DSO_METHOD *meth); -DSO_METHOD *DSO_get_default_method(void); -DSO_METHOD *DSO_get_method(DSO *dso); -DSO_METHOD *DSO_set_method(DSO *dso, DSO_METHOD *meth); - -/* - * The all-singing all-dancing load function, you normally pass NULL for the - * first and third parameters. Use DSO_up and DSO_free for subsequent - * reference count handling. Any flags passed in will be set in the - * constructed DSO after its init() function but before the load operation. - * If 'dso' is non-NULL, 'flags' is ignored. - */ -DSO *DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int flags); - -/* This function binds to a variable inside a shared library. */ -void *DSO_bind_var(DSO *dso, const char *symname); - -/* This function binds to a function inside a shared library. */ -DSO_FUNC_TYPE DSO_bind_func(DSO *dso, const char *symname); - -/* - * This method is the default, but will beg, borrow, or steal whatever method - * should be the default on any particular platform (including - * DSO_METH_null() if necessary). - */ -DSO_METHOD *DSO_METHOD_openssl(void); - -/* - * This method is defined for all platforms - if a platform has no DSO - * support then this will be the only method! - */ -DSO_METHOD *DSO_METHOD_null(void); - -/* - * If DSO_DLFCN is defined, the standard dlfcn.h-style functions (dlopen, - * dlclose, dlsym, etc) will be used and incorporated into this method. If - * not, this method will return NULL. - */ -DSO_METHOD *DSO_METHOD_dlfcn(void); - -/* - * If DSO_DL is defined, the standard dl.h-style functions (shl_load, - * shl_unload, shl_findsym, etc) will be used and incorporated into this - * method. If not, this method will return NULL. - */ -DSO_METHOD *DSO_METHOD_dl(void); - -/* If WIN32 is defined, use DLLs. If not, return NULL. */ -DSO_METHOD *DSO_METHOD_win32(void); - -/* If VMS is defined, use shared images. If not, return NULL. */ -DSO_METHOD *DSO_METHOD_vms(void); - -/* - * This function writes null-terminated pathname of DSO module containing - * 'addr' into 'sz' large caller-provided 'path' and returns the number of - * characters [including trailing zero] written to it. If 'sz' is 0 or - * negative, 'path' is ignored and required amount of charachers [including - * trailing zero] to accomodate pathname is returned. If 'addr' is NULL, then - * pathname of cryptolib itself is returned. Negative or zero return value - * denotes error. - */ -int DSO_pathbyaddr(void *addr, char *path, int sz); - -/* - * This function should be used with caution! It looks up symbols in *all* - * loaded modules and if module gets unloaded by somebody else attempt to - * dereference the pointer is doomed to have fatal consequences. Primary - * usage for this function is to probe *core* system functionality, e.g. - * check if getnameinfo(3) is available at run-time without bothering about - * OS-specific details such as libc.so.versioning or where does it actually - * reside: in libc itself or libsocket. - */ -void *DSO_global_lookup(const char *name); - -/* If BeOS is defined, use shared images. If not, return NULL. */ -DSO_METHOD *DSO_METHOD_beos(void); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_DSO_strings(void); - -/* Error codes for the DSO functions. */ - -/* Function codes. */ -# define DSO_F_BEOS_BIND_FUNC 144 -# define DSO_F_BEOS_BIND_VAR 145 -# define DSO_F_BEOS_LOAD 146 -# define DSO_F_BEOS_NAME_CONVERTER 147 -# define DSO_F_BEOS_UNLOAD 148 -# define DSO_F_DLFCN_BIND_FUNC 100 -# define DSO_F_DLFCN_BIND_VAR 101 -# define DSO_F_DLFCN_LOAD 102 -# define DSO_F_DLFCN_MERGER 130 -# define DSO_F_DLFCN_NAME_CONVERTER 123 -# define DSO_F_DLFCN_UNLOAD 103 -# define DSO_F_DL_BIND_FUNC 104 -# define DSO_F_DL_BIND_VAR 105 -# define DSO_F_DL_LOAD 106 -# define DSO_F_DL_MERGER 131 -# define DSO_F_DL_NAME_CONVERTER 124 -# define DSO_F_DL_UNLOAD 107 -# define DSO_F_DSO_BIND_FUNC 108 -# define DSO_F_DSO_BIND_VAR 109 -# define DSO_F_DSO_CONVERT_FILENAME 126 -# define DSO_F_DSO_CTRL 110 -# define DSO_F_DSO_FREE 111 -# define DSO_F_DSO_GET_FILENAME 127 -# define DSO_F_DSO_GET_LOADED_FILENAME 128 -# define DSO_F_DSO_GLOBAL_LOOKUP 139 -# define DSO_F_DSO_LOAD 112 -# define DSO_F_DSO_MERGE 132 -# define DSO_F_DSO_NEW_METHOD 113 -# define DSO_F_DSO_PATHBYADDR 140 -# define DSO_F_DSO_SET_FILENAME 129 -# define DSO_F_DSO_SET_NAME_CONVERTER 122 -# define DSO_F_DSO_UP_REF 114 -# define DSO_F_GLOBAL_LOOKUP_FUNC 138 -# define DSO_F_PATHBYADDR 137 -# define DSO_F_VMS_BIND_SYM 115 -# define DSO_F_VMS_LOAD 116 -# define DSO_F_VMS_MERGER 133 -# define DSO_F_VMS_UNLOAD 117 -# define DSO_F_WIN32_BIND_FUNC 118 -# define DSO_F_WIN32_BIND_VAR 119 -# define DSO_F_WIN32_GLOBALLOOKUP 142 -# define DSO_F_WIN32_GLOBALLOOKUP_FUNC 143 -# define DSO_F_WIN32_JOINER 135 -# define DSO_F_WIN32_LOAD 120 -# define DSO_F_WIN32_MERGER 134 -# define DSO_F_WIN32_NAME_CONVERTER 125 -# define DSO_F_WIN32_PATHBYADDR 141 -# define DSO_F_WIN32_SPLITTER 136 -# define DSO_F_WIN32_UNLOAD 121 - -/* Reason codes. */ -# define DSO_R_CTRL_FAILED 100 -# define DSO_R_DSO_ALREADY_LOADED 110 -# define DSO_R_EMPTY_FILE_STRUCTURE 113 -# define DSO_R_FAILURE 114 -# define DSO_R_FILENAME_TOO_BIG 101 -# define DSO_R_FINISH_FAILED 102 -# define DSO_R_INCORRECT_FILE_SYNTAX 115 -# define DSO_R_LOAD_FAILED 103 -# define DSO_R_NAME_TRANSLATION_FAILED 109 -# define DSO_R_NO_FILENAME 111 -# define DSO_R_NO_FILE_SPECIFICATION 116 -# define DSO_R_NULL_HANDLE 104 -# define DSO_R_SET_FILENAME_FAILED 112 -# define DSO_R_STACK_ERROR 105 -# define DSO_R_SYM_FAILURE 106 -# define DSO_R_UNLOAD_FAILED 107 -# define DSO_R_UNSUPPORTED 108 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/dtls1.h b/submodules/MtProtoKit/openssl/openssl/dtls1.h deleted file mode 100644 index a312e386cf..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/dtls1.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2005-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_DTLS1_H -# define HEADER_DTLS1_H - -#ifdef __cplusplus -extern "C" { -#endif - -# define DTLS1_VERSION 0xFEFF -# define DTLS1_2_VERSION 0xFEFD -# define DTLS_MIN_VERSION DTLS1_VERSION -# define DTLS_MAX_VERSION DTLS1_2_VERSION -# define DTLS1_VERSION_MAJOR 0xFE - -# define DTLS1_BAD_VER 0x0100 - -/* Special value for method supporting multiple versions */ -# define DTLS_ANY_VERSION 0x1FFFF - -/* lengths of messages */ -/* - * Actually the max cookie length in DTLS is 255. But we can't change this now - * due to compatibility concerns. - */ -# define DTLS1_COOKIE_LENGTH 256 - -# define DTLS1_RT_HEADER_LENGTH 13 - -# define DTLS1_HM_HEADER_LENGTH 12 - -# define DTLS1_HM_BAD_FRAGMENT -2 -# define DTLS1_HM_FRAGMENT_RETRY -3 - -# define DTLS1_CCS_HEADER_LENGTH 1 - -# define DTLS1_AL_HEADER_LENGTH 2 - -/* Timeout multipliers (timeout slice is defined in apps/timeouts.h */ -# define DTLS1_TMO_READ_COUNT 2 -# define DTLS1_TMO_WRITE_COUNT 2 - -# define DTLS1_TMO_ALERT_COUNT 12 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/e_os2.h b/submodules/MtProtoKit/openssl/openssl/e_os2.h deleted file mode 100644 index 97a776cdac..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/e_os2.h +++ /dev/null @@ -1,300 +0,0 @@ -/* - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_E_OS2_H -# define HEADER_E_OS2_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/****************************************************************************** - * Detect operating systems. This probably needs completing. - * The result is that at least one OPENSSL_SYS_os macro should be defined. - * However, if none is defined, Unix is assumed. - **/ - -# define OPENSSL_SYS_UNIX - -/* --------------------- Microsoft operating systems ---------------------- */ - -/* - * Note that MSDOS actually denotes 32-bit environments running on top of - * MS-DOS, such as DJGPP one. - */ -# if defined(OPENSSL_SYS_MSDOS) -# undef OPENSSL_SYS_UNIX -# endif - -/* - * For 32 bit environment, there seems to be the CygWin environment and then - * all the others that try to do the same thing Microsoft does... - */ -/* - * UEFI lives here because it might be built with a Microsoft toolchain and - * we need to avoid the false positive match on Windows. - */ -# if defined(OPENSSL_SYS_UEFI) -# undef OPENSSL_SYS_UNIX -# elif defined(OPENSSL_SYS_UWIN) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WIN32_UWIN -# else -# if defined(__CYGWIN__) || defined(OPENSSL_SYS_CYGWIN) -# define OPENSSL_SYS_WIN32_CYGWIN -# else -# if defined(_WIN32) || defined(OPENSSL_SYS_WIN32) -# undef OPENSSL_SYS_UNIX -# if !defined(OPENSSL_SYS_WIN32) -# define OPENSSL_SYS_WIN32 -# endif -# endif -# if defined(_WIN64) || defined(OPENSSL_SYS_WIN64) -# undef OPENSSL_SYS_UNIX -# if !defined(OPENSSL_SYS_WIN64) -# define OPENSSL_SYS_WIN64 -# endif -# endif -# if defined(OPENSSL_SYS_WINNT) -# undef OPENSSL_SYS_UNIX -# endif -# if defined(OPENSSL_SYS_WINCE) -# undef OPENSSL_SYS_UNIX -# endif -# endif -# endif - -/* Anything that tries to look like Microsoft is "Windows" */ -# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN64) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_SYS_MSDOS -# define OPENSSL_SYS_MSDOS -# endif -# endif - -/* - * DLL settings. This part is a bit tough, because it's up to the - * application implementor how he or she will link the application, so it - * requires some macro to be used. - */ -# ifdef OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_OPT_WINDLL -# if defined(_WINDLL) /* This is used when building OpenSSL to - * indicate that DLL linkage should be used */ -# define OPENSSL_OPT_WINDLL -# endif -# endif -# endif - -/* ------------------------------- OpenVMS -------------------------------- */ -# if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYS_VMS) -# if !defined(OPENSSL_SYS_VMS) -# undef OPENSSL_SYS_UNIX -# endif -# define OPENSSL_SYS_VMS -# if defined(__DECC) -# define OPENSSL_SYS_VMS_DECC -# elif defined(__DECCXX) -# define OPENSSL_SYS_VMS_DECC -# define OPENSSL_SYS_VMS_DECCXX -# else -# define OPENSSL_SYS_VMS_NODECC -# endif -# endif - -/* -------------------------------- Unix ---------------------------------- */ -# ifdef OPENSSL_SYS_UNIX -# if defined(linux) || defined(__linux__) && !defined(OPENSSL_SYS_LINUX) -# define OPENSSL_SYS_LINUX -# endif -# if defined(_AIX) && !defined(OPENSSL_SYS_AIX) -# define OPENSSL_SYS_AIX -# endif -# endif - -/* -------------------------------- VOS ----------------------------------- */ -# if defined(__VOS__) && !defined(OPENSSL_SYS_VOS) -# define OPENSSL_SYS_VOS -# ifdef __HPPA__ -# define OPENSSL_SYS_VOS_HPPA -# endif -# ifdef __IA32__ -# define OPENSSL_SYS_VOS_IA32 -# endif -# endif - -/** - * That's it for OS-specific stuff - *****************************************************************************/ - -/* Specials for I/O an exit */ -# ifdef OPENSSL_SYS_MSDOS -# define OPENSSL_UNISTD_IO -# define OPENSSL_DECLARE_EXIT extern void exit(int); -# else -# define OPENSSL_UNISTD_IO OPENSSL_UNISTD -# define OPENSSL_DECLARE_EXIT /* declared in unistd.h */ -# endif - -/*- - * OPENSSL_EXTERN is normally used to declare a symbol with possible extra - * attributes to handle its presence in a shared library. - * OPENSSL_EXPORT is used to define a symbol with extra possible attributes - * to make it visible in a shared library. - * Care needs to be taken when a header file is used both to declare and - * define symbols. Basically, for any library that exports some global - * variables, the following code must be present in the header file that - * declares them, before OPENSSL_EXTERN is used: - * - * #ifdef SOME_BUILD_FLAG_MACRO - * # undef OPENSSL_EXTERN - * # define OPENSSL_EXTERN OPENSSL_EXPORT - * #endif - * - * The default is to have OPENSSL_EXPORT and OPENSSL_EXTERN - * have some generally sensible values. - */ - -# if defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) -# define OPENSSL_EXPORT extern __declspec(dllexport) -# define OPENSSL_EXTERN extern __declspec(dllimport) -# else -# define OPENSSL_EXPORT extern -# define OPENSSL_EXTERN extern -# endif - -/*- - * Macros to allow global variables to be reached through function calls when - * required (if a shared library version requires it, for example. - * The way it's done allows definitions like this: - * - * // in foobar.c - * OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0) - * // in foobar.h - * OPENSSL_DECLARE_GLOBAL(int,foobar); - * #define foobar OPENSSL_GLOBAL_REF(foobar) - */ -# ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION -# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) \ - type *_shadow_##name(void) \ - { static type _hide_##name=value; return &_hide_##name; } -# define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void) -# define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name())) -# else -# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) type _shadow_##name=value; -# define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name -# define OPENSSL_GLOBAL_REF(name) _shadow_##name -# endif - -# ifdef _WIN32 -# ifdef _WIN64 -# define ossl_ssize_t __int64 -# define OSSL_SSIZE_MAX _I64_MAX -# else -# define ossl_ssize_t int -# define OSSL_SSIZE_MAX INT_MAX -# endif -# endif - -# if defined(OPENSSL_SYS_UEFI) && !defined(ossl_ssize_t) -# define ossl_ssize_t INTN -# define OSSL_SSIZE_MAX MAX_INTN -# endif - -# ifndef ossl_ssize_t -# define ossl_ssize_t ssize_t -# if defined(SSIZE_MAX) -# define OSSL_SSIZE_MAX SSIZE_MAX -# elif defined(_POSIX_SSIZE_MAX) -# define OSSL_SSIZE_MAX _POSIX_SSIZE_MAX -# else -# define OSSL_SSIZE_MAX ((ssize_t)(SIZE_MAX>>1)) -# endif -# endif - -# ifdef DEBUG_UNUSED -# define __owur __attribute__((__warn_unused_result__)) -# else -# define __owur -# endif - -/* Standard integer types */ -# if defined(OPENSSL_SYS_UEFI) -typedef INT8 int8_t; -typedef UINT8 uint8_t; -typedef INT16 int16_t; -typedef UINT16 uint16_t; -typedef INT32 int32_t; -typedef UINT32 uint32_t; -typedef INT64 int64_t; -typedef UINT64 uint64_t; -# elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - defined(__osf__) || defined(__sgi) || defined(__hpux) || \ - defined(OPENSSL_SYS_VMS) || defined (__OpenBSD__) -# include -# elif defined(_MSC_VER) && _MSC_VER<=1500 -/* - * minimally required typdefs for systems not supporting inttypes.h or - * stdint.h: currently just older VC++ - */ -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef short int16_t; -typedef unsigned short uint16_t; -typedef int int32_t; -typedef unsigned int uint32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -# else -# include -# endif - -/* ossl_inline: portable inline definition usable in public headers */ -# if !defined(inline) && !defined(__cplusplus) -# if defined(__STDC_VERSION__) && __STDC_VERSION__>=199901L - /* just use inline */ -# define ossl_inline inline -# elif defined(__GNUC__) && __GNUC__>=2 -# define ossl_inline __inline__ -# elif defined(_MSC_VER) - /* - * Visual Studio: inline is available in C++ only, however - * __inline is available for C, see - * http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx - */ -# define ossl_inline __inline -# else -# define ossl_inline -# endif -# else -# define ossl_inline inline -# endif - -# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L -# define ossl_noreturn _Noreturn -# elif defined(__GNUC__) && __GNUC__ >= 2 -# define ossl_noreturn __attribute__((noreturn)) -# else -# define ossl_noreturn -# endif - -/* ossl_unused: portable unused attribute for use in public headers */ -# if defined(__GNUC__) -# define ossl_unused __attribute__((unused)) -# else -# define ossl_unused -# endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ebcdic.h b/submodules/MtProtoKit/openssl/openssl/ebcdic.h deleted file mode 100644 index aa01285599..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ebcdic.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_EBCDIC_H -# define HEADER_EBCDIC_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Avoid name clashes with other applications */ -# define os_toascii _openssl_os_toascii -# define os_toebcdic _openssl_os_toebcdic -# define ebcdic2ascii _openssl_ebcdic2ascii -# define ascii2ebcdic _openssl_ascii2ebcdic - -extern const unsigned char os_toascii[256]; -extern const unsigned char os_toebcdic[256]; -void *ebcdic2ascii(void *dest, const void *srce, size_t count); -void *ascii2ebcdic(void *dest, const void *srce, size_t count); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ec.h b/submodules/MtProtoKit/openssl/openssl/ec.h deleted file mode 100644 index 5af9ebdc7f..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ec.h +++ /dev/null @@ -1,1479 +0,0 @@ -/* - * Copyright 2002-2019 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_EC_H -# define HEADER_EC_H - -# include - -# ifndef OPENSSL_NO_EC -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_ECC_MAX_FIELD_BITS -# define OPENSSL_ECC_MAX_FIELD_BITS 661 -# endif - -/** Enum for the point conversion form as defined in X9.62 (ECDSA) - * for the encoding of a elliptic curve point (x,y) */ -typedef enum { - /** the point is encoded as z||x, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_COMPRESSED = 2, - /** the point is encoded as z||x||y, where z is the octet 0x04 */ - POINT_CONVERSION_UNCOMPRESSED = 4, - /** the point is encoded as z||x||y, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_HYBRID = 6 -} point_conversion_form_t; - -typedef struct ec_method_st EC_METHOD; -typedef struct ec_group_st EC_GROUP; -typedef struct ec_point_st EC_POINT; -typedef struct ecpk_parameters_st ECPKPARAMETERS; -typedef struct ec_parameters_st ECPARAMETERS; - -/********************************************************************/ -/* EC_METHODs for curves over GF(p) */ -/********************************************************************/ - -/** Returns the basic GFp ec methods which provides the basis for the - * optimized methods. - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_simple_method(void); - -/** Returns GFp methods using montgomery multiplication. - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_mont_method(void); - -/** Returns GFp methods using optimized methods for NIST recommended curves - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nist_method(void); - -# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -/** Returns 64-bit optimized methods for nistp224 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp224_method(void); - -/** Returns 64-bit optimized methods for nistp256 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp256_method(void); - -/** Returns 64-bit optimized methods for nistp521 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp521_method(void); -# endif - -# ifndef OPENSSL_NO_EC2M -/********************************************************************/ -/* EC_METHOD for curves over GF(2^m) */ -/********************************************************************/ - -/** Returns the basic GF2m ec method - * \return EC_METHOD object - */ -const EC_METHOD *EC_GF2m_simple_method(void); - -# endif - -/********************************************************************/ -/* EC_GROUP functions */ -/********************************************************************/ - -/** Creates a new EC_GROUP object - * \param meth EC_METHOD to use - * \return newly created EC_GROUP object or NULL in case of an error. - */ -EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); - -/** Frees a EC_GROUP object - * \param group EC_GROUP object to be freed. - */ -void EC_GROUP_free(EC_GROUP *group); - -/** Clears and frees a EC_GROUP object - * \param group EC_GROUP object to be cleared and freed. - */ -void EC_GROUP_clear_free(EC_GROUP *group); - -/** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD. - * \param dst destination EC_GROUP object - * \param src source EC_GROUP object - * \return 1 on success and 0 if an error occurred. - */ -int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); - -/** Creates a new EC_GROUP object and copies the copies the content - * form src to the newly created EC_KEY object - * \param src source EC_GROUP object - * \return newly created EC_GROUP object or NULL in case of an error. - */ -EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); - -/** Returns the EC_METHOD of the EC_GROUP object. - * \param group EC_GROUP object - * \return EC_METHOD used in this EC_GROUP object. - */ -const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); - -/** Returns the field type of the EC_METHOD. - * \param meth EC_METHOD object - * \return NID of the underlying field type OID. - */ -int EC_METHOD_get_field_type(const EC_METHOD *meth); - -/** Sets the generator and its order/cofactor of a EC_GROUP object. - * \param group EC_GROUP object - * \param generator EC_POINT object with the generator. - * \param order the order of the group generated by the generator. - * \param cofactor the index of the sub-group generated by the generator - * in the group of all points on the elliptic curve. - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, - const BIGNUM *order, const BIGNUM *cofactor); - -/** Returns the generator of a EC_GROUP object. - * \param group EC_GROUP object - * \return the currently used generator (possibly NULL). - */ -const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); - -/** Returns the montgomery data for order(Generator) - * \param group EC_GROUP object - * \return the currently used montgomery data (possibly NULL). -*/ -BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); - -/** Gets the order of a EC_GROUP - * \param group EC_GROUP object - * \param order BIGNUM to which the order is copied - * \param ctx unused - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); - -/** Gets the order of an EC_GROUP - * \param group EC_GROUP object - * \return the group order - */ -const BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group); - -/** Gets the number of bits of the order of an EC_GROUP - * \param group EC_GROUP object - * \return number of bits of group order. - */ -int EC_GROUP_order_bits(const EC_GROUP *group); - -/** Gets the cofactor of a EC_GROUP - * \param group EC_GROUP object - * \param cofactor BIGNUM to which the cofactor is copied - * \param ctx unused - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, - BN_CTX *ctx); - -/** Gets the cofactor of an EC_GROUP - * \param group EC_GROUP object - * \return the group cofactor - */ -const BIGNUM *EC_GROUP_get0_cofactor(const EC_GROUP *group); - -/** Sets the name of a EC_GROUP object - * \param group EC_GROUP object - * \param nid NID of the curve name OID - */ -void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); - -/** Returns the curve name of a EC_GROUP object - * \param group EC_GROUP object - * \return NID of the curve name OID or 0 if not set. - */ -int EC_GROUP_get_curve_name(const EC_GROUP *group); - -void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); -int EC_GROUP_get_asn1_flag(const EC_GROUP *group); - -void EC_GROUP_set_point_conversion_form(EC_GROUP *group, - point_conversion_form_t form); -point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); - -unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); -size_t EC_GROUP_get_seed_len(const EC_GROUP *); -size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); - -/** Sets the parameters of a ec curve defined by y^2 = x^3 + a*x + b (for GFp) - * or y^2 + x*y = x^3 + a*x^2 + b (for GF2m) - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_curve(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); - -/** Gets the parameters of the ec curve defined by y^2 = x^3 + a*x + b (for GFp) - * or y^2 + x*y = x^3 + a*x^2 + b (for GF2m) - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, - BN_CTX *ctx); - -/** Sets the parameters of an ec curve. Synonym for EC_GROUP_set_curve - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -DEPRECATEDIN_1_2_0(int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, - const BIGNUM *a, const BIGNUM *b, - BN_CTX *ctx)) - -/** Gets the parameters of an ec curve. Synonym for EC_GROUP_get_curve - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -DEPRECATEDIN_1_2_0(int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, - BIGNUM *a, BIGNUM *b, - BN_CTX *ctx)) - -# ifndef OPENSSL_NO_EC2M -/** Sets the parameter of an ec curve. Synonym for EC_GROUP_set_curve - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -DEPRECATEDIN_1_2_0(int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, - const BIGNUM *a, const BIGNUM *b, - BN_CTX *ctx)) - -/** Gets the parameters of an ec curve. Synonym for EC_GROUP_get_curve - * \param group EC_GROUP object - * \param p BIGNUM with the prime number (GFp) or the polynomial - * defining the underlying field (GF2m) - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -DEPRECATEDIN_1_2_0(int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, - BIGNUM *a, BIGNUM *b, - BN_CTX *ctx)) -# endif -/** Returns the number of bits needed to represent a field element - * \param group EC_GROUP object - * \return number of bits needed to represent a field element - */ -int EC_GROUP_get_degree(const EC_GROUP *group); - -/** Checks whether the parameter in the EC_GROUP define a valid ec group - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if group is a valid ec group and 0 otherwise - */ -int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); - -/** Checks whether the discriminant of the elliptic curve is zero or not - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if the discriminant is not zero and 0 otherwise - */ -int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); - -/** Compares two EC_GROUP objects - * \param a first EC_GROUP object - * \param b second EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 0 if the groups are equal, 1 if not, or -1 on error - */ -int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); - -/* - * EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() after - * choosing an appropriate EC_METHOD - */ - -/** Creates a new EC_GROUP object with the specified parameters defined - * over GFp (defined by the equation y^2 = x^3 + a*x + b) - * \param p BIGNUM with the prime number - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); -# ifndef OPENSSL_NO_EC2M -/** Creates a new EC_GROUP object with the specified parameters defined - * over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b) - * \param p BIGNUM with the polynomial defining the underlying field - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); -# endif - -/** Creates a EC_GROUP object with a curve specified by a NID - * \param nid NID of the OID of the curve name - * \return newly created EC_GROUP object with specified curve or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_by_curve_name(int nid); - -/** Creates a new EC_GROUP object from an ECPARAMETERS object - * \param params pointer to the ECPARAMETERS object - * \return newly created EC_GROUP object with specified curve or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params); - -/** Creates an ECPARAMETERS object for the given EC_GROUP object. - * \param group pointer to the EC_GROUP object - * \param params pointer to an existing ECPARAMETERS object or NULL - * \return pointer to the new ECPARAMETERS object or NULL - * if an error occurred. - */ -ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group, - ECPARAMETERS *params); - -/** Creates a new EC_GROUP object from an ECPKPARAMETERS object - * \param params pointer to an existing ECPKPARAMETERS object, or NULL - * \return newly created EC_GROUP object with specified curve, or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params); - -/** Creates an ECPKPARAMETERS object for the given EC_GROUP object. - * \param group pointer to the EC_GROUP object - * \param params pointer to an existing ECPKPARAMETERS object or NULL - * \return pointer to the new ECPKPARAMETERS object or NULL - * if an error occurred. - */ -ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group, - ECPKPARAMETERS *params); - -/********************************************************************/ -/* handling of internal curves */ -/********************************************************************/ - -typedef struct { - int nid; - const char *comment; -} EC_builtin_curve; - -/* - * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all - * available curves or zero if a error occurred. In case r is not zero, - * nitems EC_builtin_curve structures are filled with the data of the first - * nitems internal groups - */ -size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); - -const char *EC_curve_nid2nist(int nid); -int EC_curve_nist2nid(const char *name); - -/********************************************************************/ -/* EC_POINT functions */ -/********************************************************************/ - -/** Creates a new EC_POINT object for the specified EC_GROUP - * \param group EC_GROUP the underlying EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_new(const EC_GROUP *group); - -/** Frees a EC_POINT object - * \param point EC_POINT object to be freed - */ -void EC_POINT_free(EC_POINT *point); - -/** Clears and frees a EC_POINT object - * \param point EC_POINT object to be cleared and freed - */ -void EC_POINT_clear_free(EC_POINT *point); - -/** Copies EC_POINT object - * \param dst destination EC_POINT object - * \param src source EC_POINT object - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); - -/** Creates a new EC_POINT object and copies the content of the supplied - * EC_POINT - * \param src source EC_POINT object - * \param group underlying the EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); - -/** Returns the EC_METHOD used in EC_POINT object - * \param point EC_POINT object - * \return the EC_METHOD used - */ -const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); - -/** Sets a point to infinity (neutral element) - * \param group underlying EC_GROUP object - * \param point EC_POINT to set to infinity - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); - -/** Sets the jacobian projective coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param z BIGNUM with the z-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, - EC_POINT *p, const BIGNUM *x, - const BIGNUM *y, const BIGNUM *z, - BN_CTX *ctx); - -/** Gets the jacobian projective coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param z BIGNUM for the z-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BIGNUM *z, - BN_CTX *ctx); - -/** Sets the affine coordinates of an EC_POINT - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_affine_coordinates(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, - BN_CTX *ctx); - -/** Gets the affine coordinates of an EC_POINT. - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_get_affine_coordinates(const EC_GROUP *group, const EC_POINT *p, - BIGNUM *x, BIGNUM *y, BN_CTX *ctx); - -/** Sets the affine coordinates of an EC_POINT. A synonym of - * EC_POINT_set_affine_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -DEPRECATEDIN_1_2_0(int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, - EC_POINT *p, - const BIGNUM *x, - const BIGNUM *y, - BN_CTX *ctx)) - -/** Gets the affine coordinates of an EC_POINT. A synonym of - * EC_POINT_get_affine_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -DEPRECATEDIN_1_2_0(int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, - const EC_POINT *p, - BIGNUM *x, - BIGNUM *y, - BN_CTX *ctx)) - -/** Sets the x9.62 compressed coordinates of a EC_POINT - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with x-coordinate - * \param y_bit integer with the y-Bit (either 0 or 1) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, int y_bit, - BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT. A synonym of - * EC_POINT_set_compressed_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with x-coordinate - * \param y_bit integer with the y-Bit (either 0 or 1) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -DEPRECATEDIN_1_2_0(int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, - EC_POINT *p, - const BIGNUM *x, - int y_bit, - BN_CTX *ctx)) -# ifndef OPENSSL_NO_EC2M -/** Sets the affine coordinates of an EC_POINT. A synonym of - * EC_POINT_set_affine_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -DEPRECATEDIN_1_2_0(int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, - EC_POINT *p, - const BIGNUM *x, - const BIGNUM *y, - BN_CTX *ctx)) - -/** Gets the affine coordinates of an EC_POINT. A synonym of - * EC_POINT_get_affine_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -DEPRECATEDIN_1_2_0(int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, - const EC_POINT *p, - BIGNUM *x, - BIGNUM *y, - BN_CTX *ctx)) - -/** Sets the x9.62 compressed coordinates of a EC_POINT. A synonym of - * EC_POINT_set_compressed_coordinates - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with x-coordinate - * \param y_bit integer with the y-Bit (either 0 or 1) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -DEPRECATEDIN_1_2_0(int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, - EC_POINT *p, - const BIGNUM *x, - int y_bit, - BN_CTX *ctx)) -# endif -/** Encodes a EC_POINT object to a octet string - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param form point conversion form - * \param buf memory buffer for the result. If NULL the function returns - * required buffer size. - * \param len length of the memory buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, - point_conversion_form_t form, - unsigned char *buf, size_t len, BN_CTX *ctx); - -/** Decodes a EC_POINT from a octet string - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param buf memory buffer with the encoded ec point - * \param len length of the encoded ec point - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, - const unsigned char *buf, size_t len, BN_CTX *ctx); - -/** Encodes an EC_POINT object to an allocated octet string - * \param group underlying EC_GROUP object - * \param point EC_POINT object - * \param form point conversion form - * \param pbuf returns pointer to allocated buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point, - point_conversion_form_t form, - unsigned char **pbuf, BN_CTX *ctx); - -/* other interfaces to point2oct/oct2point: */ -BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, - point_conversion_form_t form, BIGNUM *, BN_CTX *); -EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, - EC_POINT *, BN_CTX *); -char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, - point_conversion_form_t form, BN_CTX *); -EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, - EC_POINT *, BN_CTX *); - -/********************************************************************/ -/* functions for doing EC_POINT arithmetic */ -/********************************************************************/ - -/** Computes the sum of two EC_POINT - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result (r = a + b) - * \param a EC_POINT object with the first summand - * \param b EC_POINT object with the second summand - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, - const EC_POINT *b, BN_CTX *ctx); - -/** Computes the double of a EC_POINT - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result (r = 2 * a) - * \param a EC_POINT object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, - BN_CTX *ctx); - -/** Computes the inverse of a EC_POINT - * \param group underlying EC_GROUP object - * \param a EC_POINT object to be inverted (it's used for the result as well) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); - -/** Checks whether the point is the neutral element of the group - * \param group the underlying EC_GROUP object - * \param p EC_POINT object - * \return 1 if the point is the neutral element and 0 otherwise - */ -int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); - -/** Checks whether the point is on the curve - * \param group underlying EC_GROUP object - * \param point EC_POINT object to check - * \param ctx BN_CTX object (optional) - * \return 1 if the point is on the curve, 0 if not, or -1 on error - */ -int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, - BN_CTX *ctx); - -/** Compares two EC_POINTs - * \param group underlying EC_GROUP object - * \param a first EC_POINT object - * \param b second EC_POINT object - * \param ctx BN_CTX object (optional) - * \return 1 if the points are not equal, 0 if they are, or -1 on error - */ -int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, - BN_CTX *ctx); - -int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); -int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, - EC_POINT *points[], BN_CTX *ctx); - -/** Computes r = generator * n + sum_{i=0}^{num-1} p[i] * m[i] - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result - * \param n BIGNUM with the multiplier for the group generator (optional) - * \param num number further summands - * \param p array of size num of EC_POINT objects - * \param m array of size num of BIGNUM objects - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, - size_t num, const EC_POINT *p[], const BIGNUM *m[], - BN_CTX *ctx); - -/** Computes r = generator * n + q * m - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result - * \param n BIGNUM with the multiplier for the group generator (optional) - * \param q EC_POINT object with the first factor of the second summand - * \param m BIGNUM with the second factor of the second summand - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, - const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); - -/** Stores multiples of generator for faster point multiplication - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); - -/** Reports whether a precomputation has been done - * \param group EC_GROUP object - * \return 1 if a pre-computation has been done and 0 otherwise - */ -int EC_GROUP_have_precompute_mult(const EC_GROUP *group); - -/********************************************************************/ -/* ASN1 stuff */ -/********************************************************************/ - -DECLARE_ASN1_ITEM(ECPKPARAMETERS) -DECLARE_ASN1_ALLOC_FUNCTIONS(ECPKPARAMETERS) -DECLARE_ASN1_ITEM(ECPARAMETERS) -DECLARE_ASN1_ALLOC_FUNCTIONS(ECPARAMETERS) - -/* - * EC_GROUP_get_basis_type() returns the NID of the basis type used to - * represent the field elements - */ -int EC_GROUP_get_basis_type(const EC_GROUP *); -# ifndef OPENSSL_NO_EC2M -int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); -int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, - unsigned int *k2, unsigned int *k3); -# endif - -# define OPENSSL_EC_EXPLICIT_CURVE 0x000 -# define OPENSSL_EC_NAMED_CURVE 0x001 - -EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); -int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); - -# define d2i_ECPKParameters_bio(bp,x) ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x) -# define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x) -# define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, \ - (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) -# define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \ - (unsigned char *)(x)) - -int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); -# ifndef OPENSSL_NO_STDIO -int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); -# endif - -/********************************************************************/ -/* EC_KEY functions */ -/********************************************************************/ - -/* some values for the encoding_flag */ -# define EC_PKEY_NO_PARAMETERS 0x001 -# define EC_PKEY_NO_PUBKEY 0x002 - -/* some values for the flags field */ -# define EC_FLAG_NON_FIPS_ALLOW 0x1 -# define EC_FLAG_FIPS_CHECKED 0x2 -# define EC_FLAG_COFACTOR_ECDH 0x1000 - -/** Creates a new EC_KEY object. - * \return EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_new(void); - -int EC_KEY_get_flags(const EC_KEY *key); - -void EC_KEY_set_flags(EC_KEY *key, int flags); - -void EC_KEY_clear_flags(EC_KEY *key, int flags); - -/** Creates a new EC_KEY object using a named curve as underlying - * EC_GROUP object. - * \param nid NID of the named curve. - * \return EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_new_by_curve_name(int nid); - -/** Frees a EC_KEY object. - * \param key EC_KEY object to be freed. - */ -void EC_KEY_free(EC_KEY *key); - -/** Copies a EC_KEY object. - * \param dst destination EC_KEY object - * \param src src EC_KEY object - * \return dst or NULL if an error occurred. - */ -EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); - -/** Creates a new EC_KEY object and copies the content from src to it. - * \param src the source EC_KEY object - * \return newly created EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_dup(const EC_KEY *src); - -/** Increases the internal reference count of a EC_KEY object. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_up_ref(EC_KEY *key); - -/** Returns the ENGINE object of a EC_KEY object - * \param eckey EC_KEY object - * \return the ENGINE object (possibly NULL). - */ -ENGINE *EC_KEY_get0_engine(const EC_KEY *eckey); - -/** Returns the EC_GROUP object of a EC_KEY object - * \param key EC_KEY object - * \return the EC_GROUP object (possibly NULL). - */ -const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); - -/** Sets the EC_GROUP of a EC_KEY object. - * \param key EC_KEY object - * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY - * object will use an own copy of the EC_GROUP). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); - -/** Returns the private key of a EC_KEY object. - * \param key EC_KEY object - * \return a BIGNUM with the private key (possibly NULL). - */ -const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); - -/** Sets the private key of a EC_KEY object. - * \param key EC_KEY object - * \param prv BIGNUM with the private key (note: the EC_KEY object - * will use an own copy of the BIGNUM). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); - -/** Returns the public key of a EC_KEY object. - * \param key the EC_KEY object - * \return a EC_POINT object with the public key (possibly NULL) - */ -const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); - -/** Sets the public key of a EC_KEY object. - * \param key EC_KEY object - * \param pub EC_POINT object with the public key (note: the EC_KEY object - * will use an own copy of the EC_POINT object). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); - -unsigned EC_KEY_get_enc_flags(const EC_KEY *key); -void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); -point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); -void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); - -#define EC_KEY_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_EC_KEY, l, p, newf, dupf, freef) -int EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg); -void *EC_KEY_get_ex_data(const EC_KEY *key, int idx); - -/* wrapper functions for the underlying EC_GROUP object */ -void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); - -/** Creates a table of pre-computed multiples of the generator to - * accelerate further EC_KEY operations. - * \param key EC_KEY object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); - -/** Creates a new ec private (and optional a new public) key. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_generate_key(EC_KEY *key); - -/** Verifies that a private and/or public key is valid. - * \param key the EC_KEY object - * \return 1 on success and 0 otherwise. - */ -int EC_KEY_check_key(const EC_KEY *key); - -/** Indicates if an EC_KEY can be used for signing. - * \param eckey the EC_KEY object - * \return 1 if can can sign and 0 otherwise. - */ -int EC_KEY_can_sign(const EC_KEY *eckey); - -/** Sets a public key from affine coordinates performing - * necessary NIST PKV tests. - * \param key the EC_KEY object - * \param x public key x coordinate - * \param y public key y coordinate - * \return 1 on success and 0 otherwise. - */ -int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, - BIGNUM *y); - -/** Encodes an EC_KEY public key to an allocated octet string - * \param key key to encode - * \param form point conversion form - * \param pbuf returns pointer to allocated buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_KEY_key2buf(const EC_KEY *key, point_conversion_form_t form, - unsigned char **pbuf, BN_CTX *ctx); - -/** Decodes a EC_KEY public key from a octet string - * \param key key to decode - * \param buf memory buffer with the encoded ec point - * \param len length of the encoded ec point - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ - -int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, size_t len, - BN_CTX *ctx); - -/** Decodes an EC_KEY private key from an octet string - * \param key key to decode - * \param buf memory buffer with the encoded private key - * \param len length of the encoded key - * \return 1 on success and 0 if an error occurred - */ - -int EC_KEY_oct2priv(EC_KEY *key, const unsigned char *buf, size_t len); - -/** Encodes a EC_KEY private key to an octet string - * \param key key to encode - * \param buf memory buffer for the result. If NULL the function returns - * required buffer size. - * \param len length of the memory buffer - * \return the length of the encoded octet string or 0 if an error occurred - */ - -size_t EC_KEY_priv2oct(const EC_KEY *key, unsigned char *buf, size_t len); - -/** Encodes an EC_KEY private key to an allocated octet string - * \param eckey key to encode - * \param pbuf returns pointer to allocated buffer - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_KEY_priv2buf(const EC_KEY *eckey, unsigned char **pbuf); - -/********************************************************************/ -/* de- and encoding functions for SEC1 ECPrivateKey */ -/********************************************************************/ - -/** Decodes a private key from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded private key - * \param len length of the DER encoded private key - * \return the decoded private key or NULL if an error occurred. - */ -EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes a private key object and stores the result in a buffer. - * \param key the EC_KEY object to encode - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred. - */ -int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); - -/********************************************************************/ -/* de- and encoding functions for EC parameters */ -/********************************************************************/ - -/** Decodes ec parameter from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded ec parameters - * \param len length of the DER encoded ec parameters - * \return a EC_KEY object with the decoded parameters or NULL if an error - * occurred. - */ -EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes ec parameter and stores the result in a buffer. - * \param key the EC_KEY object with ec parameters to encode - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred. - */ -int i2d_ECParameters(EC_KEY *key, unsigned char **out); - -/********************************************************************/ -/* de- and encoding functions for EC public key */ -/* (octet string, not DER -- hence 'o2i' and 'i2o') */ -/********************************************************************/ - -/** Decodes a ec public key from a octet string. - * \param key a pointer to a EC_KEY object which should be used - * \param in memory buffer with the encoded public key - * \param len length of the encoded public key - * \return EC_KEY object with decoded public key or NULL if an error - * occurred. - */ -EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes a ec public key in an octet string. - * \param key the EC_KEY object with the public key - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred - */ -int i2o_ECPublicKey(const EC_KEY *key, unsigned char **out); - -/** Prints out the ec parameters on human readable form. - * \param bp BIO object to which the information is printed - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred - */ -int ECParameters_print(BIO *bp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param bp BIO object to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); - -# ifndef OPENSSL_NO_STDIO -/** Prints out the ec parameters on human readable form. - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred - */ -int ECParameters_print_fp(FILE *fp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); - -# endif - -const EC_KEY_METHOD *EC_KEY_OpenSSL(void); -const EC_KEY_METHOD *EC_KEY_get_default_method(void); -void EC_KEY_set_default_method(const EC_KEY_METHOD *meth); -const EC_KEY_METHOD *EC_KEY_get_method(const EC_KEY *key); -int EC_KEY_set_method(EC_KEY *key, const EC_KEY_METHOD *meth); -EC_KEY *EC_KEY_new_method(ENGINE *engine); - -/** The old name for ecdh_KDF_X9_63 - * The ECDH KDF specification has been mistakingly attributed to ANSI X9.62, - * it is actually specified in ANSI X9.63. - * This identifier is retained for backwards compatibility - */ -int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, - const unsigned char *Z, size_t Zlen, - const unsigned char *sinfo, size_t sinfolen, - const EVP_MD *md); - -int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, - const EC_KEY *ecdh, - void *(*KDF) (const void *in, size_t inlen, - void *out, size_t *outlen)); - -typedef struct ECDSA_SIG_st ECDSA_SIG; - -/** Allocates and initialize a ECDSA_SIG structure - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_SIG_new(void); - -/** frees a ECDSA_SIG structure - * \param sig pointer to the ECDSA_SIG structure - */ -void ECDSA_SIG_free(ECDSA_SIG *sig); - -/** DER encode content of ECDSA_SIG object (note: this function modifies *pp - * (*pp += length of the DER encoded signature)). - * \param sig pointer to the ECDSA_SIG object - * \param pp pointer to a unsigned char pointer for the output or NULL - * \return the length of the DER encoded ECDSA_SIG object or a negative value - * on error - */ -int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); - -/** Decodes a DER encoded ECDSA signature (note: this function changes *pp - * (*pp += len)). - * \param sig pointer to ECDSA_SIG pointer (may be NULL) - * \param pp memory buffer with the DER encoded signature - * \param len length of the buffer - * \return pointer to the decoded ECDSA_SIG structure (or NULL) - */ -ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len); - -/** Accessor for r and s fields of ECDSA_SIG - * \param sig pointer to ECDSA_SIG structure - * \param pr pointer to BIGNUM pointer for r (may be NULL) - * \param ps pointer to BIGNUM pointer for s (may be NULL) - */ -void ECDSA_SIG_get0(const ECDSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); - -/** Accessor for r field of ECDSA_SIG - * \param sig pointer to ECDSA_SIG structure - */ -const BIGNUM *ECDSA_SIG_get0_r(const ECDSA_SIG *sig); - -/** Accessor for s field of ECDSA_SIG - * \param sig pointer to ECDSA_SIG structure - */ -const BIGNUM *ECDSA_SIG_get0_s(const ECDSA_SIG *sig); - -/** Setter for r and s fields of ECDSA_SIG - * \param sig pointer to ECDSA_SIG structure - * \param r pointer to BIGNUM for r (may be NULL) - * \param s pointer to BIGNUM for s (may be NULL) - */ -int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); - -/** Computes the ECDSA signature of the given hash value using - * the supplied private key and returns the created signature. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len, - EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optional), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, - const BIGNUM *kinv, const BIGNUM *rp, - EC_KEY *eckey); - -/** Verifies that the supplied signature is a valid ECDSA - * signature of the supplied hash value using the supplied public key. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param sig ECDSA_SIG structure - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, - const ECDSA_SIG *sig, EC_KEY *eckey); - -/** Precompute parts of the signing operation - * \param eckey EC_KEY object containing a private EC key - * \param ctx BN_CTX object (optional) - * \param kinv BIGNUM pointer for the inverse of k - * \param rp BIGNUM pointer for x coordinate of k * generator - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig memory for the DER encoded created signature - * \param siglen pointer to the length of the returned signature - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, - unsigned char *sig, unsigned int *siglen, EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig buffer to hold the DER encoded signature - * \param siglen pointer to the length of the returned signature - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optional), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, - unsigned char *sig, unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey); - -/** Verifies that the given signature is valid ECDSA signature - * of the supplied hash value using the specified public key. - * \param type this parameter is ignored - * \param dgst pointer to the hash value - * \param dgstlen length of the hash value - * \param sig pointer to the DER encoded signature - * \param siglen length of the DER encoded signature - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, - const unsigned char *sig, int siglen, EC_KEY *eckey); - -/** Returns the maximum length of the DER encoded signature - * \param eckey EC_KEY object - * \return numbers of bytes required for the DER encoded signature - */ -int ECDSA_size(const EC_KEY *eckey); - -/********************************************************************/ -/* EC_KEY_METHOD constructors, destructors, writers and accessors */ -/********************************************************************/ - -EC_KEY_METHOD *EC_KEY_METHOD_new(const EC_KEY_METHOD *meth); -void EC_KEY_METHOD_free(EC_KEY_METHOD *meth); -void EC_KEY_METHOD_set_init(EC_KEY_METHOD *meth, - int (*init)(EC_KEY *key), - void (*finish)(EC_KEY *key), - int (*copy)(EC_KEY *dest, const EC_KEY *src), - int (*set_group)(EC_KEY *key, const EC_GROUP *grp), - int (*set_private)(EC_KEY *key, - const BIGNUM *priv_key), - int (*set_public)(EC_KEY *key, - const EC_POINT *pub_key)); - -void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth, - int (*keygen)(EC_KEY *key)); - -void EC_KEY_METHOD_set_compute_key(EC_KEY_METHOD *meth, - int (*ckey)(unsigned char **psec, - size_t *pseclen, - const EC_POINT *pub_key, - const EC_KEY *ecdh)); - -void EC_KEY_METHOD_set_sign(EC_KEY_METHOD *meth, - int (*sign)(int type, const unsigned char *dgst, - int dlen, unsigned char *sig, - unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *r, - EC_KEY *eckey), - int (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, - BIGNUM **kinvp, BIGNUM **rp), - ECDSA_SIG *(*sign_sig)(const unsigned char *dgst, - int dgst_len, - const BIGNUM *in_kinv, - const BIGNUM *in_r, - EC_KEY *eckey)); - -void EC_KEY_METHOD_set_verify(EC_KEY_METHOD *meth, - int (*verify)(int type, const unsigned - char *dgst, int dgst_len, - const unsigned char *sigbuf, - int sig_len, EC_KEY *eckey), - int (*verify_sig)(const unsigned char *dgst, - int dgst_len, - const ECDSA_SIG *sig, - EC_KEY *eckey)); - -void EC_KEY_METHOD_get_init(const EC_KEY_METHOD *meth, - int (**pinit)(EC_KEY *key), - void (**pfinish)(EC_KEY *key), - int (**pcopy)(EC_KEY *dest, const EC_KEY *src), - int (**pset_group)(EC_KEY *key, - const EC_GROUP *grp), - int (**pset_private)(EC_KEY *key, - const BIGNUM *priv_key), - int (**pset_public)(EC_KEY *key, - const EC_POINT *pub_key)); - -void EC_KEY_METHOD_get_keygen(const EC_KEY_METHOD *meth, - int (**pkeygen)(EC_KEY *key)); - -void EC_KEY_METHOD_get_compute_key(const EC_KEY_METHOD *meth, - int (**pck)(unsigned char **psec, - size_t *pseclen, - const EC_POINT *pub_key, - const EC_KEY *ecdh)); - -void EC_KEY_METHOD_get_sign(const EC_KEY_METHOD *meth, - int (**psign)(int type, const unsigned char *dgst, - int dlen, unsigned char *sig, - unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *r, - EC_KEY *eckey), - int (**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, - BIGNUM **kinvp, BIGNUM **rp), - ECDSA_SIG *(**psign_sig)(const unsigned char *dgst, - int dgst_len, - const BIGNUM *in_kinv, - const BIGNUM *in_r, - EC_KEY *eckey)); - -void EC_KEY_METHOD_get_verify(const EC_KEY_METHOD *meth, - int (**pverify)(int type, const unsigned - char *dgst, int dgst_len, - const unsigned char *sigbuf, - int sig_len, EC_KEY *eckey), - int (**pverify_sig)(const unsigned char *dgst, - int dgst_len, - const ECDSA_SIG *sig, - EC_KEY *eckey)); - -# define ECParameters_dup(x) ASN1_dup_of(EC_KEY,i2d_ECParameters,d2i_ECParameters,x) - -# ifndef __cplusplus -# if defined(__SUNPRO_C) -# if __SUNPRO_C >= 0x520 -# pragma error_messages (default,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) -# endif -# endif -# endif - -# define EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, NULL) - -# define EVP_PKEY_CTX_set_ec_param_enc(ctx, flag) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_EC_PARAM_ENC, flag, NULL) - -# define EVP_PKEY_CTX_set_ecdh_cofactor_mode(ctx, flag) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_ECDH_COFACTOR, flag, NULL) - -# define EVP_PKEY_CTX_get_ecdh_cofactor_mode(ctx) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_ECDH_COFACTOR, -2, NULL) - -# define EVP_PKEY_CTX_set_ecdh_kdf_type(ctx, kdf) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_TYPE, kdf, NULL) - -# define EVP_PKEY_CTX_get_ecdh_kdf_type(ctx) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_TYPE, -2, NULL) - -# define EVP_PKEY_CTX_set_ecdh_kdf_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_MD, 0, (void *)(md)) - -# define EVP_PKEY_CTX_get_ecdh_kdf_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_EC_KDF_MD, 0, (void *)(pmd)) - -# define EVP_PKEY_CTX_set_ecdh_kdf_outlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_OUTLEN, len, NULL) - -# define EVP_PKEY_CTX_get_ecdh_kdf_outlen(ctx, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN, 0, \ - (void *)(plen)) - -# define EVP_PKEY_CTX_set0_ecdh_kdf_ukm(ctx, p, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_UKM, plen, (void *)(p)) - -# define EVP_PKEY_CTX_get0_ecdh_kdf_ukm(ctx, p) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_EC_KDF_UKM, 0, (void *)(p)) - -/* SM2 will skip the operation check so no need to pass operation here */ -# define EVP_PKEY_CTX_set1_id(ctx, id, id_len) \ - EVP_PKEY_CTX_ctrl(ctx, -1, -1, \ - EVP_PKEY_CTRL_SET1_ID, (int)id_len, (void*)(id)) - -# define EVP_PKEY_CTX_get1_id(ctx, id) \ - EVP_PKEY_CTX_ctrl(ctx, -1, -1, \ - EVP_PKEY_CTRL_GET1_ID, 0, (void*)(id)) - -# define EVP_PKEY_CTX_get1_id_len(ctx, id_len) \ - EVP_PKEY_CTX_ctrl(ctx, -1, -1, \ - EVP_PKEY_CTRL_GET1_ID_LEN, 0, (void*)(id_len)) - -# define EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_EC_PARAM_ENC (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_EC_ECDH_COFACTOR (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_EC_KDF_TYPE (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_GET_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 8) -# define EVP_PKEY_CTRL_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_GET_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 10) -# define EVP_PKEY_CTRL_SET1_ID (EVP_PKEY_ALG_CTRL + 11) -# define EVP_PKEY_CTRL_GET1_ID (EVP_PKEY_ALG_CTRL + 12) -# define EVP_PKEY_CTRL_GET1_ID_LEN (EVP_PKEY_ALG_CTRL + 13) -/* KDF types */ -# define EVP_PKEY_ECDH_KDF_NONE 1 -# define EVP_PKEY_ECDH_KDF_X9_63 2 -/** The old name for EVP_PKEY_ECDH_KDF_X9_63 - * The ECDH KDF specification has been mistakingly attributed to ANSI X9.62, - * it is actually specified in ANSI X9.63. - * This identifier is retained for backwards compatibility - */ -# define EVP_PKEY_ECDH_KDF_X9_62 EVP_PKEY_ECDH_KDF_X9_63 - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ecdh.h b/submodules/MtProtoKit/openssl/openssl/ecdh.h deleted file mode 100644 index 681f3d5e55..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ecdh.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include diff --git a/submodules/MtProtoKit/openssl/openssl/ecdsa.h b/submodules/MtProtoKit/openssl/openssl/ecdsa.h deleted file mode 100644 index 681f3d5e55..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ecdsa.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include diff --git a/submodules/MtProtoKit/openssl/openssl/ecerr.h b/submodules/MtProtoKit/openssl/openssl/ecerr.h deleted file mode 100644 index f7b9183456..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ecerr.h +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_ECERR_H -# define HEADER_ECERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# include - -# ifndef OPENSSL_NO_EC - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_EC_strings(void); - -/* - * EC function codes. - */ -# define EC_F_BN_TO_FELEM 224 -# define EC_F_D2I_ECPARAMETERS 144 -# define EC_F_D2I_ECPKPARAMETERS 145 -# define EC_F_D2I_ECPRIVATEKEY 146 -# define EC_F_DO_EC_KEY_PRINT 221 -# define EC_F_ECDH_CMS_DECRYPT 238 -# define EC_F_ECDH_CMS_SET_SHARED_INFO 239 -# define EC_F_ECDH_COMPUTE_KEY 246 -# define EC_F_ECDH_SIMPLE_COMPUTE_KEY 257 -# define EC_F_ECDSA_DO_SIGN_EX 251 -# define EC_F_ECDSA_DO_VERIFY 252 -# define EC_F_ECDSA_SIGN_EX 254 -# define EC_F_ECDSA_SIGN_SETUP 248 -# define EC_F_ECDSA_SIG_NEW 265 -# define EC_F_ECDSA_VERIFY 253 -# define EC_F_ECD_ITEM_VERIFY 270 -# define EC_F_ECKEY_PARAM2TYPE 223 -# define EC_F_ECKEY_PARAM_DECODE 212 -# define EC_F_ECKEY_PRIV_DECODE 213 -# define EC_F_ECKEY_PRIV_ENCODE 214 -# define EC_F_ECKEY_PUB_DECODE 215 -# define EC_F_ECKEY_PUB_ENCODE 216 -# define EC_F_ECKEY_TYPE2PARAM 220 -# define EC_F_ECPARAMETERS_PRINT 147 -# define EC_F_ECPARAMETERS_PRINT_FP 148 -# define EC_F_ECPKPARAMETERS_PRINT 149 -# define EC_F_ECPKPARAMETERS_PRINT_FP 150 -# define EC_F_ECP_NISTZ256_GET_AFFINE 240 -# define EC_F_ECP_NISTZ256_INV_MOD_ORD 275 -# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 -# define EC_F_ECP_NISTZ256_POINTS_MUL 241 -# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 -# define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 -# define EC_F_ECX_KEY_OP 266 -# define EC_F_ECX_PRIV_ENCODE 267 -# define EC_F_ECX_PUB_ENCODE 268 -# define EC_F_EC_ASN1_GROUP2CURVE 153 -# define EC_F_EC_ASN1_GROUP2FIELDID 154 -# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 208 -# define EC_F_EC_GF2M_SIMPLE_FIELD_INV 296 -# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 159 -# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 195 -# define EC_F_EC_GF2M_SIMPLE_LADDER_POST 285 -# define EC_F_EC_GF2M_SIMPLE_LADDER_PRE 288 -# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 160 -# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 161 -# define EC_F_EC_GF2M_SIMPLE_POINTS_MUL 289 -# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 162 -# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 163 -# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 164 -# define EC_F_EC_GFP_MONT_FIELD_DECODE 133 -# define EC_F_EC_GFP_MONT_FIELD_ENCODE 134 -# define EC_F_EC_GFP_MONT_FIELD_INV 297 -# define EC_F_EC_GFP_MONT_FIELD_MUL 131 -# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 209 -# define EC_F_EC_GFP_MONT_FIELD_SQR 132 -# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 189 -# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 225 -# define EC_F_EC_GFP_NISTP224_POINTS_MUL 228 -# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 226 -# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 230 -# define EC_F_EC_GFP_NISTP256_POINTS_MUL 231 -# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 232 -# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 233 -# define EC_F_EC_GFP_NISTP521_POINTS_MUL 234 -# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 235 -# define EC_F_EC_GFP_NIST_FIELD_MUL 200 -# define EC_F_EC_GFP_NIST_FIELD_SQR 201 -# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 202 -# define EC_F_EC_GFP_SIMPLE_BLIND_COORDINATES 287 -# define EC_F_EC_GFP_SIMPLE_FIELD_INV 298 -# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 165 -# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 166 -# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 102 -# define EC_F_EC_GFP_SIMPLE_OCT2POINT 103 -# define EC_F_EC_GFP_SIMPLE_POINT2OCT 104 -# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 137 -# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 167 -# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 168 -# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 169 -# define EC_F_EC_GROUP_CHECK 170 -# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 171 -# define EC_F_EC_GROUP_COPY 106 -# define EC_F_EC_GROUP_GET_CURVE 291 -# define EC_F_EC_GROUP_GET_CURVE_GF2M 172 -# define EC_F_EC_GROUP_GET_CURVE_GFP 130 -# define EC_F_EC_GROUP_GET_DEGREE 173 -# define EC_F_EC_GROUP_GET_ECPARAMETERS 261 -# define EC_F_EC_GROUP_GET_ECPKPARAMETERS 262 -# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 193 -# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 194 -# define EC_F_EC_GROUP_NEW 108 -# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 174 -# define EC_F_EC_GROUP_NEW_FROM_DATA 175 -# define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 263 -# define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 264 -# define EC_F_EC_GROUP_SET_CURVE 292 -# define EC_F_EC_GROUP_SET_CURVE_GF2M 176 -# define EC_F_EC_GROUP_SET_CURVE_GFP 109 -# define EC_F_EC_GROUP_SET_GENERATOR 111 -# define EC_F_EC_GROUP_SET_SEED 286 -# define EC_F_EC_KEY_CHECK_KEY 177 -# define EC_F_EC_KEY_COPY 178 -# define EC_F_EC_KEY_GENERATE_KEY 179 -# define EC_F_EC_KEY_NEW 182 -# define EC_F_EC_KEY_NEW_METHOD 245 -# define EC_F_EC_KEY_OCT2PRIV 255 -# define EC_F_EC_KEY_PRINT 180 -# define EC_F_EC_KEY_PRINT_FP 181 -# define EC_F_EC_KEY_PRIV2BUF 279 -# define EC_F_EC_KEY_PRIV2OCT 256 -# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 229 -# define EC_F_EC_KEY_SIMPLE_CHECK_KEY 258 -# define EC_F_EC_KEY_SIMPLE_OCT2PRIV 259 -# define EC_F_EC_KEY_SIMPLE_PRIV2OCT 260 -# define EC_F_EC_PKEY_CHECK 273 -# define EC_F_EC_PKEY_PARAM_CHECK 274 -# define EC_F_EC_POINTS_MAKE_AFFINE 136 -# define EC_F_EC_POINTS_MUL 290 -# define EC_F_EC_POINT_ADD 112 -# define EC_F_EC_POINT_BN2POINT 280 -# define EC_F_EC_POINT_CMP 113 -# define EC_F_EC_POINT_COPY 114 -# define EC_F_EC_POINT_DBL 115 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES 293 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 183 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 116 -# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 117 -# define EC_F_EC_POINT_INVERT 210 -# define EC_F_EC_POINT_IS_AT_INFINITY 118 -# define EC_F_EC_POINT_IS_ON_CURVE 119 -# define EC_F_EC_POINT_MAKE_AFFINE 120 -# define EC_F_EC_POINT_NEW 121 -# define EC_F_EC_POINT_OCT2POINT 122 -# define EC_F_EC_POINT_POINT2BUF 281 -# define EC_F_EC_POINT_POINT2OCT 123 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES 294 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 185 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 124 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES 295 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 186 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 125 -# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 126 -# define EC_F_EC_POINT_SET_TO_INFINITY 127 -# define EC_F_EC_PRE_COMP_NEW 196 -# define EC_F_EC_SCALAR_MUL_LADDER 284 -# define EC_F_EC_WNAF_MUL 187 -# define EC_F_EC_WNAF_PRECOMPUTE_MULT 188 -# define EC_F_I2D_ECPARAMETERS 190 -# define EC_F_I2D_ECPKPARAMETERS 191 -# define EC_F_I2D_ECPRIVATEKEY 192 -# define EC_F_I2O_ECPUBLICKEY 151 -# define EC_F_NISTP224_PRE_COMP_NEW 227 -# define EC_F_NISTP256_PRE_COMP_NEW 236 -# define EC_F_NISTP521_PRE_COMP_NEW 237 -# define EC_F_O2I_ECPUBLICKEY 152 -# define EC_F_OLD_EC_PRIV_DECODE 222 -# define EC_F_OSSL_ECDH_COMPUTE_KEY 247 -# define EC_F_OSSL_ECDSA_SIGN_SIG 249 -# define EC_F_OSSL_ECDSA_VERIFY_SIG 250 -# define EC_F_PKEY_ECD_CTRL 271 -# define EC_F_PKEY_ECD_DIGESTSIGN 272 -# define EC_F_PKEY_ECD_DIGESTSIGN25519 276 -# define EC_F_PKEY_ECD_DIGESTSIGN448 277 -# define EC_F_PKEY_ECX_DERIVE 269 -# define EC_F_PKEY_EC_CTRL 197 -# define EC_F_PKEY_EC_CTRL_STR 198 -# define EC_F_PKEY_EC_DERIVE 217 -# define EC_F_PKEY_EC_INIT 282 -# define EC_F_PKEY_EC_KDF_DERIVE 283 -# define EC_F_PKEY_EC_KEYGEN 199 -# define EC_F_PKEY_EC_PARAMGEN 219 -# define EC_F_PKEY_EC_SIGN 218 -# define EC_F_VALIDATE_ECX_DERIVE 278 - -/* - * EC reason codes. - */ -# define EC_R_ASN1_ERROR 115 -# define EC_R_BAD_SIGNATURE 156 -# define EC_R_BIGNUM_OUT_OF_RANGE 144 -# define EC_R_BUFFER_TOO_SMALL 100 -# define EC_R_CANNOT_INVERT 165 -# define EC_R_COORDINATES_OUT_OF_RANGE 146 -# define EC_R_CURVE_DOES_NOT_SUPPORT_ECDH 160 -# define EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING 159 -# define EC_R_D2I_ECPKPARAMETERS_FAILURE 117 -# define EC_R_DECODE_ERROR 142 -# define EC_R_DISCRIMINANT_IS_ZERO 118 -# define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 119 -# define EC_R_FIELD_TOO_LARGE 143 -# define EC_R_GF2M_NOT_SUPPORTED 147 -# define EC_R_GROUP2PKPARAMETERS_FAILURE 120 -# define EC_R_I2D_ECPKPARAMETERS_FAILURE 121 -# define EC_R_INCOMPATIBLE_OBJECTS 101 -# define EC_R_INVALID_ARGUMENT 112 -# define EC_R_INVALID_COMPRESSED_POINT 110 -# define EC_R_INVALID_COMPRESSION_BIT 109 -# define EC_R_INVALID_CURVE 141 -# define EC_R_INVALID_DIGEST 151 -# define EC_R_INVALID_DIGEST_TYPE 138 -# define EC_R_INVALID_ENCODING 102 -# define EC_R_INVALID_FIELD 103 -# define EC_R_INVALID_FORM 104 -# define EC_R_INVALID_GROUP_ORDER 122 -# define EC_R_INVALID_KEY 116 -# define EC_R_INVALID_OUTPUT_LENGTH 161 -# define EC_R_INVALID_PEER_KEY 133 -# define EC_R_INVALID_PENTANOMIAL_BASIS 132 -# define EC_R_INVALID_PRIVATE_KEY 123 -# define EC_R_INVALID_TRINOMIAL_BASIS 137 -# define EC_R_KDF_PARAMETER_ERROR 148 -# define EC_R_KEYS_NOT_SET 140 -# define EC_R_LADDER_POST_FAILURE 136 -# define EC_R_LADDER_PRE_FAILURE 153 -# define EC_R_LADDER_STEP_FAILURE 162 -# define EC_R_MISSING_PARAMETERS 124 -# define EC_R_MISSING_PRIVATE_KEY 125 -# define EC_R_NEED_NEW_SETUP_VALUES 157 -# define EC_R_NOT_A_NIST_PRIME 135 -# define EC_R_NOT_IMPLEMENTED 126 -# define EC_R_NOT_INITIALIZED 111 -# define EC_R_NO_PARAMETERS_SET 139 -# define EC_R_NO_PRIVATE_VALUE 154 -# define EC_R_OPERATION_NOT_SUPPORTED 152 -# define EC_R_PASSED_NULL_PARAMETER 134 -# define EC_R_PEER_KEY_ERROR 149 -# define EC_R_PKPARAMETERS2GROUP_FAILURE 127 -# define EC_R_POINT_ARITHMETIC_FAILURE 155 -# define EC_R_POINT_AT_INFINITY 106 -# define EC_R_POINT_COORDINATES_BLIND_FAILURE 163 -# define EC_R_POINT_IS_NOT_ON_CURVE 107 -# define EC_R_RANDOM_NUMBER_GENERATION_FAILED 158 -# define EC_R_SHARED_INFO_ERROR 150 -# define EC_R_SLOT_FULL 108 -# define EC_R_UNDEFINED_GENERATOR 113 -# define EC_R_UNDEFINED_ORDER 128 -# define EC_R_UNKNOWN_COFACTOR 164 -# define EC_R_UNKNOWN_GROUP 129 -# define EC_R_UNKNOWN_ORDER 114 -# define EC_R_UNSUPPORTED_FIELD 131 -# define EC_R_WRONG_CURVE_PARAMETERS 145 -# define EC_R_WRONG_ORDER 130 - -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/engine.h b/submodules/MtProtoKit/openssl/openssl/engine.h deleted file mode 100644 index 0780f0fb5f..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/engine.h +++ /dev/null @@ -1,751 +0,0 @@ -/* - * Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_ENGINE_H -# define HEADER_ENGINE_H - -# include - -# ifndef OPENSSL_NO_ENGINE -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# include -# include -# include -# include -# include -# endif -# include -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -/* - * These flags are used to control combinations of algorithm (methods) by - * bitwise "OR"ing. - */ -# define ENGINE_METHOD_RSA (unsigned int)0x0001 -# define ENGINE_METHOD_DSA (unsigned int)0x0002 -# define ENGINE_METHOD_DH (unsigned int)0x0004 -# define ENGINE_METHOD_RAND (unsigned int)0x0008 -# define ENGINE_METHOD_CIPHERS (unsigned int)0x0040 -# define ENGINE_METHOD_DIGESTS (unsigned int)0x0080 -# define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200 -# define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400 -# define ENGINE_METHOD_EC (unsigned int)0x0800 -/* Obvious all-or-nothing cases. */ -# define ENGINE_METHOD_ALL (unsigned int)0xFFFF -# define ENGINE_METHOD_NONE (unsigned int)0x0000 - -/* - * This(ese) flag(s) controls behaviour of the ENGINE_TABLE mechanism used - * internally to control registration of ENGINE implementations, and can be - * set by ENGINE_set_table_flags(). The "NOINIT" flag prevents attempts to - * initialise registered ENGINEs if they are not already initialised. - */ -# define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001 - -/* ENGINE flags that can be set by ENGINE_set_flags(). */ -/* Not used */ -/* #define ENGINE_FLAGS_MALLOCED 0x0001 */ - -/* - * This flag is for ENGINEs that wish to handle the various 'CMD'-related - * control commands on their own. Without this flag, ENGINE_ctrl() handles - * these control commands on behalf of the ENGINE using their "cmd_defns" - * data. - */ -# define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002 - -/* - * This flag is for ENGINEs who return new duplicate structures when found - * via "ENGINE_by_id()". When an ENGINE must store state (eg. if - * ENGINE_ctrl() commands are called in sequence as part of some stateful - * process like key-generation setup and execution), it can set this flag - - * then each attempt to obtain the ENGINE will result in it being copied into - * a new structure. Normally, ENGINEs don't declare this flag so - * ENGINE_by_id() just increments the existing ENGINE's structural reference - * count. - */ -# define ENGINE_FLAGS_BY_ID_COPY (int)0x0004 - -/* - * This flag if for an ENGINE that does not want its methods registered as - * part of ENGINE_register_all_complete() for example if the methods are not - * usable as default methods. - */ - -# define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008 - -/* - * ENGINEs can support their own command types, and these flags are used in - * ENGINE_CTRL_GET_CMD_FLAGS to indicate to the caller what kind of input - * each command expects. Currently only numeric and string input is - * supported. If a control command supports none of the _NUMERIC, _STRING, or - * _NO_INPUT options, then it is regarded as an "internal" control command - - * and not for use in config setting situations. As such, they're not - * available to the ENGINE_ctrl_cmd_string() function, only raw ENGINE_ctrl() - * access. Changes to this list of 'command types' should be reflected - * carefully in ENGINE_cmd_is_executable() and ENGINE_ctrl_cmd_string(). - */ - -/* accepts a 'long' input value (3rd parameter to ENGINE_ctrl) */ -# define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001 -/* - * accepts string input (cast from 'void*' to 'const char *', 4th parameter - * to ENGINE_ctrl) - */ -# define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002 -/* - * Indicates that the control command takes *no* input. Ie. the control - * command is unparameterised. - */ -# define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004 -/* - * Indicates that the control command is internal. This control command won't - * be shown in any output, and is only usable through the ENGINE_ctrl_cmd() - * function. - */ -# define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008 - -/* - * NB: These 3 control commands are deprecated and should not be used. - * ENGINEs relying on these commands should compile conditional support for - * compatibility (eg. if these symbols are defined) but should also migrate - * the same functionality to their own ENGINE-specific control functions that - * can be "discovered" by calling applications. The fact these control - * commands wouldn't be "executable" (ie. usable by text-based config) - * doesn't change the fact that application code can find and use them - * without requiring per-ENGINE hacking. - */ - -/* - * These flags are used to tell the ctrl function what should be done. All - * command numbers are shared between all engines, even if some don't make - * sense to some engines. In such a case, they do nothing but return the - * error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED. - */ -# define ENGINE_CTRL_SET_LOGSTREAM 1 -# define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2 -# define ENGINE_CTRL_HUP 3/* Close and reinitialise - * any handles/connections - * etc. */ -# define ENGINE_CTRL_SET_USER_INTERFACE 4/* Alternative to callback */ -# define ENGINE_CTRL_SET_CALLBACK_DATA 5/* User-specific data, used - * when calling the password - * callback and the user - * interface */ -# define ENGINE_CTRL_LOAD_CONFIGURATION 6/* Load a configuration, - * given a string that - * represents a file name - * or so */ -# define ENGINE_CTRL_LOAD_SECTION 7/* Load data from a given - * section in the already - * loaded configuration */ - -/* - * These control commands allow an application to deal with an arbitrary - * engine in a dynamic way. Warn: Negative return values indicate errors FOR - * THESE COMMANDS because zero is used to indicate 'end-of-list'. Other - * commands, including ENGINE-specific command types, return zero for an - * error. An ENGINE can choose to implement these ctrl functions, and can - * internally manage things however it chooses - it does so by setting the - * ENGINE_FLAGS_MANUAL_CMD_CTRL flag (using ENGINE_set_flags()). Otherwise - * the ENGINE_ctrl() code handles this on the ENGINE's behalf using the - * cmd_defns data (set using ENGINE_set_cmd_defns()). This means an ENGINE's - * ctrl() handler need only implement its own commands - the above "meta" - * commands will be taken care of. - */ - -/* - * Returns non-zero if the supplied ENGINE has a ctrl() handler. If "not", - * then all the remaining control commands will return failure, so it is - * worth checking this first if the caller is trying to "discover" the - * engine's capabilities and doesn't want errors generated unnecessarily. - */ -# define ENGINE_CTRL_HAS_CTRL_FUNCTION 10 -/* - * Returns a positive command number for the first command supported by the - * engine. Returns zero if no ctrl commands are supported. - */ -# define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11 -/* - * The 'long' argument specifies a command implemented by the engine, and the - * return value is the next command supported, or zero if there are no more. - */ -# define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12 -/* - * The 'void*' argument is a command name (cast from 'const char *'), and the - * return value is the command that corresponds to it. - */ -# define ENGINE_CTRL_GET_CMD_FROM_NAME 13 -/* - * The next two allow a command to be converted into its corresponding string - * form. In each case, the 'long' argument supplies the command. In the - * NAME_LEN case, the return value is the length of the command name (not - * counting a trailing EOL). In the NAME case, the 'void*' argument must be a - * string buffer large enough, and it will be populated with the name of the - * command (WITH a trailing EOL). - */ -# define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14 -# define ENGINE_CTRL_GET_NAME_FROM_CMD 15 -/* The next two are similar but give a "short description" of a command. */ -# define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16 -# define ENGINE_CTRL_GET_DESC_FROM_CMD 17 -/* - * With this command, the return value is the OR'd combination of - * ENGINE_CMD_FLAG_*** values that indicate what kind of input a given - * engine-specific ctrl command expects. - */ -# define ENGINE_CTRL_GET_CMD_FLAGS 18 - -/* - * ENGINE implementations should start the numbering of their own control - * commands from this value. (ie. ENGINE_CMD_BASE, ENGINE_CMD_BASE + 1, etc). - */ -# define ENGINE_CMD_BASE 200 - -/* - * NB: These 2 nCipher "chil" control commands are deprecated, and their - * functionality is now available through ENGINE-specific control commands - * (exposed through the above-mentioned 'CMD'-handling). Code using these 2 - * commands should be migrated to the more general command handling before - * these are removed. - */ - -/* Flags specific to the nCipher "chil" engine */ -# define ENGINE_CTRL_CHIL_SET_FORKCHECK 100 - /* - * Depending on the value of the (long)i argument, this sets or - * unsets the SimpleForkCheck flag in the CHIL API to enable or - * disable checking and workarounds for applications that fork(). - */ -# define ENGINE_CTRL_CHIL_NO_LOCKING 101 - /* - * This prevents the initialisation function from providing mutex - * callbacks to the nCipher library. - */ - -/* - * If an ENGINE supports its own specific control commands and wishes the - * framework to handle the above 'ENGINE_CMD_***'-manipulation commands on - * its behalf, it should supply a null-terminated array of ENGINE_CMD_DEFN - * entries to ENGINE_set_cmd_defns(). It should also implement a ctrl() - * handler that supports the stated commands (ie. the "cmd_num" entries as - * described by the array). NB: The array must be ordered in increasing order - * of cmd_num. "null-terminated" means that the last ENGINE_CMD_DEFN element - * has cmd_num set to zero and/or cmd_name set to NULL. - */ -typedef struct ENGINE_CMD_DEFN_st { - unsigned int cmd_num; /* The command number */ - const char *cmd_name; /* The command name itself */ - const char *cmd_desc; /* A short description of the command */ - unsigned int cmd_flags; /* The input the command expects */ -} ENGINE_CMD_DEFN; - -/* Generic function pointer */ -typedef int (*ENGINE_GEN_FUNC_PTR) (void); -/* Generic function pointer taking no arguments */ -typedef int (*ENGINE_GEN_INT_FUNC_PTR) (ENGINE *); -/* Specific control function pointer */ -typedef int (*ENGINE_CTRL_FUNC_PTR) (ENGINE *, int, long, void *, - void (*f) (void)); -/* Generic load_key function pointer */ -typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, - UI_METHOD *ui_method, - void *callback_data); -typedef int (*ENGINE_SSL_CLIENT_CERT_PTR) (ENGINE *, SSL *ssl, - STACK_OF(X509_NAME) *ca_dn, - X509 **pcert, EVP_PKEY **pkey, - STACK_OF(X509) **pother, - UI_METHOD *ui_method, - void *callback_data); -/*- - * These callback types are for an ENGINE's handler for cipher and digest logic. - * These handlers have these prototypes; - * int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid); - * int foo(ENGINE *e, const EVP_MD **digest, const int **nids, int nid); - * Looking at how to implement these handlers in the case of cipher support, if - * the framework wants the EVP_CIPHER for 'nid', it will call; - * foo(e, &p_evp_cipher, NULL, nid); (return zero for failure) - * If the framework wants a list of supported 'nid's, it will call; - * foo(e, NULL, &p_nids, 0); (returns number of 'nids' or -1 for error) - */ -/* - * Returns to a pointer to the array of supported cipher 'nid's. If the - * second parameter is non-NULL it is set to the size of the returned array. - */ -typedef int (*ENGINE_CIPHERS_PTR) (ENGINE *, const EVP_CIPHER **, - const int **, int); -typedef int (*ENGINE_DIGESTS_PTR) (ENGINE *, const EVP_MD **, const int **, - int); -typedef int (*ENGINE_PKEY_METHS_PTR) (ENGINE *, EVP_PKEY_METHOD **, - const int **, int); -typedef int (*ENGINE_PKEY_ASN1_METHS_PTR) (ENGINE *, EVP_PKEY_ASN1_METHOD **, - const int **, int); -/* - * STRUCTURE functions ... all of these functions deal with pointers to - * ENGINE structures where the pointers have a "structural reference". This - * means that their reference is to allowed access to the structure but it - * does not imply that the structure is functional. To simply increment or - * decrement the structural reference count, use ENGINE_by_id and - * ENGINE_free. NB: This is not required when iterating using ENGINE_get_next - * as it will automatically decrement the structural reference count of the - * "current" ENGINE and increment the structural reference count of the - * ENGINE it returns (unless it is NULL). - */ - -/* Get the first/last "ENGINE" type available. */ -ENGINE *ENGINE_get_first(void); -ENGINE *ENGINE_get_last(void); -/* Iterate to the next/previous "ENGINE" type (NULL = end of the list). */ -ENGINE *ENGINE_get_next(ENGINE *e); -ENGINE *ENGINE_get_prev(ENGINE *e); -/* Add another "ENGINE" type into the array. */ -int ENGINE_add(ENGINE *e); -/* Remove an existing "ENGINE" type from the array. */ -int ENGINE_remove(ENGINE *e); -/* Retrieve an engine from the list by its unique "id" value. */ -ENGINE *ENGINE_by_id(const char *id); - -#if OPENSSL_API_COMPAT < 0x10100000L -# define ENGINE_load_openssl() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_OPENSSL, NULL) -# define ENGINE_load_dynamic() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_DYNAMIC, NULL) -# ifndef OPENSSL_NO_STATIC_ENGINE -# define ENGINE_load_padlock() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_PADLOCK, NULL) -# define ENGINE_load_capi() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CAPI, NULL) -# define ENGINE_load_afalg() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_AFALG, NULL) -# endif -# define ENGINE_load_cryptodev() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CRYPTODEV, NULL) -# define ENGINE_load_rdrand() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_RDRAND, NULL) -#endif -void ENGINE_load_builtin_engines(void); - -/* - * Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation - * "registry" handling. - */ -unsigned int ENGINE_get_table_flags(void); -void ENGINE_set_table_flags(unsigned int flags); - -/*- Manage registration of ENGINEs per "table". For each type, there are 3 - * functions; - * ENGINE_register_***(e) - registers the implementation from 'e' (if it has one) - * ENGINE_unregister_***(e) - unregister the implementation from 'e' - * ENGINE_register_all_***() - call ENGINE_register_***() for each 'e' in the list - * Cleanup is automatically registered from each table when required. - */ - -int ENGINE_register_RSA(ENGINE *e); -void ENGINE_unregister_RSA(ENGINE *e); -void ENGINE_register_all_RSA(void); - -int ENGINE_register_DSA(ENGINE *e); -void ENGINE_unregister_DSA(ENGINE *e); -void ENGINE_register_all_DSA(void); - -int ENGINE_register_EC(ENGINE *e); -void ENGINE_unregister_EC(ENGINE *e); -void ENGINE_register_all_EC(void); - -int ENGINE_register_DH(ENGINE *e); -void ENGINE_unregister_DH(ENGINE *e); -void ENGINE_register_all_DH(void); - -int ENGINE_register_RAND(ENGINE *e); -void ENGINE_unregister_RAND(ENGINE *e); -void ENGINE_register_all_RAND(void); - -int ENGINE_register_ciphers(ENGINE *e); -void ENGINE_unregister_ciphers(ENGINE *e); -void ENGINE_register_all_ciphers(void); - -int ENGINE_register_digests(ENGINE *e); -void ENGINE_unregister_digests(ENGINE *e); -void ENGINE_register_all_digests(void); - -int ENGINE_register_pkey_meths(ENGINE *e); -void ENGINE_unregister_pkey_meths(ENGINE *e); -void ENGINE_register_all_pkey_meths(void); - -int ENGINE_register_pkey_asn1_meths(ENGINE *e); -void ENGINE_unregister_pkey_asn1_meths(ENGINE *e); -void ENGINE_register_all_pkey_asn1_meths(void); - -/* - * These functions register all support from the above categories. Note, use - * of these functions can result in static linkage of code your application - * may not need. If you only need a subset of functionality, consider using - * more selective initialisation. - */ -int ENGINE_register_complete(ENGINE *e); -int ENGINE_register_all_complete(void); - -/* - * Send parameterised control commands to the engine. The possibilities to - * send down an integer, a pointer to data or a function pointer are - * provided. Any of the parameters may or may not be NULL, depending on the - * command number. In actuality, this function only requires a structural - * (rather than functional) reference to an engine, but many control commands - * may require the engine be functional. The caller should be aware of trying - * commands that require an operational ENGINE, and only use functional - * references in such situations. - */ -int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void)); - -/* - * This function tests if an ENGINE-specific command is usable as a - * "setting". Eg. in an application's config file that gets processed through - * ENGINE_ctrl_cmd_string(). If this returns zero, it is not available to - * ENGINE_ctrl_cmd_string(), only ENGINE_ctrl(). - */ -int ENGINE_cmd_is_executable(ENGINE *e, int cmd); - -/* - * This function works like ENGINE_ctrl() with the exception of taking a - * command name instead of a command number, and can handle optional - * commands. See the comment on ENGINE_ctrl_cmd_string() for an explanation - * on how to use the cmd_name and cmd_optional. - */ -int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, - long i, void *p, void (*f) (void), int cmd_optional); - -/* - * This function passes a command-name and argument to an ENGINE. The - * cmd_name is converted to a command number and the control command is - * called using 'arg' as an argument (unless the ENGINE doesn't support such - * a command, in which case no control command is called). The command is - * checked for input flags, and if necessary the argument will be converted - * to a numeric value. If cmd_optional is non-zero, then if the ENGINE - * doesn't support the given cmd_name the return value will be success - * anyway. This function is intended for applications to use so that users - * (or config files) can supply engine-specific config data to the ENGINE at - * run-time to control behaviour of specific engines. As such, it shouldn't - * be used for calling ENGINE_ctrl() functions that return data, deal with - * binary data, or that are otherwise supposed to be used directly through - * ENGINE_ctrl() in application code. Any "return" data from an ENGINE_ctrl() - * operation in this function will be lost - the return value is interpreted - * as failure if the return value is zero, success otherwise, and this - * function returns a boolean value as a result. In other words, vendors of - * 'ENGINE'-enabled devices should write ENGINE implementations with - * parameterisations that work in this scheme, so that compliant ENGINE-based - * applications can work consistently with the same configuration for the - * same ENGINE-enabled devices, across applications. - */ -int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg, - int cmd_optional); - -/* - * These functions are useful for manufacturing new ENGINE structures. They - * don't address reference counting at all - one uses them to populate an - * ENGINE structure with personalised implementations of things prior to - * using it directly or adding it to the builtin ENGINE list in OpenSSL. - * These are also here so that the ENGINE structure doesn't have to be - * exposed and break binary compatibility! - */ -ENGINE *ENGINE_new(void); -int ENGINE_free(ENGINE *e); -int ENGINE_up_ref(ENGINE *e); -int ENGINE_set_id(ENGINE *e, const char *id); -int ENGINE_set_name(ENGINE *e, const char *name); -int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth); -int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth); -int ENGINE_set_EC(ENGINE *e, const EC_KEY_METHOD *ecdsa_meth); -int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth); -int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth); -int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f); -int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f); -int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f); -int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); -int ENGINE_set_load_privkey_function(ENGINE *e, - ENGINE_LOAD_KEY_PTR loadpriv_f); -int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f); -int ENGINE_set_load_ssl_client_cert_function(ENGINE *e, - ENGINE_SSL_CLIENT_CERT_PTR - loadssl_f); -int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f); -int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f); -int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f); -int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f); -int ENGINE_set_flags(ENGINE *e, int flags); -int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns); -/* These functions allow control over any per-structure ENGINE data. */ -#define ENGINE_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_ENGINE, l, p, newf, dupf, freef) -int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg); -void *ENGINE_get_ex_data(const ENGINE *e, int idx); - -#if OPENSSL_API_COMPAT < 0x10100000L -/* - * This function previously cleaned up anything that needs it. Auto-deinit will - * now take care of it so it is no longer required to call this function. - */ -# define ENGINE_cleanup() while(0) continue -#endif - -/* - * These return values from within the ENGINE structure. These can be useful - * with functional references as well as structural references - it depends - * which you obtained. Using the result for functional purposes if you only - * obtained a structural reference may be problematic! - */ -const char *ENGINE_get_id(const ENGINE *e); -const char *ENGINE_get_name(const ENGINE *e); -const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e); -const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e); -const EC_KEY_METHOD *ENGINE_get_EC(const ENGINE *e); -const DH_METHOD *ENGINE_get_DH(const ENGINE *e); -const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e); -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e); -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e); -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e); -ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e); -ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e); -ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e); -ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE - *e); -ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e); -ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e); -ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e); -ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE *e); -const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid); -const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid); -const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid); -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid); -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e, - const char *str, - int len); -const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe, - const char *str, - int len); -const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e); -int ENGINE_get_flags(const ENGINE *e); - -/* - * FUNCTIONAL functions. These functions deal with ENGINE structures that - * have (or will) be initialised for use. Broadly speaking, the structural - * functions are useful for iterating the list of available engine types, - * creating new engine types, and other "list" operations. These functions - * actually deal with ENGINEs that are to be used. As such these functions - * can fail (if applicable) when particular engines are unavailable - eg. if - * a hardware accelerator is not attached or not functioning correctly. Each - * ENGINE has 2 reference counts; structural and functional. Every time a - * functional reference is obtained or released, a corresponding structural - * reference is automatically obtained or released too. - */ - -/* - * Initialise a engine type for use (or up its reference count if it's - * already in use). This will fail if the engine is not currently operational - * and cannot initialise. - */ -int ENGINE_init(ENGINE *e); -/* - * Free a functional reference to a engine type. This does not require a - * corresponding call to ENGINE_free as it also releases a structural - * reference. - */ -int ENGINE_finish(ENGINE *e); - -/* - * The following functions handle keys that are stored in some secondary - * location, handled by the engine. The storage may be on a card or - * whatever. - */ -EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, - STACK_OF(X509_NAME) *ca_dn, X509 **pcert, - EVP_PKEY **ppkey, STACK_OF(X509) **pother, - UI_METHOD *ui_method, void *callback_data); - -/* - * This returns a pointer for the current ENGINE structure that is (by - * default) performing any RSA operations. The value returned is an - * incremented reference, so it should be free'd (ENGINE_finish) before it is - * discarded. - */ -ENGINE *ENGINE_get_default_RSA(void); -/* Same for the other "methods" */ -ENGINE *ENGINE_get_default_DSA(void); -ENGINE *ENGINE_get_default_EC(void); -ENGINE *ENGINE_get_default_DH(void); -ENGINE *ENGINE_get_default_RAND(void); -/* - * These functions can be used to get a functional reference to perform - * ciphering or digesting corresponding to "nid". - */ -ENGINE *ENGINE_get_cipher_engine(int nid); -ENGINE *ENGINE_get_digest_engine(int nid); -ENGINE *ENGINE_get_pkey_meth_engine(int nid); -ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid); - -/* - * This sets a new default ENGINE structure for performing RSA operations. If - * the result is non-zero (success) then the ENGINE structure will have had - * its reference count up'd so the caller should still free their own - * reference 'e'. - */ -int ENGINE_set_default_RSA(ENGINE *e); -int ENGINE_set_default_string(ENGINE *e, const char *def_list); -/* Same for the other "methods" */ -int ENGINE_set_default_DSA(ENGINE *e); -int ENGINE_set_default_EC(ENGINE *e); -int ENGINE_set_default_DH(ENGINE *e); -int ENGINE_set_default_RAND(ENGINE *e); -int ENGINE_set_default_ciphers(ENGINE *e); -int ENGINE_set_default_digests(ENGINE *e); -int ENGINE_set_default_pkey_meths(ENGINE *e); -int ENGINE_set_default_pkey_asn1_meths(ENGINE *e); - -/* - * The combination "set" - the flags are bitwise "OR"d from the - * ENGINE_METHOD_*** defines above. As with the "ENGINE_register_complete()" - * function, this function can result in unnecessary static linkage. If your - * application requires only specific functionality, consider using more - * selective functions. - */ -int ENGINE_set_default(ENGINE *e, unsigned int flags); - -void ENGINE_add_conf_module(void); - -/* Deprecated functions ... */ -/* int ENGINE_clear_defaults(void); */ - -/**************************/ -/* DYNAMIC ENGINE SUPPORT */ -/**************************/ - -/* Binary/behaviour compatibility levels */ -# define OSSL_DYNAMIC_VERSION (unsigned long)0x00030000 -/* - * Binary versions older than this are too old for us (whether we're a loader - * or a loadee) - */ -# define OSSL_DYNAMIC_OLDEST (unsigned long)0x00030000 - -/* - * When compiling an ENGINE entirely as an external shared library, loadable - * by the "dynamic" ENGINE, these types are needed. The 'dynamic_fns' - * structure type provides the calling application's (or library's) error - * functionality and memory management function pointers to the loaded - * library. These should be used/set in the loaded library code so that the - * loading application's 'state' will be used/changed in all operations. The - * 'static_state' pointer allows the loaded library to know if it shares the - * same static data as the calling application (or library), and thus whether - * these callbacks need to be set or not. - */ -typedef void *(*dyn_MEM_malloc_fn) (size_t, const char *, int); -typedef void *(*dyn_MEM_realloc_fn) (void *, size_t, const char *, int); -typedef void (*dyn_MEM_free_fn) (void *, const char *, int); -typedef struct st_dynamic_MEM_fns { - dyn_MEM_malloc_fn malloc_fn; - dyn_MEM_realloc_fn realloc_fn; - dyn_MEM_free_fn free_fn; -} dynamic_MEM_fns; -/* - * FIXME: Perhaps the memory and locking code (crypto.h) should declare and - * use these types so we (and any other dependent code) can simplify a bit?? - */ -/* The top-level structure */ -typedef struct st_dynamic_fns { - void *static_state; - dynamic_MEM_fns mem_fns; -} dynamic_fns; - -/* - * The version checking function should be of this prototype. NB: The - * ossl_version value passed in is the OSSL_DYNAMIC_VERSION of the loading - * code. If this function returns zero, it indicates a (potential) version - * incompatibility and the loaded library doesn't believe it can proceed. - * Otherwise, the returned value is the (latest) version supported by the - * loading library. The loader may still decide that the loaded code's - * version is unsatisfactory and could veto the load. The function is - * expected to be implemented with the symbol name "v_check", and a default - * implementation can be fully instantiated with - * IMPLEMENT_DYNAMIC_CHECK_FN(). - */ -typedef unsigned long (*dynamic_v_check_fn) (unsigned long ossl_version); -# define IMPLEMENT_DYNAMIC_CHECK_FN() \ - OPENSSL_EXPORT unsigned long v_check(unsigned long v); \ - OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \ - if (v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \ - return 0; } - -/* - * This function is passed the ENGINE structure to initialise with its own - * function and command settings. It should not adjust the structural or - * functional reference counts. If this function returns zero, (a) the load - * will be aborted, (b) the previous ENGINE state will be memcpy'd back onto - * the structure, and (c) the shared library will be unloaded. So - * implementations should do their own internal cleanup in failure - * circumstances otherwise they could leak. The 'id' parameter, if non-NULL, - * represents the ENGINE id that the loader is looking for. If this is NULL, - * the shared library can choose to return failure or to initialise a - * 'default' ENGINE. If non-NULL, the shared library must initialise only an - * ENGINE matching the passed 'id'. The function is expected to be - * implemented with the symbol name "bind_engine". A standard implementation - * can be instantiated with IMPLEMENT_DYNAMIC_BIND_FN(fn) where the parameter - * 'fn' is a callback function that populates the ENGINE structure and - * returns an int value (zero for failure). 'fn' should have prototype; - * [static] int fn(ENGINE *e, const char *id); - */ -typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id, - const dynamic_fns *fns); -# define IMPLEMENT_DYNAMIC_BIND_FN(fn) \ - OPENSSL_EXPORT \ - int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \ - OPENSSL_EXPORT \ - int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \ - if (ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \ - CRYPTO_set_mem_functions(fns->mem_fns.malloc_fn, \ - fns->mem_fns.realloc_fn, \ - fns->mem_fns.free_fn); \ - skip_cbs: \ - if (!fn(e, id)) return 0; \ - return 1; } - -/* - * If the loading application (or library) and the loaded ENGINE library - * share the same static data (eg. they're both dynamically linked to the - * same libcrypto.so) we need a way to avoid trying to set system callbacks - - * this would fail, and for the same reason that it's unnecessary to try. If - * the loaded ENGINE has (or gets from through the loader) its own copy of - * the libcrypto static data, we will need to set the callbacks. The easiest - * way to detect this is to have a function that returns a pointer to some - * static data and let the loading application and loaded ENGINE compare - * their respective values. - */ -void *ENGINE_get_static_state(void); - -# if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) -DEPRECATEDIN_1_1_0(void ENGINE_setup_bsd_cryptodev(void)) -# endif - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/engineerr.h b/submodules/MtProtoKit/openssl/openssl/engineerr.h deleted file mode 100644 index 05e84bd2a2..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/engineerr.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_ENGINEERR_H -# define HEADER_ENGINEERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# include - -# ifndef OPENSSL_NO_ENGINE - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_ENGINE_strings(void); - -/* - * ENGINE function codes. - */ -# define ENGINE_F_DIGEST_UPDATE 198 -# define ENGINE_F_DYNAMIC_CTRL 180 -# define ENGINE_F_DYNAMIC_GET_DATA_CTX 181 -# define ENGINE_F_DYNAMIC_LOAD 182 -# define ENGINE_F_DYNAMIC_SET_DATA_CTX 183 -# define ENGINE_F_ENGINE_ADD 105 -# define ENGINE_F_ENGINE_BY_ID 106 -# define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 170 -# define ENGINE_F_ENGINE_CTRL 142 -# define ENGINE_F_ENGINE_CTRL_CMD 178 -# define ENGINE_F_ENGINE_CTRL_CMD_STRING 171 -# define ENGINE_F_ENGINE_FINISH 107 -# define ENGINE_F_ENGINE_GET_CIPHER 185 -# define ENGINE_F_ENGINE_GET_DIGEST 186 -# define ENGINE_F_ENGINE_GET_FIRST 195 -# define ENGINE_F_ENGINE_GET_LAST 196 -# define ENGINE_F_ENGINE_GET_NEXT 115 -# define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193 -# define ENGINE_F_ENGINE_GET_PKEY_METH 192 -# define ENGINE_F_ENGINE_GET_PREV 116 -# define ENGINE_F_ENGINE_INIT 119 -# define ENGINE_F_ENGINE_LIST_ADD 120 -# define ENGINE_F_ENGINE_LIST_REMOVE 121 -# define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150 -# define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151 -# define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194 -# define ENGINE_F_ENGINE_NEW 122 -# define ENGINE_F_ENGINE_PKEY_ASN1_FIND_STR 197 -# define ENGINE_F_ENGINE_REMOVE 123 -# define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189 -# define ENGINE_F_ENGINE_SET_ID 129 -# define ENGINE_F_ENGINE_SET_NAME 130 -# define ENGINE_F_ENGINE_TABLE_REGISTER 184 -# define ENGINE_F_ENGINE_UNLOCKED_FINISH 191 -# define ENGINE_F_ENGINE_UP_REF 190 -# define ENGINE_F_INT_CLEANUP_ITEM 199 -# define ENGINE_F_INT_CTRL_HELPER 172 -# define ENGINE_F_INT_ENGINE_CONFIGURE 188 -# define ENGINE_F_INT_ENGINE_MODULE_INIT 187 -# define ENGINE_F_OSSL_HMAC_INIT 200 - -/* - * ENGINE reason codes. - */ -# define ENGINE_R_ALREADY_LOADED 100 -# define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 -# define ENGINE_R_CMD_NOT_EXECUTABLE 134 -# define ENGINE_R_COMMAND_TAKES_INPUT 135 -# define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 -# define ENGINE_R_CONFLICTING_ENGINE_ID 103 -# define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 -# define ENGINE_R_DSO_FAILURE 104 -# define ENGINE_R_DSO_NOT_FOUND 132 -# define ENGINE_R_ENGINES_SECTION_ERROR 148 -# define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 -# define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 -# define ENGINE_R_ENGINE_SECTION_ERROR 149 -# define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 -# define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 -# define ENGINE_R_FINISH_FAILED 106 -# define ENGINE_R_ID_OR_NAME_MISSING 108 -# define ENGINE_R_INIT_FAILED 109 -# define ENGINE_R_INTERNAL_LIST_ERROR 110 -# define ENGINE_R_INVALID_ARGUMENT 143 -# define ENGINE_R_INVALID_CMD_NAME 137 -# define ENGINE_R_INVALID_CMD_NUMBER 138 -# define ENGINE_R_INVALID_INIT_VALUE 151 -# define ENGINE_R_INVALID_STRING 150 -# define ENGINE_R_NOT_INITIALISED 117 -# define ENGINE_R_NOT_LOADED 112 -# define ENGINE_R_NO_CONTROL_FUNCTION 120 -# define ENGINE_R_NO_INDEX 144 -# define ENGINE_R_NO_LOAD_FUNCTION 125 -# define ENGINE_R_NO_REFERENCE 130 -# define ENGINE_R_NO_SUCH_ENGINE 116 -# define ENGINE_R_UNIMPLEMENTED_CIPHER 146 -# define ENGINE_R_UNIMPLEMENTED_DIGEST 147 -# define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 -# define ENGINE_R_VERSION_INCOMPATIBILITY 145 - -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/err.h b/submodules/MtProtoKit/openssl/openssl/err.h deleted file mode 100644 index b49f88129e..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/err.h +++ /dev/null @@ -1,274 +0,0 @@ -/* - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_ERR_H -# define HEADER_ERR_H - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# include -# endif - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef OPENSSL_NO_ERR -# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,d,e) -# else -# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,NULL,0) -# endif - -# include - -# define ERR_TXT_MALLOCED 0x01 -# define ERR_TXT_STRING 0x02 - -# define ERR_FLAG_MARK 0x01 -# define ERR_FLAG_CLEAR 0x02 - -# define ERR_NUM_ERRORS 16 -typedef struct err_state_st { - int err_flags[ERR_NUM_ERRORS]; - unsigned long err_buffer[ERR_NUM_ERRORS]; - char *err_data[ERR_NUM_ERRORS]; - int err_data_flags[ERR_NUM_ERRORS]; - const char *err_file[ERR_NUM_ERRORS]; - int err_line[ERR_NUM_ERRORS]; - int top, bottom; -} ERR_STATE; - -/* library */ -# define ERR_LIB_NONE 1 -# define ERR_LIB_SYS 2 -# define ERR_LIB_BN 3 -# define ERR_LIB_RSA 4 -# define ERR_LIB_DH 5 -# define ERR_LIB_EVP 6 -# define ERR_LIB_BUF 7 -# define ERR_LIB_OBJ 8 -# define ERR_LIB_PEM 9 -# define ERR_LIB_DSA 10 -# define ERR_LIB_X509 11 -/* #define ERR_LIB_METH 12 */ -# define ERR_LIB_ASN1 13 -# define ERR_LIB_CONF 14 -# define ERR_LIB_CRYPTO 15 -# define ERR_LIB_EC 16 -# define ERR_LIB_SSL 20 -/* #define ERR_LIB_SSL23 21 */ -/* #define ERR_LIB_SSL2 22 */ -/* #define ERR_LIB_SSL3 23 */ -/* #define ERR_LIB_RSAREF 30 */ -/* #define ERR_LIB_PROXY 31 */ -# define ERR_LIB_BIO 32 -# define ERR_LIB_PKCS7 33 -# define ERR_LIB_X509V3 34 -# define ERR_LIB_PKCS12 35 -# define ERR_LIB_RAND 36 -# define ERR_LIB_DSO 37 -# define ERR_LIB_ENGINE 38 -# define ERR_LIB_OCSP 39 -# define ERR_LIB_UI 40 -# define ERR_LIB_COMP 41 -# define ERR_LIB_ECDSA 42 -# define ERR_LIB_ECDH 43 -# define ERR_LIB_OSSL_STORE 44 -# define ERR_LIB_FIPS 45 -# define ERR_LIB_CMS 46 -# define ERR_LIB_TS 47 -# define ERR_LIB_HMAC 48 -/* # define ERR_LIB_JPAKE 49 */ -# define ERR_LIB_CT 50 -# define ERR_LIB_ASYNC 51 -# define ERR_LIB_KDF 52 -# define ERR_LIB_SM2 53 - -# define ERR_LIB_USER 128 - -# define SYSerr(f,r) ERR_PUT_error(ERR_LIB_SYS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define BNerr(f,r) ERR_PUT_error(ERR_LIB_BN,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define RSAerr(f,r) ERR_PUT_error(ERR_LIB_RSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define DHerr(f,r) ERR_PUT_error(ERR_LIB_DH,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define EVPerr(f,r) ERR_PUT_error(ERR_LIB_EVP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define BUFerr(f,r) ERR_PUT_error(ERR_LIB_BUF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define OBJerr(f,r) ERR_PUT_error(ERR_LIB_OBJ,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define PEMerr(f,r) ERR_PUT_error(ERR_LIB_PEM,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define DSAerr(f,r) ERR_PUT_error(ERR_LIB_DSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define X509err(f,r) ERR_PUT_error(ERR_LIB_X509,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define ASN1err(f,r) ERR_PUT_error(ERR_LIB_ASN1,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define CONFerr(f,r) ERR_PUT_error(ERR_LIB_CONF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define CRYPTOerr(f,r) ERR_PUT_error(ERR_LIB_CRYPTO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define ECerr(f,r) ERR_PUT_error(ERR_LIB_EC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define SSLerr(f,r) ERR_PUT_error(ERR_LIB_SSL,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define BIOerr(f,r) ERR_PUT_error(ERR_LIB_BIO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define PKCS7err(f,r) ERR_PUT_error(ERR_LIB_PKCS7,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define X509V3err(f,r) ERR_PUT_error(ERR_LIB_X509V3,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define PKCS12err(f,r) ERR_PUT_error(ERR_LIB_PKCS12,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define RANDerr(f,r) ERR_PUT_error(ERR_LIB_RAND,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define DSOerr(f,r) ERR_PUT_error(ERR_LIB_DSO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define ENGINEerr(f,r) ERR_PUT_error(ERR_LIB_ENGINE,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define OCSPerr(f,r) ERR_PUT_error(ERR_LIB_OCSP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define UIerr(f,r) ERR_PUT_error(ERR_LIB_UI,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define COMPerr(f,r) ERR_PUT_error(ERR_LIB_COMP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define ECDSAerr(f,r) ERR_PUT_error(ERR_LIB_ECDSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define ECDHerr(f,r) ERR_PUT_error(ERR_LIB_ECDH,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define OSSL_STOREerr(f,r) ERR_PUT_error(ERR_LIB_OSSL_STORE,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define FIPSerr(f,r) ERR_PUT_error(ERR_LIB_FIPS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define CMSerr(f,r) ERR_PUT_error(ERR_LIB_CMS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define TSerr(f,r) ERR_PUT_error(ERR_LIB_TS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define HMACerr(f,r) ERR_PUT_error(ERR_LIB_HMAC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define CTerr(f,r) ERR_PUT_error(ERR_LIB_CT,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define ASYNCerr(f,r) ERR_PUT_error(ERR_LIB_ASYNC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define KDFerr(f,r) ERR_PUT_error(ERR_LIB_KDF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define SM2err(f,r) ERR_PUT_error(ERR_LIB_SM2,(f),(r),OPENSSL_FILE,OPENSSL_LINE) - -# define ERR_PACK(l,f,r) ( \ - (((unsigned int)(l) & 0x0FF) << 24L) | \ - (((unsigned int)(f) & 0xFFF) << 12L) | \ - (((unsigned int)(r) & 0xFFF) ) ) -# define ERR_GET_LIB(l) (int)(((l) >> 24L) & 0x0FFL) -# define ERR_GET_FUNC(l) (int)(((l) >> 12L) & 0xFFFL) -# define ERR_GET_REASON(l) (int)( (l) & 0xFFFL) -# define ERR_FATAL_ERROR(l) (int)( (l) & ERR_R_FATAL) - -/* OS functions */ -# define SYS_F_FOPEN 1 -# define SYS_F_CONNECT 2 -# define SYS_F_GETSERVBYNAME 3 -# define SYS_F_SOCKET 4 -# define SYS_F_IOCTLSOCKET 5 -# define SYS_F_BIND 6 -# define SYS_F_LISTEN 7 -# define SYS_F_ACCEPT 8 -# define SYS_F_WSASTARTUP 9/* Winsock stuff */ -# define SYS_F_OPENDIR 10 -# define SYS_F_FREAD 11 -# define SYS_F_GETADDRINFO 12 -# define SYS_F_GETNAMEINFO 13 -# define SYS_F_SETSOCKOPT 14 -# define SYS_F_GETSOCKOPT 15 -# define SYS_F_GETSOCKNAME 16 -# define SYS_F_GETHOSTBYNAME 17 -# define SYS_F_FFLUSH 18 -# define SYS_F_OPEN 19 -# define SYS_F_CLOSE 20 -# define SYS_F_IOCTL 21 -# define SYS_F_STAT 22 -# define SYS_F_FCNTL 23 -# define SYS_F_FSTAT 24 - -/* reasons */ -# define ERR_R_SYS_LIB ERR_LIB_SYS/* 2 */ -# define ERR_R_BN_LIB ERR_LIB_BN/* 3 */ -# define ERR_R_RSA_LIB ERR_LIB_RSA/* 4 */ -# define ERR_R_DH_LIB ERR_LIB_DH/* 5 */ -# define ERR_R_EVP_LIB ERR_LIB_EVP/* 6 */ -# define ERR_R_BUF_LIB ERR_LIB_BUF/* 7 */ -# define ERR_R_OBJ_LIB ERR_LIB_OBJ/* 8 */ -# define ERR_R_PEM_LIB ERR_LIB_PEM/* 9 */ -# define ERR_R_DSA_LIB ERR_LIB_DSA/* 10 */ -# define ERR_R_X509_LIB ERR_LIB_X509/* 11 */ -# define ERR_R_ASN1_LIB ERR_LIB_ASN1/* 13 */ -# define ERR_R_EC_LIB ERR_LIB_EC/* 16 */ -# define ERR_R_BIO_LIB ERR_LIB_BIO/* 32 */ -# define ERR_R_PKCS7_LIB ERR_LIB_PKCS7/* 33 */ -# define ERR_R_X509V3_LIB ERR_LIB_X509V3/* 34 */ -# define ERR_R_ENGINE_LIB ERR_LIB_ENGINE/* 38 */ -# define ERR_R_UI_LIB ERR_LIB_UI/* 40 */ -# define ERR_R_ECDSA_LIB ERR_LIB_ECDSA/* 42 */ -# define ERR_R_OSSL_STORE_LIB ERR_LIB_OSSL_STORE/* 44 */ - -# define ERR_R_NESTED_ASN1_ERROR 58 -# define ERR_R_MISSING_ASN1_EOS 63 - -/* fatal error */ -# define ERR_R_FATAL 64 -# define ERR_R_MALLOC_FAILURE (1|ERR_R_FATAL) -# define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED (2|ERR_R_FATAL) -# define ERR_R_PASSED_NULL_PARAMETER (3|ERR_R_FATAL) -# define ERR_R_INTERNAL_ERROR (4|ERR_R_FATAL) -# define ERR_R_DISABLED (5|ERR_R_FATAL) -# define ERR_R_INIT_FAIL (6|ERR_R_FATAL) -# define ERR_R_PASSED_INVALID_ARGUMENT (7) -# define ERR_R_OPERATION_FAIL (8|ERR_R_FATAL) - -/* - * 99 is the maximum possible ERR_R_... code, higher values are reserved for - * the individual libraries - */ - -typedef struct ERR_string_data_st { - unsigned long error; - const char *string; -} ERR_STRING_DATA; - -DEFINE_LHASH_OF(ERR_STRING_DATA); - -void ERR_put_error(int lib, int func, int reason, const char *file, int line); -void ERR_set_error_data(char *data, int flags); - -unsigned long ERR_get_error(void); -unsigned long ERR_get_error_line(const char **file, int *line); -unsigned long ERR_get_error_line_data(const char **file, int *line, - const char **data, int *flags); -unsigned long ERR_peek_error(void); -unsigned long ERR_peek_error_line(const char **file, int *line); -unsigned long ERR_peek_error_line_data(const char **file, int *line, - const char **data, int *flags); -unsigned long ERR_peek_last_error(void); -unsigned long ERR_peek_last_error_line(const char **file, int *line); -unsigned long ERR_peek_last_error_line_data(const char **file, int *line, - const char **data, int *flags); -void ERR_clear_error(void); -char *ERR_error_string(unsigned long e, char *buf); -void ERR_error_string_n(unsigned long e, char *buf, size_t len); -const char *ERR_lib_error_string(unsigned long e); -const char *ERR_func_error_string(unsigned long e); -const char *ERR_reason_error_string(unsigned long e); -void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u), - void *u); -# ifndef OPENSSL_NO_STDIO -void ERR_print_errors_fp(FILE *fp); -# endif -void ERR_print_errors(BIO *bp); -void ERR_add_error_data(int num, ...); -void ERR_add_error_vdata(int num, va_list args); -int ERR_load_strings(int lib, ERR_STRING_DATA *str); -int ERR_load_strings_const(const ERR_STRING_DATA *str); -int ERR_unload_strings(int lib, ERR_STRING_DATA *str); -int ERR_load_ERR_strings(void); - -#if OPENSSL_API_COMPAT < 0x10100000L -# define ERR_load_crypto_strings() \ - OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) -# define ERR_free_strings() while(0) continue -#endif - -DEPRECATEDIN_1_1_0(void ERR_remove_thread_state(void *)) -DEPRECATEDIN_1_0_0(void ERR_remove_state(unsigned long pid)) -ERR_STATE *ERR_get_state(void); - -int ERR_get_next_error_library(void); - -int ERR_set_mark(void); -int ERR_pop_to_mark(void); -int ERR_clear_last_mark(void); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/evp.h b/submodules/MtProtoKit/openssl/openssl/evp.h deleted file mode 100644 index 545654a98b..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/evp.h +++ /dev/null @@ -1,1638 +0,0 @@ -/* - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_ENVELOPE_H -# define HEADER_ENVELOPE_H - -# include -# include -# include -# include -# include - -# define EVP_MAX_MD_SIZE 64/* longest known is SHA512 */ -# define EVP_MAX_KEY_LENGTH 64 -# define EVP_MAX_IV_LENGTH 16 -# define EVP_MAX_BLOCK_LENGTH 32 - -# define PKCS5_SALT_LEN 8 -/* Default PKCS#5 iteration count */ -# define PKCS5_DEFAULT_ITER 2048 - -# include - -# define EVP_PK_RSA 0x0001 -# define EVP_PK_DSA 0x0002 -# define EVP_PK_DH 0x0004 -# define EVP_PK_EC 0x0008 -# define EVP_PKT_SIGN 0x0010 -# define EVP_PKT_ENC 0x0020 -# define EVP_PKT_EXCH 0x0040 -# define EVP_PKS_RSA 0x0100 -# define EVP_PKS_DSA 0x0200 -# define EVP_PKS_EC 0x0400 - -# define EVP_PKEY_NONE NID_undef -# define EVP_PKEY_RSA NID_rsaEncryption -# define EVP_PKEY_RSA2 NID_rsa -# define EVP_PKEY_RSA_PSS NID_rsassaPss -# define EVP_PKEY_DSA NID_dsa -# define EVP_PKEY_DSA1 NID_dsa_2 -# define EVP_PKEY_DSA2 NID_dsaWithSHA -# define EVP_PKEY_DSA3 NID_dsaWithSHA1 -# define EVP_PKEY_DSA4 NID_dsaWithSHA1_2 -# define EVP_PKEY_DH NID_dhKeyAgreement -# define EVP_PKEY_DHX NID_dhpublicnumber -# define EVP_PKEY_EC NID_X9_62_id_ecPublicKey -# define EVP_PKEY_SM2 NID_sm2 -# define EVP_PKEY_HMAC NID_hmac -# define EVP_PKEY_CMAC NID_cmac -# define EVP_PKEY_SCRYPT NID_id_scrypt -# define EVP_PKEY_TLS1_PRF NID_tls1_prf -# define EVP_PKEY_HKDF NID_hkdf -# define EVP_PKEY_POLY1305 NID_poly1305 -# define EVP_PKEY_SIPHASH NID_siphash -# define EVP_PKEY_X25519 NID_X25519 -# define EVP_PKEY_ED25519 NID_ED25519 -# define EVP_PKEY_X448 NID_X448 -# define EVP_PKEY_ED448 NID_ED448 - -#ifdef __cplusplus -extern "C" { -#endif - -# define EVP_PKEY_MO_SIGN 0x0001 -# define EVP_PKEY_MO_VERIFY 0x0002 -# define EVP_PKEY_MO_ENCRYPT 0x0004 -# define EVP_PKEY_MO_DECRYPT 0x0008 - -# ifndef EVP_MD -EVP_MD *EVP_MD_meth_new(int md_type, int pkey_type); -EVP_MD *EVP_MD_meth_dup(const EVP_MD *md); -void EVP_MD_meth_free(EVP_MD *md); - -int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize); -int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize); -int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize); -int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags); -int EVP_MD_meth_set_init(EVP_MD *md, int (*init)(EVP_MD_CTX *ctx)); -int EVP_MD_meth_set_update(EVP_MD *md, int (*update)(EVP_MD_CTX *ctx, - const void *data, - size_t count)); -int EVP_MD_meth_set_final(EVP_MD *md, int (*final)(EVP_MD_CTX *ctx, - unsigned char *md)); -int EVP_MD_meth_set_copy(EVP_MD *md, int (*copy)(EVP_MD_CTX *to, - const EVP_MD_CTX *from)); -int EVP_MD_meth_set_cleanup(EVP_MD *md, int (*cleanup)(EVP_MD_CTX *ctx)); -int EVP_MD_meth_set_ctrl(EVP_MD *md, int (*ctrl)(EVP_MD_CTX *ctx, int cmd, - int p1, void *p2)); - -int EVP_MD_meth_get_input_blocksize(const EVP_MD *md); -int EVP_MD_meth_get_result_size(const EVP_MD *md); -int EVP_MD_meth_get_app_datasize(const EVP_MD *md); -unsigned long EVP_MD_meth_get_flags(const EVP_MD *md); -int (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx); -int (*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx, - const void *data, - size_t count); -int (*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx, - unsigned char *md); -int (*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to, - const EVP_MD_CTX *from); -int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx); -int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, - int p1, void *p2); - -/* digest can only handle a single block */ -# define EVP_MD_FLAG_ONESHOT 0x0001 - -/* digest is extensible-output function, XOF */ -# define EVP_MD_FLAG_XOF 0x0002 - -/* DigestAlgorithmIdentifier flags... */ - -# define EVP_MD_FLAG_DIGALGID_MASK 0x0018 - -/* NULL or absent parameter accepted. Use NULL */ - -# define EVP_MD_FLAG_DIGALGID_NULL 0x0000 - -/* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */ - -# define EVP_MD_FLAG_DIGALGID_ABSENT 0x0008 - -/* Custom handling via ctrl */ - -# define EVP_MD_FLAG_DIGALGID_CUSTOM 0x0018 - -/* Note if suitable for use in FIPS mode */ -# define EVP_MD_FLAG_FIPS 0x0400 - -/* Digest ctrls */ - -# define EVP_MD_CTRL_DIGALGID 0x1 -# define EVP_MD_CTRL_MICALG 0x2 -# define EVP_MD_CTRL_XOF_LEN 0x3 - -/* Minimum Algorithm specific ctrl value */ - -# define EVP_MD_CTRL_ALG_CTRL 0x1000 - -# endif /* !EVP_MD */ - -/* values for EVP_MD_CTX flags */ - -# define EVP_MD_CTX_FLAG_ONESHOT 0x0001/* digest update will be - * called once only */ -# define EVP_MD_CTX_FLAG_CLEANED 0x0002/* context has already been - * cleaned */ -# define EVP_MD_CTX_FLAG_REUSE 0x0004/* Don't free up ctx->md_data - * in EVP_MD_CTX_reset */ -/* - * FIPS and pad options are ignored in 1.0.0, definitions are here so we - * don't accidentally reuse the values for other purposes. - */ - -# define EVP_MD_CTX_FLAG_NON_FIPS_ALLOW 0x0008/* Allow use of non FIPS - * digest in FIPS mode */ - -/* - * The following PAD options are also currently ignored in 1.0.0, digest - * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*() - * instead. - */ -# define EVP_MD_CTX_FLAG_PAD_MASK 0xF0/* RSA mode to use */ -# define EVP_MD_CTX_FLAG_PAD_PKCS1 0x00/* PKCS#1 v1.5 mode */ -# define EVP_MD_CTX_FLAG_PAD_X931 0x10/* X9.31 mode */ -# define EVP_MD_CTX_FLAG_PAD_PSS 0x20/* PSS mode */ - -# define EVP_MD_CTX_FLAG_NO_INIT 0x0100/* Don't initialize md_data */ -/* - * Some functions such as EVP_DigestSign only finalise copies of internal - * contexts so additional data can be included after the finalisation call. - * This is inefficient if this functionality is not required: it is disabled - * if the following flag is set. - */ -# define EVP_MD_CTX_FLAG_FINALISE 0x0200 -/* NOTE: 0x0400 is reserved for internal usage in evp_int.h */ - -EVP_CIPHER *EVP_CIPHER_meth_new(int cipher_type, int block_size, int key_len); -EVP_CIPHER *EVP_CIPHER_meth_dup(const EVP_CIPHER *cipher); -void EVP_CIPHER_meth_free(EVP_CIPHER *cipher); - -int EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len); -int EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags); -int EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size); -int EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher, - int (*init) (EVP_CIPHER_CTX *ctx, - const unsigned char *key, - const unsigned char *iv, - int enc)); -int EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher, - int (*do_cipher) (EVP_CIPHER_CTX *ctx, - unsigned char *out, - const unsigned char *in, - size_t inl)); -int EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher, - int (*cleanup) (EVP_CIPHER_CTX *)); -int EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher, - int (*set_asn1_parameters) (EVP_CIPHER_CTX *, - ASN1_TYPE *)); -int EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher, - int (*get_asn1_parameters) (EVP_CIPHER_CTX *, - ASN1_TYPE *)); -int EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher, - int (*ctrl) (EVP_CIPHER_CTX *, int type, - int arg, void *ptr)); - -int (*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, - const unsigned char *key, - const unsigned char *iv, - int enc); -int (*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, - unsigned char *out, - const unsigned char *in, - size_t inl); -int (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *); -int (*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, - ASN1_TYPE *); -int (*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, - ASN1_TYPE *); -int (*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, - int type, int arg, - void *ptr); - -/* Values for cipher flags */ - -/* Modes for ciphers */ - -# define EVP_CIPH_STREAM_CIPHER 0x0 -# define EVP_CIPH_ECB_MODE 0x1 -# define EVP_CIPH_CBC_MODE 0x2 -# define EVP_CIPH_CFB_MODE 0x3 -# define EVP_CIPH_OFB_MODE 0x4 -# define EVP_CIPH_CTR_MODE 0x5 -# define EVP_CIPH_GCM_MODE 0x6 -# define EVP_CIPH_CCM_MODE 0x7 -# define EVP_CIPH_XTS_MODE 0x10001 -# define EVP_CIPH_WRAP_MODE 0x10002 -# define EVP_CIPH_OCB_MODE 0x10003 -# define EVP_CIPH_MODE 0xF0007 -/* Set if variable length cipher */ -# define EVP_CIPH_VARIABLE_LENGTH 0x8 -/* Set if the iv handling should be done by the cipher itself */ -# define EVP_CIPH_CUSTOM_IV 0x10 -/* Set if the cipher's init() function should be called if key is NULL */ -# define EVP_CIPH_ALWAYS_CALL_INIT 0x20 -/* Call ctrl() to init cipher parameters */ -# define EVP_CIPH_CTRL_INIT 0x40 -/* Don't use standard key length function */ -# define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80 -/* Don't use standard block padding */ -# define EVP_CIPH_NO_PADDING 0x100 -/* cipher handles random key generation */ -# define EVP_CIPH_RAND_KEY 0x200 -/* cipher has its own additional copying logic */ -# define EVP_CIPH_CUSTOM_COPY 0x400 -/* Don't use standard iv length function */ -# define EVP_CIPH_CUSTOM_IV_LENGTH 0x800 -/* Allow use default ASN1 get/set iv */ -# define EVP_CIPH_FLAG_DEFAULT_ASN1 0x1000 -/* Buffer length in bits not bytes: CFB1 mode only */ -# define EVP_CIPH_FLAG_LENGTH_BITS 0x2000 -/* Note if suitable for use in FIPS mode */ -# define EVP_CIPH_FLAG_FIPS 0x4000 -/* Allow non FIPS cipher in FIPS mode */ -# define EVP_CIPH_FLAG_NON_FIPS_ALLOW 0x8000 -/* - * Cipher handles any and all padding logic as well as finalisation. - */ -# define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000 -# define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 -# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0x400000 -/* Cipher can handle pipeline operations */ -# define EVP_CIPH_FLAG_PIPELINE 0X800000 - -/* - * Cipher context flag to indicate we can handle wrap mode: if allowed in - * older applications it could overflow buffers. - */ - -# define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0x1 - -/* ctrl() values */ - -# define EVP_CTRL_INIT 0x0 -# define EVP_CTRL_SET_KEY_LENGTH 0x1 -# define EVP_CTRL_GET_RC2_KEY_BITS 0x2 -# define EVP_CTRL_SET_RC2_KEY_BITS 0x3 -# define EVP_CTRL_GET_RC5_ROUNDS 0x4 -# define EVP_CTRL_SET_RC5_ROUNDS 0x5 -# define EVP_CTRL_RAND_KEY 0x6 -# define EVP_CTRL_PBE_PRF_NID 0x7 -# define EVP_CTRL_COPY 0x8 -# define EVP_CTRL_AEAD_SET_IVLEN 0x9 -# define EVP_CTRL_AEAD_GET_TAG 0x10 -# define EVP_CTRL_AEAD_SET_TAG 0x11 -# define EVP_CTRL_AEAD_SET_IV_FIXED 0x12 -# define EVP_CTRL_GCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN -# define EVP_CTRL_GCM_GET_TAG EVP_CTRL_AEAD_GET_TAG -# define EVP_CTRL_GCM_SET_TAG EVP_CTRL_AEAD_SET_TAG -# define EVP_CTRL_GCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED -# define EVP_CTRL_GCM_IV_GEN 0x13 -# define EVP_CTRL_CCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN -# define EVP_CTRL_CCM_GET_TAG EVP_CTRL_AEAD_GET_TAG -# define EVP_CTRL_CCM_SET_TAG EVP_CTRL_AEAD_SET_TAG -# define EVP_CTRL_CCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED -# define EVP_CTRL_CCM_SET_L 0x14 -# define EVP_CTRL_CCM_SET_MSGLEN 0x15 -/* - * AEAD cipher deduces payload length and returns number of bytes required to - * store MAC and eventual padding. Subsequent call to EVP_Cipher even - * appends/verifies MAC. - */ -# define EVP_CTRL_AEAD_TLS1_AAD 0x16 -/* Used by composite AEAD ciphers, no-op in GCM, CCM... */ -# define EVP_CTRL_AEAD_SET_MAC_KEY 0x17 -/* Set the GCM invocation field, decrypt only */ -# define EVP_CTRL_GCM_SET_IV_INV 0x18 - -# define EVP_CTRL_TLS1_1_MULTIBLOCK_AAD 0x19 -# define EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT 0x1a -# define EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT 0x1b -# define EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE 0x1c - -# define EVP_CTRL_SSL3_MASTER_SECRET 0x1d - -/* EVP_CTRL_SET_SBOX takes the char * specifying S-boxes */ -# define EVP_CTRL_SET_SBOX 0x1e -/* - * EVP_CTRL_SBOX_USED takes a 'size_t' and 'char *', pointing at a - * pre-allocated buffer with specified size - */ -# define EVP_CTRL_SBOX_USED 0x1f -/* EVP_CTRL_KEY_MESH takes 'size_t' number of bytes to mesh the key after, - * 0 switches meshing off - */ -# define EVP_CTRL_KEY_MESH 0x20 -/* EVP_CTRL_BLOCK_PADDING_MODE takes the padding mode */ -# define EVP_CTRL_BLOCK_PADDING_MODE 0x21 - -/* Set the output buffers to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_OUTPUT_BUFS 0x22 -/* Set the input buffers to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_INPUT_BUFS 0x23 -/* Set the input buffer lengths to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_INPUT_LENS 0x24 - -# define EVP_CTRL_GET_IVLEN 0x25 - -/* Padding modes */ -#define EVP_PADDING_PKCS7 1 -#define EVP_PADDING_ISO7816_4 2 -#define EVP_PADDING_ANSI923 3 -#define EVP_PADDING_ISO10126 4 -#define EVP_PADDING_ZERO 5 - -/* RFC 5246 defines additional data to be 13 bytes in length */ -# define EVP_AEAD_TLS1_AAD_LEN 13 - -typedef struct { - unsigned char *out; - const unsigned char *inp; - size_t len; - unsigned int interleave; -} EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; - -/* GCM TLS constants */ -/* Length of fixed part of IV derived from PRF */ -# define EVP_GCM_TLS_FIXED_IV_LEN 4 -/* Length of explicit part of IV part of TLS records */ -# define EVP_GCM_TLS_EXPLICIT_IV_LEN 8 -/* Length of tag for TLS */ -# define EVP_GCM_TLS_TAG_LEN 16 - -/* CCM TLS constants */ -/* Length of fixed part of IV derived from PRF */ -# define EVP_CCM_TLS_FIXED_IV_LEN 4 -/* Length of explicit part of IV part of TLS records */ -# define EVP_CCM_TLS_EXPLICIT_IV_LEN 8 -/* Total length of CCM IV length for TLS */ -# define EVP_CCM_TLS_IV_LEN 12 -/* Length of tag for TLS */ -# define EVP_CCM_TLS_TAG_LEN 16 -/* Length of CCM8 tag for TLS */ -# define EVP_CCM8_TLS_TAG_LEN 8 - -/* Length of tag for TLS */ -# define EVP_CHACHAPOLY_TLS_TAG_LEN 16 - -typedef struct evp_cipher_info_st { - const EVP_CIPHER *cipher; - unsigned char iv[EVP_MAX_IV_LENGTH]; -} EVP_CIPHER_INFO; - - -/* Password based encryption function */ -typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *cipher, const EVP_MD *md, - int en_de); - -# ifndef OPENSSL_NO_RSA -# define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\ - (char *)(rsa)) -# endif - -# ifndef OPENSSL_NO_DSA -# define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\ - (char *)(dsa)) -# endif - -# ifndef OPENSSL_NO_DH -# define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,\ - (char *)(dh)) -# endif - -# ifndef OPENSSL_NO_EC -# define EVP_PKEY_assign_EC_KEY(pkey,eckey) EVP_PKEY_assign((pkey),EVP_PKEY_EC,\ - (char *)(eckey)) -# endif -# ifndef OPENSSL_NO_SIPHASH -# define EVP_PKEY_assign_SIPHASH(pkey,shkey) EVP_PKEY_assign((pkey),EVP_PKEY_SIPHASH,\ - (char *)(shkey)) -# endif - -# ifndef OPENSSL_NO_POLY1305 -# define EVP_PKEY_assign_POLY1305(pkey,polykey) EVP_PKEY_assign((pkey),EVP_PKEY_POLY1305,\ - (char *)(polykey)) -# endif - -/* Add some extra combinations */ -# define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a)) -# define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a)) -# define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a)) -# define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a)) - -int EVP_MD_type(const EVP_MD *md); -# define EVP_MD_nid(e) EVP_MD_type(e) -# define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_nid(e)) -int EVP_MD_pkey_type(const EVP_MD *md); -int EVP_MD_size(const EVP_MD *md); -int EVP_MD_block_size(const EVP_MD *md); -unsigned long EVP_MD_flags(const EVP_MD *md); - -const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); -int (*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx, - const void *data, size_t count); -void EVP_MD_CTX_set_update_fn(EVP_MD_CTX *ctx, - int (*update) (EVP_MD_CTX *ctx, - const void *data, size_t count)); -# define EVP_MD_CTX_size(e) EVP_MD_size(EVP_MD_CTX_md(e)) -# define EVP_MD_CTX_block_size(e) EVP_MD_block_size(EVP_MD_CTX_md(e)) -# define EVP_MD_CTX_type(e) EVP_MD_type(EVP_MD_CTX_md(e)) -EVP_PKEY_CTX *EVP_MD_CTX_pkey_ctx(const EVP_MD_CTX *ctx); -void EVP_MD_CTX_set_pkey_ctx(EVP_MD_CTX *ctx, EVP_PKEY_CTX *pctx); -void *EVP_MD_CTX_md_data(const EVP_MD_CTX *ctx); - -int EVP_CIPHER_nid(const EVP_CIPHER *cipher); -# define EVP_CIPHER_name(e) OBJ_nid2sn(EVP_CIPHER_nid(e)) -int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); -int EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *cipher); -int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); -int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); -unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher); -# define EVP_CIPHER_mode(e) (EVP_CIPHER_flags(e) & EVP_CIPH_MODE) - -const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_encrypting(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); -const unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx); -const unsigned char *EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx); -unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx); -unsigned char *EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_num(const EVP_CIPHER_CTX *ctx); -void EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num); -int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); -void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); -void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); -void *EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx); -void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data); -# define EVP_CIPHER_CTX_type(c) EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c)) -# if OPENSSL_API_COMPAT < 0x10100000L -# define EVP_CIPHER_CTX_flags(c) EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(c)) -# endif -# define EVP_CIPHER_CTX_mode(c) EVP_CIPHER_mode(EVP_CIPHER_CTX_cipher(c)) - -# define EVP_ENCODE_LENGTH(l) ((((l)+2)/3*4)+((l)/48+1)*2+80) -# define EVP_DECODE_LENGTH(l) (((l)+3)/4*3+80) - -# define EVP_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -# define EVP_SignInit(a,b) EVP_DigestInit(a,b) -# define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_VerifyInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -# define EVP_VerifyInit(a,b) EVP_DigestInit(a,b) -# define EVP_VerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e) -# define EVP_SealUpdate(a,b,c,d,e) EVP_EncryptUpdate(a,b,c,d,e) -# define EVP_DigestSignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_DigestVerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) - -# ifdef CONST_STRICT -void BIO_set_md(BIO *, const EVP_MD *md); -# else -# define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,0,(char *)(md)) -# endif -# define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(char *)(mdp)) -# define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0, \ - (char *)(mdcp)) -# define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0, \ - (char *)(mdcp)) -# define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL) -# define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0, \ - (char *)(c_pp)) - -/*__owur*/ int EVP_Cipher(EVP_CIPHER_CTX *c, - unsigned char *out, - const unsigned char *in, unsigned int inl); - -# define EVP_add_cipher_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n)) -# define EVP_add_digest_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n)) -# define EVP_delete_cipher_alias(alias) \ - OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS); -# define EVP_delete_digest_alias(alias) \ - OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS); - -int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2); -EVP_MD_CTX *EVP_MD_CTX_new(void); -int EVP_MD_CTX_reset(EVP_MD_CTX *ctx); -void EVP_MD_CTX_free(EVP_MD_CTX *ctx); -# define EVP_MD_CTX_create() EVP_MD_CTX_new() -# define EVP_MD_CTX_init(ctx) EVP_MD_CTX_reset((ctx)) -# define EVP_MD_CTX_destroy(ctx) EVP_MD_CTX_free((ctx)) -__owur int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); -void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); -void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); -int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); -__owur int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, - ENGINE *impl); -__owur int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, - size_t cnt); -__owur int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, - unsigned int *s); -__owur int EVP_Digest(const void *data, size_t count, - unsigned char *md, unsigned int *size, - const EVP_MD *type, ENGINE *impl); - -__owur int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); -__owur int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); -__owur int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, - unsigned int *s); -__owur int EVP_DigestFinalXOF(EVP_MD_CTX *ctx, unsigned char *md, - size_t len); - -int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); -int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, - const char *prompt, int verify); -void EVP_set_pw_prompt(const char *prompt); -char *EVP_get_pw_prompt(void); - -__owur int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, - const unsigned char *salt, - const unsigned char *data, int datal, int count, - unsigned char *key, unsigned char *iv); - -void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); -void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); -int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); - -__owur int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -/*__owur*/ int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv); -/*__owur*/ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -/*__owur*/ int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl); -/*__owur*/ int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl); - -__owur int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -/*__owur*/ int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv); -/*__owur*/ int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -__owur int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); -/*__owur*/ int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); - -__owur int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv, - int enc); -/*__owur*/ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv, int enc); -__owur int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -__owur int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); -__owur int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); - -__owur int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, - EVP_PKEY *pkey); - -__owur int EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, - size_t *siglen, const unsigned char *tbs, - size_t tbslen); - -__owur int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, - unsigned int siglen, EVP_PKEY *pkey); - -__owur int EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, - size_t siglen, const unsigned char *tbs, - size_t tbslen); - -/*__owur*/ int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const EVP_MD *type, ENGINE *e, - EVP_PKEY *pkey); -__owur int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, - size_t *siglen); - -__owur int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const EVP_MD *type, ENGINE *e, - EVP_PKEY *pkey); -__owur int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, - size_t siglen); - -# ifndef OPENSSL_NO_RSA -__owur int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - const unsigned char *ek, int ekl, - const unsigned char *iv, EVP_PKEY *priv); -__owur int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); - -__owur int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - unsigned char **ek, int *ekl, unsigned char *iv, - EVP_PKEY **pubk, int npubk); -__owur int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); -# endif - -EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void); -void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx); -int EVP_ENCODE_CTX_copy(EVP_ENCODE_CTX *dctx, EVP_ENCODE_CTX *sctx); -int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx); -void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); -int EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); -int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); - -void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); -int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned - char *out, int *outl); -int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define EVP_CIPHER_CTX_init(c) EVP_CIPHER_CTX_reset(c) -# define EVP_CIPHER_CTX_cleanup(c) EVP_CIPHER_CTX_reset(c) -# endif -EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); -int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c); -void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *c); -int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); -int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); -int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); -int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); - -const BIO_METHOD *BIO_f_md(void); -const BIO_METHOD *BIO_f_base64(void); -const BIO_METHOD *BIO_f_cipher(void); -const BIO_METHOD *BIO_f_reliable(void); -__owur int BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, - const unsigned char *i, int enc); - -const EVP_MD *EVP_md_null(void); -# ifndef OPENSSL_NO_MD2 -const EVP_MD *EVP_md2(void); -# endif -# ifndef OPENSSL_NO_MD4 -const EVP_MD *EVP_md4(void); -# endif -# ifndef OPENSSL_NO_MD5 -const EVP_MD *EVP_md5(void); -const EVP_MD *EVP_md5_sha1(void); -# endif -# ifndef OPENSSL_NO_BLAKE2 -const EVP_MD *EVP_blake2b512(void); -const EVP_MD *EVP_blake2s256(void); -# endif -const EVP_MD *EVP_sha1(void); -const EVP_MD *EVP_sha224(void); -const EVP_MD *EVP_sha256(void); -const EVP_MD *EVP_sha384(void); -const EVP_MD *EVP_sha512(void); -const EVP_MD *EVP_sha512_224(void); -const EVP_MD *EVP_sha512_256(void); -const EVP_MD *EVP_sha3_224(void); -const EVP_MD *EVP_sha3_256(void); -const EVP_MD *EVP_sha3_384(void); -const EVP_MD *EVP_sha3_512(void); -const EVP_MD *EVP_shake128(void); -const EVP_MD *EVP_shake256(void); -# ifndef OPENSSL_NO_MDC2 -const EVP_MD *EVP_mdc2(void); -# endif -# ifndef OPENSSL_NO_RMD160 -const EVP_MD *EVP_ripemd160(void); -# endif -# ifndef OPENSSL_NO_WHIRLPOOL -const EVP_MD *EVP_whirlpool(void); -# endif -# ifndef OPENSSL_NO_SM3 -const EVP_MD *EVP_sm3(void); -# endif -const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */ -# ifndef OPENSSL_NO_DES -const EVP_CIPHER *EVP_des_ecb(void); -const EVP_CIPHER *EVP_des_ede(void); -const EVP_CIPHER *EVP_des_ede3(void); -const EVP_CIPHER *EVP_des_ede_ecb(void); -const EVP_CIPHER *EVP_des_ede3_ecb(void); -const EVP_CIPHER *EVP_des_cfb64(void); -# define EVP_des_cfb EVP_des_cfb64 -const EVP_CIPHER *EVP_des_cfb1(void); -const EVP_CIPHER *EVP_des_cfb8(void); -const EVP_CIPHER *EVP_des_ede_cfb64(void); -# define EVP_des_ede_cfb EVP_des_ede_cfb64 -const EVP_CIPHER *EVP_des_ede3_cfb64(void); -# define EVP_des_ede3_cfb EVP_des_ede3_cfb64 -const EVP_CIPHER *EVP_des_ede3_cfb1(void); -const EVP_CIPHER *EVP_des_ede3_cfb8(void); -const EVP_CIPHER *EVP_des_ofb(void); -const EVP_CIPHER *EVP_des_ede_ofb(void); -const EVP_CIPHER *EVP_des_ede3_ofb(void); -const EVP_CIPHER *EVP_des_cbc(void); -const EVP_CIPHER *EVP_des_ede_cbc(void); -const EVP_CIPHER *EVP_des_ede3_cbc(void); -const EVP_CIPHER *EVP_desx_cbc(void); -const EVP_CIPHER *EVP_des_ede3_wrap(void); -/* - * This should now be supported through the dev_crypto ENGINE. But also, why - * are rc4 and md5 declarations made here inside a "NO_DES" precompiler - * branch? - */ -# endif -# ifndef OPENSSL_NO_RC4 -const EVP_CIPHER *EVP_rc4(void); -const EVP_CIPHER *EVP_rc4_40(void); -# ifndef OPENSSL_NO_MD5 -const EVP_CIPHER *EVP_rc4_hmac_md5(void); -# endif -# endif -# ifndef OPENSSL_NO_IDEA -const EVP_CIPHER *EVP_idea_ecb(void); -const EVP_CIPHER *EVP_idea_cfb64(void); -# define EVP_idea_cfb EVP_idea_cfb64 -const EVP_CIPHER *EVP_idea_ofb(void); -const EVP_CIPHER *EVP_idea_cbc(void); -# endif -# ifndef OPENSSL_NO_RC2 -const EVP_CIPHER *EVP_rc2_ecb(void); -const EVP_CIPHER *EVP_rc2_cbc(void); -const EVP_CIPHER *EVP_rc2_40_cbc(void); -const EVP_CIPHER *EVP_rc2_64_cbc(void); -const EVP_CIPHER *EVP_rc2_cfb64(void); -# define EVP_rc2_cfb EVP_rc2_cfb64 -const EVP_CIPHER *EVP_rc2_ofb(void); -# endif -# ifndef OPENSSL_NO_BF -const EVP_CIPHER *EVP_bf_ecb(void); -const EVP_CIPHER *EVP_bf_cbc(void); -const EVP_CIPHER *EVP_bf_cfb64(void); -# define EVP_bf_cfb EVP_bf_cfb64 -const EVP_CIPHER *EVP_bf_ofb(void); -# endif -# ifndef OPENSSL_NO_CAST -const EVP_CIPHER *EVP_cast5_ecb(void); -const EVP_CIPHER *EVP_cast5_cbc(void); -const EVP_CIPHER *EVP_cast5_cfb64(void); -# define EVP_cast5_cfb EVP_cast5_cfb64 -const EVP_CIPHER *EVP_cast5_ofb(void); -# endif -# ifndef OPENSSL_NO_RC5 -const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void); -const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void); -const EVP_CIPHER *EVP_rc5_32_12_16_cfb64(void); -# define EVP_rc5_32_12_16_cfb EVP_rc5_32_12_16_cfb64 -const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void); -# endif -const EVP_CIPHER *EVP_aes_128_ecb(void); -const EVP_CIPHER *EVP_aes_128_cbc(void); -const EVP_CIPHER *EVP_aes_128_cfb1(void); -const EVP_CIPHER *EVP_aes_128_cfb8(void); -const EVP_CIPHER *EVP_aes_128_cfb128(void); -# define EVP_aes_128_cfb EVP_aes_128_cfb128 -const EVP_CIPHER *EVP_aes_128_ofb(void); -const EVP_CIPHER *EVP_aes_128_ctr(void); -const EVP_CIPHER *EVP_aes_128_ccm(void); -const EVP_CIPHER *EVP_aes_128_gcm(void); -const EVP_CIPHER *EVP_aes_128_xts(void); -const EVP_CIPHER *EVP_aes_128_wrap(void); -const EVP_CIPHER *EVP_aes_128_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_128_ocb(void); -# endif -const EVP_CIPHER *EVP_aes_192_ecb(void); -const EVP_CIPHER *EVP_aes_192_cbc(void); -const EVP_CIPHER *EVP_aes_192_cfb1(void); -const EVP_CIPHER *EVP_aes_192_cfb8(void); -const EVP_CIPHER *EVP_aes_192_cfb128(void); -# define EVP_aes_192_cfb EVP_aes_192_cfb128 -const EVP_CIPHER *EVP_aes_192_ofb(void); -const EVP_CIPHER *EVP_aes_192_ctr(void); -const EVP_CIPHER *EVP_aes_192_ccm(void); -const EVP_CIPHER *EVP_aes_192_gcm(void); -const EVP_CIPHER *EVP_aes_192_wrap(void); -const EVP_CIPHER *EVP_aes_192_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_192_ocb(void); -# endif -const EVP_CIPHER *EVP_aes_256_ecb(void); -const EVP_CIPHER *EVP_aes_256_cbc(void); -const EVP_CIPHER *EVP_aes_256_cfb1(void); -const EVP_CIPHER *EVP_aes_256_cfb8(void); -const EVP_CIPHER *EVP_aes_256_cfb128(void); -# define EVP_aes_256_cfb EVP_aes_256_cfb128 -const EVP_CIPHER *EVP_aes_256_ofb(void); -const EVP_CIPHER *EVP_aes_256_ctr(void); -const EVP_CIPHER *EVP_aes_256_ccm(void); -const EVP_CIPHER *EVP_aes_256_gcm(void); -const EVP_CIPHER *EVP_aes_256_xts(void); -const EVP_CIPHER *EVP_aes_256_wrap(void); -const EVP_CIPHER *EVP_aes_256_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_256_ocb(void); -# endif -const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); -const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); -const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); -const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); -# ifndef OPENSSL_NO_ARIA -const EVP_CIPHER *EVP_aria_128_ecb(void); -const EVP_CIPHER *EVP_aria_128_cbc(void); -const EVP_CIPHER *EVP_aria_128_cfb1(void); -const EVP_CIPHER *EVP_aria_128_cfb8(void); -const EVP_CIPHER *EVP_aria_128_cfb128(void); -# define EVP_aria_128_cfb EVP_aria_128_cfb128 -const EVP_CIPHER *EVP_aria_128_ctr(void); -const EVP_CIPHER *EVP_aria_128_ofb(void); -const EVP_CIPHER *EVP_aria_128_gcm(void); -const EVP_CIPHER *EVP_aria_128_ccm(void); -const EVP_CIPHER *EVP_aria_192_ecb(void); -const EVP_CIPHER *EVP_aria_192_cbc(void); -const EVP_CIPHER *EVP_aria_192_cfb1(void); -const EVP_CIPHER *EVP_aria_192_cfb8(void); -const EVP_CIPHER *EVP_aria_192_cfb128(void); -# define EVP_aria_192_cfb EVP_aria_192_cfb128 -const EVP_CIPHER *EVP_aria_192_ctr(void); -const EVP_CIPHER *EVP_aria_192_ofb(void); -const EVP_CIPHER *EVP_aria_192_gcm(void); -const EVP_CIPHER *EVP_aria_192_ccm(void); -const EVP_CIPHER *EVP_aria_256_ecb(void); -const EVP_CIPHER *EVP_aria_256_cbc(void); -const EVP_CIPHER *EVP_aria_256_cfb1(void); -const EVP_CIPHER *EVP_aria_256_cfb8(void); -const EVP_CIPHER *EVP_aria_256_cfb128(void); -# define EVP_aria_256_cfb EVP_aria_256_cfb128 -const EVP_CIPHER *EVP_aria_256_ctr(void); -const EVP_CIPHER *EVP_aria_256_ofb(void); -const EVP_CIPHER *EVP_aria_256_gcm(void); -const EVP_CIPHER *EVP_aria_256_ccm(void); -# endif -# ifndef OPENSSL_NO_CAMELLIA -const EVP_CIPHER *EVP_camellia_128_ecb(void); -const EVP_CIPHER *EVP_camellia_128_cbc(void); -const EVP_CIPHER *EVP_camellia_128_cfb1(void); -const EVP_CIPHER *EVP_camellia_128_cfb8(void); -const EVP_CIPHER *EVP_camellia_128_cfb128(void); -# define EVP_camellia_128_cfb EVP_camellia_128_cfb128 -const EVP_CIPHER *EVP_camellia_128_ofb(void); -const EVP_CIPHER *EVP_camellia_128_ctr(void); -const EVP_CIPHER *EVP_camellia_192_ecb(void); -const EVP_CIPHER *EVP_camellia_192_cbc(void); -const EVP_CIPHER *EVP_camellia_192_cfb1(void); -const EVP_CIPHER *EVP_camellia_192_cfb8(void); -const EVP_CIPHER *EVP_camellia_192_cfb128(void); -# define EVP_camellia_192_cfb EVP_camellia_192_cfb128 -const EVP_CIPHER *EVP_camellia_192_ofb(void); -const EVP_CIPHER *EVP_camellia_192_ctr(void); -const EVP_CIPHER *EVP_camellia_256_ecb(void); -const EVP_CIPHER *EVP_camellia_256_cbc(void); -const EVP_CIPHER *EVP_camellia_256_cfb1(void); -const EVP_CIPHER *EVP_camellia_256_cfb8(void); -const EVP_CIPHER *EVP_camellia_256_cfb128(void); -# define EVP_camellia_256_cfb EVP_camellia_256_cfb128 -const EVP_CIPHER *EVP_camellia_256_ofb(void); -const EVP_CIPHER *EVP_camellia_256_ctr(void); -# endif -# ifndef OPENSSL_NO_CHACHA -const EVP_CIPHER *EVP_chacha20(void); -# ifndef OPENSSL_NO_POLY1305 -const EVP_CIPHER *EVP_chacha20_poly1305(void); -# endif -# endif - -# ifndef OPENSSL_NO_SEED -const EVP_CIPHER *EVP_seed_ecb(void); -const EVP_CIPHER *EVP_seed_cbc(void); -const EVP_CIPHER *EVP_seed_cfb128(void); -# define EVP_seed_cfb EVP_seed_cfb128 -const EVP_CIPHER *EVP_seed_ofb(void); -# endif - -# ifndef OPENSSL_NO_SM4 -const EVP_CIPHER *EVP_sm4_ecb(void); -const EVP_CIPHER *EVP_sm4_cbc(void); -const EVP_CIPHER *EVP_sm4_cfb128(void); -# define EVP_sm4_cfb EVP_sm4_cfb128 -const EVP_CIPHER *EVP_sm4_ofb(void); -const EVP_CIPHER *EVP_sm4_ctr(void); -# endif - -# if OPENSSL_API_COMPAT < 0x10100000L -# define OPENSSL_add_all_algorithms_conf() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS \ - | OPENSSL_INIT_LOAD_CONFIG, NULL) -# define OPENSSL_add_all_algorithms_noconf() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) - -# ifdef OPENSSL_LOAD_CONF -# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_conf() -# else -# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_noconf() -# endif - -# define OpenSSL_add_all_ciphers() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL) -# define OpenSSL_add_all_digests() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) - -# define EVP_cleanup() while(0) continue -# endif - -int EVP_add_cipher(const EVP_CIPHER *cipher); -int EVP_add_digest(const EVP_MD *digest); - -const EVP_CIPHER *EVP_get_cipherbyname(const char *name); -const EVP_MD *EVP_get_digestbyname(const char *name); - -void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, - const char *from, const char *to, void *x), - void *arg); -void EVP_CIPHER_do_all_sorted(void (*fn) - (const EVP_CIPHER *ciph, const char *from, - const char *to, void *x), void *arg); - -void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, - const char *from, const char *to, void *x), - void *arg); -void EVP_MD_do_all_sorted(void (*fn) - (const EVP_MD *ciph, const char *from, - const char *to, void *x), void *arg); - -int EVP_PKEY_decrypt_old(unsigned char *dec_key, - const unsigned char *enc_key, int enc_key_len, - EVP_PKEY *private_key); -int EVP_PKEY_encrypt_old(unsigned char *enc_key, - const unsigned char *key, int key_len, - EVP_PKEY *pub_key); -int EVP_PKEY_type(int type); -int EVP_PKEY_id(const EVP_PKEY *pkey); -int EVP_PKEY_base_id(const EVP_PKEY *pkey); -int EVP_PKEY_bits(const EVP_PKEY *pkey); -int EVP_PKEY_security_bits(const EVP_PKEY *pkey); -int EVP_PKEY_size(const EVP_PKEY *pkey); -int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); -int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); -int EVP_PKEY_set_alias_type(EVP_PKEY *pkey, int type); -# ifndef OPENSSL_NO_ENGINE -int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e); -ENGINE *EVP_PKEY_get0_engine(const EVP_PKEY *pkey); -# endif -int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); -void *EVP_PKEY_get0(const EVP_PKEY *pkey); -const unsigned char *EVP_PKEY_get0_hmac(const EVP_PKEY *pkey, size_t *len); -# ifndef OPENSSL_NO_POLY1305 -const unsigned char *EVP_PKEY_get0_poly1305(const EVP_PKEY *pkey, size_t *len); -# endif -# ifndef OPENSSL_NO_SIPHASH -const unsigned char *EVP_PKEY_get0_siphash(const EVP_PKEY *pkey, size_t *len); -# endif - -# ifndef OPENSSL_NO_RSA -struct rsa_st; -int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); -struct rsa_st *EVP_PKEY_get0_RSA(EVP_PKEY *pkey); -struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); -# endif -# ifndef OPENSSL_NO_DSA -struct dsa_st; -int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); -struct dsa_st *EVP_PKEY_get0_DSA(EVP_PKEY *pkey); -struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); -# endif -# ifndef OPENSSL_NO_DH -struct dh_st; -int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); -struct dh_st *EVP_PKEY_get0_DH(EVP_PKEY *pkey); -struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); -# endif -# ifndef OPENSSL_NO_EC -struct ec_key_st; -int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); -struct ec_key_st *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey); -struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); -# endif - -EVP_PKEY *EVP_PKEY_new(void); -int EVP_PKEY_up_ref(EVP_PKEY *pkey); -void EVP_PKEY_free(EVP_PKEY *pkey); - -EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp); - -EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); - -int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); -int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); -int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); -int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); - -int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); - -int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); - -int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); - -int EVP_PKEY_set1_tls_encodedpoint(EVP_PKEY *pkey, - const unsigned char *pt, size_t ptlen); -size_t EVP_PKEY_get1_tls_encodedpoint(EVP_PKEY *pkey, unsigned char **ppt); - -int EVP_CIPHER_type(const EVP_CIPHER *ctx); - -/* calls methods */ -int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); -int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); - -/* These are used by EVP_CIPHER methods */ -int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); -int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); - -/* PKCS5 password based encryption */ -int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de); -int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - int keylen, unsigned char *out); -int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - const EVP_MD *digest, int keylen, unsigned char *out); -int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de); - -#ifndef OPENSSL_NO_SCRYPT -int EVP_PBE_scrypt(const char *pass, size_t passlen, - const unsigned char *salt, size_t saltlen, - uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, - unsigned char *key, size_t keylen); - -int PKCS5_v2_scrypt_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *c, const EVP_MD *md, int en_de); -#endif - -void PKCS5_PBE_add(void); - -int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, - ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); - -/* PBE type */ - -/* Can appear as the outermost AlgorithmIdentifier */ -# define EVP_PBE_TYPE_OUTER 0x0 -/* Is an PRF type OID */ -# define EVP_PBE_TYPE_PRF 0x1 -/* Is a PKCS#5 v2.0 KDF */ -# define EVP_PBE_TYPE_KDF 0x2 - -int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, - int md_nid, EVP_PBE_KEYGEN *keygen); -int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, - EVP_PBE_KEYGEN *keygen); -int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, - EVP_PBE_KEYGEN **pkeygen); -void EVP_PBE_cleanup(void); -int EVP_PBE_get(int *ptype, int *ppbe_nid, size_t num); - -# define ASN1_PKEY_ALIAS 0x1 -# define ASN1_PKEY_DYNAMIC 0x2 -# define ASN1_PKEY_SIGPARAM_NULL 0x4 - -# define ASN1_PKEY_CTRL_PKCS7_SIGN 0x1 -# define ASN1_PKEY_CTRL_PKCS7_ENCRYPT 0x2 -# define ASN1_PKEY_CTRL_DEFAULT_MD_NID 0x3 -# define ASN1_PKEY_CTRL_CMS_SIGN 0x5 -# define ASN1_PKEY_CTRL_CMS_ENVELOPE 0x7 -# define ASN1_PKEY_CTRL_CMS_RI_TYPE 0x8 - -# define ASN1_PKEY_CTRL_SET1_TLS_ENCPT 0x9 -# define ASN1_PKEY_CTRL_GET1_TLS_ENCPT 0xa - -int EVP_PKEY_asn1_get_count(void); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, - const char *str, int len); -int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); -int EVP_PKEY_asn1_add_alias(int to, int from); -int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, - int *ppkey_flags, const char **pinfo, - const char **ppem_str, - const EVP_PKEY_ASN1_METHOD *ameth); - -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(const EVP_PKEY *pkey); -EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, - const char *pem_str, - const char *info); -void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, - const EVP_PKEY_ASN1_METHOD *src); -void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); -void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, - int (*pub_decode) (EVP_PKEY *pk, - X509_PUBKEY *pub), - int (*pub_encode) (X509_PUBKEY *pub, - const EVP_PKEY *pk), - int (*pub_cmp) (const EVP_PKEY *a, - const EVP_PKEY *b), - int (*pub_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx), - int (*pkey_size) (const EVP_PKEY *pk), - int (*pkey_bits) (const EVP_PKEY *pk)); -void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, - int (*priv_decode) (EVP_PKEY *pk, - const PKCS8_PRIV_KEY_INFO - *p8inf), - int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, - const EVP_PKEY *pk), - int (*priv_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, - ASN1_PCTX *pctx)); -void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, - int (*param_decode) (EVP_PKEY *pkey, - const unsigned char **pder, - int derlen), - int (*param_encode) (const EVP_PKEY *pkey, - unsigned char **pder), - int (*param_missing) (const EVP_PKEY *pk), - int (*param_copy) (EVP_PKEY *to, - const EVP_PKEY *from), - int (*param_cmp) (const EVP_PKEY *a, - const EVP_PKEY *b), - int (*param_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, - ASN1_PCTX *pctx)); - -void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, - void (*pkey_free) (EVP_PKEY *pkey)); -void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_ctrl) (EVP_PKEY *pkey, int op, - long arg1, void *arg2)); -void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, - int (*item_verify) (EVP_MD_CTX *ctx, - const ASN1_ITEM *it, - void *asn, - X509_ALGOR *a, - ASN1_BIT_STRING *sig, - EVP_PKEY *pkey), - int (*item_sign) (EVP_MD_CTX *ctx, - const ASN1_ITEM *it, - void *asn, - X509_ALGOR *alg1, - X509_ALGOR *alg2, - ASN1_BIT_STRING *sig)); - -void EVP_PKEY_asn1_set_siginf(EVP_PKEY_ASN1_METHOD *ameth, - int (*siginf_set) (X509_SIG_INFO *siginf, - const X509_ALGOR *alg, - const ASN1_STRING *sig)); - -void EVP_PKEY_asn1_set_check(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_check) (const EVP_PKEY *pk)); - -void EVP_PKEY_asn1_set_public_check(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_pub_check) (const EVP_PKEY *pk)); - -void EVP_PKEY_asn1_set_param_check(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_param_check) (const EVP_PKEY *pk)); - -void EVP_PKEY_asn1_set_set_priv_key(EVP_PKEY_ASN1_METHOD *ameth, - int (*set_priv_key) (EVP_PKEY *pk, - const unsigned char - *priv, - size_t len)); -void EVP_PKEY_asn1_set_set_pub_key(EVP_PKEY_ASN1_METHOD *ameth, - int (*set_pub_key) (EVP_PKEY *pk, - const unsigned char *pub, - size_t len)); -void EVP_PKEY_asn1_set_get_priv_key(EVP_PKEY_ASN1_METHOD *ameth, - int (*get_priv_key) (const EVP_PKEY *pk, - unsigned char *priv, - size_t *len)); -void EVP_PKEY_asn1_set_get_pub_key(EVP_PKEY_ASN1_METHOD *ameth, - int (*get_pub_key) (const EVP_PKEY *pk, - unsigned char *pub, - size_t *len)); - -void EVP_PKEY_asn1_set_security_bits(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_security_bits) (const EVP_PKEY - *pk)); - -# define EVP_PKEY_OP_UNDEFINED 0 -# define EVP_PKEY_OP_PARAMGEN (1<<1) -# define EVP_PKEY_OP_KEYGEN (1<<2) -# define EVP_PKEY_OP_SIGN (1<<3) -# define EVP_PKEY_OP_VERIFY (1<<4) -# define EVP_PKEY_OP_VERIFYRECOVER (1<<5) -# define EVP_PKEY_OP_SIGNCTX (1<<6) -# define EVP_PKEY_OP_VERIFYCTX (1<<7) -# define EVP_PKEY_OP_ENCRYPT (1<<8) -# define EVP_PKEY_OP_DECRYPT (1<<9) -# define EVP_PKEY_OP_DERIVE (1<<10) - -# define EVP_PKEY_OP_TYPE_SIG \ - (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_VERIFY | EVP_PKEY_OP_VERIFYRECOVER \ - | EVP_PKEY_OP_SIGNCTX | EVP_PKEY_OP_VERIFYCTX) - -# define EVP_PKEY_OP_TYPE_CRYPT \ - (EVP_PKEY_OP_ENCRYPT | EVP_PKEY_OP_DECRYPT) - -# define EVP_PKEY_OP_TYPE_NOGEN \ - (EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT | EVP_PKEY_OP_DERIVE) - -# define EVP_PKEY_OP_TYPE_GEN \ - (EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN) - -# define EVP_PKEY_CTX_set_signature_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ - EVP_PKEY_CTRL_MD, 0, (void *)(md)) - -# define EVP_PKEY_CTX_get_signature_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ - EVP_PKEY_CTRL_GET_MD, 0, (void *)(pmd)) - -# define EVP_PKEY_CTX_set_mac_key(ctx, key, len) \ - EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_SET_MAC_KEY, len, (void *)(key)) - -# define EVP_PKEY_CTRL_MD 1 -# define EVP_PKEY_CTRL_PEER_KEY 2 - -# define EVP_PKEY_CTRL_PKCS7_ENCRYPT 3 -# define EVP_PKEY_CTRL_PKCS7_DECRYPT 4 - -# define EVP_PKEY_CTRL_PKCS7_SIGN 5 - -# define EVP_PKEY_CTRL_SET_MAC_KEY 6 - -# define EVP_PKEY_CTRL_DIGESTINIT 7 - -/* Used by GOST key encryption in TLS */ -# define EVP_PKEY_CTRL_SET_IV 8 - -# define EVP_PKEY_CTRL_CMS_ENCRYPT 9 -# define EVP_PKEY_CTRL_CMS_DECRYPT 10 -# define EVP_PKEY_CTRL_CMS_SIGN 11 - -# define EVP_PKEY_CTRL_CIPHER 12 - -# define EVP_PKEY_CTRL_GET_MD 13 - -# define EVP_PKEY_CTRL_SET_DIGEST_SIZE 14 - -# define EVP_PKEY_ALG_CTRL 0x1000 - -# define EVP_PKEY_FLAG_AUTOARGLEN 2 -/* - * Method handles all operations: don't assume any digest related defaults. - */ -# define EVP_PKEY_FLAG_SIGCTX_CUSTOM 4 - -const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); -EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); -void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, - const EVP_PKEY_METHOD *meth); -void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src); -void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); -int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); -int EVP_PKEY_meth_remove(const EVP_PKEY_METHOD *pmeth); -size_t EVP_PKEY_meth_get_count(void); -const EVP_PKEY_METHOD *EVP_PKEY_meth_get0(size_t idx); - -EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); -EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); -EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); -void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, - int cmd, int p1, void *p2); -int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, - const char *value); -int EVP_PKEY_CTX_ctrl_uint64(EVP_PKEY_CTX *ctx, int keytype, int optype, - int cmd, uint64_t value); - -int EVP_PKEY_CTX_str2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *str); -int EVP_PKEY_CTX_hex2ctrl(EVP_PKEY_CTX *ctx, int cmd, const char *hex); - -int EVP_PKEY_CTX_md(EVP_PKEY_CTX *ctx, int optype, int cmd, const char *md); - -int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); -void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); - -EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, - const unsigned char *key, int keylen); -EVP_PKEY *EVP_PKEY_new_raw_private_key(int type, ENGINE *e, - const unsigned char *priv, - size_t len); -EVP_PKEY *EVP_PKEY_new_raw_public_key(int type, ENGINE *e, - const unsigned char *pub, - size_t len); -int EVP_PKEY_get_raw_private_key(const EVP_PKEY *pkey, unsigned char *priv, - size_t *len); -int EVP_PKEY_get_raw_public_key(const EVP_PKEY *pkey, unsigned char *pub, - size_t *len); - -EVP_PKEY *EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv, - size_t len, const EVP_CIPHER *cipher); - -void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); -void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx); -EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); - -EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); - -void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); -void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, - const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, - unsigned char *rout, size_t *routlen, - const unsigned char *sig, size_t siglen); -int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); -int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); - -int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); -int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); - -typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); -int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); -int EVP_PKEY_check(EVP_PKEY_CTX *ctx); -int EVP_PKEY_public_check(EVP_PKEY_CTX *ctx); -int EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); - -void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); -EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); - -void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, - int (*init) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth, - int (*copy) (EVP_PKEY_CTX *dst, - EVP_PKEY_CTX *src)); - -void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth, - void (*cleanup) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth, - int (*paramgen_init) (EVP_PKEY_CTX *ctx), - int (*paramgen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth, - int (*keygen_init) (EVP_PKEY_CTX *ctx), - int (*keygen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth, - int (*sign_init) (EVP_PKEY_CTX *ctx), - int (*sign) (EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth, - int (*verify_init) (EVP_PKEY_CTX *ctx), - int (*verify) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth, - int (*verify_recover_init) (EVP_PKEY_CTX - *ctx), - int (*verify_recover) (EVP_PKEY_CTX - *ctx, - unsigned char - *sig, - size_t *siglen, - const unsigned - char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth, - int (*signctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (*signctx) (EVP_PKEY_CTX *ctx, - unsigned char *sig, - size_t *siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth, - int (*verifyctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (*verifyctx) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - int siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth, - int (*encrypt_init) (EVP_PKEY_CTX *ctx), - int (*encryptfn) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth, - int (*decrypt_init) (EVP_PKEY_CTX *ctx), - int (*decrypt) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth, - int (*derive_init) (EVP_PKEY_CTX *ctx), - int (*derive) (EVP_PKEY_CTX *ctx, - unsigned char *key, - size_t *keylen)); - -void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, - int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, - void *p2), - int (*ctrl_str) (EVP_PKEY_CTX *ctx, - const char *type, - const char *value)); - -void EVP_PKEY_meth_set_check(EVP_PKEY_METHOD *pmeth, - int (*check) (EVP_PKEY *pkey)); - -void EVP_PKEY_meth_set_public_check(EVP_PKEY_METHOD *pmeth, - int (*check) (EVP_PKEY *pkey)); - -void EVP_PKEY_meth_set_param_check(EVP_PKEY_METHOD *pmeth, - int (*check) (EVP_PKEY *pkey)); - -void EVP_PKEY_meth_set_digest_custom(EVP_PKEY_METHOD *pmeth, - int (*digest_custom) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_get_init(const EVP_PKEY_METHOD *pmeth, - int (**pinit) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_get_copy(const EVP_PKEY_METHOD *pmeth, - int (**pcopy) (EVP_PKEY_CTX *dst, - EVP_PKEY_CTX *src)); - -void EVP_PKEY_meth_get_cleanup(const EVP_PKEY_METHOD *pmeth, - void (**pcleanup) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_get_paramgen(const EVP_PKEY_METHOD *pmeth, - int (**pparamgen_init) (EVP_PKEY_CTX *ctx), - int (**pparamgen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_get_keygen(const EVP_PKEY_METHOD *pmeth, - int (**pkeygen_init) (EVP_PKEY_CTX *ctx), - int (**pkeygen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_get_sign(const EVP_PKEY_METHOD *pmeth, - int (**psign_init) (EVP_PKEY_CTX *ctx), - int (**psign) (EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_verify(const EVP_PKEY_METHOD *pmeth, - int (**pverify_init) (EVP_PKEY_CTX *ctx), - int (**pverify) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_verify_recover(const EVP_PKEY_METHOD *pmeth, - int (**pverify_recover_init) (EVP_PKEY_CTX - *ctx), - int (**pverify_recover) (EVP_PKEY_CTX - *ctx, - unsigned char - *sig, - size_t *siglen, - const unsigned - char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_signctx(const EVP_PKEY_METHOD *pmeth, - int (**psignctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (**psignctx) (EVP_PKEY_CTX *ctx, - unsigned char *sig, - size_t *siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_get_verifyctx(const EVP_PKEY_METHOD *pmeth, - int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (**pverifyctx) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - int siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_get_encrypt(const EVP_PKEY_METHOD *pmeth, - int (**pencrypt_init) (EVP_PKEY_CTX *ctx), - int (**pencryptfn) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_get_decrypt(const EVP_PKEY_METHOD *pmeth, - int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), - int (**pdecrypt) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_get_derive(const EVP_PKEY_METHOD *pmeth, - int (**pderive_init) (EVP_PKEY_CTX *ctx), - int (**pderive) (EVP_PKEY_CTX *ctx, - unsigned char *key, - size_t *keylen)); - -void EVP_PKEY_meth_get_ctrl(const EVP_PKEY_METHOD *pmeth, - int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, - void *p2), - int (**pctrl_str) (EVP_PKEY_CTX *ctx, - const char *type, - const char *value)); - -void EVP_PKEY_meth_get_check(const EVP_PKEY_METHOD *pmeth, - int (**pcheck) (EVP_PKEY *pkey)); - -void EVP_PKEY_meth_get_public_check(const EVP_PKEY_METHOD *pmeth, - int (**pcheck) (EVP_PKEY *pkey)); - -void EVP_PKEY_meth_get_param_check(const EVP_PKEY_METHOD *pmeth, - int (**pcheck) (EVP_PKEY *pkey)); - -void EVP_PKEY_meth_get_digest_custom(EVP_PKEY_METHOD *pmeth, - int (**pdigest_custom) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx)); -void EVP_add_alg_module(void); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/evperr.h b/submodules/MtProtoKit/openssl/openssl/evperr.h deleted file mode 100644 index 6a651f5563..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/evperr.h +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_EVPERR_H -# define HEADER_EVPERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_EVP_strings(void); - -/* - * EVP function codes. - */ -# define EVP_F_AESNI_INIT_KEY 165 -# define EVP_F_AESNI_XTS_INIT_KEY 207 -# define EVP_F_AES_GCM_CTRL 196 -# define EVP_F_AES_INIT_KEY 133 -# define EVP_F_AES_OCB_CIPHER 169 -# define EVP_F_AES_T4_INIT_KEY 178 -# define EVP_F_AES_T4_XTS_INIT_KEY 208 -# define EVP_F_AES_WRAP_CIPHER 170 -# define EVP_F_AES_XTS_INIT_KEY 209 -# define EVP_F_ALG_MODULE_INIT 177 -# define EVP_F_ARIA_CCM_INIT_KEY 175 -# define EVP_F_ARIA_GCM_CTRL 197 -# define EVP_F_ARIA_GCM_INIT_KEY 176 -# define EVP_F_ARIA_INIT_KEY 185 -# define EVP_F_B64_NEW 198 -# define EVP_F_CAMELLIA_INIT_KEY 159 -# define EVP_F_CHACHA20_POLY1305_CTRL 182 -# define EVP_F_CMLL_T4_INIT_KEY 179 -# define EVP_F_DES_EDE3_WRAP_CIPHER 171 -# define EVP_F_DO_SIGVER_INIT 161 -# define EVP_F_ENC_NEW 199 -# define EVP_F_EVP_CIPHERINIT_EX 123 -# define EVP_F_EVP_CIPHER_ASN1_TO_PARAM 204 -# define EVP_F_EVP_CIPHER_CTX_COPY 163 -# define EVP_F_EVP_CIPHER_CTX_CTRL 124 -# define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122 -# define EVP_F_EVP_CIPHER_PARAM_TO_ASN1 205 -# define EVP_F_EVP_DECRYPTFINAL_EX 101 -# define EVP_F_EVP_DECRYPTUPDATE 166 -# define EVP_F_EVP_DIGESTFINALXOF 174 -# define EVP_F_EVP_DIGESTINIT_EX 128 -# define EVP_F_EVP_ENCRYPTDECRYPTUPDATE 219 -# define EVP_F_EVP_ENCRYPTFINAL_EX 127 -# define EVP_F_EVP_ENCRYPTUPDATE 167 -# define EVP_F_EVP_MD_CTX_COPY_EX 110 -# define EVP_F_EVP_MD_SIZE 162 -# define EVP_F_EVP_OPENINIT 102 -# define EVP_F_EVP_PBE_ALG_ADD 115 -# define EVP_F_EVP_PBE_ALG_ADD_TYPE 160 -# define EVP_F_EVP_PBE_CIPHERINIT 116 -# define EVP_F_EVP_PBE_SCRYPT 181 -# define EVP_F_EVP_PKCS82PKEY 111 -# define EVP_F_EVP_PKEY2PKCS8 113 -# define EVP_F_EVP_PKEY_ASN1_ADD0 188 -# define EVP_F_EVP_PKEY_CHECK 186 -# define EVP_F_EVP_PKEY_COPY_PARAMETERS 103 -# define EVP_F_EVP_PKEY_CTX_CTRL 137 -# define EVP_F_EVP_PKEY_CTX_CTRL_STR 150 -# define EVP_F_EVP_PKEY_CTX_DUP 156 -# define EVP_F_EVP_PKEY_CTX_MD 168 -# define EVP_F_EVP_PKEY_DECRYPT 104 -# define EVP_F_EVP_PKEY_DECRYPT_INIT 138 -# define EVP_F_EVP_PKEY_DECRYPT_OLD 151 -# define EVP_F_EVP_PKEY_DERIVE 153 -# define EVP_F_EVP_PKEY_DERIVE_INIT 154 -# define EVP_F_EVP_PKEY_DERIVE_SET_PEER 155 -# define EVP_F_EVP_PKEY_ENCRYPT 105 -# define EVP_F_EVP_PKEY_ENCRYPT_INIT 139 -# define EVP_F_EVP_PKEY_ENCRYPT_OLD 152 -# define EVP_F_EVP_PKEY_GET0_DH 119 -# define EVP_F_EVP_PKEY_GET0_DSA 120 -# define EVP_F_EVP_PKEY_GET0_EC_KEY 131 -# define EVP_F_EVP_PKEY_GET0_HMAC 183 -# define EVP_F_EVP_PKEY_GET0_POLY1305 184 -# define EVP_F_EVP_PKEY_GET0_RSA 121 -# define EVP_F_EVP_PKEY_GET0_SIPHASH 172 -# define EVP_F_EVP_PKEY_GET_RAW_PRIVATE_KEY 202 -# define EVP_F_EVP_PKEY_GET_RAW_PUBLIC_KEY 203 -# define EVP_F_EVP_PKEY_KEYGEN 146 -# define EVP_F_EVP_PKEY_KEYGEN_INIT 147 -# define EVP_F_EVP_PKEY_METH_ADD0 194 -# define EVP_F_EVP_PKEY_METH_NEW 195 -# define EVP_F_EVP_PKEY_NEW 106 -# define EVP_F_EVP_PKEY_NEW_CMAC_KEY 193 -# define EVP_F_EVP_PKEY_NEW_RAW_PRIVATE_KEY 191 -# define EVP_F_EVP_PKEY_NEW_RAW_PUBLIC_KEY 192 -# define EVP_F_EVP_PKEY_PARAMGEN 148 -# define EVP_F_EVP_PKEY_PARAMGEN_INIT 149 -# define EVP_F_EVP_PKEY_PARAM_CHECK 189 -# define EVP_F_EVP_PKEY_PUBLIC_CHECK 190 -# define EVP_F_EVP_PKEY_SET1_ENGINE 187 -# define EVP_F_EVP_PKEY_SET_ALIAS_TYPE 206 -# define EVP_F_EVP_PKEY_SIGN 140 -# define EVP_F_EVP_PKEY_SIGN_INIT 141 -# define EVP_F_EVP_PKEY_VERIFY 142 -# define EVP_F_EVP_PKEY_VERIFY_INIT 143 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER 144 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT 145 -# define EVP_F_EVP_SIGNFINAL 107 -# define EVP_F_EVP_VERIFYFINAL 108 -# define EVP_F_INT_CTX_NEW 157 -# define EVP_F_OK_NEW 200 -# define EVP_F_PKCS5_PBE_KEYIVGEN 117 -# define EVP_F_PKCS5_V2_PBE_KEYIVGEN 118 -# define EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN 164 -# define EVP_F_PKCS5_V2_SCRYPT_KEYIVGEN 180 -# define EVP_F_PKEY_SET_TYPE 158 -# define EVP_F_RC2_MAGIC_TO_METH 109 -# define EVP_F_RC5_CTRL 125 -# define EVP_F_R_32_12_16_INIT_KEY 242 -# define EVP_F_S390X_AES_GCM_CTRL 201 -# define EVP_F_UPDATE 173 - -/* - * EVP reason codes. - */ -# define EVP_R_AES_KEY_SETUP_FAILED 143 -# define EVP_R_ARIA_KEY_SETUP_FAILED 176 -# define EVP_R_BAD_DECRYPT 100 -# define EVP_R_BAD_KEY_LENGTH 195 -# define EVP_R_BUFFER_TOO_SMALL 155 -# define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157 -# define EVP_R_CIPHER_PARAMETER_ERROR 122 -# define EVP_R_COMMAND_NOT_SUPPORTED 147 -# define EVP_R_COPY_ERROR 173 -# define EVP_R_CTRL_NOT_IMPLEMENTED 132 -# define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133 -# define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 -# define EVP_R_DECODE_ERROR 114 -# define EVP_R_DIFFERENT_KEY_TYPES 101 -# define EVP_R_DIFFERENT_PARAMETERS 153 -# define EVP_R_ERROR_LOADING_SECTION 165 -# define EVP_R_ERROR_SETTING_FIPS_MODE 166 -# define EVP_R_EXPECTING_AN_HMAC_KEY 174 -# define EVP_R_EXPECTING_AN_RSA_KEY 127 -# define EVP_R_EXPECTING_A_DH_KEY 128 -# define EVP_R_EXPECTING_A_DSA_KEY 129 -# define EVP_R_EXPECTING_A_EC_KEY 142 -# define EVP_R_EXPECTING_A_POLY1305_KEY 164 -# define EVP_R_EXPECTING_A_SIPHASH_KEY 175 -# define EVP_R_FIPS_MODE_NOT_SUPPORTED 167 -# define EVP_R_GET_RAW_KEY_FAILED 182 -# define EVP_R_ILLEGAL_SCRYPT_PARAMETERS 171 -# define EVP_R_INITIALIZATION_ERROR 134 -# define EVP_R_INPUT_NOT_INITIALIZED 111 -# define EVP_R_INVALID_DIGEST 152 -# define EVP_R_INVALID_FIPS_MODE 168 -# define EVP_R_INVALID_KEY 163 -# define EVP_R_INVALID_KEY_LENGTH 130 -# define EVP_R_INVALID_OPERATION 148 -# define EVP_R_KEYGEN_FAILURE 120 -# define EVP_R_KEY_SETUP_FAILED 180 -# define EVP_R_MEMORY_LIMIT_EXCEEDED 172 -# define EVP_R_MESSAGE_DIGEST_IS_NULL 159 -# define EVP_R_METHOD_NOT_SUPPORTED 144 -# define EVP_R_MISSING_PARAMETERS 103 -# define EVP_R_NOT_XOF_OR_INVALID_LENGTH 178 -# define EVP_R_NO_CIPHER_SET 131 -# define EVP_R_NO_DEFAULT_DIGEST 158 -# define EVP_R_NO_DIGEST_SET 139 -# define EVP_R_NO_KEY_SET 154 -# define EVP_R_NO_OPERATION_SET 149 -# define EVP_R_ONLY_ONESHOT_SUPPORTED 177 -# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 -# define EVP_R_OPERATON_NOT_INITIALIZED 151 -# define EVP_R_PARTIALLY_OVERLAPPING 162 -# define EVP_R_PBKDF2_ERROR 181 -# define EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED 179 -# define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 -# define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146 -# define EVP_R_PUBLIC_KEY_NOT_RSA 106 -# define EVP_R_UNKNOWN_CIPHER 160 -# define EVP_R_UNKNOWN_DIGEST 161 -# define EVP_R_UNKNOWN_OPTION 169 -# define EVP_R_UNKNOWN_PBE_ALGORITHM 121 -# define EVP_R_UNSUPPORTED_ALGORITHM 156 -# define EVP_R_UNSUPPORTED_CIPHER 107 -# define EVP_R_UNSUPPORTED_KEYLENGTH 123 -# define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124 -# define EVP_R_UNSUPPORTED_KEY_SIZE 108 -# define EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS 135 -# define EVP_R_UNSUPPORTED_PRF 125 -# define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 -# define EVP_R_UNSUPPORTED_SALT_TYPE 126 -# define EVP_R_WRAP_MODE_NOT_ALLOWED 170 -# define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 -# define EVP_R_XTS_DUPLICATED_KEYS 183 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/hmac.h b/submodules/MtProtoKit/openssl/openssl/hmac.h deleted file mode 100644 index 458efc1d51..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/hmac.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_HMAC_H -# define HEADER_HMAC_H - -# include - -# include - -# if OPENSSL_API_COMPAT < 0x10200000L -# define HMAC_MAX_MD_CBLOCK 128 /* Deprecated */ -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -size_t HMAC_size(const HMAC_CTX *e); -HMAC_CTX *HMAC_CTX_new(void); -int HMAC_CTX_reset(HMAC_CTX *ctx); -void HMAC_CTX_free(HMAC_CTX *ctx); - -DEPRECATEDIN_1_1_0(__owur int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, - const EVP_MD *md)) - -/*__owur*/ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, - const EVP_MD *md, ENGINE *impl); -/*__owur*/ int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, - size_t len); -/*__owur*/ int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, - unsigned int *len); -unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len, - const unsigned char *d, size_t n, unsigned char *md, - unsigned int *md_len); -__owur int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); - -void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); -const EVP_MD *HMAC_CTX_get_md(const HMAC_CTX *ctx); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/idea.h b/submodules/MtProtoKit/openssl/openssl/idea.h deleted file mode 100644 index 4334f3ea71..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/idea.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_IDEA_H -# define HEADER_IDEA_H - -# include - -# ifndef OPENSSL_NO_IDEA -# ifdef __cplusplus -extern "C" { -# endif - -typedef unsigned int IDEA_INT; - -# define IDEA_ENCRYPT 1 -# define IDEA_DECRYPT 0 - -# define IDEA_BLOCK 8 -# define IDEA_KEY_LENGTH 16 - -typedef struct idea_key_st { - IDEA_INT data[9][6]; -} IDEA_KEY_SCHEDULE; - -const char *IDEA_options(void); -void IDEA_ecb_encrypt(const unsigned char *in, unsigned char *out, - IDEA_KEY_SCHEDULE *ks); -void IDEA_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks); -void IDEA_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk); -void IDEA_cbc_encrypt(const unsigned char *in, unsigned char *out, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, - int enc); -void IDEA_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, - int *num, int enc); -void IDEA_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, - int *num); -void IDEA_encrypt(unsigned long *in, IDEA_KEY_SCHEDULE *ks); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define idea_options IDEA_options -# define idea_ecb_encrypt IDEA_ecb_encrypt -# define idea_set_encrypt_key IDEA_set_encrypt_key -# define idea_set_decrypt_key IDEA_set_decrypt_key -# define idea_cbc_encrypt IDEA_cbc_encrypt -# define idea_cfb64_encrypt IDEA_cfb64_encrypt -# define idea_ofb64_encrypt IDEA_ofb64_encrypt -# define idea_encrypt IDEA_encrypt -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/kdf.h b/submodules/MtProtoKit/openssl/openssl/kdf.h deleted file mode 100644 index 5abd4c3714..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/kdf.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_KDF_H -# define HEADER_KDF_H - -# include -#ifdef __cplusplus -extern "C" { -#endif - -# define EVP_PKEY_CTRL_TLS_MD (EVP_PKEY_ALG_CTRL) -# define EVP_PKEY_CTRL_TLS_SECRET (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_TLS_SEED (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_HKDF_MD (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_HKDF_SALT (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_HKDF_KEY (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_HKDF_INFO (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_HKDF_MODE (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_PASS (EVP_PKEY_ALG_CTRL + 8) -# define EVP_PKEY_CTRL_SCRYPT_SALT (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_SCRYPT_N (EVP_PKEY_ALG_CTRL + 10) -# define EVP_PKEY_CTRL_SCRYPT_R (EVP_PKEY_ALG_CTRL + 11) -# define EVP_PKEY_CTRL_SCRYPT_P (EVP_PKEY_ALG_CTRL + 12) -# define EVP_PKEY_CTRL_SCRYPT_MAXMEM_BYTES (EVP_PKEY_ALG_CTRL + 13) - -# define EVP_PKEY_HKDEF_MODE_EXTRACT_AND_EXPAND 0 -# define EVP_PKEY_HKDEF_MODE_EXTRACT_ONLY 1 -# define EVP_PKEY_HKDEF_MODE_EXPAND_ONLY 2 - -# define EVP_PKEY_CTX_set_tls1_prf_md(pctx, md) \ - EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_TLS_MD, 0, (void *)(md)) - -# define EVP_PKEY_CTX_set1_tls1_prf_secret(pctx, sec, seclen) \ - EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_TLS_SECRET, seclen, (void *)(sec)) - -# define EVP_PKEY_CTX_add1_tls1_prf_seed(pctx, seed, seedlen) \ - EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_TLS_SEED, seedlen, (void *)(seed)) - -# define EVP_PKEY_CTX_set_hkdf_md(pctx, md) \ - EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_HKDF_MD, 0, (void *)(md)) - -# define EVP_PKEY_CTX_set1_hkdf_salt(pctx, salt, saltlen) \ - EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_HKDF_SALT, saltlen, (void *)(salt)) - -# define EVP_PKEY_CTX_set1_hkdf_key(pctx, key, keylen) \ - EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_HKDF_KEY, keylen, (void *)(key)) - -# define EVP_PKEY_CTX_add1_hkdf_info(pctx, info, infolen) \ - EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_HKDF_INFO, infolen, (void *)(info)) - -# define EVP_PKEY_CTX_hkdf_mode(pctx, mode) \ - EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_HKDF_MODE, mode, NULL) - -# define EVP_PKEY_CTX_set1_pbe_pass(pctx, pass, passlen) \ - EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_PASS, passlen, (void *)(pass)) - -# define EVP_PKEY_CTX_set1_scrypt_salt(pctx, salt, saltlen) \ - EVP_PKEY_CTX_ctrl(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_SCRYPT_SALT, saltlen, (void *)(salt)) - -# define EVP_PKEY_CTX_set_scrypt_N(pctx, n) \ - EVP_PKEY_CTX_ctrl_uint64(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_SCRYPT_N, n) - -# define EVP_PKEY_CTX_set_scrypt_r(pctx, r) \ - EVP_PKEY_CTX_ctrl_uint64(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_SCRYPT_R, r) - -# define EVP_PKEY_CTX_set_scrypt_p(pctx, p) \ - EVP_PKEY_CTX_ctrl_uint64(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_SCRYPT_P, p) - -# define EVP_PKEY_CTX_set_scrypt_maxmem_bytes(pctx, maxmem_bytes) \ - EVP_PKEY_CTX_ctrl_uint64(pctx, -1, EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_SCRYPT_MAXMEM_BYTES, maxmem_bytes) - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/kdferr.h b/submodules/MtProtoKit/openssl/openssl/kdferr.h deleted file mode 100644 index 3f51bd0228..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/kdferr.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_KDFERR_H -# define HEADER_KDFERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_KDF_strings(void); - -/* - * KDF function codes. - */ -# define KDF_F_PKEY_HKDF_CTRL_STR 103 -# define KDF_F_PKEY_HKDF_DERIVE 102 -# define KDF_F_PKEY_HKDF_INIT 108 -# define KDF_F_PKEY_SCRYPT_CTRL_STR 104 -# define KDF_F_PKEY_SCRYPT_CTRL_UINT64 105 -# define KDF_F_PKEY_SCRYPT_DERIVE 109 -# define KDF_F_PKEY_SCRYPT_INIT 106 -# define KDF_F_PKEY_SCRYPT_SET_MEMBUF 107 -# define KDF_F_PKEY_TLS1_PRF_CTRL_STR 100 -# define KDF_F_PKEY_TLS1_PRF_DERIVE 101 -# define KDF_F_PKEY_TLS1_PRF_INIT 110 -# define KDF_F_TLS1_PRF_ALG 111 - -/* - * KDF reason codes. - */ -# define KDF_R_INVALID_DIGEST 100 -# define KDF_R_MISSING_ITERATION_COUNT 109 -# define KDF_R_MISSING_KEY 104 -# define KDF_R_MISSING_MESSAGE_DIGEST 105 -# define KDF_R_MISSING_PARAMETER 101 -# define KDF_R_MISSING_PASS 110 -# define KDF_R_MISSING_SALT 111 -# define KDF_R_MISSING_SECRET 107 -# define KDF_R_MISSING_SEED 106 -# define KDF_R_UNKNOWN_PARAMETER_TYPE 103 -# define KDF_R_VALUE_ERROR 108 -# define KDF_R_VALUE_MISSING 102 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/krb5_asn.h b/submodules/MtProtoKit/openssl/openssl/krb5_asn.h deleted file mode 100644 index 9cf5a26dd8..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/krb5_asn.h +++ /dev/null @@ -1,240 +0,0 @@ -/* krb5_asn.h */ -/* - * Written by Vern Staats for the OpenSSL project, ** - * using ocsp/{*.h,*asn*.c} as a starting point - */ - -/* ==================================================================== - * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_KRB5_ASN_H -# define HEADER_KRB5_ASN_H - -/* - * #include - */ -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * ASN.1 from Kerberos RFC 1510 - */ - -/*- EncryptedData ::= SEQUENCE { - * etype[0] INTEGER, -- EncryptionType - * kvno[1] INTEGER OPTIONAL, - * cipher[2] OCTET STRING -- ciphertext - * } - */ -typedef struct krb5_encdata_st { - ASN1_INTEGER *etype; - ASN1_INTEGER *kvno; - ASN1_OCTET_STRING *cipher; -} KRB5_ENCDATA; - -DECLARE_STACK_OF(KRB5_ENCDATA) - -/*- PrincipalName ::= SEQUENCE { - * name-type[0] INTEGER, - * name-string[1] SEQUENCE OF GeneralString - * } - */ -typedef struct krb5_princname_st { - ASN1_INTEGER *nametype; - STACK_OF(ASN1_GENERALSTRING) *namestring; -} KRB5_PRINCNAME; - -DECLARE_STACK_OF(KRB5_PRINCNAME) - -/*- Ticket ::= [APPLICATION 1] SEQUENCE { - * tkt-vno[0] INTEGER, - * realm[1] Realm, - * sname[2] PrincipalName, - * enc-part[3] EncryptedData - * } - */ -typedef struct krb5_tktbody_st { - ASN1_INTEGER *tktvno; - ASN1_GENERALSTRING *realm; - KRB5_PRINCNAME *sname; - KRB5_ENCDATA *encdata; -} KRB5_TKTBODY; - -typedef STACK_OF(KRB5_TKTBODY) KRB5_TICKET; -DECLARE_STACK_OF(KRB5_TKTBODY) - -/*- AP-REQ ::= [APPLICATION 14] SEQUENCE { - * pvno[0] INTEGER, - * msg-type[1] INTEGER, - * ap-options[2] APOptions, - * ticket[3] Ticket, - * authenticator[4] EncryptedData - * } - * - * APOptions ::= BIT STRING { - * reserved(0), use-session-key(1), mutual-required(2) } - */ -typedef struct krb5_ap_req_st { - ASN1_INTEGER *pvno; - ASN1_INTEGER *msgtype; - ASN1_BIT_STRING *apoptions; - KRB5_TICKET *ticket; - KRB5_ENCDATA *authenticator; -} KRB5_APREQBODY; - -typedef STACK_OF(KRB5_APREQBODY) KRB5_APREQ; -DECLARE_STACK_OF(KRB5_APREQBODY) - -/* Authenticator Stuff */ - -/*- Checksum ::= SEQUENCE { - * cksumtype[0] INTEGER, - * checksum[1] OCTET STRING - * } - */ -typedef struct krb5_checksum_st { - ASN1_INTEGER *ctype; - ASN1_OCTET_STRING *checksum; -} KRB5_CHECKSUM; - -DECLARE_STACK_OF(KRB5_CHECKSUM) - -/*- EncryptionKey ::= SEQUENCE { - * keytype[0] INTEGER, - * keyvalue[1] OCTET STRING - * } - */ -typedef struct krb5_encryptionkey_st { - ASN1_INTEGER *ktype; - ASN1_OCTET_STRING *keyvalue; -} KRB5_ENCKEY; - -DECLARE_STACK_OF(KRB5_ENCKEY) - -/*- AuthorizationData ::= SEQUENCE OF SEQUENCE { - * ad-type[0] INTEGER, - * ad-data[1] OCTET STRING - * } - */ -typedef struct krb5_authorization_st { - ASN1_INTEGER *adtype; - ASN1_OCTET_STRING *addata; -} KRB5_AUTHDATA; - -DECLARE_STACK_OF(KRB5_AUTHDATA) - -/*- -- Unencrypted authenticator - * Authenticator ::= [APPLICATION 2] SEQUENCE { - * authenticator-vno[0] INTEGER, - * crealm[1] Realm, - * cname[2] PrincipalName, - * cksum[3] Checksum OPTIONAL, - * cusec[4] INTEGER, - * ctime[5] KerberosTime, - * subkey[6] EncryptionKey OPTIONAL, - * seq-number[7] INTEGER OPTIONAL, - * authorization-data[8] AuthorizationData OPTIONAL - * } - */ -typedef struct krb5_authenticator_st { - ASN1_INTEGER *avno; - ASN1_GENERALSTRING *crealm; - KRB5_PRINCNAME *cname; - KRB5_CHECKSUM *cksum; - ASN1_INTEGER *cusec; - ASN1_GENERALIZEDTIME *ctime; - KRB5_ENCKEY *subkey; - ASN1_INTEGER *seqnum; - KRB5_AUTHDATA *authorization; -} KRB5_AUTHENTBODY; - -typedef STACK_OF(KRB5_AUTHENTBODY) KRB5_AUTHENT; -DECLARE_STACK_OF(KRB5_AUTHENTBODY) - -/*- DECLARE_ASN1_FUNCTIONS(type) = DECLARE_ASN1_FUNCTIONS_name(type, type) = - * type *name##_new(void); - * void name##_free(type *a); - * DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) = - * DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) = - * type *d2i_##name(type **a, const unsigned char **in, long len); - * int i2d_##name(type *a, unsigned char **out); - * DECLARE_ASN1_ITEM(itname) = OPENSSL_EXTERN const ASN1_ITEM itname##_it - */ - -DECLARE_ASN1_FUNCTIONS(KRB5_ENCDATA) -DECLARE_ASN1_FUNCTIONS(KRB5_PRINCNAME) -DECLARE_ASN1_FUNCTIONS(KRB5_TKTBODY) -DECLARE_ASN1_FUNCTIONS(KRB5_APREQBODY) -DECLARE_ASN1_FUNCTIONS(KRB5_TICKET) -DECLARE_ASN1_FUNCTIONS(KRB5_APREQ) - -DECLARE_ASN1_FUNCTIONS(KRB5_CHECKSUM) -DECLARE_ASN1_FUNCTIONS(KRB5_ENCKEY) -DECLARE_ASN1_FUNCTIONS(KRB5_AUTHDATA) -DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENTBODY) -DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENT) - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -#ifdef __cplusplus -} -#endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/kssl.h b/submodules/MtProtoKit/openssl/openssl/kssl.h deleted file mode 100644 index ae8a51f472..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/kssl.h +++ /dev/null @@ -1,197 +0,0 @@ -/* ssl/kssl.h */ -/* - * Written by Vern Staats for the OpenSSL project - * 2000. project 2000. - */ -/* ==================================================================== - * Copyright (c) 2000 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -/* - ** 19990701 VRS Started. - */ - -#ifndef KSSL_H -# define KSSL_H - -# include - -# ifndef OPENSSL_NO_KRB5 - -# include -# include -# include -# ifdef OPENSSL_SYS_WIN32 -/* - * These can sometimes get redefined indirectly by krb5 header files after - * they get undefed in ossl_typ.h - */ -# undef X509_NAME -# undef X509_EXTENSIONS -# undef OCSP_REQUEST -# undef OCSP_RESPONSE -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Depending on which KRB5 implementation used, some types from - * the other may be missing. Resolve that here and now - */ -# ifdef KRB5_HEIMDAL -typedef unsigned char krb5_octet; -# define FAR -# else - -# ifndef FAR -# define FAR -# endif - -# endif - -/*- - * Uncomment this to debug kssl problems or - * to trace usage of the Kerberos session key - * - * #define KSSL_DEBUG - */ - -# ifndef KRB5SVC -# define KRB5SVC "host" -# endif - -# ifndef KRB5KEYTAB -# define KRB5KEYTAB "/etc/krb5.keytab" -# endif - -# ifndef KRB5SENDAUTH -# define KRB5SENDAUTH 1 -# endif - -# ifndef KRB5CHECKAUTH -# define KRB5CHECKAUTH 1 -# endif - -# ifndef KSSL_CLOCKSKEW -# define KSSL_CLOCKSKEW 300; -# endif - -# define KSSL_ERR_MAX 255 -typedef struct kssl_err_st { - int reason; - char text[KSSL_ERR_MAX + 1]; -} KSSL_ERR; - -/*- Context for passing - * (1) Kerberos session key to SSL, and - * (2) Config data between application and SSL lib - */ -typedef struct kssl_ctx_st { - /* used by: disposition: */ - char *service_name; /* C,S default ok (kssl) */ - char *service_host; /* C input, REQUIRED */ - char *client_princ; /* S output from krb5 ticket */ - char *keytab_file; /* S NULL (/etc/krb5.keytab) */ - char *cred_cache; /* C NULL (default) */ - krb5_enctype enctype; - int length; - krb5_octet FAR *key; -} KSSL_CTX; - -# define KSSL_CLIENT 1 -# define KSSL_SERVER 2 -# define KSSL_SERVICE 3 -# define KSSL_KEYTAB 4 - -# define KSSL_CTX_OK 0 -# define KSSL_CTX_ERR 1 -# define KSSL_NOMEM 2 - -/* Public (for use by applications that use OpenSSL with Kerberos 5 support */ -krb5_error_code kssl_ctx_setstring(KSSL_CTX *kssl_ctx, int which, char *text); -KSSL_CTX *kssl_ctx_new(void); -KSSL_CTX *kssl_ctx_free(KSSL_CTX *kssl_ctx); -void kssl_ctx_show(KSSL_CTX *kssl_ctx); -krb5_error_code kssl_ctx_setprinc(KSSL_CTX *kssl_ctx, int which, - krb5_data *realm, krb5_data *entity, - int nentities); -krb5_error_code kssl_cget_tkt(KSSL_CTX *kssl_ctx, krb5_data **enc_tktp, - krb5_data *authenp, KSSL_ERR *kssl_err); -krb5_error_code kssl_sget_tkt(KSSL_CTX *kssl_ctx, krb5_data *indata, - krb5_ticket_times *ttimes, KSSL_ERR *kssl_err); -krb5_error_code kssl_ctx_setkey(KSSL_CTX *kssl_ctx, krb5_keyblock *session); -void kssl_err_set(KSSL_ERR *kssl_err, int reason, char *text); -void kssl_krb5_free_data_contents(krb5_context context, krb5_data *data); -krb5_error_code kssl_build_principal_2(krb5_context context, - krb5_principal *princ, int rlen, - const char *realm, int slen, - const char *svc, int hlen, - const char *host); -krb5_error_code kssl_validate_times(krb5_timestamp atime, - krb5_ticket_times *ttimes); -krb5_error_code kssl_check_authent(KSSL_CTX *kssl_ctx, krb5_data *authentp, - krb5_timestamp *atimep, - KSSL_ERR *kssl_err); -unsigned char *kssl_skip_confound(krb5_enctype enctype, unsigned char *authn); - -void SSL_set0_kssl_ctx(SSL *s, KSSL_CTX *kctx); -KSSL_CTX *SSL_get0_kssl_ctx(SSL *s); -char *kssl_ctx_get0_client_princ(KSSL_CTX *kctx); - -#ifdef __cplusplus -} -#endif -# endif /* OPENSSL_NO_KRB5 */ -#endif /* KSSL_H */ diff --git a/submodules/MtProtoKit/openssl/openssl/lhash.h b/submodules/MtProtoKit/openssl/openssl/lhash.h deleted file mode 100644 index 47b99d17fb..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/lhash.h +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * Header for dynamic hash table routines Author - Eric Young - */ - -#ifndef HEADER_LHASH_H -# define HEADER_LHASH_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct lhash_node_st OPENSSL_LH_NODE; -typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); -typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); -typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); -typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); -typedef struct lhash_st OPENSSL_LHASH; - -/* - * Macros for declaring and implementing type-safe wrappers for LHASH - * callbacks. This way, callbacks can be provided to LHASH structures without - * function pointer casting and the macro-defined callbacks provide - * per-variable casting before deferring to the underlying type-specific - * callbacks. NB: It is possible to place a "static" in front of both the - * DECLARE and IMPLEMENT macros if the functions are strictly internal. - */ - -/* First: "hash" functions */ -# define DECLARE_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *); -# define IMPLEMENT_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *arg) { \ - const o_type *a = arg; \ - return name##_hash(a); } -# define LHASH_HASH_FN(name) name##_LHASH_HASH - -/* Second: "compare" functions */ -# define DECLARE_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *, const void *); -# define IMPLEMENT_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *arg1, const void *arg2) { \ - const o_type *a = arg1; \ - const o_type *b = arg2; \ - return name##_cmp(a,b); } -# define LHASH_COMP_FN(name) name##_LHASH_COMP - -/* Fourth: "doall_arg" functions */ -# define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ - void name##_LHASH_DOALL_ARG(void *, void *); -# define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ - void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \ - o_type *a = arg1; \ - a_type *b = arg2; \ - name##_doall_arg(a, b); } -# define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG - - -# define LH_LOAD_MULT 256 - -int OPENSSL_LH_error(OPENSSL_LHASH *lh); -OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); -void OPENSSL_LH_free(OPENSSL_LHASH *lh); -void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); -void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); -void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); -void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); -unsigned long OPENSSL_LH_strhash(const char *c); -unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); -unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); -void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); - -# ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); -# endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define _LHASH OPENSSL_LHASH -# define LHASH_NODE OPENSSL_LH_NODE -# define lh_error OPENSSL_LH_error -# define lh_new OPENSSL_LH_new -# define lh_free OPENSSL_LH_free -# define lh_insert OPENSSL_LH_insert -# define lh_delete OPENSSL_LH_delete -# define lh_retrieve OPENSSL_LH_retrieve -# define lh_doall OPENSSL_LH_doall -# define lh_doall_arg OPENSSL_LH_doall_arg -# define lh_strhash OPENSSL_LH_strhash -# define lh_num_items OPENSSL_LH_num_items -# ifndef OPENSSL_NO_STDIO -# define lh_stats OPENSSL_LH_stats -# define lh_node_stats OPENSSL_LH_node_stats -# define lh_node_usage_stats OPENSSL_LH_node_usage_stats -# endif -# define lh_stats_bio OPENSSL_LH_stats_bio -# define lh_node_stats_bio OPENSSL_LH_node_stats_bio -# define lh_node_usage_stats_bio OPENSSL_LH_node_usage_stats_bio -# endif - -/* Type checking... */ - -# define LHASH_OF(type) struct lhash_st_##type - -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_inline LHASH_OF(type) * \ - lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ - { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ - } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ - { \ - OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ - { \ - return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_unused ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ - { \ - return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_unused ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ - { \ - return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_unused ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_unused ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_unused ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ - } \ - static ossl_unused ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ - { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ - } \ - static ossl_unused ossl_inline void lh_##type##_doall(LHASH_OF(type) *lh, \ - void (*doall)(type *)) \ - { \ - OPENSSL_LH_doall((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNC)doall); \ - } \ - LHASH_OF(type) - -#define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ - int_implement_lhash_doall(type, argtype, const type) - -#define IMPLEMENT_LHASH_DOALL_ARG(type, argtype) \ - int_implement_lhash_doall(type, argtype, type) - -#define int_implement_lhash_doall(type, argtype, cbargtype) \ - static ossl_unused ossl_inline void \ - lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ - void (*fn)(cbargtype *, argtype *), \ - argtype *arg) \ - { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ - } \ - LHASH_OF(type) - -DEFINE_LHASH_OF(OPENSSL_STRING); -# ifdef _MSC_VER -/* - * push and pop this warning: - * warning C4090: 'function': different 'const' qualifiers - */ -# pragma warning (push) -# pragma warning (disable: 4090) -# endif - -DEFINE_LHASH_OF(OPENSSL_CSTRING); - -# ifdef _MSC_VER -# pragma warning (pop) -# endif - -/* - * If called without higher optimization (min. -xO3) the Oracle Developer - * Studio compiler generates code for the defined (static inline) functions - * above. - * This would later lead to the linker complaining about missing symbols when - * this header file is included but the resulting object is not linked against - * the Crypto library (openssl#6912). - */ -# ifdef __SUNPRO_C -# pragma weak OPENSSL_LH_new -# pragma weak OPENSSL_LH_free -# pragma weak OPENSSL_LH_insert -# pragma weak OPENSSL_LH_delete -# pragma weak OPENSSL_LH_retrieve -# pragma weak OPENSSL_LH_error -# pragma weak OPENSSL_LH_num_items -# pragma weak OPENSSL_LH_node_stats_bio -# pragma weak OPENSSL_LH_node_usage_stats_bio -# pragma weak OPENSSL_LH_stats_bio -# pragma weak OPENSSL_LH_get_down_load -# pragma weak OPENSSL_LH_set_down_load -# pragma weak OPENSSL_LH_doall -# pragma weak OPENSSL_LH_doall_arg -# endif /* __SUNPRO_C */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/md2.h b/submodules/MtProtoKit/openssl/openssl/md2.h deleted file mode 100644 index 7faf8e3d65..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/md2.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_MD2_H -# define HEADER_MD2_H - -# include - -# ifndef OPENSSL_NO_MD2 -# include -# ifdef __cplusplus -extern "C" { -# endif - -typedef unsigned char MD2_INT; - -# define MD2_DIGEST_LENGTH 16 -# define MD2_BLOCK 16 - -typedef struct MD2state_st { - unsigned int num; - unsigned char data[MD2_BLOCK]; - MD2_INT cksm[MD2_BLOCK]; - MD2_INT state[MD2_BLOCK]; -} MD2_CTX; - -const char *MD2_options(void); -int MD2_Init(MD2_CTX *c); -int MD2_Update(MD2_CTX *c, const unsigned char *data, size_t len); -int MD2_Final(unsigned char *md, MD2_CTX *c); -unsigned char *MD2(const unsigned char *d, size_t n, unsigned char *md); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/md4.h b/submodules/MtProtoKit/openssl/openssl/md4.h deleted file mode 100644 index 940e29db40..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/md4.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_MD4_H -# define HEADER_MD4_H - -# include - -# ifndef OPENSSL_NO_MD4 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD4_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define MD4_LONG unsigned int - -# define MD4_CBLOCK 64 -# define MD4_LBLOCK (MD4_CBLOCK/4) -# define MD4_DIGEST_LENGTH 16 - -typedef struct MD4state_st { - MD4_LONG A, B, C, D; - MD4_LONG Nl, Nh; - MD4_LONG data[MD4_LBLOCK]; - unsigned int num; -} MD4_CTX; - -int MD4_Init(MD4_CTX *c); -int MD4_Update(MD4_CTX *c, const void *data, size_t len); -int MD4_Final(unsigned char *md, MD4_CTX *c); -unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md); -void MD4_Transform(MD4_CTX *c, const unsigned char *b); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/md5.h b/submodules/MtProtoKit/openssl/openssl/md5.h deleted file mode 100644 index 2deb772118..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/md5.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_MD5_H -# define HEADER_MD5_H - -# include - -# ifndef OPENSSL_NO_MD5 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -/* - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD5_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define MD5_LONG unsigned int - -# define MD5_CBLOCK 64 -# define MD5_LBLOCK (MD5_CBLOCK/4) -# define MD5_DIGEST_LENGTH 16 - -typedef struct MD5state_st { - MD5_LONG A, B, C, D; - MD5_LONG Nl, Nh; - MD5_LONG data[MD5_LBLOCK]; - unsigned int num; -} MD5_CTX; - -int MD5_Init(MD5_CTX *c); -int MD5_Update(MD5_CTX *c, const void *data, size_t len); -int MD5_Final(unsigned char *md, MD5_CTX *c); -unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md); -void MD5_Transform(MD5_CTX *c, const unsigned char *b); -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/mdc2.h b/submodules/MtProtoKit/openssl/openssl/mdc2.h deleted file mode 100644 index aabd2bfaad..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/mdc2.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_MDC2_H -# define HEADER_MDC2_H - -# include - -#ifndef OPENSSL_NO_MDC2 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define MDC2_BLOCK 8 -# define MDC2_DIGEST_LENGTH 16 - -typedef struct mdc2_ctx_st { - unsigned int num; - unsigned char data[MDC2_BLOCK]; - DES_cblock h, hh; - int pad_type; /* either 1 or 2, default 1 */ -} MDC2_CTX; - -int MDC2_Init(MDC2_CTX *c); -int MDC2_Update(MDC2_CTX *c, const unsigned char *data, size_t len); -int MDC2_Final(unsigned char *md, MDC2_CTX *c); -unsigned char *MDC2(const unsigned char *d, size_t n, unsigned char *md); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/modes.h b/submodules/MtProtoKit/openssl/openssl/modes.h deleted file mode 100644 index d544f98d55..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/modes.h +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_MODES_H -# define HEADER_MODES_H - -# include - -# ifdef __cplusplus -extern "C" { -# endif -typedef void (*block128_f) (const unsigned char in[16], - unsigned char out[16], const void *key); - -typedef void (*cbc128_f) (const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int enc); - -typedef void (*ctr128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16]); - -typedef void (*ccm128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16], - unsigned char cmac[16]); - -void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); -void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); - -void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], - unsigned char ecount_buf[16], unsigned int *num, - block128_f block); - -void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], - unsigned char ecount_buf[16], - unsigned int *num, ctr128_f ctr); - -void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - block128_f block); - -void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out, - size_t bits, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); - -size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, unsigned char ivec[16], - block128_f block); -size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, unsigned char ivec[16], - block128_f block); -size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, - unsigned char ivec[16], - block128_f block); -size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, - unsigned char ivec[16], - block128_f block); -size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -typedef struct gcm128_context GCM128_CONTEXT; - -GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block); -void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block); -void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv, - size_t len); -int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad, - size_t len); -int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const unsigned char *tag, - size_t len); -void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len); -void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx); - -typedef struct ccm128_context CCM128_CONTEXT; - -void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx, - unsigned int M, unsigned int L, void *key, - block128_f block); -int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx, const unsigned char *nonce, - size_t nlen, size_t mlen); -void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx, const unsigned char *aad, - size_t alen); -int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len); -int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len); -int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len, - ccm128_f stream); -int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len, - ccm128_f stream); -size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len); - -typedef struct xts128_context XTS128_CONTEXT; - -int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, - const unsigned char iv[16], - const unsigned char *inp, unsigned char *out, - size_t len, int enc); - -size_t CRYPTO_128_wrap(void *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, size_t inlen, - block128_f block); - -size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, size_t inlen, - block128_f block); -size_t CRYPTO_128_wrap_pad(void *key, const unsigned char *icv, - unsigned char *out, const unsigned char *in, - size_t inlen, block128_f block); -size_t CRYPTO_128_unwrap_pad(void *key, const unsigned char *icv, - unsigned char *out, const unsigned char *in, - size_t inlen, block128_f block); - -# ifndef OPENSSL_NO_OCB -typedef struct ocb128_context OCB128_CONTEXT; - -typedef void (*ocb128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - size_t start_block_num, - unsigned char offset_i[16], - const unsigned char L_[][16], - unsigned char checksum[16]); - -OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec, - block128_f encrypt, block128_f decrypt, - ocb128_f stream); -int CRYPTO_ocb128_init(OCB128_CONTEXT *ctx, void *keyenc, void *keydec, - block128_f encrypt, block128_f decrypt, - ocb128_f stream); -int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT *dest, OCB128_CONTEXT *src, - void *keyenc, void *keydec); -int CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv, - size_t len, size_t taglen); -int CRYPTO_ocb128_aad(OCB128_CONTEXT *ctx, const unsigned char *aad, - size_t len); -int CRYPTO_ocb128_encrypt(OCB128_CONTEXT *ctx, const unsigned char *in, - unsigned char *out, size_t len); -int CRYPTO_ocb128_decrypt(OCB128_CONTEXT *ctx, const unsigned char *in, - unsigned char *out, size_t len); -int CRYPTO_ocb128_finish(OCB128_CONTEXT *ctx, const unsigned char *tag, - size_t len); -int CRYPTO_ocb128_tag(OCB128_CONTEXT *ctx, unsigned char *tag, size_t len); -void CRYPTO_ocb128_cleanup(OCB128_CONTEXT *ctx); -# endif /* OPENSSL_NO_OCB */ - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/obj_mac.h b/submodules/MtProtoKit/openssl/openssl/obj_mac.h deleted file mode 100644 index 47dafe48d0..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/obj_mac.h +++ /dev/null @@ -1,5198 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by crypto/objects/objects.pl - * - * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#define SN_undef "UNDEF" -#define LN_undef "undefined" -#define NID_undef 0 -#define OBJ_undef 0L - -#define SN_itu_t "ITU-T" -#define LN_itu_t "itu-t" -#define NID_itu_t 645 -#define OBJ_itu_t 0L - -#define NID_ccitt 404 -#define OBJ_ccitt OBJ_itu_t - -#define SN_iso "ISO" -#define LN_iso "iso" -#define NID_iso 181 -#define OBJ_iso 1L - -#define SN_joint_iso_itu_t "JOINT-ISO-ITU-T" -#define LN_joint_iso_itu_t "joint-iso-itu-t" -#define NID_joint_iso_itu_t 646 -#define OBJ_joint_iso_itu_t 2L - -#define NID_joint_iso_ccitt 393 -#define OBJ_joint_iso_ccitt OBJ_joint_iso_itu_t - -#define SN_member_body "member-body" -#define LN_member_body "ISO Member Body" -#define NID_member_body 182 -#define OBJ_member_body OBJ_iso,2L - -#define SN_identified_organization "identified-organization" -#define NID_identified_organization 676 -#define OBJ_identified_organization OBJ_iso,3L - -#define SN_hmac_md5 "HMAC-MD5" -#define LN_hmac_md5 "hmac-md5" -#define NID_hmac_md5 780 -#define OBJ_hmac_md5 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,1L - -#define SN_hmac_sha1 "HMAC-SHA1" -#define LN_hmac_sha1 "hmac-sha1" -#define NID_hmac_sha1 781 -#define OBJ_hmac_sha1 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,2L - -#define SN_x509ExtAdmission "x509ExtAdmission" -#define LN_x509ExtAdmission "Professional Information or basis for Admission" -#define NID_x509ExtAdmission 1093 -#define OBJ_x509ExtAdmission OBJ_identified_organization,36L,8L,3L,3L - -#define SN_certicom_arc "certicom-arc" -#define NID_certicom_arc 677 -#define OBJ_certicom_arc OBJ_identified_organization,132L - -#define SN_ieee "ieee" -#define NID_ieee 1170 -#define OBJ_ieee OBJ_identified_organization,111L - -#define SN_ieee_siswg "ieee-siswg" -#define LN_ieee_siswg "IEEE Security in Storage Working Group" -#define NID_ieee_siswg 1171 -#define OBJ_ieee_siswg OBJ_ieee,2L,1619L - -#define SN_international_organizations "international-organizations" -#define LN_international_organizations "International Organizations" -#define NID_international_organizations 647 -#define OBJ_international_organizations OBJ_joint_iso_itu_t,23L - -#define SN_wap "wap" -#define NID_wap 678 -#define OBJ_wap OBJ_international_organizations,43L - -#define SN_wap_wsg "wap-wsg" -#define NID_wap_wsg 679 -#define OBJ_wap_wsg OBJ_wap,1L - -#define SN_selected_attribute_types "selected-attribute-types" -#define LN_selected_attribute_types "Selected Attribute Types" -#define NID_selected_attribute_types 394 -#define OBJ_selected_attribute_types OBJ_joint_iso_itu_t,5L,1L,5L - -#define SN_clearance "clearance" -#define NID_clearance 395 -#define OBJ_clearance OBJ_selected_attribute_types,55L - -#define SN_ISO_US "ISO-US" -#define LN_ISO_US "ISO US Member Body" -#define NID_ISO_US 183 -#define OBJ_ISO_US OBJ_member_body,840L - -#define SN_X9_57 "X9-57" -#define LN_X9_57 "X9.57" -#define NID_X9_57 184 -#define OBJ_X9_57 OBJ_ISO_US,10040L - -#define SN_X9cm "X9cm" -#define LN_X9cm "X9.57 CM ?" -#define NID_X9cm 185 -#define OBJ_X9cm OBJ_X9_57,4L - -#define SN_ISO_CN "ISO-CN" -#define LN_ISO_CN "ISO CN Member Body" -#define NID_ISO_CN 1140 -#define OBJ_ISO_CN OBJ_member_body,156L - -#define SN_oscca "oscca" -#define NID_oscca 1141 -#define OBJ_oscca OBJ_ISO_CN,10197L - -#define SN_sm_scheme "sm-scheme" -#define NID_sm_scheme 1142 -#define OBJ_sm_scheme OBJ_oscca,1L - -#define SN_dsa "DSA" -#define LN_dsa "dsaEncryption" -#define NID_dsa 116 -#define OBJ_dsa OBJ_X9cm,1L - -#define SN_dsaWithSHA1 "DSA-SHA1" -#define LN_dsaWithSHA1 "dsaWithSHA1" -#define NID_dsaWithSHA1 113 -#define OBJ_dsaWithSHA1 OBJ_X9cm,3L - -#define SN_ansi_X9_62 "ansi-X9-62" -#define LN_ansi_X9_62 "ANSI X9.62" -#define NID_ansi_X9_62 405 -#define OBJ_ansi_X9_62 OBJ_ISO_US,10045L - -#define OBJ_X9_62_id_fieldType OBJ_ansi_X9_62,1L - -#define SN_X9_62_prime_field "prime-field" -#define NID_X9_62_prime_field 406 -#define OBJ_X9_62_prime_field OBJ_X9_62_id_fieldType,1L - -#define SN_X9_62_characteristic_two_field "characteristic-two-field" -#define NID_X9_62_characteristic_two_field 407 -#define OBJ_X9_62_characteristic_two_field OBJ_X9_62_id_fieldType,2L - -#define SN_X9_62_id_characteristic_two_basis "id-characteristic-two-basis" -#define NID_X9_62_id_characteristic_two_basis 680 -#define OBJ_X9_62_id_characteristic_two_basis OBJ_X9_62_characteristic_two_field,3L - -#define SN_X9_62_onBasis "onBasis" -#define NID_X9_62_onBasis 681 -#define OBJ_X9_62_onBasis OBJ_X9_62_id_characteristic_two_basis,1L - -#define SN_X9_62_tpBasis "tpBasis" -#define NID_X9_62_tpBasis 682 -#define OBJ_X9_62_tpBasis OBJ_X9_62_id_characteristic_two_basis,2L - -#define SN_X9_62_ppBasis "ppBasis" -#define NID_X9_62_ppBasis 683 -#define OBJ_X9_62_ppBasis OBJ_X9_62_id_characteristic_two_basis,3L - -#define OBJ_X9_62_id_publicKeyType OBJ_ansi_X9_62,2L - -#define SN_X9_62_id_ecPublicKey "id-ecPublicKey" -#define NID_X9_62_id_ecPublicKey 408 -#define OBJ_X9_62_id_ecPublicKey OBJ_X9_62_id_publicKeyType,1L - -#define OBJ_X9_62_ellipticCurve OBJ_ansi_X9_62,3L - -#define OBJ_X9_62_c_TwoCurve OBJ_X9_62_ellipticCurve,0L - -#define SN_X9_62_c2pnb163v1 "c2pnb163v1" -#define NID_X9_62_c2pnb163v1 684 -#define OBJ_X9_62_c2pnb163v1 OBJ_X9_62_c_TwoCurve,1L - -#define SN_X9_62_c2pnb163v2 "c2pnb163v2" -#define NID_X9_62_c2pnb163v2 685 -#define OBJ_X9_62_c2pnb163v2 OBJ_X9_62_c_TwoCurve,2L - -#define SN_X9_62_c2pnb163v3 "c2pnb163v3" -#define NID_X9_62_c2pnb163v3 686 -#define OBJ_X9_62_c2pnb163v3 OBJ_X9_62_c_TwoCurve,3L - -#define SN_X9_62_c2pnb176v1 "c2pnb176v1" -#define NID_X9_62_c2pnb176v1 687 -#define OBJ_X9_62_c2pnb176v1 OBJ_X9_62_c_TwoCurve,4L - -#define SN_X9_62_c2tnb191v1 "c2tnb191v1" -#define NID_X9_62_c2tnb191v1 688 -#define OBJ_X9_62_c2tnb191v1 OBJ_X9_62_c_TwoCurve,5L - -#define SN_X9_62_c2tnb191v2 "c2tnb191v2" -#define NID_X9_62_c2tnb191v2 689 -#define OBJ_X9_62_c2tnb191v2 OBJ_X9_62_c_TwoCurve,6L - -#define SN_X9_62_c2tnb191v3 "c2tnb191v3" -#define NID_X9_62_c2tnb191v3 690 -#define OBJ_X9_62_c2tnb191v3 OBJ_X9_62_c_TwoCurve,7L - -#define SN_X9_62_c2onb191v4 "c2onb191v4" -#define NID_X9_62_c2onb191v4 691 -#define OBJ_X9_62_c2onb191v4 OBJ_X9_62_c_TwoCurve,8L - -#define SN_X9_62_c2onb191v5 "c2onb191v5" -#define NID_X9_62_c2onb191v5 692 -#define OBJ_X9_62_c2onb191v5 OBJ_X9_62_c_TwoCurve,9L - -#define SN_X9_62_c2pnb208w1 "c2pnb208w1" -#define NID_X9_62_c2pnb208w1 693 -#define OBJ_X9_62_c2pnb208w1 OBJ_X9_62_c_TwoCurve,10L - -#define SN_X9_62_c2tnb239v1 "c2tnb239v1" -#define NID_X9_62_c2tnb239v1 694 -#define OBJ_X9_62_c2tnb239v1 OBJ_X9_62_c_TwoCurve,11L - -#define SN_X9_62_c2tnb239v2 "c2tnb239v2" -#define NID_X9_62_c2tnb239v2 695 -#define OBJ_X9_62_c2tnb239v2 OBJ_X9_62_c_TwoCurve,12L - -#define SN_X9_62_c2tnb239v3 "c2tnb239v3" -#define NID_X9_62_c2tnb239v3 696 -#define OBJ_X9_62_c2tnb239v3 OBJ_X9_62_c_TwoCurve,13L - -#define SN_X9_62_c2onb239v4 "c2onb239v4" -#define NID_X9_62_c2onb239v4 697 -#define OBJ_X9_62_c2onb239v4 OBJ_X9_62_c_TwoCurve,14L - -#define SN_X9_62_c2onb239v5 "c2onb239v5" -#define NID_X9_62_c2onb239v5 698 -#define OBJ_X9_62_c2onb239v5 OBJ_X9_62_c_TwoCurve,15L - -#define SN_X9_62_c2pnb272w1 "c2pnb272w1" -#define NID_X9_62_c2pnb272w1 699 -#define OBJ_X9_62_c2pnb272w1 OBJ_X9_62_c_TwoCurve,16L - -#define SN_X9_62_c2pnb304w1 "c2pnb304w1" -#define NID_X9_62_c2pnb304w1 700 -#define OBJ_X9_62_c2pnb304w1 OBJ_X9_62_c_TwoCurve,17L - -#define SN_X9_62_c2tnb359v1 "c2tnb359v1" -#define NID_X9_62_c2tnb359v1 701 -#define OBJ_X9_62_c2tnb359v1 OBJ_X9_62_c_TwoCurve,18L - -#define SN_X9_62_c2pnb368w1 "c2pnb368w1" -#define NID_X9_62_c2pnb368w1 702 -#define OBJ_X9_62_c2pnb368w1 OBJ_X9_62_c_TwoCurve,19L - -#define SN_X9_62_c2tnb431r1 "c2tnb431r1" -#define NID_X9_62_c2tnb431r1 703 -#define OBJ_X9_62_c2tnb431r1 OBJ_X9_62_c_TwoCurve,20L - -#define OBJ_X9_62_primeCurve OBJ_X9_62_ellipticCurve,1L - -#define SN_X9_62_prime192v1 "prime192v1" -#define NID_X9_62_prime192v1 409 -#define OBJ_X9_62_prime192v1 OBJ_X9_62_primeCurve,1L - -#define SN_X9_62_prime192v2 "prime192v2" -#define NID_X9_62_prime192v2 410 -#define OBJ_X9_62_prime192v2 OBJ_X9_62_primeCurve,2L - -#define SN_X9_62_prime192v3 "prime192v3" -#define NID_X9_62_prime192v3 411 -#define OBJ_X9_62_prime192v3 OBJ_X9_62_primeCurve,3L - -#define SN_X9_62_prime239v1 "prime239v1" -#define NID_X9_62_prime239v1 412 -#define OBJ_X9_62_prime239v1 OBJ_X9_62_primeCurve,4L - -#define SN_X9_62_prime239v2 "prime239v2" -#define NID_X9_62_prime239v2 413 -#define OBJ_X9_62_prime239v2 OBJ_X9_62_primeCurve,5L - -#define SN_X9_62_prime239v3 "prime239v3" -#define NID_X9_62_prime239v3 414 -#define OBJ_X9_62_prime239v3 OBJ_X9_62_primeCurve,6L - -#define SN_X9_62_prime256v1 "prime256v1" -#define NID_X9_62_prime256v1 415 -#define OBJ_X9_62_prime256v1 OBJ_X9_62_primeCurve,7L - -#define OBJ_X9_62_id_ecSigType OBJ_ansi_X9_62,4L - -#define SN_ecdsa_with_SHA1 "ecdsa-with-SHA1" -#define NID_ecdsa_with_SHA1 416 -#define OBJ_ecdsa_with_SHA1 OBJ_X9_62_id_ecSigType,1L - -#define SN_ecdsa_with_Recommended "ecdsa-with-Recommended" -#define NID_ecdsa_with_Recommended 791 -#define OBJ_ecdsa_with_Recommended OBJ_X9_62_id_ecSigType,2L - -#define SN_ecdsa_with_Specified "ecdsa-with-Specified" -#define NID_ecdsa_with_Specified 792 -#define OBJ_ecdsa_with_Specified OBJ_X9_62_id_ecSigType,3L - -#define SN_ecdsa_with_SHA224 "ecdsa-with-SHA224" -#define NID_ecdsa_with_SHA224 793 -#define OBJ_ecdsa_with_SHA224 OBJ_ecdsa_with_Specified,1L - -#define SN_ecdsa_with_SHA256 "ecdsa-with-SHA256" -#define NID_ecdsa_with_SHA256 794 -#define OBJ_ecdsa_with_SHA256 OBJ_ecdsa_with_Specified,2L - -#define SN_ecdsa_with_SHA384 "ecdsa-with-SHA384" -#define NID_ecdsa_with_SHA384 795 -#define OBJ_ecdsa_with_SHA384 OBJ_ecdsa_with_Specified,3L - -#define SN_ecdsa_with_SHA512 "ecdsa-with-SHA512" -#define NID_ecdsa_with_SHA512 796 -#define OBJ_ecdsa_with_SHA512 OBJ_ecdsa_with_Specified,4L - -#define OBJ_secg_ellipticCurve OBJ_certicom_arc,0L - -#define SN_secp112r1 "secp112r1" -#define NID_secp112r1 704 -#define OBJ_secp112r1 OBJ_secg_ellipticCurve,6L - -#define SN_secp112r2 "secp112r2" -#define NID_secp112r2 705 -#define OBJ_secp112r2 OBJ_secg_ellipticCurve,7L - -#define SN_secp128r1 "secp128r1" -#define NID_secp128r1 706 -#define OBJ_secp128r1 OBJ_secg_ellipticCurve,28L - -#define SN_secp128r2 "secp128r2" -#define NID_secp128r2 707 -#define OBJ_secp128r2 OBJ_secg_ellipticCurve,29L - -#define SN_secp160k1 "secp160k1" -#define NID_secp160k1 708 -#define OBJ_secp160k1 OBJ_secg_ellipticCurve,9L - -#define SN_secp160r1 "secp160r1" -#define NID_secp160r1 709 -#define OBJ_secp160r1 OBJ_secg_ellipticCurve,8L - -#define SN_secp160r2 "secp160r2" -#define NID_secp160r2 710 -#define OBJ_secp160r2 OBJ_secg_ellipticCurve,30L - -#define SN_secp192k1 "secp192k1" -#define NID_secp192k1 711 -#define OBJ_secp192k1 OBJ_secg_ellipticCurve,31L - -#define SN_secp224k1 "secp224k1" -#define NID_secp224k1 712 -#define OBJ_secp224k1 OBJ_secg_ellipticCurve,32L - -#define SN_secp224r1 "secp224r1" -#define NID_secp224r1 713 -#define OBJ_secp224r1 OBJ_secg_ellipticCurve,33L - -#define SN_secp256k1 "secp256k1" -#define NID_secp256k1 714 -#define OBJ_secp256k1 OBJ_secg_ellipticCurve,10L - -#define SN_secp384r1 "secp384r1" -#define NID_secp384r1 715 -#define OBJ_secp384r1 OBJ_secg_ellipticCurve,34L - -#define SN_secp521r1 "secp521r1" -#define NID_secp521r1 716 -#define OBJ_secp521r1 OBJ_secg_ellipticCurve,35L - -#define SN_sect113r1 "sect113r1" -#define NID_sect113r1 717 -#define OBJ_sect113r1 OBJ_secg_ellipticCurve,4L - -#define SN_sect113r2 "sect113r2" -#define NID_sect113r2 718 -#define OBJ_sect113r2 OBJ_secg_ellipticCurve,5L - -#define SN_sect131r1 "sect131r1" -#define NID_sect131r1 719 -#define OBJ_sect131r1 OBJ_secg_ellipticCurve,22L - -#define SN_sect131r2 "sect131r2" -#define NID_sect131r2 720 -#define OBJ_sect131r2 OBJ_secg_ellipticCurve,23L - -#define SN_sect163k1 "sect163k1" -#define NID_sect163k1 721 -#define OBJ_sect163k1 OBJ_secg_ellipticCurve,1L - -#define SN_sect163r1 "sect163r1" -#define NID_sect163r1 722 -#define OBJ_sect163r1 OBJ_secg_ellipticCurve,2L - -#define SN_sect163r2 "sect163r2" -#define NID_sect163r2 723 -#define OBJ_sect163r2 OBJ_secg_ellipticCurve,15L - -#define SN_sect193r1 "sect193r1" -#define NID_sect193r1 724 -#define OBJ_sect193r1 OBJ_secg_ellipticCurve,24L - -#define SN_sect193r2 "sect193r2" -#define NID_sect193r2 725 -#define OBJ_sect193r2 OBJ_secg_ellipticCurve,25L - -#define SN_sect233k1 "sect233k1" -#define NID_sect233k1 726 -#define OBJ_sect233k1 OBJ_secg_ellipticCurve,26L - -#define SN_sect233r1 "sect233r1" -#define NID_sect233r1 727 -#define OBJ_sect233r1 OBJ_secg_ellipticCurve,27L - -#define SN_sect239k1 "sect239k1" -#define NID_sect239k1 728 -#define OBJ_sect239k1 OBJ_secg_ellipticCurve,3L - -#define SN_sect283k1 "sect283k1" -#define NID_sect283k1 729 -#define OBJ_sect283k1 OBJ_secg_ellipticCurve,16L - -#define SN_sect283r1 "sect283r1" -#define NID_sect283r1 730 -#define OBJ_sect283r1 OBJ_secg_ellipticCurve,17L - -#define SN_sect409k1 "sect409k1" -#define NID_sect409k1 731 -#define OBJ_sect409k1 OBJ_secg_ellipticCurve,36L - -#define SN_sect409r1 "sect409r1" -#define NID_sect409r1 732 -#define OBJ_sect409r1 OBJ_secg_ellipticCurve,37L - -#define SN_sect571k1 "sect571k1" -#define NID_sect571k1 733 -#define OBJ_sect571k1 OBJ_secg_ellipticCurve,38L - -#define SN_sect571r1 "sect571r1" -#define NID_sect571r1 734 -#define OBJ_sect571r1 OBJ_secg_ellipticCurve,39L - -#define OBJ_wap_wsg_idm_ecid OBJ_wap_wsg,4L - -#define SN_wap_wsg_idm_ecid_wtls1 "wap-wsg-idm-ecid-wtls1" -#define NID_wap_wsg_idm_ecid_wtls1 735 -#define OBJ_wap_wsg_idm_ecid_wtls1 OBJ_wap_wsg_idm_ecid,1L - -#define SN_wap_wsg_idm_ecid_wtls3 "wap-wsg-idm-ecid-wtls3" -#define NID_wap_wsg_idm_ecid_wtls3 736 -#define OBJ_wap_wsg_idm_ecid_wtls3 OBJ_wap_wsg_idm_ecid,3L - -#define SN_wap_wsg_idm_ecid_wtls4 "wap-wsg-idm-ecid-wtls4" -#define NID_wap_wsg_idm_ecid_wtls4 737 -#define OBJ_wap_wsg_idm_ecid_wtls4 OBJ_wap_wsg_idm_ecid,4L - -#define SN_wap_wsg_idm_ecid_wtls5 "wap-wsg-idm-ecid-wtls5" -#define NID_wap_wsg_idm_ecid_wtls5 738 -#define OBJ_wap_wsg_idm_ecid_wtls5 OBJ_wap_wsg_idm_ecid,5L - -#define SN_wap_wsg_idm_ecid_wtls6 "wap-wsg-idm-ecid-wtls6" -#define NID_wap_wsg_idm_ecid_wtls6 739 -#define OBJ_wap_wsg_idm_ecid_wtls6 OBJ_wap_wsg_idm_ecid,6L - -#define SN_wap_wsg_idm_ecid_wtls7 "wap-wsg-idm-ecid-wtls7" -#define NID_wap_wsg_idm_ecid_wtls7 740 -#define OBJ_wap_wsg_idm_ecid_wtls7 OBJ_wap_wsg_idm_ecid,7L - -#define SN_wap_wsg_idm_ecid_wtls8 "wap-wsg-idm-ecid-wtls8" -#define NID_wap_wsg_idm_ecid_wtls8 741 -#define OBJ_wap_wsg_idm_ecid_wtls8 OBJ_wap_wsg_idm_ecid,8L - -#define SN_wap_wsg_idm_ecid_wtls9 "wap-wsg-idm-ecid-wtls9" -#define NID_wap_wsg_idm_ecid_wtls9 742 -#define OBJ_wap_wsg_idm_ecid_wtls9 OBJ_wap_wsg_idm_ecid,9L - -#define SN_wap_wsg_idm_ecid_wtls10 "wap-wsg-idm-ecid-wtls10" -#define NID_wap_wsg_idm_ecid_wtls10 743 -#define OBJ_wap_wsg_idm_ecid_wtls10 OBJ_wap_wsg_idm_ecid,10L - -#define SN_wap_wsg_idm_ecid_wtls11 "wap-wsg-idm-ecid-wtls11" -#define NID_wap_wsg_idm_ecid_wtls11 744 -#define OBJ_wap_wsg_idm_ecid_wtls11 OBJ_wap_wsg_idm_ecid,11L - -#define SN_wap_wsg_idm_ecid_wtls12 "wap-wsg-idm-ecid-wtls12" -#define NID_wap_wsg_idm_ecid_wtls12 745 -#define OBJ_wap_wsg_idm_ecid_wtls12 OBJ_wap_wsg_idm_ecid,12L - -#define SN_cast5_cbc "CAST5-CBC" -#define LN_cast5_cbc "cast5-cbc" -#define NID_cast5_cbc 108 -#define OBJ_cast5_cbc OBJ_ISO_US,113533L,7L,66L,10L - -#define SN_cast5_ecb "CAST5-ECB" -#define LN_cast5_ecb "cast5-ecb" -#define NID_cast5_ecb 109 - -#define SN_cast5_cfb64 "CAST5-CFB" -#define LN_cast5_cfb64 "cast5-cfb" -#define NID_cast5_cfb64 110 - -#define SN_cast5_ofb64 "CAST5-OFB" -#define LN_cast5_ofb64 "cast5-ofb" -#define NID_cast5_ofb64 111 - -#define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" -#define NID_pbeWithMD5AndCast5_CBC 112 -#define OBJ_pbeWithMD5AndCast5_CBC OBJ_ISO_US,113533L,7L,66L,12L - -#define SN_id_PasswordBasedMAC "id-PasswordBasedMAC" -#define LN_id_PasswordBasedMAC "password based MAC" -#define NID_id_PasswordBasedMAC 782 -#define OBJ_id_PasswordBasedMAC OBJ_ISO_US,113533L,7L,66L,13L - -#define SN_id_DHBasedMac "id-DHBasedMac" -#define LN_id_DHBasedMac "Diffie-Hellman based MAC" -#define NID_id_DHBasedMac 783 -#define OBJ_id_DHBasedMac OBJ_ISO_US,113533L,7L,66L,30L - -#define SN_rsadsi "rsadsi" -#define LN_rsadsi "RSA Data Security, Inc." -#define NID_rsadsi 1 -#define OBJ_rsadsi OBJ_ISO_US,113549L - -#define SN_pkcs "pkcs" -#define LN_pkcs "RSA Data Security, Inc. PKCS" -#define NID_pkcs 2 -#define OBJ_pkcs OBJ_rsadsi,1L - -#define SN_pkcs1 "pkcs1" -#define NID_pkcs1 186 -#define OBJ_pkcs1 OBJ_pkcs,1L - -#define LN_rsaEncryption "rsaEncryption" -#define NID_rsaEncryption 6 -#define OBJ_rsaEncryption OBJ_pkcs1,1L - -#define SN_md2WithRSAEncryption "RSA-MD2" -#define LN_md2WithRSAEncryption "md2WithRSAEncryption" -#define NID_md2WithRSAEncryption 7 -#define OBJ_md2WithRSAEncryption OBJ_pkcs1,2L - -#define SN_md4WithRSAEncryption "RSA-MD4" -#define LN_md4WithRSAEncryption "md4WithRSAEncryption" -#define NID_md4WithRSAEncryption 396 -#define OBJ_md4WithRSAEncryption OBJ_pkcs1,3L - -#define SN_md5WithRSAEncryption "RSA-MD5" -#define LN_md5WithRSAEncryption "md5WithRSAEncryption" -#define NID_md5WithRSAEncryption 8 -#define OBJ_md5WithRSAEncryption OBJ_pkcs1,4L - -#define SN_sha1WithRSAEncryption "RSA-SHA1" -#define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" -#define NID_sha1WithRSAEncryption 65 -#define OBJ_sha1WithRSAEncryption OBJ_pkcs1,5L - -#define SN_rsaesOaep "RSAES-OAEP" -#define LN_rsaesOaep "rsaesOaep" -#define NID_rsaesOaep 919 -#define OBJ_rsaesOaep OBJ_pkcs1,7L - -#define SN_mgf1 "MGF1" -#define LN_mgf1 "mgf1" -#define NID_mgf1 911 -#define OBJ_mgf1 OBJ_pkcs1,8L - -#define SN_pSpecified "PSPECIFIED" -#define LN_pSpecified "pSpecified" -#define NID_pSpecified 935 -#define OBJ_pSpecified OBJ_pkcs1,9L - -#define SN_rsassaPss "RSASSA-PSS" -#define LN_rsassaPss "rsassaPss" -#define NID_rsassaPss 912 -#define OBJ_rsassaPss OBJ_pkcs1,10L - -#define SN_sha256WithRSAEncryption "RSA-SHA256" -#define LN_sha256WithRSAEncryption "sha256WithRSAEncryption" -#define NID_sha256WithRSAEncryption 668 -#define OBJ_sha256WithRSAEncryption OBJ_pkcs1,11L - -#define SN_sha384WithRSAEncryption "RSA-SHA384" -#define LN_sha384WithRSAEncryption "sha384WithRSAEncryption" -#define NID_sha384WithRSAEncryption 669 -#define OBJ_sha384WithRSAEncryption OBJ_pkcs1,12L - -#define SN_sha512WithRSAEncryption "RSA-SHA512" -#define LN_sha512WithRSAEncryption "sha512WithRSAEncryption" -#define NID_sha512WithRSAEncryption 670 -#define OBJ_sha512WithRSAEncryption OBJ_pkcs1,13L - -#define SN_sha224WithRSAEncryption "RSA-SHA224" -#define LN_sha224WithRSAEncryption "sha224WithRSAEncryption" -#define NID_sha224WithRSAEncryption 671 -#define OBJ_sha224WithRSAEncryption OBJ_pkcs1,14L - -#define SN_sha512_224WithRSAEncryption "RSA-SHA512/224" -#define LN_sha512_224WithRSAEncryption "sha512-224WithRSAEncryption" -#define NID_sha512_224WithRSAEncryption 1145 -#define OBJ_sha512_224WithRSAEncryption OBJ_pkcs1,15L - -#define SN_sha512_256WithRSAEncryption "RSA-SHA512/256" -#define LN_sha512_256WithRSAEncryption "sha512-256WithRSAEncryption" -#define NID_sha512_256WithRSAEncryption 1146 -#define OBJ_sha512_256WithRSAEncryption OBJ_pkcs1,16L - -#define SN_pkcs3 "pkcs3" -#define NID_pkcs3 27 -#define OBJ_pkcs3 OBJ_pkcs,3L - -#define LN_dhKeyAgreement "dhKeyAgreement" -#define NID_dhKeyAgreement 28 -#define OBJ_dhKeyAgreement OBJ_pkcs3,1L - -#define SN_pkcs5 "pkcs5" -#define NID_pkcs5 187 -#define OBJ_pkcs5 OBJ_pkcs,5L - -#define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" -#define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" -#define NID_pbeWithMD2AndDES_CBC 9 -#define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs5,1L - -#define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" -#define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" -#define NID_pbeWithMD5AndDES_CBC 10 -#define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs5,3L - -#define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" -#define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" -#define NID_pbeWithMD2AndRC2_CBC 168 -#define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs5,4L - -#define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" -#define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" -#define NID_pbeWithMD5AndRC2_CBC 169 -#define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs5,6L - -#define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" -#define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" -#define NID_pbeWithSHA1AndDES_CBC 170 -#define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs5,10L - -#define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" -#define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" -#define NID_pbeWithSHA1AndRC2_CBC 68 -#define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs5,11L - -#define LN_id_pbkdf2 "PBKDF2" -#define NID_id_pbkdf2 69 -#define OBJ_id_pbkdf2 OBJ_pkcs5,12L - -#define LN_pbes2 "PBES2" -#define NID_pbes2 161 -#define OBJ_pbes2 OBJ_pkcs5,13L - -#define LN_pbmac1 "PBMAC1" -#define NID_pbmac1 162 -#define OBJ_pbmac1 OBJ_pkcs5,14L - -#define SN_pkcs7 "pkcs7" -#define NID_pkcs7 20 -#define OBJ_pkcs7 OBJ_pkcs,7L - -#define LN_pkcs7_data "pkcs7-data" -#define NID_pkcs7_data 21 -#define OBJ_pkcs7_data OBJ_pkcs7,1L - -#define LN_pkcs7_signed "pkcs7-signedData" -#define NID_pkcs7_signed 22 -#define OBJ_pkcs7_signed OBJ_pkcs7,2L - -#define LN_pkcs7_enveloped "pkcs7-envelopedData" -#define NID_pkcs7_enveloped 23 -#define OBJ_pkcs7_enveloped OBJ_pkcs7,3L - -#define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" -#define NID_pkcs7_signedAndEnveloped 24 -#define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L - -#define LN_pkcs7_digest "pkcs7-digestData" -#define NID_pkcs7_digest 25 -#define OBJ_pkcs7_digest OBJ_pkcs7,5L - -#define LN_pkcs7_encrypted "pkcs7-encryptedData" -#define NID_pkcs7_encrypted 26 -#define OBJ_pkcs7_encrypted OBJ_pkcs7,6L - -#define SN_pkcs9 "pkcs9" -#define NID_pkcs9 47 -#define OBJ_pkcs9 OBJ_pkcs,9L - -#define LN_pkcs9_emailAddress "emailAddress" -#define NID_pkcs9_emailAddress 48 -#define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L - -#define LN_pkcs9_unstructuredName "unstructuredName" -#define NID_pkcs9_unstructuredName 49 -#define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L - -#define LN_pkcs9_contentType "contentType" -#define NID_pkcs9_contentType 50 -#define OBJ_pkcs9_contentType OBJ_pkcs9,3L - -#define LN_pkcs9_messageDigest "messageDigest" -#define NID_pkcs9_messageDigest 51 -#define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L - -#define LN_pkcs9_signingTime "signingTime" -#define NID_pkcs9_signingTime 52 -#define OBJ_pkcs9_signingTime OBJ_pkcs9,5L - -#define LN_pkcs9_countersignature "countersignature" -#define NID_pkcs9_countersignature 53 -#define OBJ_pkcs9_countersignature OBJ_pkcs9,6L - -#define LN_pkcs9_challengePassword "challengePassword" -#define NID_pkcs9_challengePassword 54 -#define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L - -#define LN_pkcs9_unstructuredAddress "unstructuredAddress" -#define NID_pkcs9_unstructuredAddress 55 -#define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L - -#define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" -#define NID_pkcs9_extCertAttributes 56 -#define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L - -#define SN_ext_req "extReq" -#define LN_ext_req "Extension Request" -#define NID_ext_req 172 -#define OBJ_ext_req OBJ_pkcs9,14L - -#define SN_SMIMECapabilities "SMIME-CAPS" -#define LN_SMIMECapabilities "S/MIME Capabilities" -#define NID_SMIMECapabilities 167 -#define OBJ_SMIMECapabilities OBJ_pkcs9,15L - -#define SN_SMIME "SMIME" -#define LN_SMIME "S/MIME" -#define NID_SMIME 188 -#define OBJ_SMIME OBJ_pkcs9,16L - -#define SN_id_smime_mod "id-smime-mod" -#define NID_id_smime_mod 189 -#define OBJ_id_smime_mod OBJ_SMIME,0L - -#define SN_id_smime_ct "id-smime-ct" -#define NID_id_smime_ct 190 -#define OBJ_id_smime_ct OBJ_SMIME,1L - -#define SN_id_smime_aa "id-smime-aa" -#define NID_id_smime_aa 191 -#define OBJ_id_smime_aa OBJ_SMIME,2L - -#define SN_id_smime_alg "id-smime-alg" -#define NID_id_smime_alg 192 -#define OBJ_id_smime_alg OBJ_SMIME,3L - -#define SN_id_smime_cd "id-smime-cd" -#define NID_id_smime_cd 193 -#define OBJ_id_smime_cd OBJ_SMIME,4L - -#define SN_id_smime_spq "id-smime-spq" -#define NID_id_smime_spq 194 -#define OBJ_id_smime_spq OBJ_SMIME,5L - -#define SN_id_smime_cti "id-smime-cti" -#define NID_id_smime_cti 195 -#define OBJ_id_smime_cti OBJ_SMIME,6L - -#define SN_id_smime_mod_cms "id-smime-mod-cms" -#define NID_id_smime_mod_cms 196 -#define OBJ_id_smime_mod_cms OBJ_id_smime_mod,1L - -#define SN_id_smime_mod_ess "id-smime-mod-ess" -#define NID_id_smime_mod_ess 197 -#define OBJ_id_smime_mod_ess OBJ_id_smime_mod,2L - -#define SN_id_smime_mod_oid "id-smime-mod-oid" -#define NID_id_smime_mod_oid 198 -#define OBJ_id_smime_mod_oid OBJ_id_smime_mod,3L - -#define SN_id_smime_mod_msg_v3 "id-smime-mod-msg-v3" -#define NID_id_smime_mod_msg_v3 199 -#define OBJ_id_smime_mod_msg_v3 OBJ_id_smime_mod,4L - -#define SN_id_smime_mod_ets_eSignature_88 "id-smime-mod-ets-eSignature-88" -#define NID_id_smime_mod_ets_eSignature_88 200 -#define OBJ_id_smime_mod_ets_eSignature_88 OBJ_id_smime_mod,5L - -#define SN_id_smime_mod_ets_eSignature_97 "id-smime-mod-ets-eSignature-97" -#define NID_id_smime_mod_ets_eSignature_97 201 -#define OBJ_id_smime_mod_ets_eSignature_97 OBJ_id_smime_mod,6L - -#define SN_id_smime_mod_ets_eSigPolicy_88 "id-smime-mod-ets-eSigPolicy-88" -#define NID_id_smime_mod_ets_eSigPolicy_88 202 -#define OBJ_id_smime_mod_ets_eSigPolicy_88 OBJ_id_smime_mod,7L - -#define SN_id_smime_mod_ets_eSigPolicy_97 "id-smime-mod-ets-eSigPolicy-97" -#define NID_id_smime_mod_ets_eSigPolicy_97 203 -#define OBJ_id_smime_mod_ets_eSigPolicy_97 OBJ_id_smime_mod,8L - -#define SN_id_smime_ct_receipt "id-smime-ct-receipt" -#define NID_id_smime_ct_receipt 204 -#define OBJ_id_smime_ct_receipt OBJ_id_smime_ct,1L - -#define SN_id_smime_ct_authData "id-smime-ct-authData" -#define NID_id_smime_ct_authData 205 -#define OBJ_id_smime_ct_authData OBJ_id_smime_ct,2L - -#define SN_id_smime_ct_publishCert "id-smime-ct-publishCert" -#define NID_id_smime_ct_publishCert 206 -#define OBJ_id_smime_ct_publishCert OBJ_id_smime_ct,3L - -#define SN_id_smime_ct_TSTInfo "id-smime-ct-TSTInfo" -#define NID_id_smime_ct_TSTInfo 207 -#define OBJ_id_smime_ct_TSTInfo OBJ_id_smime_ct,4L - -#define SN_id_smime_ct_TDTInfo "id-smime-ct-TDTInfo" -#define NID_id_smime_ct_TDTInfo 208 -#define OBJ_id_smime_ct_TDTInfo OBJ_id_smime_ct,5L - -#define SN_id_smime_ct_contentInfo "id-smime-ct-contentInfo" -#define NID_id_smime_ct_contentInfo 209 -#define OBJ_id_smime_ct_contentInfo OBJ_id_smime_ct,6L - -#define SN_id_smime_ct_DVCSRequestData "id-smime-ct-DVCSRequestData" -#define NID_id_smime_ct_DVCSRequestData 210 -#define OBJ_id_smime_ct_DVCSRequestData OBJ_id_smime_ct,7L - -#define SN_id_smime_ct_DVCSResponseData "id-smime-ct-DVCSResponseData" -#define NID_id_smime_ct_DVCSResponseData 211 -#define OBJ_id_smime_ct_DVCSResponseData OBJ_id_smime_ct,8L - -#define SN_id_smime_ct_compressedData "id-smime-ct-compressedData" -#define NID_id_smime_ct_compressedData 786 -#define OBJ_id_smime_ct_compressedData OBJ_id_smime_ct,9L - -#define SN_id_smime_ct_contentCollection "id-smime-ct-contentCollection" -#define NID_id_smime_ct_contentCollection 1058 -#define OBJ_id_smime_ct_contentCollection OBJ_id_smime_ct,19L - -#define SN_id_smime_ct_authEnvelopedData "id-smime-ct-authEnvelopedData" -#define NID_id_smime_ct_authEnvelopedData 1059 -#define OBJ_id_smime_ct_authEnvelopedData OBJ_id_smime_ct,23L - -#define SN_id_ct_asciiTextWithCRLF "id-ct-asciiTextWithCRLF" -#define NID_id_ct_asciiTextWithCRLF 787 -#define OBJ_id_ct_asciiTextWithCRLF OBJ_id_smime_ct,27L - -#define SN_id_ct_xml "id-ct-xml" -#define NID_id_ct_xml 1060 -#define OBJ_id_ct_xml OBJ_id_smime_ct,28L - -#define SN_id_smime_aa_receiptRequest "id-smime-aa-receiptRequest" -#define NID_id_smime_aa_receiptRequest 212 -#define OBJ_id_smime_aa_receiptRequest OBJ_id_smime_aa,1L - -#define SN_id_smime_aa_securityLabel "id-smime-aa-securityLabel" -#define NID_id_smime_aa_securityLabel 213 -#define OBJ_id_smime_aa_securityLabel OBJ_id_smime_aa,2L - -#define SN_id_smime_aa_mlExpandHistory "id-smime-aa-mlExpandHistory" -#define NID_id_smime_aa_mlExpandHistory 214 -#define OBJ_id_smime_aa_mlExpandHistory OBJ_id_smime_aa,3L - -#define SN_id_smime_aa_contentHint "id-smime-aa-contentHint" -#define NID_id_smime_aa_contentHint 215 -#define OBJ_id_smime_aa_contentHint OBJ_id_smime_aa,4L - -#define SN_id_smime_aa_msgSigDigest "id-smime-aa-msgSigDigest" -#define NID_id_smime_aa_msgSigDigest 216 -#define OBJ_id_smime_aa_msgSigDigest OBJ_id_smime_aa,5L - -#define SN_id_smime_aa_encapContentType "id-smime-aa-encapContentType" -#define NID_id_smime_aa_encapContentType 217 -#define OBJ_id_smime_aa_encapContentType OBJ_id_smime_aa,6L - -#define SN_id_smime_aa_contentIdentifier "id-smime-aa-contentIdentifier" -#define NID_id_smime_aa_contentIdentifier 218 -#define OBJ_id_smime_aa_contentIdentifier OBJ_id_smime_aa,7L - -#define SN_id_smime_aa_macValue "id-smime-aa-macValue" -#define NID_id_smime_aa_macValue 219 -#define OBJ_id_smime_aa_macValue OBJ_id_smime_aa,8L - -#define SN_id_smime_aa_equivalentLabels "id-smime-aa-equivalentLabels" -#define NID_id_smime_aa_equivalentLabels 220 -#define OBJ_id_smime_aa_equivalentLabels OBJ_id_smime_aa,9L - -#define SN_id_smime_aa_contentReference "id-smime-aa-contentReference" -#define NID_id_smime_aa_contentReference 221 -#define OBJ_id_smime_aa_contentReference OBJ_id_smime_aa,10L - -#define SN_id_smime_aa_encrypKeyPref "id-smime-aa-encrypKeyPref" -#define NID_id_smime_aa_encrypKeyPref 222 -#define OBJ_id_smime_aa_encrypKeyPref OBJ_id_smime_aa,11L - -#define SN_id_smime_aa_signingCertificate "id-smime-aa-signingCertificate" -#define NID_id_smime_aa_signingCertificate 223 -#define OBJ_id_smime_aa_signingCertificate OBJ_id_smime_aa,12L - -#define SN_id_smime_aa_smimeEncryptCerts "id-smime-aa-smimeEncryptCerts" -#define NID_id_smime_aa_smimeEncryptCerts 224 -#define OBJ_id_smime_aa_smimeEncryptCerts OBJ_id_smime_aa,13L - -#define SN_id_smime_aa_timeStampToken "id-smime-aa-timeStampToken" -#define NID_id_smime_aa_timeStampToken 225 -#define OBJ_id_smime_aa_timeStampToken OBJ_id_smime_aa,14L - -#define SN_id_smime_aa_ets_sigPolicyId "id-smime-aa-ets-sigPolicyId" -#define NID_id_smime_aa_ets_sigPolicyId 226 -#define OBJ_id_smime_aa_ets_sigPolicyId OBJ_id_smime_aa,15L - -#define SN_id_smime_aa_ets_commitmentType "id-smime-aa-ets-commitmentType" -#define NID_id_smime_aa_ets_commitmentType 227 -#define OBJ_id_smime_aa_ets_commitmentType OBJ_id_smime_aa,16L - -#define SN_id_smime_aa_ets_signerLocation "id-smime-aa-ets-signerLocation" -#define NID_id_smime_aa_ets_signerLocation 228 -#define OBJ_id_smime_aa_ets_signerLocation OBJ_id_smime_aa,17L - -#define SN_id_smime_aa_ets_signerAttr "id-smime-aa-ets-signerAttr" -#define NID_id_smime_aa_ets_signerAttr 229 -#define OBJ_id_smime_aa_ets_signerAttr OBJ_id_smime_aa,18L - -#define SN_id_smime_aa_ets_otherSigCert "id-smime-aa-ets-otherSigCert" -#define NID_id_smime_aa_ets_otherSigCert 230 -#define OBJ_id_smime_aa_ets_otherSigCert OBJ_id_smime_aa,19L - -#define SN_id_smime_aa_ets_contentTimestamp "id-smime-aa-ets-contentTimestamp" -#define NID_id_smime_aa_ets_contentTimestamp 231 -#define OBJ_id_smime_aa_ets_contentTimestamp OBJ_id_smime_aa,20L - -#define SN_id_smime_aa_ets_CertificateRefs "id-smime-aa-ets-CertificateRefs" -#define NID_id_smime_aa_ets_CertificateRefs 232 -#define OBJ_id_smime_aa_ets_CertificateRefs OBJ_id_smime_aa,21L - -#define SN_id_smime_aa_ets_RevocationRefs "id-smime-aa-ets-RevocationRefs" -#define NID_id_smime_aa_ets_RevocationRefs 233 -#define OBJ_id_smime_aa_ets_RevocationRefs OBJ_id_smime_aa,22L - -#define SN_id_smime_aa_ets_certValues "id-smime-aa-ets-certValues" -#define NID_id_smime_aa_ets_certValues 234 -#define OBJ_id_smime_aa_ets_certValues OBJ_id_smime_aa,23L - -#define SN_id_smime_aa_ets_revocationValues "id-smime-aa-ets-revocationValues" -#define NID_id_smime_aa_ets_revocationValues 235 -#define OBJ_id_smime_aa_ets_revocationValues OBJ_id_smime_aa,24L - -#define SN_id_smime_aa_ets_escTimeStamp "id-smime-aa-ets-escTimeStamp" -#define NID_id_smime_aa_ets_escTimeStamp 236 -#define OBJ_id_smime_aa_ets_escTimeStamp OBJ_id_smime_aa,25L - -#define SN_id_smime_aa_ets_certCRLTimestamp "id-smime-aa-ets-certCRLTimestamp" -#define NID_id_smime_aa_ets_certCRLTimestamp 237 -#define OBJ_id_smime_aa_ets_certCRLTimestamp OBJ_id_smime_aa,26L - -#define SN_id_smime_aa_ets_archiveTimeStamp "id-smime-aa-ets-archiveTimeStamp" -#define NID_id_smime_aa_ets_archiveTimeStamp 238 -#define OBJ_id_smime_aa_ets_archiveTimeStamp OBJ_id_smime_aa,27L - -#define SN_id_smime_aa_signatureType "id-smime-aa-signatureType" -#define NID_id_smime_aa_signatureType 239 -#define OBJ_id_smime_aa_signatureType OBJ_id_smime_aa,28L - -#define SN_id_smime_aa_dvcs_dvc "id-smime-aa-dvcs-dvc" -#define NID_id_smime_aa_dvcs_dvc 240 -#define OBJ_id_smime_aa_dvcs_dvc OBJ_id_smime_aa,29L - -#define SN_id_smime_aa_signingCertificateV2 "id-smime-aa-signingCertificateV2" -#define NID_id_smime_aa_signingCertificateV2 1086 -#define OBJ_id_smime_aa_signingCertificateV2 OBJ_id_smime_aa,47L - -#define SN_id_smime_alg_ESDHwith3DES "id-smime-alg-ESDHwith3DES" -#define NID_id_smime_alg_ESDHwith3DES 241 -#define OBJ_id_smime_alg_ESDHwith3DES OBJ_id_smime_alg,1L - -#define SN_id_smime_alg_ESDHwithRC2 "id-smime-alg-ESDHwithRC2" -#define NID_id_smime_alg_ESDHwithRC2 242 -#define OBJ_id_smime_alg_ESDHwithRC2 OBJ_id_smime_alg,2L - -#define SN_id_smime_alg_3DESwrap "id-smime-alg-3DESwrap" -#define NID_id_smime_alg_3DESwrap 243 -#define OBJ_id_smime_alg_3DESwrap OBJ_id_smime_alg,3L - -#define SN_id_smime_alg_RC2wrap "id-smime-alg-RC2wrap" -#define NID_id_smime_alg_RC2wrap 244 -#define OBJ_id_smime_alg_RC2wrap OBJ_id_smime_alg,4L - -#define SN_id_smime_alg_ESDH "id-smime-alg-ESDH" -#define NID_id_smime_alg_ESDH 245 -#define OBJ_id_smime_alg_ESDH OBJ_id_smime_alg,5L - -#define SN_id_smime_alg_CMS3DESwrap "id-smime-alg-CMS3DESwrap" -#define NID_id_smime_alg_CMS3DESwrap 246 -#define OBJ_id_smime_alg_CMS3DESwrap OBJ_id_smime_alg,6L - -#define SN_id_smime_alg_CMSRC2wrap "id-smime-alg-CMSRC2wrap" -#define NID_id_smime_alg_CMSRC2wrap 247 -#define OBJ_id_smime_alg_CMSRC2wrap OBJ_id_smime_alg,7L - -#define SN_id_alg_PWRI_KEK "id-alg-PWRI-KEK" -#define NID_id_alg_PWRI_KEK 893 -#define OBJ_id_alg_PWRI_KEK OBJ_id_smime_alg,9L - -#define SN_id_smime_cd_ldap "id-smime-cd-ldap" -#define NID_id_smime_cd_ldap 248 -#define OBJ_id_smime_cd_ldap OBJ_id_smime_cd,1L - -#define SN_id_smime_spq_ets_sqt_uri "id-smime-spq-ets-sqt-uri" -#define NID_id_smime_spq_ets_sqt_uri 249 -#define OBJ_id_smime_spq_ets_sqt_uri OBJ_id_smime_spq,1L - -#define SN_id_smime_spq_ets_sqt_unotice "id-smime-spq-ets-sqt-unotice" -#define NID_id_smime_spq_ets_sqt_unotice 250 -#define OBJ_id_smime_spq_ets_sqt_unotice OBJ_id_smime_spq,2L - -#define SN_id_smime_cti_ets_proofOfOrigin "id-smime-cti-ets-proofOfOrigin" -#define NID_id_smime_cti_ets_proofOfOrigin 251 -#define OBJ_id_smime_cti_ets_proofOfOrigin OBJ_id_smime_cti,1L - -#define SN_id_smime_cti_ets_proofOfReceipt "id-smime-cti-ets-proofOfReceipt" -#define NID_id_smime_cti_ets_proofOfReceipt 252 -#define OBJ_id_smime_cti_ets_proofOfReceipt OBJ_id_smime_cti,2L - -#define SN_id_smime_cti_ets_proofOfDelivery "id-smime-cti-ets-proofOfDelivery" -#define NID_id_smime_cti_ets_proofOfDelivery 253 -#define OBJ_id_smime_cti_ets_proofOfDelivery OBJ_id_smime_cti,3L - -#define SN_id_smime_cti_ets_proofOfSender "id-smime-cti-ets-proofOfSender" -#define NID_id_smime_cti_ets_proofOfSender 254 -#define OBJ_id_smime_cti_ets_proofOfSender OBJ_id_smime_cti,4L - -#define SN_id_smime_cti_ets_proofOfApproval "id-smime-cti-ets-proofOfApproval" -#define NID_id_smime_cti_ets_proofOfApproval 255 -#define OBJ_id_smime_cti_ets_proofOfApproval OBJ_id_smime_cti,5L - -#define SN_id_smime_cti_ets_proofOfCreation "id-smime-cti-ets-proofOfCreation" -#define NID_id_smime_cti_ets_proofOfCreation 256 -#define OBJ_id_smime_cti_ets_proofOfCreation OBJ_id_smime_cti,6L - -#define LN_friendlyName "friendlyName" -#define NID_friendlyName 156 -#define OBJ_friendlyName OBJ_pkcs9,20L - -#define LN_localKeyID "localKeyID" -#define NID_localKeyID 157 -#define OBJ_localKeyID OBJ_pkcs9,21L - -#define SN_ms_csp_name "CSPName" -#define LN_ms_csp_name "Microsoft CSP Name" -#define NID_ms_csp_name 417 -#define OBJ_ms_csp_name 1L,3L,6L,1L,4L,1L,311L,17L,1L - -#define SN_LocalKeySet "LocalKeySet" -#define LN_LocalKeySet "Microsoft Local Key set" -#define NID_LocalKeySet 856 -#define OBJ_LocalKeySet 1L,3L,6L,1L,4L,1L,311L,17L,2L - -#define OBJ_certTypes OBJ_pkcs9,22L - -#define LN_x509Certificate "x509Certificate" -#define NID_x509Certificate 158 -#define OBJ_x509Certificate OBJ_certTypes,1L - -#define LN_sdsiCertificate "sdsiCertificate" -#define NID_sdsiCertificate 159 -#define OBJ_sdsiCertificate OBJ_certTypes,2L - -#define OBJ_crlTypes OBJ_pkcs9,23L - -#define LN_x509Crl "x509Crl" -#define NID_x509Crl 160 -#define OBJ_x509Crl OBJ_crlTypes,1L - -#define OBJ_pkcs12 OBJ_pkcs,12L - -#define OBJ_pkcs12_pbeids OBJ_pkcs12,1L - -#define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" -#define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" -#define NID_pbe_WithSHA1And128BitRC4 144 -#define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids,1L - -#define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" -#define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" -#define NID_pbe_WithSHA1And40BitRC4 145 -#define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids,2L - -#define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" -#define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" -#define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 -#define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids,3L - -#define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" -#define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" -#define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 -#define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids,4L - -#define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" -#define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" -#define NID_pbe_WithSHA1And128BitRC2_CBC 148 -#define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids,5L - -#define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" -#define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" -#define NID_pbe_WithSHA1And40BitRC2_CBC 149 -#define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids,6L - -#define OBJ_pkcs12_Version1 OBJ_pkcs12,10L - -#define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1,1L - -#define LN_keyBag "keyBag" -#define NID_keyBag 150 -#define OBJ_keyBag OBJ_pkcs12_BagIds,1L - -#define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" -#define NID_pkcs8ShroudedKeyBag 151 -#define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds,2L - -#define LN_certBag "certBag" -#define NID_certBag 152 -#define OBJ_certBag OBJ_pkcs12_BagIds,3L - -#define LN_crlBag "crlBag" -#define NID_crlBag 153 -#define OBJ_crlBag OBJ_pkcs12_BagIds,4L - -#define LN_secretBag "secretBag" -#define NID_secretBag 154 -#define OBJ_secretBag OBJ_pkcs12_BagIds,5L - -#define LN_safeContentsBag "safeContentsBag" -#define NID_safeContentsBag 155 -#define OBJ_safeContentsBag OBJ_pkcs12_BagIds,6L - -#define SN_md2 "MD2" -#define LN_md2 "md2" -#define NID_md2 3 -#define OBJ_md2 OBJ_rsadsi,2L,2L - -#define SN_md4 "MD4" -#define LN_md4 "md4" -#define NID_md4 257 -#define OBJ_md4 OBJ_rsadsi,2L,4L - -#define SN_md5 "MD5" -#define LN_md5 "md5" -#define NID_md5 4 -#define OBJ_md5 OBJ_rsadsi,2L,5L - -#define SN_md5_sha1 "MD5-SHA1" -#define LN_md5_sha1 "md5-sha1" -#define NID_md5_sha1 114 - -#define LN_hmacWithMD5 "hmacWithMD5" -#define NID_hmacWithMD5 797 -#define OBJ_hmacWithMD5 OBJ_rsadsi,2L,6L - -#define LN_hmacWithSHA1 "hmacWithSHA1" -#define NID_hmacWithSHA1 163 -#define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L - -#define SN_sm2 "SM2" -#define LN_sm2 "sm2" -#define NID_sm2 1172 -#define OBJ_sm2 OBJ_sm_scheme,301L - -#define SN_sm3 "SM3" -#define LN_sm3 "sm3" -#define NID_sm3 1143 -#define OBJ_sm3 OBJ_sm_scheme,401L - -#define SN_sm3WithRSAEncryption "RSA-SM3" -#define LN_sm3WithRSAEncryption "sm3WithRSAEncryption" -#define NID_sm3WithRSAEncryption 1144 -#define OBJ_sm3WithRSAEncryption OBJ_sm_scheme,504L - -#define LN_hmacWithSHA224 "hmacWithSHA224" -#define NID_hmacWithSHA224 798 -#define OBJ_hmacWithSHA224 OBJ_rsadsi,2L,8L - -#define LN_hmacWithSHA256 "hmacWithSHA256" -#define NID_hmacWithSHA256 799 -#define OBJ_hmacWithSHA256 OBJ_rsadsi,2L,9L - -#define LN_hmacWithSHA384 "hmacWithSHA384" -#define NID_hmacWithSHA384 800 -#define OBJ_hmacWithSHA384 OBJ_rsadsi,2L,10L - -#define LN_hmacWithSHA512 "hmacWithSHA512" -#define NID_hmacWithSHA512 801 -#define OBJ_hmacWithSHA512 OBJ_rsadsi,2L,11L - -#define LN_hmacWithSHA512_224 "hmacWithSHA512-224" -#define NID_hmacWithSHA512_224 1193 -#define OBJ_hmacWithSHA512_224 OBJ_rsadsi,2L,12L - -#define LN_hmacWithSHA512_256 "hmacWithSHA512-256" -#define NID_hmacWithSHA512_256 1194 -#define OBJ_hmacWithSHA512_256 OBJ_rsadsi,2L,13L - -#define SN_rc2_cbc "RC2-CBC" -#define LN_rc2_cbc "rc2-cbc" -#define NID_rc2_cbc 37 -#define OBJ_rc2_cbc OBJ_rsadsi,3L,2L - -#define SN_rc2_ecb "RC2-ECB" -#define LN_rc2_ecb "rc2-ecb" -#define NID_rc2_ecb 38 - -#define SN_rc2_cfb64 "RC2-CFB" -#define LN_rc2_cfb64 "rc2-cfb" -#define NID_rc2_cfb64 39 - -#define SN_rc2_ofb64 "RC2-OFB" -#define LN_rc2_ofb64 "rc2-ofb" -#define NID_rc2_ofb64 40 - -#define SN_rc2_40_cbc "RC2-40-CBC" -#define LN_rc2_40_cbc "rc2-40-cbc" -#define NID_rc2_40_cbc 98 - -#define SN_rc2_64_cbc "RC2-64-CBC" -#define LN_rc2_64_cbc "rc2-64-cbc" -#define NID_rc2_64_cbc 166 - -#define SN_rc4 "RC4" -#define LN_rc4 "rc4" -#define NID_rc4 5 -#define OBJ_rc4 OBJ_rsadsi,3L,4L - -#define SN_rc4_40 "RC4-40" -#define LN_rc4_40 "rc4-40" -#define NID_rc4_40 97 - -#define SN_des_ede3_cbc "DES-EDE3-CBC" -#define LN_des_ede3_cbc "des-ede3-cbc" -#define NID_des_ede3_cbc 44 -#define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L - -#define SN_rc5_cbc "RC5-CBC" -#define LN_rc5_cbc "rc5-cbc" -#define NID_rc5_cbc 120 -#define OBJ_rc5_cbc OBJ_rsadsi,3L,8L - -#define SN_rc5_ecb "RC5-ECB" -#define LN_rc5_ecb "rc5-ecb" -#define NID_rc5_ecb 121 - -#define SN_rc5_cfb64 "RC5-CFB" -#define LN_rc5_cfb64 "rc5-cfb" -#define NID_rc5_cfb64 122 - -#define SN_rc5_ofb64 "RC5-OFB" -#define LN_rc5_ofb64 "rc5-ofb" -#define NID_rc5_ofb64 123 - -#define SN_ms_ext_req "msExtReq" -#define LN_ms_ext_req "Microsoft Extension Request" -#define NID_ms_ext_req 171 -#define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L - -#define SN_ms_code_ind "msCodeInd" -#define LN_ms_code_ind "Microsoft Individual Code Signing" -#define NID_ms_code_ind 134 -#define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L - -#define SN_ms_code_com "msCodeCom" -#define LN_ms_code_com "Microsoft Commercial Code Signing" -#define NID_ms_code_com 135 -#define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L - -#define SN_ms_ctl_sign "msCTLSign" -#define LN_ms_ctl_sign "Microsoft Trust List Signing" -#define NID_ms_ctl_sign 136 -#define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L - -#define SN_ms_sgc "msSGC" -#define LN_ms_sgc "Microsoft Server Gated Crypto" -#define NID_ms_sgc 137 -#define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L - -#define SN_ms_efs "msEFS" -#define LN_ms_efs "Microsoft Encrypted File System" -#define NID_ms_efs 138 -#define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L - -#define SN_ms_smartcard_login "msSmartcardLogin" -#define LN_ms_smartcard_login "Microsoft Smartcardlogin" -#define NID_ms_smartcard_login 648 -#define OBJ_ms_smartcard_login 1L,3L,6L,1L,4L,1L,311L,20L,2L,2L - -#define SN_ms_upn "msUPN" -#define LN_ms_upn "Microsoft Universal Principal Name" -#define NID_ms_upn 649 -#define OBJ_ms_upn 1L,3L,6L,1L,4L,1L,311L,20L,2L,3L - -#define SN_idea_cbc "IDEA-CBC" -#define LN_idea_cbc "idea-cbc" -#define NID_idea_cbc 34 -#define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L - -#define SN_idea_ecb "IDEA-ECB" -#define LN_idea_ecb "idea-ecb" -#define NID_idea_ecb 36 - -#define SN_idea_cfb64 "IDEA-CFB" -#define LN_idea_cfb64 "idea-cfb" -#define NID_idea_cfb64 35 - -#define SN_idea_ofb64 "IDEA-OFB" -#define LN_idea_ofb64 "idea-ofb" -#define NID_idea_ofb64 46 - -#define SN_bf_cbc "BF-CBC" -#define LN_bf_cbc "bf-cbc" -#define NID_bf_cbc 91 -#define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L - -#define SN_bf_ecb "BF-ECB" -#define LN_bf_ecb "bf-ecb" -#define NID_bf_ecb 92 - -#define SN_bf_cfb64 "BF-CFB" -#define LN_bf_cfb64 "bf-cfb" -#define NID_bf_cfb64 93 - -#define SN_bf_ofb64 "BF-OFB" -#define LN_bf_ofb64 "bf-ofb" -#define NID_bf_ofb64 94 - -#define SN_id_pkix "PKIX" -#define NID_id_pkix 127 -#define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L - -#define SN_id_pkix_mod "id-pkix-mod" -#define NID_id_pkix_mod 258 -#define OBJ_id_pkix_mod OBJ_id_pkix,0L - -#define SN_id_pe "id-pe" -#define NID_id_pe 175 -#define OBJ_id_pe OBJ_id_pkix,1L - -#define SN_id_qt "id-qt" -#define NID_id_qt 259 -#define OBJ_id_qt OBJ_id_pkix,2L - -#define SN_id_kp "id-kp" -#define NID_id_kp 128 -#define OBJ_id_kp OBJ_id_pkix,3L - -#define SN_id_it "id-it" -#define NID_id_it 260 -#define OBJ_id_it OBJ_id_pkix,4L - -#define SN_id_pkip "id-pkip" -#define NID_id_pkip 261 -#define OBJ_id_pkip OBJ_id_pkix,5L - -#define SN_id_alg "id-alg" -#define NID_id_alg 262 -#define OBJ_id_alg OBJ_id_pkix,6L - -#define SN_id_cmc "id-cmc" -#define NID_id_cmc 263 -#define OBJ_id_cmc OBJ_id_pkix,7L - -#define SN_id_on "id-on" -#define NID_id_on 264 -#define OBJ_id_on OBJ_id_pkix,8L - -#define SN_id_pda "id-pda" -#define NID_id_pda 265 -#define OBJ_id_pda OBJ_id_pkix,9L - -#define SN_id_aca "id-aca" -#define NID_id_aca 266 -#define OBJ_id_aca OBJ_id_pkix,10L - -#define SN_id_qcs "id-qcs" -#define NID_id_qcs 267 -#define OBJ_id_qcs OBJ_id_pkix,11L - -#define SN_id_cct "id-cct" -#define NID_id_cct 268 -#define OBJ_id_cct OBJ_id_pkix,12L - -#define SN_id_ppl "id-ppl" -#define NID_id_ppl 662 -#define OBJ_id_ppl OBJ_id_pkix,21L - -#define SN_id_ad "id-ad" -#define NID_id_ad 176 -#define OBJ_id_ad OBJ_id_pkix,48L - -#define SN_id_pkix1_explicit_88 "id-pkix1-explicit-88" -#define NID_id_pkix1_explicit_88 269 -#define OBJ_id_pkix1_explicit_88 OBJ_id_pkix_mod,1L - -#define SN_id_pkix1_implicit_88 "id-pkix1-implicit-88" -#define NID_id_pkix1_implicit_88 270 -#define OBJ_id_pkix1_implicit_88 OBJ_id_pkix_mod,2L - -#define SN_id_pkix1_explicit_93 "id-pkix1-explicit-93" -#define NID_id_pkix1_explicit_93 271 -#define OBJ_id_pkix1_explicit_93 OBJ_id_pkix_mod,3L - -#define SN_id_pkix1_implicit_93 "id-pkix1-implicit-93" -#define NID_id_pkix1_implicit_93 272 -#define OBJ_id_pkix1_implicit_93 OBJ_id_pkix_mod,4L - -#define SN_id_mod_crmf "id-mod-crmf" -#define NID_id_mod_crmf 273 -#define OBJ_id_mod_crmf OBJ_id_pkix_mod,5L - -#define SN_id_mod_cmc "id-mod-cmc" -#define NID_id_mod_cmc 274 -#define OBJ_id_mod_cmc OBJ_id_pkix_mod,6L - -#define SN_id_mod_kea_profile_88 "id-mod-kea-profile-88" -#define NID_id_mod_kea_profile_88 275 -#define OBJ_id_mod_kea_profile_88 OBJ_id_pkix_mod,7L - -#define SN_id_mod_kea_profile_93 "id-mod-kea-profile-93" -#define NID_id_mod_kea_profile_93 276 -#define OBJ_id_mod_kea_profile_93 OBJ_id_pkix_mod,8L - -#define SN_id_mod_cmp "id-mod-cmp" -#define NID_id_mod_cmp 277 -#define OBJ_id_mod_cmp OBJ_id_pkix_mod,9L - -#define SN_id_mod_qualified_cert_88 "id-mod-qualified-cert-88" -#define NID_id_mod_qualified_cert_88 278 -#define OBJ_id_mod_qualified_cert_88 OBJ_id_pkix_mod,10L - -#define SN_id_mod_qualified_cert_93 "id-mod-qualified-cert-93" -#define NID_id_mod_qualified_cert_93 279 -#define OBJ_id_mod_qualified_cert_93 OBJ_id_pkix_mod,11L - -#define SN_id_mod_attribute_cert "id-mod-attribute-cert" -#define NID_id_mod_attribute_cert 280 -#define OBJ_id_mod_attribute_cert OBJ_id_pkix_mod,12L - -#define SN_id_mod_timestamp_protocol "id-mod-timestamp-protocol" -#define NID_id_mod_timestamp_protocol 281 -#define OBJ_id_mod_timestamp_protocol OBJ_id_pkix_mod,13L - -#define SN_id_mod_ocsp "id-mod-ocsp" -#define NID_id_mod_ocsp 282 -#define OBJ_id_mod_ocsp OBJ_id_pkix_mod,14L - -#define SN_id_mod_dvcs "id-mod-dvcs" -#define NID_id_mod_dvcs 283 -#define OBJ_id_mod_dvcs OBJ_id_pkix_mod,15L - -#define SN_id_mod_cmp2000 "id-mod-cmp2000" -#define NID_id_mod_cmp2000 284 -#define OBJ_id_mod_cmp2000 OBJ_id_pkix_mod,16L - -#define SN_info_access "authorityInfoAccess" -#define LN_info_access "Authority Information Access" -#define NID_info_access 177 -#define OBJ_info_access OBJ_id_pe,1L - -#define SN_biometricInfo "biometricInfo" -#define LN_biometricInfo "Biometric Info" -#define NID_biometricInfo 285 -#define OBJ_biometricInfo OBJ_id_pe,2L - -#define SN_qcStatements "qcStatements" -#define NID_qcStatements 286 -#define OBJ_qcStatements OBJ_id_pe,3L - -#define SN_ac_auditEntity "ac-auditEntity" -#define NID_ac_auditEntity 287 -#define OBJ_ac_auditEntity OBJ_id_pe,4L - -#define SN_ac_targeting "ac-targeting" -#define NID_ac_targeting 288 -#define OBJ_ac_targeting OBJ_id_pe,5L - -#define SN_aaControls "aaControls" -#define NID_aaControls 289 -#define OBJ_aaControls OBJ_id_pe,6L - -#define SN_sbgp_ipAddrBlock "sbgp-ipAddrBlock" -#define NID_sbgp_ipAddrBlock 290 -#define OBJ_sbgp_ipAddrBlock OBJ_id_pe,7L - -#define SN_sbgp_autonomousSysNum "sbgp-autonomousSysNum" -#define NID_sbgp_autonomousSysNum 291 -#define OBJ_sbgp_autonomousSysNum OBJ_id_pe,8L - -#define SN_sbgp_routerIdentifier "sbgp-routerIdentifier" -#define NID_sbgp_routerIdentifier 292 -#define OBJ_sbgp_routerIdentifier OBJ_id_pe,9L - -#define SN_ac_proxying "ac-proxying" -#define NID_ac_proxying 397 -#define OBJ_ac_proxying OBJ_id_pe,10L - -#define SN_sinfo_access "subjectInfoAccess" -#define LN_sinfo_access "Subject Information Access" -#define NID_sinfo_access 398 -#define OBJ_sinfo_access OBJ_id_pe,11L - -#define SN_proxyCertInfo "proxyCertInfo" -#define LN_proxyCertInfo "Proxy Certificate Information" -#define NID_proxyCertInfo 663 -#define OBJ_proxyCertInfo OBJ_id_pe,14L - -#define SN_tlsfeature "tlsfeature" -#define LN_tlsfeature "TLS Feature" -#define NID_tlsfeature 1020 -#define OBJ_tlsfeature OBJ_id_pe,24L - -#define SN_id_qt_cps "id-qt-cps" -#define LN_id_qt_cps "Policy Qualifier CPS" -#define NID_id_qt_cps 164 -#define OBJ_id_qt_cps OBJ_id_qt,1L - -#define SN_id_qt_unotice "id-qt-unotice" -#define LN_id_qt_unotice "Policy Qualifier User Notice" -#define NID_id_qt_unotice 165 -#define OBJ_id_qt_unotice OBJ_id_qt,2L - -#define SN_textNotice "textNotice" -#define NID_textNotice 293 -#define OBJ_textNotice OBJ_id_qt,3L - -#define SN_server_auth "serverAuth" -#define LN_server_auth "TLS Web Server Authentication" -#define NID_server_auth 129 -#define OBJ_server_auth OBJ_id_kp,1L - -#define SN_client_auth "clientAuth" -#define LN_client_auth "TLS Web Client Authentication" -#define NID_client_auth 130 -#define OBJ_client_auth OBJ_id_kp,2L - -#define SN_code_sign "codeSigning" -#define LN_code_sign "Code Signing" -#define NID_code_sign 131 -#define OBJ_code_sign OBJ_id_kp,3L - -#define SN_email_protect "emailProtection" -#define LN_email_protect "E-mail Protection" -#define NID_email_protect 132 -#define OBJ_email_protect OBJ_id_kp,4L - -#define SN_ipsecEndSystem "ipsecEndSystem" -#define LN_ipsecEndSystem "IPSec End System" -#define NID_ipsecEndSystem 294 -#define OBJ_ipsecEndSystem OBJ_id_kp,5L - -#define SN_ipsecTunnel "ipsecTunnel" -#define LN_ipsecTunnel "IPSec Tunnel" -#define NID_ipsecTunnel 295 -#define OBJ_ipsecTunnel OBJ_id_kp,6L - -#define SN_ipsecUser "ipsecUser" -#define LN_ipsecUser "IPSec User" -#define NID_ipsecUser 296 -#define OBJ_ipsecUser OBJ_id_kp,7L - -#define SN_time_stamp "timeStamping" -#define LN_time_stamp "Time Stamping" -#define NID_time_stamp 133 -#define OBJ_time_stamp OBJ_id_kp,8L - -#define SN_OCSP_sign "OCSPSigning" -#define LN_OCSP_sign "OCSP Signing" -#define NID_OCSP_sign 180 -#define OBJ_OCSP_sign OBJ_id_kp,9L - -#define SN_dvcs "DVCS" -#define LN_dvcs "dvcs" -#define NID_dvcs 297 -#define OBJ_dvcs OBJ_id_kp,10L - -#define SN_ipsec_IKE "ipsecIKE" -#define LN_ipsec_IKE "ipsec Internet Key Exchange" -#define NID_ipsec_IKE 1022 -#define OBJ_ipsec_IKE OBJ_id_kp,17L - -#define SN_capwapAC "capwapAC" -#define LN_capwapAC "Ctrl/provision WAP Access" -#define NID_capwapAC 1023 -#define OBJ_capwapAC OBJ_id_kp,18L - -#define SN_capwapWTP "capwapWTP" -#define LN_capwapWTP "Ctrl/Provision WAP Termination" -#define NID_capwapWTP 1024 -#define OBJ_capwapWTP OBJ_id_kp,19L - -#define SN_sshClient "secureShellClient" -#define LN_sshClient "SSH Client" -#define NID_sshClient 1025 -#define OBJ_sshClient OBJ_id_kp,21L - -#define SN_sshServer "secureShellServer" -#define LN_sshServer "SSH Server" -#define NID_sshServer 1026 -#define OBJ_sshServer OBJ_id_kp,22L - -#define SN_sendRouter "sendRouter" -#define LN_sendRouter "Send Router" -#define NID_sendRouter 1027 -#define OBJ_sendRouter OBJ_id_kp,23L - -#define SN_sendProxiedRouter "sendProxiedRouter" -#define LN_sendProxiedRouter "Send Proxied Router" -#define NID_sendProxiedRouter 1028 -#define OBJ_sendProxiedRouter OBJ_id_kp,24L - -#define SN_sendOwner "sendOwner" -#define LN_sendOwner "Send Owner" -#define NID_sendOwner 1029 -#define OBJ_sendOwner OBJ_id_kp,25L - -#define SN_sendProxiedOwner "sendProxiedOwner" -#define LN_sendProxiedOwner "Send Proxied Owner" -#define NID_sendProxiedOwner 1030 -#define OBJ_sendProxiedOwner OBJ_id_kp,26L - -#define SN_cmcCA "cmcCA" -#define LN_cmcCA "CMC Certificate Authority" -#define NID_cmcCA 1131 -#define OBJ_cmcCA OBJ_id_kp,27L - -#define SN_cmcRA "cmcRA" -#define LN_cmcRA "CMC Registration Authority" -#define NID_cmcRA 1132 -#define OBJ_cmcRA OBJ_id_kp,28L - -#define SN_id_it_caProtEncCert "id-it-caProtEncCert" -#define NID_id_it_caProtEncCert 298 -#define OBJ_id_it_caProtEncCert OBJ_id_it,1L - -#define SN_id_it_signKeyPairTypes "id-it-signKeyPairTypes" -#define NID_id_it_signKeyPairTypes 299 -#define OBJ_id_it_signKeyPairTypes OBJ_id_it,2L - -#define SN_id_it_encKeyPairTypes "id-it-encKeyPairTypes" -#define NID_id_it_encKeyPairTypes 300 -#define OBJ_id_it_encKeyPairTypes OBJ_id_it,3L - -#define SN_id_it_preferredSymmAlg "id-it-preferredSymmAlg" -#define NID_id_it_preferredSymmAlg 301 -#define OBJ_id_it_preferredSymmAlg OBJ_id_it,4L - -#define SN_id_it_caKeyUpdateInfo "id-it-caKeyUpdateInfo" -#define NID_id_it_caKeyUpdateInfo 302 -#define OBJ_id_it_caKeyUpdateInfo OBJ_id_it,5L - -#define SN_id_it_currentCRL "id-it-currentCRL" -#define NID_id_it_currentCRL 303 -#define OBJ_id_it_currentCRL OBJ_id_it,6L - -#define SN_id_it_unsupportedOIDs "id-it-unsupportedOIDs" -#define NID_id_it_unsupportedOIDs 304 -#define OBJ_id_it_unsupportedOIDs OBJ_id_it,7L - -#define SN_id_it_subscriptionRequest "id-it-subscriptionRequest" -#define NID_id_it_subscriptionRequest 305 -#define OBJ_id_it_subscriptionRequest OBJ_id_it,8L - -#define SN_id_it_subscriptionResponse "id-it-subscriptionResponse" -#define NID_id_it_subscriptionResponse 306 -#define OBJ_id_it_subscriptionResponse OBJ_id_it,9L - -#define SN_id_it_keyPairParamReq "id-it-keyPairParamReq" -#define NID_id_it_keyPairParamReq 307 -#define OBJ_id_it_keyPairParamReq OBJ_id_it,10L - -#define SN_id_it_keyPairParamRep "id-it-keyPairParamRep" -#define NID_id_it_keyPairParamRep 308 -#define OBJ_id_it_keyPairParamRep OBJ_id_it,11L - -#define SN_id_it_revPassphrase "id-it-revPassphrase" -#define NID_id_it_revPassphrase 309 -#define OBJ_id_it_revPassphrase OBJ_id_it,12L - -#define SN_id_it_implicitConfirm "id-it-implicitConfirm" -#define NID_id_it_implicitConfirm 310 -#define OBJ_id_it_implicitConfirm OBJ_id_it,13L - -#define SN_id_it_confirmWaitTime "id-it-confirmWaitTime" -#define NID_id_it_confirmWaitTime 311 -#define OBJ_id_it_confirmWaitTime OBJ_id_it,14L - -#define SN_id_it_origPKIMessage "id-it-origPKIMessage" -#define NID_id_it_origPKIMessage 312 -#define OBJ_id_it_origPKIMessage OBJ_id_it,15L - -#define SN_id_it_suppLangTags "id-it-suppLangTags" -#define NID_id_it_suppLangTags 784 -#define OBJ_id_it_suppLangTags OBJ_id_it,16L - -#define SN_id_regCtrl "id-regCtrl" -#define NID_id_regCtrl 313 -#define OBJ_id_regCtrl OBJ_id_pkip,1L - -#define SN_id_regInfo "id-regInfo" -#define NID_id_regInfo 314 -#define OBJ_id_regInfo OBJ_id_pkip,2L - -#define SN_id_regCtrl_regToken "id-regCtrl-regToken" -#define NID_id_regCtrl_regToken 315 -#define OBJ_id_regCtrl_regToken OBJ_id_regCtrl,1L - -#define SN_id_regCtrl_authenticator "id-regCtrl-authenticator" -#define NID_id_regCtrl_authenticator 316 -#define OBJ_id_regCtrl_authenticator OBJ_id_regCtrl,2L - -#define SN_id_regCtrl_pkiPublicationInfo "id-regCtrl-pkiPublicationInfo" -#define NID_id_regCtrl_pkiPublicationInfo 317 -#define OBJ_id_regCtrl_pkiPublicationInfo OBJ_id_regCtrl,3L - -#define SN_id_regCtrl_pkiArchiveOptions "id-regCtrl-pkiArchiveOptions" -#define NID_id_regCtrl_pkiArchiveOptions 318 -#define OBJ_id_regCtrl_pkiArchiveOptions OBJ_id_regCtrl,4L - -#define SN_id_regCtrl_oldCertID "id-regCtrl-oldCertID" -#define NID_id_regCtrl_oldCertID 319 -#define OBJ_id_regCtrl_oldCertID OBJ_id_regCtrl,5L - -#define SN_id_regCtrl_protocolEncrKey "id-regCtrl-protocolEncrKey" -#define NID_id_regCtrl_protocolEncrKey 320 -#define OBJ_id_regCtrl_protocolEncrKey OBJ_id_regCtrl,6L - -#define SN_id_regInfo_utf8Pairs "id-regInfo-utf8Pairs" -#define NID_id_regInfo_utf8Pairs 321 -#define OBJ_id_regInfo_utf8Pairs OBJ_id_regInfo,1L - -#define SN_id_regInfo_certReq "id-regInfo-certReq" -#define NID_id_regInfo_certReq 322 -#define OBJ_id_regInfo_certReq OBJ_id_regInfo,2L - -#define SN_id_alg_des40 "id-alg-des40" -#define NID_id_alg_des40 323 -#define OBJ_id_alg_des40 OBJ_id_alg,1L - -#define SN_id_alg_noSignature "id-alg-noSignature" -#define NID_id_alg_noSignature 324 -#define OBJ_id_alg_noSignature OBJ_id_alg,2L - -#define SN_id_alg_dh_sig_hmac_sha1 "id-alg-dh-sig-hmac-sha1" -#define NID_id_alg_dh_sig_hmac_sha1 325 -#define OBJ_id_alg_dh_sig_hmac_sha1 OBJ_id_alg,3L - -#define SN_id_alg_dh_pop "id-alg-dh-pop" -#define NID_id_alg_dh_pop 326 -#define OBJ_id_alg_dh_pop OBJ_id_alg,4L - -#define SN_id_cmc_statusInfo "id-cmc-statusInfo" -#define NID_id_cmc_statusInfo 327 -#define OBJ_id_cmc_statusInfo OBJ_id_cmc,1L - -#define SN_id_cmc_identification "id-cmc-identification" -#define NID_id_cmc_identification 328 -#define OBJ_id_cmc_identification OBJ_id_cmc,2L - -#define SN_id_cmc_identityProof "id-cmc-identityProof" -#define NID_id_cmc_identityProof 329 -#define OBJ_id_cmc_identityProof OBJ_id_cmc,3L - -#define SN_id_cmc_dataReturn "id-cmc-dataReturn" -#define NID_id_cmc_dataReturn 330 -#define OBJ_id_cmc_dataReturn OBJ_id_cmc,4L - -#define SN_id_cmc_transactionId "id-cmc-transactionId" -#define NID_id_cmc_transactionId 331 -#define OBJ_id_cmc_transactionId OBJ_id_cmc,5L - -#define SN_id_cmc_senderNonce "id-cmc-senderNonce" -#define NID_id_cmc_senderNonce 332 -#define OBJ_id_cmc_senderNonce OBJ_id_cmc,6L - -#define SN_id_cmc_recipientNonce "id-cmc-recipientNonce" -#define NID_id_cmc_recipientNonce 333 -#define OBJ_id_cmc_recipientNonce OBJ_id_cmc,7L - -#define SN_id_cmc_addExtensions "id-cmc-addExtensions" -#define NID_id_cmc_addExtensions 334 -#define OBJ_id_cmc_addExtensions OBJ_id_cmc,8L - -#define SN_id_cmc_encryptedPOP "id-cmc-encryptedPOP" -#define NID_id_cmc_encryptedPOP 335 -#define OBJ_id_cmc_encryptedPOP OBJ_id_cmc,9L - -#define SN_id_cmc_decryptedPOP "id-cmc-decryptedPOP" -#define NID_id_cmc_decryptedPOP 336 -#define OBJ_id_cmc_decryptedPOP OBJ_id_cmc,10L - -#define SN_id_cmc_lraPOPWitness "id-cmc-lraPOPWitness" -#define NID_id_cmc_lraPOPWitness 337 -#define OBJ_id_cmc_lraPOPWitness OBJ_id_cmc,11L - -#define SN_id_cmc_getCert "id-cmc-getCert" -#define NID_id_cmc_getCert 338 -#define OBJ_id_cmc_getCert OBJ_id_cmc,15L - -#define SN_id_cmc_getCRL "id-cmc-getCRL" -#define NID_id_cmc_getCRL 339 -#define OBJ_id_cmc_getCRL OBJ_id_cmc,16L - -#define SN_id_cmc_revokeRequest "id-cmc-revokeRequest" -#define NID_id_cmc_revokeRequest 340 -#define OBJ_id_cmc_revokeRequest OBJ_id_cmc,17L - -#define SN_id_cmc_regInfo "id-cmc-regInfo" -#define NID_id_cmc_regInfo 341 -#define OBJ_id_cmc_regInfo OBJ_id_cmc,18L - -#define SN_id_cmc_responseInfo "id-cmc-responseInfo" -#define NID_id_cmc_responseInfo 342 -#define OBJ_id_cmc_responseInfo OBJ_id_cmc,19L - -#define SN_id_cmc_queryPending "id-cmc-queryPending" -#define NID_id_cmc_queryPending 343 -#define OBJ_id_cmc_queryPending OBJ_id_cmc,21L - -#define SN_id_cmc_popLinkRandom "id-cmc-popLinkRandom" -#define NID_id_cmc_popLinkRandom 344 -#define OBJ_id_cmc_popLinkRandom OBJ_id_cmc,22L - -#define SN_id_cmc_popLinkWitness "id-cmc-popLinkWitness" -#define NID_id_cmc_popLinkWitness 345 -#define OBJ_id_cmc_popLinkWitness OBJ_id_cmc,23L - -#define SN_id_cmc_confirmCertAcceptance "id-cmc-confirmCertAcceptance" -#define NID_id_cmc_confirmCertAcceptance 346 -#define OBJ_id_cmc_confirmCertAcceptance OBJ_id_cmc,24L - -#define SN_id_on_personalData "id-on-personalData" -#define NID_id_on_personalData 347 -#define OBJ_id_on_personalData OBJ_id_on,1L - -#define SN_id_on_permanentIdentifier "id-on-permanentIdentifier" -#define LN_id_on_permanentIdentifier "Permanent Identifier" -#define NID_id_on_permanentIdentifier 858 -#define OBJ_id_on_permanentIdentifier OBJ_id_on,3L - -#define SN_id_pda_dateOfBirth "id-pda-dateOfBirth" -#define NID_id_pda_dateOfBirth 348 -#define OBJ_id_pda_dateOfBirth OBJ_id_pda,1L - -#define SN_id_pda_placeOfBirth "id-pda-placeOfBirth" -#define NID_id_pda_placeOfBirth 349 -#define OBJ_id_pda_placeOfBirth OBJ_id_pda,2L - -#define SN_id_pda_gender "id-pda-gender" -#define NID_id_pda_gender 351 -#define OBJ_id_pda_gender OBJ_id_pda,3L - -#define SN_id_pda_countryOfCitizenship "id-pda-countryOfCitizenship" -#define NID_id_pda_countryOfCitizenship 352 -#define OBJ_id_pda_countryOfCitizenship OBJ_id_pda,4L - -#define SN_id_pda_countryOfResidence "id-pda-countryOfResidence" -#define NID_id_pda_countryOfResidence 353 -#define OBJ_id_pda_countryOfResidence OBJ_id_pda,5L - -#define SN_id_aca_authenticationInfo "id-aca-authenticationInfo" -#define NID_id_aca_authenticationInfo 354 -#define OBJ_id_aca_authenticationInfo OBJ_id_aca,1L - -#define SN_id_aca_accessIdentity "id-aca-accessIdentity" -#define NID_id_aca_accessIdentity 355 -#define OBJ_id_aca_accessIdentity OBJ_id_aca,2L - -#define SN_id_aca_chargingIdentity "id-aca-chargingIdentity" -#define NID_id_aca_chargingIdentity 356 -#define OBJ_id_aca_chargingIdentity OBJ_id_aca,3L - -#define SN_id_aca_group "id-aca-group" -#define NID_id_aca_group 357 -#define OBJ_id_aca_group OBJ_id_aca,4L - -#define SN_id_aca_role "id-aca-role" -#define NID_id_aca_role 358 -#define OBJ_id_aca_role OBJ_id_aca,5L - -#define SN_id_aca_encAttrs "id-aca-encAttrs" -#define NID_id_aca_encAttrs 399 -#define OBJ_id_aca_encAttrs OBJ_id_aca,6L - -#define SN_id_qcs_pkixQCSyntax_v1 "id-qcs-pkixQCSyntax-v1" -#define NID_id_qcs_pkixQCSyntax_v1 359 -#define OBJ_id_qcs_pkixQCSyntax_v1 OBJ_id_qcs,1L - -#define SN_id_cct_crs "id-cct-crs" -#define NID_id_cct_crs 360 -#define OBJ_id_cct_crs OBJ_id_cct,1L - -#define SN_id_cct_PKIData "id-cct-PKIData" -#define NID_id_cct_PKIData 361 -#define OBJ_id_cct_PKIData OBJ_id_cct,2L - -#define SN_id_cct_PKIResponse "id-cct-PKIResponse" -#define NID_id_cct_PKIResponse 362 -#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L - -#define SN_id_ppl_anyLanguage "id-ppl-anyLanguage" -#define LN_id_ppl_anyLanguage "Any language" -#define NID_id_ppl_anyLanguage 664 -#define OBJ_id_ppl_anyLanguage OBJ_id_ppl,0L - -#define SN_id_ppl_inheritAll "id-ppl-inheritAll" -#define LN_id_ppl_inheritAll "Inherit all" -#define NID_id_ppl_inheritAll 665 -#define OBJ_id_ppl_inheritAll OBJ_id_ppl,1L - -#define SN_Independent "id-ppl-independent" -#define LN_Independent "Independent" -#define NID_Independent 667 -#define OBJ_Independent OBJ_id_ppl,2L - -#define SN_ad_OCSP "OCSP" -#define LN_ad_OCSP "OCSP" -#define NID_ad_OCSP 178 -#define OBJ_ad_OCSP OBJ_id_ad,1L - -#define SN_ad_ca_issuers "caIssuers" -#define LN_ad_ca_issuers "CA Issuers" -#define NID_ad_ca_issuers 179 -#define OBJ_ad_ca_issuers OBJ_id_ad,2L - -#define SN_ad_timeStamping "ad_timestamping" -#define LN_ad_timeStamping "AD Time Stamping" -#define NID_ad_timeStamping 363 -#define OBJ_ad_timeStamping OBJ_id_ad,3L - -#define SN_ad_dvcs "AD_DVCS" -#define LN_ad_dvcs "ad dvcs" -#define NID_ad_dvcs 364 -#define OBJ_ad_dvcs OBJ_id_ad,4L - -#define SN_caRepository "caRepository" -#define LN_caRepository "CA Repository" -#define NID_caRepository 785 -#define OBJ_caRepository OBJ_id_ad,5L - -#define OBJ_id_pkix_OCSP OBJ_ad_OCSP - -#define SN_id_pkix_OCSP_basic "basicOCSPResponse" -#define LN_id_pkix_OCSP_basic "Basic OCSP Response" -#define NID_id_pkix_OCSP_basic 365 -#define OBJ_id_pkix_OCSP_basic OBJ_id_pkix_OCSP,1L - -#define SN_id_pkix_OCSP_Nonce "Nonce" -#define LN_id_pkix_OCSP_Nonce "OCSP Nonce" -#define NID_id_pkix_OCSP_Nonce 366 -#define OBJ_id_pkix_OCSP_Nonce OBJ_id_pkix_OCSP,2L - -#define SN_id_pkix_OCSP_CrlID "CrlID" -#define LN_id_pkix_OCSP_CrlID "OCSP CRL ID" -#define NID_id_pkix_OCSP_CrlID 367 -#define OBJ_id_pkix_OCSP_CrlID OBJ_id_pkix_OCSP,3L - -#define SN_id_pkix_OCSP_acceptableResponses "acceptableResponses" -#define LN_id_pkix_OCSP_acceptableResponses "Acceptable OCSP Responses" -#define NID_id_pkix_OCSP_acceptableResponses 368 -#define OBJ_id_pkix_OCSP_acceptableResponses OBJ_id_pkix_OCSP,4L - -#define SN_id_pkix_OCSP_noCheck "noCheck" -#define LN_id_pkix_OCSP_noCheck "OCSP No Check" -#define NID_id_pkix_OCSP_noCheck 369 -#define OBJ_id_pkix_OCSP_noCheck OBJ_id_pkix_OCSP,5L - -#define SN_id_pkix_OCSP_archiveCutoff "archiveCutoff" -#define LN_id_pkix_OCSP_archiveCutoff "OCSP Archive Cutoff" -#define NID_id_pkix_OCSP_archiveCutoff 370 -#define OBJ_id_pkix_OCSP_archiveCutoff OBJ_id_pkix_OCSP,6L - -#define SN_id_pkix_OCSP_serviceLocator "serviceLocator" -#define LN_id_pkix_OCSP_serviceLocator "OCSP Service Locator" -#define NID_id_pkix_OCSP_serviceLocator 371 -#define OBJ_id_pkix_OCSP_serviceLocator OBJ_id_pkix_OCSP,7L - -#define SN_id_pkix_OCSP_extendedStatus "extendedStatus" -#define LN_id_pkix_OCSP_extendedStatus "Extended OCSP Status" -#define NID_id_pkix_OCSP_extendedStatus 372 -#define OBJ_id_pkix_OCSP_extendedStatus OBJ_id_pkix_OCSP,8L - -#define SN_id_pkix_OCSP_valid "valid" -#define NID_id_pkix_OCSP_valid 373 -#define OBJ_id_pkix_OCSP_valid OBJ_id_pkix_OCSP,9L - -#define SN_id_pkix_OCSP_path "path" -#define NID_id_pkix_OCSP_path 374 -#define OBJ_id_pkix_OCSP_path OBJ_id_pkix_OCSP,10L - -#define SN_id_pkix_OCSP_trustRoot "trustRoot" -#define LN_id_pkix_OCSP_trustRoot "Trust Root" -#define NID_id_pkix_OCSP_trustRoot 375 -#define OBJ_id_pkix_OCSP_trustRoot OBJ_id_pkix_OCSP,11L - -#define SN_algorithm "algorithm" -#define LN_algorithm "algorithm" -#define NID_algorithm 376 -#define OBJ_algorithm 1L,3L,14L,3L,2L - -#define SN_md5WithRSA "RSA-NP-MD5" -#define LN_md5WithRSA "md5WithRSA" -#define NID_md5WithRSA 104 -#define OBJ_md5WithRSA OBJ_algorithm,3L - -#define SN_des_ecb "DES-ECB" -#define LN_des_ecb "des-ecb" -#define NID_des_ecb 29 -#define OBJ_des_ecb OBJ_algorithm,6L - -#define SN_des_cbc "DES-CBC" -#define LN_des_cbc "des-cbc" -#define NID_des_cbc 31 -#define OBJ_des_cbc OBJ_algorithm,7L - -#define SN_des_ofb64 "DES-OFB" -#define LN_des_ofb64 "des-ofb" -#define NID_des_ofb64 45 -#define OBJ_des_ofb64 OBJ_algorithm,8L - -#define SN_des_cfb64 "DES-CFB" -#define LN_des_cfb64 "des-cfb" -#define NID_des_cfb64 30 -#define OBJ_des_cfb64 OBJ_algorithm,9L - -#define SN_rsaSignature "rsaSignature" -#define NID_rsaSignature 377 -#define OBJ_rsaSignature OBJ_algorithm,11L - -#define SN_dsa_2 "DSA-old" -#define LN_dsa_2 "dsaEncryption-old" -#define NID_dsa_2 67 -#define OBJ_dsa_2 OBJ_algorithm,12L - -#define SN_dsaWithSHA "DSA-SHA" -#define LN_dsaWithSHA "dsaWithSHA" -#define NID_dsaWithSHA 66 -#define OBJ_dsaWithSHA OBJ_algorithm,13L - -#define SN_shaWithRSAEncryption "RSA-SHA" -#define LN_shaWithRSAEncryption "shaWithRSAEncryption" -#define NID_shaWithRSAEncryption 42 -#define OBJ_shaWithRSAEncryption OBJ_algorithm,15L - -#define SN_des_ede_ecb "DES-EDE" -#define LN_des_ede_ecb "des-ede" -#define NID_des_ede_ecb 32 -#define OBJ_des_ede_ecb OBJ_algorithm,17L - -#define SN_des_ede3_ecb "DES-EDE3" -#define LN_des_ede3_ecb "des-ede3" -#define NID_des_ede3_ecb 33 - -#define SN_des_ede_cbc "DES-EDE-CBC" -#define LN_des_ede_cbc "des-ede-cbc" -#define NID_des_ede_cbc 43 - -#define SN_des_ede_cfb64 "DES-EDE-CFB" -#define LN_des_ede_cfb64 "des-ede-cfb" -#define NID_des_ede_cfb64 60 - -#define SN_des_ede3_cfb64 "DES-EDE3-CFB" -#define LN_des_ede3_cfb64 "des-ede3-cfb" -#define NID_des_ede3_cfb64 61 - -#define SN_des_ede_ofb64 "DES-EDE-OFB" -#define LN_des_ede_ofb64 "des-ede-ofb" -#define NID_des_ede_ofb64 62 - -#define SN_des_ede3_ofb64 "DES-EDE3-OFB" -#define LN_des_ede3_ofb64 "des-ede3-ofb" -#define NID_des_ede3_ofb64 63 - -#define SN_desx_cbc "DESX-CBC" -#define LN_desx_cbc "desx-cbc" -#define NID_desx_cbc 80 - -#define SN_sha "SHA" -#define LN_sha "sha" -#define NID_sha 41 -#define OBJ_sha OBJ_algorithm,18L - -#define SN_sha1 "SHA1" -#define LN_sha1 "sha1" -#define NID_sha1 64 -#define OBJ_sha1 OBJ_algorithm,26L - -#define SN_dsaWithSHA1_2 "DSA-SHA1-old" -#define LN_dsaWithSHA1_2 "dsaWithSHA1-old" -#define NID_dsaWithSHA1_2 70 -#define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L - -#define SN_sha1WithRSA "RSA-SHA1-2" -#define LN_sha1WithRSA "sha1WithRSA" -#define NID_sha1WithRSA 115 -#define OBJ_sha1WithRSA OBJ_algorithm,29L - -#define SN_ripemd160 "RIPEMD160" -#define LN_ripemd160 "ripemd160" -#define NID_ripemd160 117 -#define OBJ_ripemd160 1L,3L,36L,3L,2L,1L - -#define SN_ripemd160WithRSA "RSA-RIPEMD160" -#define LN_ripemd160WithRSA "ripemd160WithRSA" -#define NID_ripemd160WithRSA 119 -#define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L - -#define SN_blake2b512 "BLAKE2b512" -#define LN_blake2b512 "blake2b512" -#define NID_blake2b512 1056 -#define OBJ_blake2b512 1L,3L,6L,1L,4L,1L,1722L,12L,2L,1L,16L - -#define SN_blake2s256 "BLAKE2s256" -#define LN_blake2s256 "blake2s256" -#define NID_blake2s256 1057 -#define OBJ_blake2s256 1L,3L,6L,1L,4L,1L,1722L,12L,2L,2L,8L - -#define SN_sxnet "SXNetID" -#define LN_sxnet "Strong Extranet ID" -#define NID_sxnet 143 -#define OBJ_sxnet 1L,3L,101L,1L,4L,1L - -#define SN_X500 "X500" -#define LN_X500 "directory services (X.500)" -#define NID_X500 11 -#define OBJ_X500 2L,5L - -#define SN_X509 "X509" -#define NID_X509 12 -#define OBJ_X509 OBJ_X500,4L - -#define SN_commonName "CN" -#define LN_commonName "commonName" -#define NID_commonName 13 -#define OBJ_commonName OBJ_X509,3L - -#define SN_surname "SN" -#define LN_surname "surname" -#define NID_surname 100 -#define OBJ_surname OBJ_X509,4L - -#define LN_serialNumber "serialNumber" -#define NID_serialNumber 105 -#define OBJ_serialNumber OBJ_X509,5L - -#define SN_countryName "C" -#define LN_countryName "countryName" -#define NID_countryName 14 -#define OBJ_countryName OBJ_X509,6L - -#define SN_localityName "L" -#define LN_localityName "localityName" -#define NID_localityName 15 -#define OBJ_localityName OBJ_X509,7L - -#define SN_stateOrProvinceName "ST" -#define LN_stateOrProvinceName "stateOrProvinceName" -#define NID_stateOrProvinceName 16 -#define OBJ_stateOrProvinceName OBJ_X509,8L - -#define SN_streetAddress "street" -#define LN_streetAddress "streetAddress" -#define NID_streetAddress 660 -#define OBJ_streetAddress OBJ_X509,9L - -#define SN_organizationName "O" -#define LN_organizationName "organizationName" -#define NID_organizationName 17 -#define OBJ_organizationName OBJ_X509,10L - -#define SN_organizationalUnitName "OU" -#define LN_organizationalUnitName "organizationalUnitName" -#define NID_organizationalUnitName 18 -#define OBJ_organizationalUnitName OBJ_X509,11L - -#define SN_title "title" -#define LN_title "title" -#define NID_title 106 -#define OBJ_title OBJ_X509,12L - -#define LN_description "description" -#define NID_description 107 -#define OBJ_description OBJ_X509,13L - -#define LN_searchGuide "searchGuide" -#define NID_searchGuide 859 -#define OBJ_searchGuide OBJ_X509,14L - -#define LN_businessCategory "businessCategory" -#define NID_businessCategory 860 -#define OBJ_businessCategory OBJ_X509,15L - -#define LN_postalAddress "postalAddress" -#define NID_postalAddress 861 -#define OBJ_postalAddress OBJ_X509,16L - -#define LN_postalCode "postalCode" -#define NID_postalCode 661 -#define OBJ_postalCode OBJ_X509,17L - -#define LN_postOfficeBox "postOfficeBox" -#define NID_postOfficeBox 862 -#define OBJ_postOfficeBox OBJ_X509,18L - -#define LN_physicalDeliveryOfficeName "physicalDeliveryOfficeName" -#define NID_physicalDeliveryOfficeName 863 -#define OBJ_physicalDeliveryOfficeName OBJ_X509,19L - -#define LN_telephoneNumber "telephoneNumber" -#define NID_telephoneNumber 864 -#define OBJ_telephoneNumber OBJ_X509,20L - -#define LN_telexNumber "telexNumber" -#define NID_telexNumber 865 -#define OBJ_telexNumber OBJ_X509,21L - -#define LN_teletexTerminalIdentifier "teletexTerminalIdentifier" -#define NID_teletexTerminalIdentifier 866 -#define OBJ_teletexTerminalIdentifier OBJ_X509,22L - -#define LN_facsimileTelephoneNumber "facsimileTelephoneNumber" -#define NID_facsimileTelephoneNumber 867 -#define OBJ_facsimileTelephoneNumber OBJ_X509,23L - -#define LN_x121Address "x121Address" -#define NID_x121Address 868 -#define OBJ_x121Address OBJ_X509,24L - -#define LN_internationaliSDNNumber "internationaliSDNNumber" -#define NID_internationaliSDNNumber 869 -#define OBJ_internationaliSDNNumber OBJ_X509,25L - -#define LN_registeredAddress "registeredAddress" -#define NID_registeredAddress 870 -#define OBJ_registeredAddress OBJ_X509,26L - -#define LN_destinationIndicator "destinationIndicator" -#define NID_destinationIndicator 871 -#define OBJ_destinationIndicator OBJ_X509,27L - -#define LN_preferredDeliveryMethod "preferredDeliveryMethod" -#define NID_preferredDeliveryMethod 872 -#define OBJ_preferredDeliveryMethod OBJ_X509,28L - -#define LN_presentationAddress "presentationAddress" -#define NID_presentationAddress 873 -#define OBJ_presentationAddress OBJ_X509,29L - -#define LN_supportedApplicationContext "supportedApplicationContext" -#define NID_supportedApplicationContext 874 -#define OBJ_supportedApplicationContext OBJ_X509,30L - -#define SN_member "member" -#define NID_member 875 -#define OBJ_member OBJ_X509,31L - -#define SN_owner "owner" -#define NID_owner 876 -#define OBJ_owner OBJ_X509,32L - -#define LN_roleOccupant "roleOccupant" -#define NID_roleOccupant 877 -#define OBJ_roleOccupant OBJ_X509,33L - -#define SN_seeAlso "seeAlso" -#define NID_seeAlso 878 -#define OBJ_seeAlso OBJ_X509,34L - -#define LN_userPassword "userPassword" -#define NID_userPassword 879 -#define OBJ_userPassword OBJ_X509,35L - -#define LN_userCertificate "userCertificate" -#define NID_userCertificate 880 -#define OBJ_userCertificate OBJ_X509,36L - -#define LN_cACertificate "cACertificate" -#define NID_cACertificate 881 -#define OBJ_cACertificate OBJ_X509,37L - -#define LN_authorityRevocationList "authorityRevocationList" -#define NID_authorityRevocationList 882 -#define OBJ_authorityRevocationList OBJ_X509,38L - -#define LN_certificateRevocationList "certificateRevocationList" -#define NID_certificateRevocationList 883 -#define OBJ_certificateRevocationList OBJ_X509,39L - -#define LN_crossCertificatePair "crossCertificatePair" -#define NID_crossCertificatePair 884 -#define OBJ_crossCertificatePair OBJ_X509,40L - -#define SN_name "name" -#define LN_name "name" -#define NID_name 173 -#define OBJ_name OBJ_X509,41L - -#define SN_givenName "GN" -#define LN_givenName "givenName" -#define NID_givenName 99 -#define OBJ_givenName OBJ_X509,42L - -#define SN_initials "initials" -#define LN_initials "initials" -#define NID_initials 101 -#define OBJ_initials OBJ_X509,43L - -#define LN_generationQualifier "generationQualifier" -#define NID_generationQualifier 509 -#define OBJ_generationQualifier OBJ_X509,44L - -#define LN_x500UniqueIdentifier "x500UniqueIdentifier" -#define NID_x500UniqueIdentifier 503 -#define OBJ_x500UniqueIdentifier OBJ_X509,45L - -#define SN_dnQualifier "dnQualifier" -#define LN_dnQualifier "dnQualifier" -#define NID_dnQualifier 174 -#define OBJ_dnQualifier OBJ_X509,46L - -#define LN_enhancedSearchGuide "enhancedSearchGuide" -#define NID_enhancedSearchGuide 885 -#define OBJ_enhancedSearchGuide OBJ_X509,47L - -#define LN_protocolInformation "protocolInformation" -#define NID_protocolInformation 886 -#define OBJ_protocolInformation OBJ_X509,48L - -#define LN_distinguishedName "distinguishedName" -#define NID_distinguishedName 887 -#define OBJ_distinguishedName OBJ_X509,49L - -#define LN_uniqueMember "uniqueMember" -#define NID_uniqueMember 888 -#define OBJ_uniqueMember OBJ_X509,50L - -#define LN_houseIdentifier "houseIdentifier" -#define NID_houseIdentifier 889 -#define OBJ_houseIdentifier OBJ_X509,51L - -#define LN_supportedAlgorithms "supportedAlgorithms" -#define NID_supportedAlgorithms 890 -#define OBJ_supportedAlgorithms OBJ_X509,52L - -#define LN_deltaRevocationList "deltaRevocationList" -#define NID_deltaRevocationList 891 -#define OBJ_deltaRevocationList OBJ_X509,53L - -#define SN_dmdName "dmdName" -#define NID_dmdName 892 -#define OBJ_dmdName OBJ_X509,54L - -#define LN_pseudonym "pseudonym" -#define NID_pseudonym 510 -#define OBJ_pseudonym OBJ_X509,65L - -#define SN_role "role" -#define LN_role "role" -#define NID_role 400 -#define OBJ_role OBJ_X509,72L - -#define LN_organizationIdentifier "organizationIdentifier" -#define NID_organizationIdentifier 1089 -#define OBJ_organizationIdentifier OBJ_X509,97L - -#define SN_countryCode3c "c3" -#define LN_countryCode3c "countryCode3c" -#define NID_countryCode3c 1090 -#define OBJ_countryCode3c OBJ_X509,98L - -#define SN_countryCode3n "n3" -#define LN_countryCode3n "countryCode3n" -#define NID_countryCode3n 1091 -#define OBJ_countryCode3n OBJ_X509,99L - -#define LN_dnsName "dnsName" -#define NID_dnsName 1092 -#define OBJ_dnsName OBJ_X509,100L - -#define SN_X500algorithms "X500algorithms" -#define LN_X500algorithms "directory services - algorithms" -#define NID_X500algorithms 378 -#define OBJ_X500algorithms OBJ_X500,8L - -#define SN_rsa "RSA" -#define LN_rsa "rsa" -#define NID_rsa 19 -#define OBJ_rsa OBJ_X500algorithms,1L,1L - -#define SN_mdc2WithRSA "RSA-MDC2" -#define LN_mdc2WithRSA "mdc2WithRSA" -#define NID_mdc2WithRSA 96 -#define OBJ_mdc2WithRSA OBJ_X500algorithms,3L,100L - -#define SN_mdc2 "MDC2" -#define LN_mdc2 "mdc2" -#define NID_mdc2 95 -#define OBJ_mdc2 OBJ_X500algorithms,3L,101L - -#define SN_id_ce "id-ce" -#define NID_id_ce 81 -#define OBJ_id_ce OBJ_X500,29L - -#define SN_subject_directory_attributes "subjectDirectoryAttributes" -#define LN_subject_directory_attributes "X509v3 Subject Directory Attributes" -#define NID_subject_directory_attributes 769 -#define OBJ_subject_directory_attributes OBJ_id_ce,9L - -#define SN_subject_key_identifier "subjectKeyIdentifier" -#define LN_subject_key_identifier "X509v3 Subject Key Identifier" -#define NID_subject_key_identifier 82 -#define OBJ_subject_key_identifier OBJ_id_ce,14L - -#define SN_key_usage "keyUsage" -#define LN_key_usage "X509v3 Key Usage" -#define NID_key_usage 83 -#define OBJ_key_usage OBJ_id_ce,15L - -#define SN_private_key_usage_period "privateKeyUsagePeriod" -#define LN_private_key_usage_period "X509v3 Private Key Usage Period" -#define NID_private_key_usage_period 84 -#define OBJ_private_key_usage_period OBJ_id_ce,16L - -#define SN_subject_alt_name "subjectAltName" -#define LN_subject_alt_name "X509v3 Subject Alternative Name" -#define NID_subject_alt_name 85 -#define OBJ_subject_alt_name OBJ_id_ce,17L - -#define SN_issuer_alt_name "issuerAltName" -#define LN_issuer_alt_name "X509v3 Issuer Alternative Name" -#define NID_issuer_alt_name 86 -#define OBJ_issuer_alt_name OBJ_id_ce,18L - -#define SN_basic_constraints "basicConstraints" -#define LN_basic_constraints "X509v3 Basic Constraints" -#define NID_basic_constraints 87 -#define OBJ_basic_constraints OBJ_id_ce,19L - -#define SN_crl_number "crlNumber" -#define LN_crl_number "X509v3 CRL Number" -#define NID_crl_number 88 -#define OBJ_crl_number OBJ_id_ce,20L - -#define SN_crl_reason "CRLReason" -#define LN_crl_reason "X509v3 CRL Reason Code" -#define NID_crl_reason 141 -#define OBJ_crl_reason OBJ_id_ce,21L - -#define SN_invalidity_date "invalidityDate" -#define LN_invalidity_date "Invalidity Date" -#define NID_invalidity_date 142 -#define OBJ_invalidity_date OBJ_id_ce,24L - -#define SN_delta_crl "deltaCRL" -#define LN_delta_crl "X509v3 Delta CRL Indicator" -#define NID_delta_crl 140 -#define OBJ_delta_crl OBJ_id_ce,27L - -#define SN_issuing_distribution_point "issuingDistributionPoint" -#define LN_issuing_distribution_point "X509v3 Issuing Distribution Point" -#define NID_issuing_distribution_point 770 -#define OBJ_issuing_distribution_point OBJ_id_ce,28L - -#define SN_certificate_issuer "certificateIssuer" -#define LN_certificate_issuer "X509v3 Certificate Issuer" -#define NID_certificate_issuer 771 -#define OBJ_certificate_issuer OBJ_id_ce,29L - -#define SN_name_constraints "nameConstraints" -#define LN_name_constraints "X509v3 Name Constraints" -#define NID_name_constraints 666 -#define OBJ_name_constraints OBJ_id_ce,30L - -#define SN_crl_distribution_points "crlDistributionPoints" -#define LN_crl_distribution_points "X509v3 CRL Distribution Points" -#define NID_crl_distribution_points 103 -#define OBJ_crl_distribution_points OBJ_id_ce,31L - -#define SN_certificate_policies "certificatePolicies" -#define LN_certificate_policies "X509v3 Certificate Policies" -#define NID_certificate_policies 89 -#define OBJ_certificate_policies OBJ_id_ce,32L - -#define SN_any_policy "anyPolicy" -#define LN_any_policy "X509v3 Any Policy" -#define NID_any_policy 746 -#define OBJ_any_policy OBJ_certificate_policies,0L - -#define SN_policy_mappings "policyMappings" -#define LN_policy_mappings "X509v3 Policy Mappings" -#define NID_policy_mappings 747 -#define OBJ_policy_mappings OBJ_id_ce,33L - -#define SN_authority_key_identifier "authorityKeyIdentifier" -#define LN_authority_key_identifier "X509v3 Authority Key Identifier" -#define NID_authority_key_identifier 90 -#define OBJ_authority_key_identifier OBJ_id_ce,35L - -#define SN_policy_constraints "policyConstraints" -#define LN_policy_constraints "X509v3 Policy Constraints" -#define NID_policy_constraints 401 -#define OBJ_policy_constraints OBJ_id_ce,36L - -#define SN_ext_key_usage "extendedKeyUsage" -#define LN_ext_key_usage "X509v3 Extended Key Usage" -#define NID_ext_key_usage 126 -#define OBJ_ext_key_usage OBJ_id_ce,37L - -#define SN_freshest_crl "freshestCRL" -#define LN_freshest_crl "X509v3 Freshest CRL" -#define NID_freshest_crl 857 -#define OBJ_freshest_crl OBJ_id_ce,46L - -#define SN_inhibit_any_policy "inhibitAnyPolicy" -#define LN_inhibit_any_policy "X509v3 Inhibit Any Policy" -#define NID_inhibit_any_policy 748 -#define OBJ_inhibit_any_policy OBJ_id_ce,54L - -#define SN_target_information "targetInformation" -#define LN_target_information "X509v3 AC Targeting" -#define NID_target_information 402 -#define OBJ_target_information OBJ_id_ce,55L - -#define SN_no_rev_avail "noRevAvail" -#define LN_no_rev_avail "X509v3 No Revocation Available" -#define NID_no_rev_avail 403 -#define OBJ_no_rev_avail OBJ_id_ce,56L - -#define SN_anyExtendedKeyUsage "anyExtendedKeyUsage" -#define LN_anyExtendedKeyUsage "Any Extended Key Usage" -#define NID_anyExtendedKeyUsage 910 -#define OBJ_anyExtendedKeyUsage OBJ_ext_key_usage,0L - -#define SN_netscape "Netscape" -#define LN_netscape "Netscape Communications Corp." -#define NID_netscape 57 -#define OBJ_netscape 2L,16L,840L,1L,113730L - -#define SN_netscape_cert_extension "nsCertExt" -#define LN_netscape_cert_extension "Netscape Certificate Extension" -#define NID_netscape_cert_extension 58 -#define OBJ_netscape_cert_extension OBJ_netscape,1L - -#define SN_netscape_data_type "nsDataType" -#define LN_netscape_data_type "Netscape Data Type" -#define NID_netscape_data_type 59 -#define OBJ_netscape_data_type OBJ_netscape,2L - -#define SN_netscape_cert_type "nsCertType" -#define LN_netscape_cert_type "Netscape Cert Type" -#define NID_netscape_cert_type 71 -#define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L - -#define SN_netscape_base_url "nsBaseUrl" -#define LN_netscape_base_url "Netscape Base Url" -#define NID_netscape_base_url 72 -#define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L - -#define SN_netscape_revocation_url "nsRevocationUrl" -#define LN_netscape_revocation_url "Netscape Revocation Url" -#define NID_netscape_revocation_url 73 -#define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L - -#define SN_netscape_ca_revocation_url "nsCaRevocationUrl" -#define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" -#define NID_netscape_ca_revocation_url 74 -#define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L - -#define SN_netscape_renewal_url "nsRenewalUrl" -#define LN_netscape_renewal_url "Netscape Renewal Url" -#define NID_netscape_renewal_url 75 -#define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L - -#define SN_netscape_ca_policy_url "nsCaPolicyUrl" -#define LN_netscape_ca_policy_url "Netscape CA Policy Url" -#define NID_netscape_ca_policy_url 76 -#define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L - -#define SN_netscape_ssl_server_name "nsSslServerName" -#define LN_netscape_ssl_server_name "Netscape SSL Server Name" -#define NID_netscape_ssl_server_name 77 -#define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L - -#define SN_netscape_comment "nsComment" -#define LN_netscape_comment "Netscape Comment" -#define NID_netscape_comment 78 -#define OBJ_netscape_comment OBJ_netscape_cert_extension,13L - -#define SN_netscape_cert_sequence "nsCertSequence" -#define LN_netscape_cert_sequence "Netscape Certificate Sequence" -#define NID_netscape_cert_sequence 79 -#define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L - -#define SN_ns_sgc "nsSGC" -#define LN_ns_sgc "Netscape Server Gated Crypto" -#define NID_ns_sgc 139 -#define OBJ_ns_sgc OBJ_netscape,4L,1L - -#define SN_org "ORG" -#define LN_org "org" -#define NID_org 379 -#define OBJ_org OBJ_iso,3L - -#define SN_dod "DOD" -#define LN_dod "dod" -#define NID_dod 380 -#define OBJ_dod OBJ_org,6L - -#define SN_iana "IANA" -#define LN_iana "iana" -#define NID_iana 381 -#define OBJ_iana OBJ_dod,1L - -#define OBJ_internet OBJ_iana - -#define SN_Directory "directory" -#define LN_Directory "Directory" -#define NID_Directory 382 -#define OBJ_Directory OBJ_internet,1L - -#define SN_Management "mgmt" -#define LN_Management "Management" -#define NID_Management 383 -#define OBJ_Management OBJ_internet,2L - -#define SN_Experimental "experimental" -#define LN_Experimental "Experimental" -#define NID_Experimental 384 -#define OBJ_Experimental OBJ_internet,3L - -#define SN_Private "private" -#define LN_Private "Private" -#define NID_Private 385 -#define OBJ_Private OBJ_internet,4L - -#define SN_Security "security" -#define LN_Security "Security" -#define NID_Security 386 -#define OBJ_Security OBJ_internet,5L - -#define SN_SNMPv2 "snmpv2" -#define LN_SNMPv2 "SNMPv2" -#define NID_SNMPv2 387 -#define OBJ_SNMPv2 OBJ_internet,6L - -#define LN_Mail "Mail" -#define NID_Mail 388 -#define OBJ_Mail OBJ_internet,7L - -#define SN_Enterprises "enterprises" -#define LN_Enterprises "Enterprises" -#define NID_Enterprises 389 -#define OBJ_Enterprises OBJ_Private,1L - -#define SN_dcObject "dcobject" -#define LN_dcObject "dcObject" -#define NID_dcObject 390 -#define OBJ_dcObject OBJ_Enterprises,1466L,344L - -#define SN_mime_mhs "mime-mhs" -#define LN_mime_mhs "MIME MHS" -#define NID_mime_mhs 504 -#define OBJ_mime_mhs OBJ_Mail,1L - -#define SN_mime_mhs_headings "mime-mhs-headings" -#define LN_mime_mhs_headings "mime-mhs-headings" -#define NID_mime_mhs_headings 505 -#define OBJ_mime_mhs_headings OBJ_mime_mhs,1L - -#define SN_mime_mhs_bodies "mime-mhs-bodies" -#define LN_mime_mhs_bodies "mime-mhs-bodies" -#define NID_mime_mhs_bodies 506 -#define OBJ_mime_mhs_bodies OBJ_mime_mhs,2L - -#define SN_id_hex_partial_message "id-hex-partial-message" -#define LN_id_hex_partial_message "id-hex-partial-message" -#define NID_id_hex_partial_message 507 -#define OBJ_id_hex_partial_message OBJ_mime_mhs_headings,1L - -#define SN_id_hex_multipart_message "id-hex-multipart-message" -#define LN_id_hex_multipart_message "id-hex-multipart-message" -#define NID_id_hex_multipart_message 508 -#define OBJ_id_hex_multipart_message OBJ_mime_mhs_headings,2L - -#define SN_zlib_compression "ZLIB" -#define LN_zlib_compression "zlib compression" -#define NID_zlib_compression 125 -#define OBJ_zlib_compression OBJ_id_smime_alg,8L - -#define OBJ_csor 2L,16L,840L,1L,101L,3L - -#define OBJ_nistAlgorithms OBJ_csor,4L - -#define OBJ_aes OBJ_nistAlgorithms,1L - -#define SN_aes_128_ecb "AES-128-ECB" -#define LN_aes_128_ecb "aes-128-ecb" -#define NID_aes_128_ecb 418 -#define OBJ_aes_128_ecb OBJ_aes,1L - -#define SN_aes_128_cbc "AES-128-CBC" -#define LN_aes_128_cbc "aes-128-cbc" -#define NID_aes_128_cbc 419 -#define OBJ_aes_128_cbc OBJ_aes,2L - -#define SN_aes_128_ofb128 "AES-128-OFB" -#define LN_aes_128_ofb128 "aes-128-ofb" -#define NID_aes_128_ofb128 420 -#define OBJ_aes_128_ofb128 OBJ_aes,3L - -#define SN_aes_128_cfb128 "AES-128-CFB" -#define LN_aes_128_cfb128 "aes-128-cfb" -#define NID_aes_128_cfb128 421 -#define OBJ_aes_128_cfb128 OBJ_aes,4L - -#define SN_id_aes128_wrap "id-aes128-wrap" -#define NID_id_aes128_wrap 788 -#define OBJ_id_aes128_wrap OBJ_aes,5L - -#define SN_aes_128_gcm "id-aes128-GCM" -#define LN_aes_128_gcm "aes-128-gcm" -#define NID_aes_128_gcm 895 -#define OBJ_aes_128_gcm OBJ_aes,6L - -#define SN_aes_128_ccm "id-aes128-CCM" -#define LN_aes_128_ccm "aes-128-ccm" -#define NID_aes_128_ccm 896 -#define OBJ_aes_128_ccm OBJ_aes,7L - -#define SN_id_aes128_wrap_pad "id-aes128-wrap-pad" -#define NID_id_aes128_wrap_pad 897 -#define OBJ_id_aes128_wrap_pad OBJ_aes,8L - -#define SN_aes_192_ecb "AES-192-ECB" -#define LN_aes_192_ecb "aes-192-ecb" -#define NID_aes_192_ecb 422 -#define OBJ_aes_192_ecb OBJ_aes,21L - -#define SN_aes_192_cbc "AES-192-CBC" -#define LN_aes_192_cbc "aes-192-cbc" -#define NID_aes_192_cbc 423 -#define OBJ_aes_192_cbc OBJ_aes,22L - -#define SN_aes_192_ofb128 "AES-192-OFB" -#define LN_aes_192_ofb128 "aes-192-ofb" -#define NID_aes_192_ofb128 424 -#define OBJ_aes_192_ofb128 OBJ_aes,23L - -#define SN_aes_192_cfb128 "AES-192-CFB" -#define LN_aes_192_cfb128 "aes-192-cfb" -#define NID_aes_192_cfb128 425 -#define OBJ_aes_192_cfb128 OBJ_aes,24L - -#define SN_id_aes192_wrap "id-aes192-wrap" -#define NID_id_aes192_wrap 789 -#define OBJ_id_aes192_wrap OBJ_aes,25L - -#define SN_aes_192_gcm "id-aes192-GCM" -#define LN_aes_192_gcm "aes-192-gcm" -#define NID_aes_192_gcm 898 -#define OBJ_aes_192_gcm OBJ_aes,26L - -#define SN_aes_192_ccm "id-aes192-CCM" -#define LN_aes_192_ccm "aes-192-ccm" -#define NID_aes_192_ccm 899 -#define OBJ_aes_192_ccm OBJ_aes,27L - -#define SN_id_aes192_wrap_pad "id-aes192-wrap-pad" -#define NID_id_aes192_wrap_pad 900 -#define OBJ_id_aes192_wrap_pad OBJ_aes,28L - -#define SN_aes_256_ecb "AES-256-ECB" -#define LN_aes_256_ecb "aes-256-ecb" -#define NID_aes_256_ecb 426 -#define OBJ_aes_256_ecb OBJ_aes,41L - -#define SN_aes_256_cbc "AES-256-CBC" -#define LN_aes_256_cbc "aes-256-cbc" -#define NID_aes_256_cbc 427 -#define OBJ_aes_256_cbc OBJ_aes,42L - -#define SN_aes_256_ofb128 "AES-256-OFB" -#define LN_aes_256_ofb128 "aes-256-ofb" -#define NID_aes_256_ofb128 428 -#define OBJ_aes_256_ofb128 OBJ_aes,43L - -#define SN_aes_256_cfb128 "AES-256-CFB" -#define LN_aes_256_cfb128 "aes-256-cfb" -#define NID_aes_256_cfb128 429 -#define OBJ_aes_256_cfb128 OBJ_aes,44L - -#define SN_id_aes256_wrap "id-aes256-wrap" -#define NID_id_aes256_wrap 790 -#define OBJ_id_aes256_wrap OBJ_aes,45L - -#define SN_aes_256_gcm "id-aes256-GCM" -#define LN_aes_256_gcm "aes-256-gcm" -#define NID_aes_256_gcm 901 -#define OBJ_aes_256_gcm OBJ_aes,46L - -#define SN_aes_256_ccm "id-aes256-CCM" -#define LN_aes_256_ccm "aes-256-ccm" -#define NID_aes_256_ccm 902 -#define OBJ_aes_256_ccm OBJ_aes,47L - -#define SN_id_aes256_wrap_pad "id-aes256-wrap-pad" -#define NID_id_aes256_wrap_pad 903 -#define OBJ_id_aes256_wrap_pad OBJ_aes,48L - -#define SN_aes_128_xts "AES-128-XTS" -#define LN_aes_128_xts "aes-128-xts" -#define NID_aes_128_xts 913 -#define OBJ_aes_128_xts OBJ_ieee_siswg,0L,1L,1L - -#define SN_aes_256_xts "AES-256-XTS" -#define LN_aes_256_xts "aes-256-xts" -#define NID_aes_256_xts 914 -#define OBJ_aes_256_xts OBJ_ieee_siswg,0L,1L,2L - -#define SN_aes_128_cfb1 "AES-128-CFB1" -#define LN_aes_128_cfb1 "aes-128-cfb1" -#define NID_aes_128_cfb1 650 - -#define SN_aes_192_cfb1 "AES-192-CFB1" -#define LN_aes_192_cfb1 "aes-192-cfb1" -#define NID_aes_192_cfb1 651 - -#define SN_aes_256_cfb1 "AES-256-CFB1" -#define LN_aes_256_cfb1 "aes-256-cfb1" -#define NID_aes_256_cfb1 652 - -#define SN_aes_128_cfb8 "AES-128-CFB8" -#define LN_aes_128_cfb8 "aes-128-cfb8" -#define NID_aes_128_cfb8 653 - -#define SN_aes_192_cfb8 "AES-192-CFB8" -#define LN_aes_192_cfb8 "aes-192-cfb8" -#define NID_aes_192_cfb8 654 - -#define SN_aes_256_cfb8 "AES-256-CFB8" -#define LN_aes_256_cfb8 "aes-256-cfb8" -#define NID_aes_256_cfb8 655 - -#define SN_aes_128_ctr "AES-128-CTR" -#define LN_aes_128_ctr "aes-128-ctr" -#define NID_aes_128_ctr 904 - -#define SN_aes_192_ctr "AES-192-CTR" -#define LN_aes_192_ctr "aes-192-ctr" -#define NID_aes_192_ctr 905 - -#define SN_aes_256_ctr "AES-256-CTR" -#define LN_aes_256_ctr "aes-256-ctr" -#define NID_aes_256_ctr 906 - -#define SN_aes_128_ocb "AES-128-OCB" -#define LN_aes_128_ocb "aes-128-ocb" -#define NID_aes_128_ocb 958 - -#define SN_aes_192_ocb "AES-192-OCB" -#define LN_aes_192_ocb "aes-192-ocb" -#define NID_aes_192_ocb 959 - -#define SN_aes_256_ocb "AES-256-OCB" -#define LN_aes_256_ocb "aes-256-ocb" -#define NID_aes_256_ocb 960 - -#define SN_des_cfb1 "DES-CFB1" -#define LN_des_cfb1 "des-cfb1" -#define NID_des_cfb1 656 - -#define SN_des_cfb8 "DES-CFB8" -#define LN_des_cfb8 "des-cfb8" -#define NID_des_cfb8 657 - -#define SN_des_ede3_cfb1 "DES-EDE3-CFB1" -#define LN_des_ede3_cfb1 "des-ede3-cfb1" -#define NID_des_ede3_cfb1 658 - -#define SN_des_ede3_cfb8 "DES-EDE3-CFB8" -#define LN_des_ede3_cfb8 "des-ede3-cfb8" -#define NID_des_ede3_cfb8 659 - -#define OBJ_nist_hashalgs OBJ_nistAlgorithms,2L - -#define SN_sha256 "SHA256" -#define LN_sha256 "sha256" -#define NID_sha256 672 -#define OBJ_sha256 OBJ_nist_hashalgs,1L - -#define SN_sha384 "SHA384" -#define LN_sha384 "sha384" -#define NID_sha384 673 -#define OBJ_sha384 OBJ_nist_hashalgs,2L - -#define SN_sha512 "SHA512" -#define LN_sha512 "sha512" -#define NID_sha512 674 -#define OBJ_sha512 OBJ_nist_hashalgs,3L - -#define SN_sha224 "SHA224" -#define LN_sha224 "sha224" -#define NID_sha224 675 -#define OBJ_sha224 OBJ_nist_hashalgs,4L - -#define SN_sha512_224 "SHA512-224" -#define LN_sha512_224 "sha512-224" -#define NID_sha512_224 1094 -#define OBJ_sha512_224 OBJ_nist_hashalgs,5L - -#define SN_sha512_256 "SHA512-256" -#define LN_sha512_256 "sha512-256" -#define NID_sha512_256 1095 -#define OBJ_sha512_256 OBJ_nist_hashalgs,6L - -#define SN_sha3_224 "SHA3-224" -#define LN_sha3_224 "sha3-224" -#define NID_sha3_224 1096 -#define OBJ_sha3_224 OBJ_nist_hashalgs,7L - -#define SN_sha3_256 "SHA3-256" -#define LN_sha3_256 "sha3-256" -#define NID_sha3_256 1097 -#define OBJ_sha3_256 OBJ_nist_hashalgs,8L - -#define SN_sha3_384 "SHA3-384" -#define LN_sha3_384 "sha3-384" -#define NID_sha3_384 1098 -#define OBJ_sha3_384 OBJ_nist_hashalgs,9L - -#define SN_sha3_512 "SHA3-512" -#define LN_sha3_512 "sha3-512" -#define NID_sha3_512 1099 -#define OBJ_sha3_512 OBJ_nist_hashalgs,10L - -#define SN_shake128 "SHAKE128" -#define LN_shake128 "shake128" -#define NID_shake128 1100 -#define OBJ_shake128 OBJ_nist_hashalgs,11L - -#define SN_shake256 "SHAKE256" -#define LN_shake256 "shake256" -#define NID_shake256 1101 -#define OBJ_shake256 OBJ_nist_hashalgs,12L - -#define SN_hmac_sha3_224 "id-hmacWithSHA3-224" -#define LN_hmac_sha3_224 "hmac-sha3-224" -#define NID_hmac_sha3_224 1102 -#define OBJ_hmac_sha3_224 OBJ_nist_hashalgs,13L - -#define SN_hmac_sha3_256 "id-hmacWithSHA3-256" -#define LN_hmac_sha3_256 "hmac-sha3-256" -#define NID_hmac_sha3_256 1103 -#define OBJ_hmac_sha3_256 OBJ_nist_hashalgs,14L - -#define SN_hmac_sha3_384 "id-hmacWithSHA3-384" -#define LN_hmac_sha3_384 "hmac-sha3-384" -#define NID_hmac_sha3_384 1104 -#define OBJ_hmac_sha3_384 OBJ_nist_hashalgs,15L - -#define SN_hmac_sha3_512 "id-hmacWithSHA3-512" -#define LN_hmac_sha3_512 "hmac-sha3-512" -#define NID_hmac_sha3_512 1105 -#define OBJ_hmac_sha3_512 OBJ_nist_hashalgs,16L - -#define OBJ_dsa_with_sha2 OBJ_nistAlgorithms,3L - -#define SN_dsa_with_SHA224 "dsa_with_SHA224" -#define NID_dsa_with_SHA224 802 -#define OBJ_dsa_with_SHA224 OBJ_dsa_with_sha2,1L - -#define SN_dsa_with_SHA256 "dsa_with_SHA256" -#define NID_dsa_with_SHA256 803 -#define OBJ_dsa_with_SHA256 OBJ_dsa_with_sha2,2L - -#define OBJ_sigAlgs OBJ_nistAlgorithms,3L - -#define SN_dsa_with_SHA384 "id-dsa-with-sha384" -#define LN_dsa_with_SHA384 "dsa_with_SHA384" -#define NID_dsa_with_SHA384 1106 -#define OBJ_dsa_with_SHA384 OBJ_sigAlgs,3L - -#define SN_dsa_with_SHA512 "id-dsa-with-sha512" -#define LN_dsa_with_SHA512 "dsa_with_SHA512" -#define NID_dsa_with_SHA512 1107 -#define OBJ_dsa_with_SHA512 OBJ_sigAlgs,4L - -#define SN_dsa_with_SHA3_224 "id-dsa-with-sha3-224" -#define LN_dsa_with_SHA3_224 "dsa_with_SHA3-224" -#define NID_dsa_with_SHA3_224 1108 -#define OBJ_dsa_with_SHA3_224 OBJ_sigAlgs,5L - -#define SN_dsa_with_SHA3_256 "id-dsa-with-sha3-256" -#define LN_dsa_with_SHA3_256 "dsa_with_SHA3-256" -#define NID_dsa_with_SHA3_256 1109 -#define OBJ_dsa_with_SHA3_256 OBJ_sigAlgs,6L - -#define SN_dsa_with_SHA3_384 "id-dsa-with-sha3-384" -#define LN_dsa_with_SHA3_384 "dsa_with_SHA3-384" -#define NID_dsa_with_SHA3_384 1110 -#define OBJ_dsa_with_SHA3_384 OBJ_sigAlgs,7L - -#define SN_dsa_with_SHA3_512 "id-dsa-with-sha3-512" -#define LN_dsa_with_SHA3_512 "dsa_with_SHA3-512" -#define NID_dsa_with_SHA3_512 1111 -#define OBJ_dsa_with_SHA3_512 OBJ_sigAlgs,8L - -#define SN_ecdsa_with_SHA3_224 "id-ecdsa-with-sha3-224" -#define LN_ecdsa_with_SHA3_224 "ecdsa_with_SHA3-224" -#define NID_ecdsa_with_SHA3_224 1112 -#define OBJ_ecdsa_with_SHA3_224 OBJ_sigAlgs,9L - -#define SN_ecdsa_with_SHA3_256 "id-ecdsa-with-sha3-256" -#define LN_ecdsa_with_SHA3_256 "ecdsa_with_SHA3-256" -#define NID_ecdsa_with_SHA3_256 1113 -#define OBJ_ecdsa_with_SHA3_256 OBJ_sigAlgs,10L - -#define SN_ecdsa_with_SHA3_384 "id-ecdsa-with-sha3-384" -#define LN_ecdsa_with_SHA3_384 "ecdsa_with_SHA3-384" -#define NID_ecdsa_with_SHA3_384 1114 -#define OBJ_ecdsa_with_SHA3_384 OBJ_sigAlgs,11L - -#define SN_ecdsa_with_SHA3_512 "id-ecdsa-with-sha3-512" -#define LN_ecdsa_with_SHA3_512 "ecdsa_with_SHA3-512" -#define NID_ecdsa_with_SHA3_512 1115 -#define OBJ_ecdsa_with_SHA3_512 OBJ_sigAlgs,12L - -#define SN_RSA_SHA3_224 "id-rsassa-pkcs1-v1_5-with-sha3-224" -#define LN_RSA_SHA3_224 "RSA-SHA3-224" -#define NID_RSA_SHA3_224 1116 -#define OBJ_RSA_SHA3_224 OBJ_sigAlgs,13L - -#define SN_RSA_SHA3_256 "id-rsassa-pkcs1-v1_5-with-sha3-256" -#define LN_RSA_SHA3_256 "RSA-SHA3-256" -#define NID_RSA_SHA3_256 1117 -#define OBJ_RSA_SHA3_256 OBJ_sigAlgs,14L - -#define SN_RSA_SHA3_384 "id-rsassa-pkcs1-v1_5-with-sha3-384" -#define LN_RSA_SHA3_384 "RSA-SHA3-384" -#define NID_RSA_SHA3_384 1118 -#define OBJ_RSA_SHA3_384 OBJ_sigAlgs,15L - -#define SN_RSA_SHA3_512 "id-rsassa-pkcs1-v1_5-with-sha3-512" -#define LN_RSA_SHA3_512 "RSA-SHA3-512" -#define NID_RSA_SHA3_512 1119 -#define OBJ_RSA_SHA3_512 OBJ_sigAlgs,16L - -#define SN_hold_instruction_code "holdInstructionCode" -#define LN_hold_instruction_code "Hold Instruction Code" -#define NID_hold_instruction_code 430 -#define OBJ_hold_instruction_code OBJ_id_ce,23L - -#define OBJ_holdInstruction OBJ_X9_57,2L - -#define SN_hold_instruction_none "holdInstructionNone" -#define LN_hold_instruction_none "Hold Instruction None" -#define NID_hold_instruction_none 431 -#define OBJ_hold_instruction_none OBJ_holdInstruction,1L - -#define SN_hold_instruction_call_issuer "holdInstructionCallIssuer" -#define LN_hold_instruction_call_issuer "Hold Instruction Call Issuer" -#define NID_hold_instruction_call_issuer 432 -#define OBJ_hold_instruction_call_issuer OBJ_holdInstruction,2L - -#define SN_hold_instruction_reject "holdInstructionReject" -#define LN_hold_instruction_reject "Hold Instruction Reject" -#define NID_hold_instruction_reject 433 -#define OBJ_hold_instruction_reject OBJ_holdInstruction,3L - -#define SN_data "data" -#define NID_data 434 -#define OBJ_data OBJ_itu_t,9L - -#define SN_pss "pss" -#define NID_pss 435 -#define OBJ_pss OBJ_data,2342L - -#define SN_ucl "ucl" -#define NID_ucl 436 -#define OBJ_ucl OBJ_pss,19200300L - -#define SN_pilot "pilot" -#define NID_pilot 437 -#define OBJ_pilot OBJ_ucl,100L - -#define LN_pilotAttributeType "pilotAttributeType" -#define NID_pilotAttributeType 438 -#define OBJ_pilotAttributeType OBJ_pilot,1L - -#define LN_pilotAttributeSyntax "pilotAttributeSyntax" -#define NID_pilotAttributeSyntax 439 -#define OBJ_pilotAttributeSyntax OBJ_pilot,3L - -#define LN_pilotObjectClass "pilotObjectClass" -#define NID_pilotObjectClass 440 -#define OBJ_pilotObjectClass OBJ_pilot,4L - -#define LN_pilotGroups "pilotGroups" -#define NID_pilotGroups 441 -#define OBJ_pilotGroups OBJ_pilot,10L - -#define LN_iA5StringSyntax "iA5StringSyntax" -#define NID_iA5StringSyntax 442 -#define OBJ_iA5StringSyntax OBJ_pilotAttributeSyntax,4L - -#define LN_caseIgnoreIA5StringSyntax "caseIgnoreIA5StringSyntax" -#define NID_caseIgnoreIA5StringSyntax 443 -#define OBJ_caseIgnoreIA5StringSyntax OBJ_pilotAttributeSyntax,5L - -#define LN_pilotObject "pilotObject" -#define NID_pilotObject 444 -#define OBJ_pilotObject OBJ_pilotObjectClass,3L - -#define LN_pilotPerson "pilotPerson" -#define NID_pilotPerson 445 -#define OBJ_pilotPerson OBJ_pilotObjectClass,4L - -#define SN_account "account" -#define NID_account 446 -#define OBJ_account OBJ_pilotObjectClass,5L - -#define SN_document "document" -#define NID_document 447 -#define OBJ_document OBJ_pilotObjectClass,6L - -#define SN_room "room" -#define NID_room 448 -#define OBJ_room OBJ_pilotObjectClass,7L - -#define LN_documentSeries "documentSeries" -#define NID_documentSeries 449 -#define OBJ_documentSeries OBJ_pilotObjectClass,9L - -#define SN_Domain "domain" -#define LN_Domain "Domain" -#define NID_Domain 392 -#define OBJ_Domain OBJ_pilotObjectClass,13L - -#define LN_rFC822localPart "rFC822localPart" -#define NID_rFC822localPart 450 -#define OBJ_rFC822localPart OBJ_pilotObjectClass,14L - -#define LN_dNSDomain "dNSDomain" -#define NID_dNSDomain 451 -#define OBJ_dNSDomain OBJ_pilotObjectClass,15L - -#define LN_domainRelatedObject "domainRelatedObject" -#define NID_domainRelatedObject 452 -#define OBJ_domainRelatedObject OBJ_pilotObjectClass,17L - -#define LN_friendlyCountry "friendlyCountry" -#define NID_friendlyCountry 453 -#define OBJ_friendlyCountry OBJ_pilotObjectClass,18L - -#define LN_simpleSecurityObject "simpleSecurityObject" -#define NID_simpleSecurityObject 454 -#define OBJ_simpleSecurityObject OBJ_pilotObjectClass,19L - -#define LN_pilotOrganization "pilotOrganization" -#define NID_pilotOrganization 455 -#define OBJ_pilotOrganization OBJ_pilotObjectClass,20L - -#define LN_pilotDSA "pilotDSA" -#define NID_pilotDSA 456 -#define OBJ_pilotDSA OBJ_pilotObjectClass,21L - -#define LN_qualityLabelledData "qualityLabelledData" -#define NID_qualityLabelledData 457 -#define OBJ_qualityLabelledData OBJ_pilotObjectClass,22L - -#define SN_userId "UID" -#define LN_userId "userId" -#define NID_userId 458 -#define OBJ_userId OBJ_pilotAttributeType,1L - -#define LN_textEncodedORAddress "textEncodedORAddress" -#define NID_textEncodedORAddress 459 -#define OBJ_textEncodedORAddress OBJ_pilotAttributeType,2L - -#define SN_rfc822Mailbox "mail" -#define LN_rfc822Mailbox "rfc822Mailbox" -#define NID_rfc822Mailbox 460 -#define OBJ_rfc822Mailbox OBJ_pilotAttributeType,3L - -#define SN_info "info" -#define NID_info 461 -#define OBJ_info OBJ_pilotAttributeType,4L - -#define LN_favouriteDrink "favouriteDrink" -#define NID_favouriteDrink 462 -#define OBJ_favouriteDrink OBJ_pilotAttributeType,5L - -#define LN_roomNumber "roomNumber" -#define NID_roomNumber 463 -#define OBJ_roomNumber OBJ_pilotAttributeType,6L - -#define SN_photo "photo" -#define NID_photo 464 -#define OBJ_photo OBJ_pilotAttributeType,7L - -#define LN_userClass "userClass" -#define NID_userClass 465 -#define OBJ_userClass OBJ_pilotAttributeType,8L - -#define SN_host "host" -#define NID_host 466 -#define OBJ_host OBJ_pilotAttributeType,9L - -#define SN_manager "manager" -#define NID_manager 467 -#define OBJ_manager OBJ_pilotAttributeType,10L - -#define LN_documentIdentifier "documentIdentifier" -#define NID_documentIdentifier 468 -#define OBJ_documentIdentifier OBJ_pilotAttributeType,11L - -#define LN_documentTitle "documentTitle" -#define NID_documentTitle 469 -#define OBJ_documentTitle OBJ_pilotAttributeType,12L - -#define LN_documentVersion "documentVersion" -#define NID_documentVersion 470 -#define OBJ_documentVersion OBJ_pilotAttributeType,13L - -#define LN_documentAuthor "documentAuthor" -#define NID_documentAuthor 471 -#define OBJ_documentAuthor OBJ_pilotAttributeType,14L - -#define LN_documentLocation "documentLocation" -#define NID_documentLocation 472 -#define OBJ_documentLocation OBJ_pilotAttributeType,15L - -#define LN_homeTelephoneNumber "homeTelephoneNumber" -#define NID_homeTelephoneNumber 473 -#define OBJ_homeTelephoneNumber OBJ_pilotAttributeType,20L - -#define SN_secretary "secretary" -#define NID_secretary 474 -#define OBJ_secretary OBJ_pilotAttributeType,21L - -#define LN_otherMailbox "otherMailbox" -#define NID_otherMailbox 475 -#define OBJ_otherMailbox OBJ_pilotAttributeType,22L - -#define LN_lastModifiedTime "lastModifiedTime" -#define NID_lastModifiedTime 476 -#define OBJ_lastModifiedTime OBJ_pilotAttributeType,23L - -#define LN_lastModifiedBy "lastModifiedBy" -#define NID_lastModifiedBy 477 -#define OBJ_lastModifiedBy OBJ_pilotAttributeType,24L - -#define SN_domainComponent "DC" -#define LN_domainComponent "domainComponent" -#define NID_domainComponent 391 -#define OBJ_domainComponent OBJ_pilotAttributeType,25L - -#define LN_aRecord "aRecord" -#define NID_aRecord 478 -#define OBJ_aRecord OBJ_pilotAttributeType,26L - -#define LN_pilotAttributeType27 "pilotAttributeType27" -#define NID_pilotAttributeType27 479 -#define OBJ_pilotAttributeType27 OBJ_pilotAttributeType,27L - -#define LN_mXRecord "mXRecord" -#define NID_mXRecord 480 -#define OBJ_mXRecord OBJ_pilotAttributeType,28L - -#define LN_nSRecord "nSRecord" -#define NID_nSRecord 481 -#define OBJ_nSRecord OBJ_pilotAttributeType,29L - -#define LN_sOARecord "sOARecord" -#define NID_sOARecord 482 -#define OBJ_sOARecord OBJ_pilotAttributeType,30L - -#define LN_cNAMERecord "cNAMERecord" -#define NID_cNAMERecord 483 -#define OBJ_cNAMERecord OBJ_pilotAttributeType,31L - -#define LN_associatedDomain "associatedDomain" -#define NID_associatedDomain 484 -#define OBJ_associatedDomain OBJ_pilotAttributeType,37L - -#define LN_associatedName "associatedName" -#define NID_associatedName 485 -#define OBJ_associatedName OBJ_pilotAttributeType,38L - -#define LN_homePostalAddress "homePostalAddress" -#define NID_homePostalAddress 486 -#define OBJ_homePostalAddress OBJ_pilotAttributeType,39L - -#define LN_personalTitle "personalTitle" -#define NID_personalTitle 487 -#define OBJ_personalTitle OBJ_pilotAttributeType,40L - -#define LN_mobileTelephoneNumber "mobileTelephoneNumber" -#define NID_mobileTelephoneNumber 488 -#define OBJ_mobileTelephoneNumber OBJ_pilotAttributeType,41L - -#define LN_pagerTelephoneNumber "pagerTelephoneNumber" -#define NID_pagerTelephoneNumber 489 -#define OBJ_pagerTelephoneNumber OBJ_pilotAttributeType,42L - -#define LN_friendlyCountryName "friendlyCountryName" -#define NID_friendlyCountryName 490 -#define OBJ_friendlyCountryName OBJ_pilotAttributeType,43L - -#define SN_uniqueIdentifier "uid" -#define LN_uniqueIdentifier "uniqueIdentifier" -#define NID_uniqueIdentifier 102 -#define OBJ_uniqueIdentifier OBJ_pilotAttributeType,44L - -#define LN_organizationalStatus "organizationalStatus" -#define NID_organizationalStatus 491 -#define OBJ_organizationalStatus OBJ_pilotAttributeType,45L - -#define LN_janetMailbox "janetMailbox" -#define NID_janetMailbox 492 -#define OBJ_janetMailbox OBJ_pilotAttributeType,46L - -#define LN_mailPreferenceOption "mailPreferenceOption" -#define NID_mailPreferenceOption 493 -#define OBJ_mailPreferenceOption OBJ_pilotAttributeType,47L - -#define LN_buildingName "buildingName" -#define NID_buildingName 494 -#define OBJ_buildingName OBJ_pilotAttributeType,48L - -#define LN_dSAQuality "dSAQuality" -#define NID_dSAQuality 495 -#define OBJ_dSAQuality OBJ_pilotAttributeType,49L - -#define LN_singleLevelQuality "singleLevelQuality" -#define NID_singleLevelQuality 496 -#define OBJ_singleLevelQuality OBJ_pilotAttributeType,50L - -#define LN_subtreeMinimumQuality "subtreeMinimumQuality" -#define NID_subtreeMinimumQuality 497 -#define OBJ_subtreeMinimumQuality OBJ_pilotAttributeType,51L - -#define LN_subtreeMaximumQuality "subtreeMaximumQuality" -#define NID_subtreeMaximumQuality 498 -#define OBJ_subtreeMaximumQuality OBJ_pilotAttributeType,52L - -#define LN_personalSignature "personalSignature" -#define NID_personalSignature 499 -#define OBJ_personalSignature OBJ_pilotAttributeType,53L - -#define LN_dITRedirect "dITRedirect" -#define NID_dITRedirect 500 -#define OBJ_dITRedirect OBJ_pilotAttributeType,54L - -#define SN_audio "audio" -#define NID_audio 501 -#define OBJ_audio OBJ_pilotAttributeType,55L - -#define LN_documentPublisher "documentPublisher" -#define NID_documentPublisher 502 -#define OBJ_documentPublisher OBJ_pilotAttributeType,56L - -#define SN_id_set "id-set" -#define LN_id_set "Secure Electronic Transactions" -#define NID_id_set 512 -#define OBJ_id_set OBJ_international_organizations,42L - -#define SN_set_ctype "set-ctype" -#define LN_set_ctype "content types" -#define NID_set_ctype 513 -#define OBJ_set_ctype OBJ_id_set,0L - -#define SN_set_msgExt "set-msgExt" -#define LN_set_msgExt "message extensions" -#define NID_set_msgExt 514 -#define OBJ_set_msgExt OBJ_id_set,1L - -#define SN_set_attr "set-attr" -#define NID_set_attr 515 -#define OBJ_set_attr OBJ_id_set,3L - -#define SN_set_policy "set-policy" -#define NID_set_policy 516 -#define OBJ_set_policy OBJ_id_set,5L - -#define SN_set_certExt "set-certExt" -#define LN_set_certExt "certificate extensions" -#define NID_set_certExt 517 -#define OBJ_set_certExt OBJ_id_set,7L - -#define SN_set_brand "set-brand" -#define NID_set_brand 518 -#define OBJ_set_brand OBJ_id_set,8L - -#define SN_setct_PANData "setct-PANData" -#define NID_setct_PANData 519 -#define OBJ_setct_PANData OBJ_set_ctype,0L - -#define SN_setct_PANToken "setct-PANToken" -#define NID_setct_PANToken 520 -#define OBJ_setct_PANToken OBJ_set_ctype,1L - -#define SN_setct_PANOnly "setct-PANOnly" -#define NID_setct_PANOnly 521 -#define OBJ_setct_PANOnly OBJ_set_ctype,2L - -#define SN_setct_OIData "setct-OIData" -#define NID_setct_OIData 522 -#define OBJ_setct_OIData OBJ_set_ctype,3L - -#define SN_setct_PI "setct-PI" -#define NID_setct_PI 523 -#define OBJ_setct_PI OBJ_set_ctype,4L - -#define SN_setct_PIData "setct-PIData" -#define NID_setct_PIData 524 -#define OBJ_setct_PIData OBJ_set_ctype,5L - -#define SN_setct_PIDataUnsigned "setct-PIDataUnsigned" -#define NID_setct_PIDataUnsigned 525 -#define OBJ_setct_PIDataUnsigned OBJ_set_ctype,6L - -#define SN_setct_HODInput "setct-HODInput" -#define NID_setct_HODInput 526 -#define OBJ_setct_HODInput OBJ_set_ctype,7L - -#define SN_setct_AuthResBaggage "setct-AuthResBaggage" -#define NID_setct_AuthResBaggage 527 -#define OBJ_setct_AuthResBaggage OBJ_set_ctype,8L - -#define SN_setct_AuthRevReqBaggage "setct-AuthRevReqBaggage" -#define NID_setct_AuthRevReqBaggage 528 -#define OBJ_setct_AuthRevReqBaggage OBJ_set_ctype,9L - -#define SN_setct_AuthRevResBaggage "setct-AuthRevResBaggage" -#define NID_setct_AuthRevResBaggage 529 -#define OBJ_setct_AuthRevResBaggage OBJ_set_ctype,10L - -#define SN_setct_CapTokenSeq "setct-CapTokenSeq" -#define NID_setct_CapTokenSeq 530 -#define OBJ_setct_CapTokenSeq OBJ_set_ctype,11L - -#define SN_setct_PInitResData "setct-PInitResData" -#define NID_setct_PInitResData 531 -#define OBJ_setct_PInitResData OBJ_set_ctype,12L - -#define SN_setct_PI_TBS "setct-PI-TBS" -#define NID_setct_PI_TBS 532 -#define OBJ_setct_PI_TBS OBJ_set_ctype,13L - -#define SN_setct_PResData "setct-PResData" -#define NID_setct_PResData 533 -#define OBJ_setct_PResData OBJ_set_ctype,14L - -#define SN_setct_AuthReqTBS "setct-AuthReqTBS" -#define NID_setct_AuthReqTBS 534 -#define OBJ_setct_AuthReqTBS OBJ_set_ctype,16L - -#define SN_setct_AuthResTBS "setct-AuthResTBS" -#define NID_setct_AuthResTBS 535 -#define OBJ_setct_AuthResTBS OBJ_set_ctype,17L - -#define SN_setct_AuthResTBSX "setct-AuthResTBSX" -#define NID_setct_AuthResTBSX 536 -#define OBJ_setct_AuthResTBSX OBJ_set_ctype,18L - -#define SN_setct_AuthTokenTBS "setct-AuthTokenTBS" -#define NID_setct_AuthTokenTBS 537 -#define OBJ_setct_AuthTokenTBS OBJ_set_ctype,19L - -#define SN_setct_CapTokenData "setct-CapTokenData" -#define NID_setct_CapTokenData 538 -#define OBJ_setct_CapTokenData OBJ_set_ctype,20L - -#define SN_setct_CapTokenTBS "setct-CapTokenTBS" -#define NID_setct_CapTokenTBS 539 -#define OBJ_setct_CapTokenTBS OBJ_set_ctype,21L - -#define SN_setct_AcqCardCodeMsg "setct-AcqCardCodeMsg" -#define NID_setct_AcqCardCodeMsg 540 -#define OBJ_setct_AcqCardCodeMsg OBJ_set_ctype,22L - -#define SN_setct_AuthRevReqTBS "setct-AuthRevReqTBS" -#define NID_setct_AuthRevReqTBS 541 -#define OBJ_setct_AuthRevReqTBS OBJ_set_ctype,23L - -#define SN_setct_AuthRevResData "setct-AuthRevResData" -#define NID_setct_AuthRevResData 542 -#define OBJ_setct_AuthRevResData OBJ_set_ctype,24L - -#define SN_setct_AuthRevResTBS "setct-AuthRevResTBS" -#define NID_setct_AuthRevResTBS 543 -#define OBJ_setct_AuthRevResTBS OBJ_set_ctype,25L - -#define SN_setct_CapReqTBS "setct-CapReqTBS" -#define NID_setct_CapReqTBS 544 -#define OBJ_setct_CapReqTBS OBJ_set_ctype,26L - -#define SN_setct_CapReqTBSX "setct-CapReqTBSX" -#define NID_setct_CapReqTBSX 545 -#define OBJ_setct_CapReqTBSX OBJ_set_ctype,27L - -#define SN_setct_CapResData "setct-CapResData" -#define NID_setct_CapResData 546 -#define OBJ_setct_CapResData OBJ_set_ctype,28L - -#define SN_setct_CapRevReqTBS "setct-CapRevReqTBS" -#define NID_setct_CapRevReqTBS 547 -#define OBJ_setct_CapRevReqTBS OBJ_set_ctype,29L - -#define SN_setct_CapRevReqTBSX "setct-CapRevReqTBSX" -#define NID_setct_CapRevReqTBSX 548 -#define OBJ_setct_CapRevReqTBSX OBJ_set_ctype,30L - -#define SN_setct_CapRevResData "setct-CapRevResData" -#define NID_setct_CapRevResData 549 -#define OBJ_setct_CapRevResData OBJ_set_ctype,31L - -#define SN_setct_CredReqTBS "setct-CredReqTBS" -#define NID_setct_CredReqTBS 550 -#define OBJ_setct_CredReqTBS OBJ_set_ctype,32L - -#define SN_setct_CredReqTBSX "setct-CredReqTBSX" -#define NID_setct_CredReqTBSX 551 -#define OBJ_setct_CredReqTBSX OBJ_set_ctype,33L - -#define SN_setct_CredResData "setct-CredResData" -#define NID_setct_CredResData 552 -#define OBJ_setct_CredResData OBJ_set_ctype,34L - -#define SN_setct_CredRevReqTBS "setct-CredRevReqTBS" -#define NID_setct_CredRevReqTBS 553 -#define OBJ_setct_CredRevReqTBS OBJ_set_ctype,35L - -#define SN_setct_CredRevReqTBSX "setct-CredRevReqTBSX" -#define NID_setct_CredRevReqTBSX 554 -#define OBJ_setct_CredRevReqTBSX OBJ_set_ctype,36L - -#define SN_setct_CredRevResData "setct-CredRevResData" -#define NID_setct_CredRevResData 555 -#define OBJ_setct_CredRevResData OBJ_set_ctype,37L - -#define SN_setct_PCertReqData "setct-PCertReqData" -#define NID_setct_PCertReqData 556 -#define OBJ_setct_PCertReqData OBJ_set_ctype,38L - -#define SN_setct_PCertResTBS "setct-PCertResTBS" -#define NID_setct_PCertResTBS 557 -#define OBJ_setct_PCertResTBS OBJ_set_ctype,39L - -#define SN_setct_BatchAdminReqData "setct-BatchAdminReqData" -#define NID_setct_BatchAdminReqData 558 -#define OBJ_setct_BatchAdminReqData OBJ_set_ctype,40L - -#define SN_setct_BatchAdminResData "setct-BatchAdminResData" -#define NID_setct_BatchAdminResData 559 -#define OBJ_setct_BatchAdminResData OBJ_set_ctype,41L - -#define SN_setct_CardCInitResTBS "setct-CardCInitResTBS" -#define NID_setct_CardCInitResTBS 560 -#define OBJ_setct_CardCInitResTBS OBJ_set_ctype,42L - -#define SN_setct_MeAqCInitResTBS "setct-MeAqCInitResTBS" -#define NID_setct_MeAqCInitResTBS 561 -#define OBJ_setct_MeAqCInitResTBS OBJ_set_ctype,43L - -#define SN_setct_RegFormResTBS "setct-RegFormResTBS" -#define NID_setct_RegFormResTBS 562 -#define OBJ_setct_RegFormResTBS OBJ_set_ctype,44L - -#define SN_setct_CertReqData "setct-CertReqData" -#define NID_setct_CertReqData 563 -#define OBJ_setct_CertReqData OBJ_set_ctype,45L - -#define SN_setct_CertReqTBS "setct-CertReqTBS" -#define NID_setct_CertReqTBS 564 -#define OBJ_setct_CertReqTBS OBJ_set_ctype,46L - -#define SN_setct_CertResData "setct-CertResData" -#define NID_setct_CertResData 565 -#define OBJ_setct_CertResData OBJ_set_ctype,47L - -#define SN_setct_CertInqReqTBS "setct-CertInqReqTBS" -#define NID_setct_CertInqReqTBS 566 -#define OBJ_setct_CertInqReqTBS OBJ_set_ctype,48L - -#define SN_setct_ErrorTBS "setct-ErrorTBS" -#define NID_setct_ErrorTBS 567 -#define OBJ_setct_ErrorTBS OBJ_set_ctype,49L - -#define SN_setct_PIDualSignedTBE "setct-PIDualSignedTBE" -#define NID_setct_PIDualSignedTBE 568 -#define OBJ_setct_PIDualSignedTBE OBJ_set_ctype,50L - -#define SN_setct_PIUnsignedTBE "setct-PIUnsignedTBE" -#define NID_setct_PIUnsignedTBE 569 -#define OBJ_setct_PIUnsignedTBE OBJ_set_ctype,51L - -#define SN_setct_AuthReqTBE "setct-AuthReqTBE" -#define NID_setct_AuthReqTBE 570 -#define OBJ_setct_AuthReqTBE OBJ_set_ctype,52L - -#define SN_setct_AuthResTBE "setct-AuthResTBE" -#define NID_setct_AuthResTBE 571 -#define OBJ_setct_AuthResTBE OBJ_set_ctype,53L - -#define SN_setct_AuthResTBEX "setct-AuthResTBEX" -#define NID_setct_AuthResTBEX 572 -#define OBJ_setct_AuthResTBEX OBJ_set_ctype,54L - -#define SN_setct_AuthTokenTBE "setct-AuthTokenTBE" -#define NID_setct_AuthTokenTBE 573 -#define OBJ_setct_AuthTokenTBE OBJ_set_ctype,55L - -#define SN_setct_CapTokenTBE "setct-CapTokenTBE" -#define NID_setct_CapTokenTBE 574 -#define OBJ_setct_CapTokenTBE OBJ_set_ctype,56L - -#define SN_setct_CapTokenTBEX "setct-CapTokenTBEX" -#define NID_setct_CapTokenTBEX 575 -#define OBJ_setct_CapTokenTBEX OBJ_set_ctype,57L - -#define SN_setct_AcqCardCodeMsgTBE "setct-AcqCardCodeMsgTBE" -#define NID_setct_AcqCardCodeMsgTBE 576 -#define OBJ_setct_AcqCardCodeMsgTBE OBJ_set_ctype,58L - -#define SN_setct_AuthRevReqTBE "setct-AuthRevReqTBE" -#define NID_setct_AuthRevReqTBE 577 -#define OBJ_setct_AuthRevReqTBE OBJ_set_ctype,59L - -#define SN_setct_AuthRevResTBE "setct-AuthRevResTBE" -#define NID_setct_AuthRevResTBE 578 -#define OBJ_setct_AuthRevResTBE OBJ_set_ctype,60L - -#define SN_setct_AuthRevResTBEB "setct-AuthRevResTBEB" -#define NID_setct_AuthRevResTBEB 579 -#define OBJ_setct_AuthRevResTBEB OBJ_set_ctype,61L - -#define SN_setct_CapReqTBE "setct-CapReqTBE" -#define NID_setct_CapReqTBE 580 -#define OBJ_setct_CapReqTBE OBJ_set_ctype,62L - -#define SN_setct_CapReqTBEX "setct-CapReqTBEX" -#define NID_setct_CapReqTBEX 581 -#define OBJ_setct_CapReqTBEX OBJ_set_ctype,63L - -#define SN_setct_CapResTBE "setct-CapResTBE" -#define NID_setct_CapResTBE 582 -#define OBJ_setct_CapResTBE OBJ_set_ctype,64L - -#define SN_setct_CapRevReqTBE "setct-CapRevReqTBE" -#define NID_setct_CapRevReqTBE 583 -#define OBJ_setct_CapRevReqTBE OBJ_set_ctype,65L - -#define SN_setct_CapRevReqTBEX "setct-CapRevReqTBEX" -#define NID_setct_CapRevReqTBEX 584 -#define OBJ_setct_CapRevReqTBEX OBJ_set_ctype,66L - -#define SN_setct_CapRevResTBE "setct-CapRevResTBE" -#define NID_setct_CapRevResTBE 585 -#define OBJ_setct_CapRevResTBE OBJ_set_ctype,67L - -#define SN_setct_CredReqTBE "setct-CredReqTBE" -#define NID_setct_CredReqTBE 586 -#define OBJ_setct_CredReqTBE OBJ_set_ctype,68L - -#define SN_setct_CredReqTBEX "setct-CredReqTBEX" -#define NID_setct_CredReqTBEX 587 -#define OBJ_setct_CredReqTBEX OBJ_set_ctype,69L - -#define SN_setct_CredResTBE "setct-CredResTBE" -#define NID_setct_CredResTBE 588 -#define OBJ_setct_CredResTBE OBJ_set_ctype,70L - -#define SN_setct_CredRevReqTBE "setct-CredRevReqTBE" -#define NID_setct_CredRevReqTBE 589 -#define OBJ_setct_CredRevReqTBE OBJ_set_ctype,71L - -#define SN_setct_CredRevReqTBEX "setct-CredRevReqTBEX" -#define NID_setct_CredRevReqTBEX 590 -#define OBJ_setct_CredRevReqTBEX OBJ_set_ctype,72L - -#define SN_setct_CredRevResTBE "setct-CredRevResTBE" -#define NID_setct_CredRevResTBE 591 -#define OBJ_setct_CredRevResTBE OBJ_set_ctype,73L - -#define SN_setct_BatchAdminReqTBE "setct-BatchAdminReqTBE" -#define NID_setct_BatchAdminReqTBE 592 -#define OBJ_setct_BatchAdminReqTBE OBJ_set_ctype,74L - -#define SN_setct_BatchAdminResTBE "setct-BatchAdminResTBE" -#define NID_setct_BatchAdminResTBE 593 -#define OBJ_setct_BatchAdminResTBE OBJ_set_ctype,75L - -#define SN_setct_RegFormReqTBE "setct-RegFormReqTBE" -#define NID_setct_RegFormReqTBE 594 -#define OBJ_setct_RegFormReqTBE OBJ_set_ctype,76L - -#define SN_setct_CertReqTBE "setct-CertReqTBE" -#define NID_setct_CertReqTBE 595 -#define OBJ_setct_CertReqTBE OBJ_set_ctype,77L - -#define SN_setct_CertReqTBEX "setct-CertReqTBEX" -#define NID_setct_CertReqTBEX 596 -#define OBJ_setct_CertReqTBEX OBJ_set_ctype,78L - -#define SN_setct_CertResTBE "setct-CertResTBE" -#define NID_setct_CertResTBE 597 -#define OBJ_setct_CertResTBE OBJ_set_ctype,79L - -#define SN_setct_CRLNotificationTBS "setct-CRLNotificationTBS" -#define NID_setct_CRLNotificationTBS 598 -#define OBJ_setct_CRLNotificationTBS OBJ_set_ctype,80L - -#define SN_setct_CRLNotificationResTBS "setct-CRLNotificationResTBS" -#define NID_setct_CRLNotificationResTBS 599 -#define OBJ_setct_CRLNotificationResTBS OBJ_set_ctype,81L - -#define SN_setct_BCIDistributionTBS "setct-BCIDistributionTBS" -#define NID_setct_BCIDistributionTBS 600 -#define OBJ_setct_BCIDistributionTBS OBJ_set_ctype,82L - -#define SN_setext_genCrypt "setext-genCrypt" -#define LN_setext_genCrypt "generic cryptogram" -#define NID_setext_genCrypt 601 -#define OBJ_setext_genCrypt OBJ_set_msgExt,1L - -#define SN_setext_miAuth "setext-miAuth" -#define LN_setext_miAuth "merchant initiated auth" -#define NID_setext_miAuth 602 -#define OBJ_setext_miAuth OBJ_set_msgExt,3L - -#define SN_setext_pinSecure "setext-pinSecure" -#define NID_setext_pinSecure 603 -#define OBJ_setext_pinSecure OBJ_set_msgExt,4L - -#define SN_setext_pinAny "setext-pinAny" -#define NID_setext_pinAny 604 -#define OBJ_setext_pinAny OBJ_set_msgExt,5L - -#define SN_setext_track2 "setext-track2" -#define NID_setext_track2 605 -#define OBJ_setext_track2 OBJ_set_msgExt,7L - -#define SN_setext_cv "setext-cv" -#define LN_setext_cv "additional verification" -#define NID_setext_cv 606 -#define OBJ_setext_cv OBJ_set_msgExt,8L - -#define SN_set_policy_root "set-policy-root" -#define NID_set_policy_root 607 -#define OBJ_set_policy_root OBJ_set_policy,0L - -#define SN_setCext_hashedRoot "setCext-hashedRoot" -#define NID_setCext_hashedRoot 608 -#define OBJ_setCext_hashedRoot OBJ_set_certExt,0L - -#define SN_setCext_certType "setCext-certType" -#define NID_setCext_certType 609 -#define OBJ_setCext_certType OBJ_set_certExt,1L - -#define SN_setCext_merchData "setCext-merchData" -#define NID_setCext_merchData 610 -#define OBJ_setCext_merchData OBJ_set_certExt,2L - -#define SN_setCext_cCertRequired "setCext-cCertRequired" -#define NID_setCext_cCertRequired 611 -#define OBJ_setCext_cCertRequired OBJ_set_certExt,3L - -#define SN_setCext_tunneling "setCext-tunneling" -#define NID_setCext_tunneling 612 -#define OBJ_setCext_tunneling OBJ_set_certExt,4L - -#define SN_setCext_setExt "setCext-setExt" -#define NID_setCext_setExt 613 -#define OBJ_setCext_setExt OBJ_set_certExt,5L - -#define SN_setCext_setQualf "setCext-setQualf" -#define NID_setCext_setQualf 614 -#define OBJ_setCext_setQualf OBJ_set_certExt,6L - -#define SN_setCext_PGWYcapabilities "setCext-PGWYcapabilities" -#define NID_setCext_PGWYcapabilities 615 -#define OBJ_setCext_PGWYcapabilities OBJ_set_certExt,7L - -#define SN_setCext_TokenIdentifier "setCext-TokenIdentifier" -#define NID_setCext_TokenIdentifier 616 -#define OBJ_setCext_TokenIdentifier OBJ_set_certExt,8L - -#define SN_setCext_Track2Data "setCext-Track2Data" -#define NID_setCext_Track2Data 617 -#define OBJ_setCext_Track2Data OBJ_set_certExt,9L - -#define SN_setCext_TokenType "setCext-TokenType" -#define NID_setCext_TokenType 618 -#define OBJ_setCext_TokenType OBJ_set_certExt,10L - -#define SN_setCext_IssuerCapabilities "setCext-IssuerCapabilities" -#define NID_setCext_IssuerCapabilities 619 -#define OBJ_setCext_IssuerCapabilities OBJ_set_certExt,11L - -#define SN_setAttr_Cert "setAttr-Cert" -#define NID_setAttr_Cert 620 -#define OBJ_setAttr_Cert OBJ_set_attr,0L - -#define SN_setAttr_PGWYcap "setAttr-PGWYcap" -#define LN_setAttr_PGWYcap "payment gateway capabilities" -#define NID_setAttr_PGWYcap 621 -#define OBJ_setAttr_PGWYcap OBJ_set_attr,1L - -#define SN_setAttr_TokenType "setAttr-TokenType" -#define NID_setAttr_TokenType 622 -#define OBJ_setAttr_TokenType OBJ_set_attr,2L - -#define SN_setAttr_IssCap "setAttr-IssCap" -#define LN_setAttr_IssCap "issuer capabilities" -#define NID_setAttr_IssCap 623 -#define OBJ_setAttr_IssCap OBJ_set_attr,3L - -#define SN_set_rootKeyThumb "set-rootKeyThumb" -#define NID_set_rootKeyThumb 624 -#define OBJ_set_rootKeyThumb OBJ_setAttr_Cert,0L - -#define SN_set_addPolicy "set-addPolicy" -#define NID_set_addPolicy 625 -#define OBJ_set_addPolicy OBJ_setAttr_Cert,1L - -#define SN_setAttr_Token_EMV "setAttr-Token-EMV" -#define NID_setAttr_Token_EMV 626 -#define OBJ_setAttr_Token_EMV OBJ_setAttr_TokenType,1L - -#define SN_setAttr_Token_B0Prime "setAttr-Token-B0Prime" -#define NID_setAttr_Token_B0Prime 627 -#define OBJ_setAttr_Token_B0Prime OBJ_setAttr_TokenType,2L - -#define SN_setAttr_IssCap_CVM "setAttr-IssCap-CVM" -#define NID_setAttr_IssCap_CVM 628 -#define OBJ_setAttr_IssCap_CVM OBJ_setAttr_IssCap,3L - -#define SN_setAttr_IssCap_T2 "setAttr-IssCap-T2" -#define NID_setAttr_IssCap_T2 629 -#define OBJ_setAttr_IssCap_T2 OBJ_setAttr_IssCap,4L - -#define SN_setAttr_IssCap_Sig "setAttr-IssCap-Sig" -#define NID_setAttr_IssCap_Sig 630 -#define OBJ_setAttr_IssCap_Sig OBJ_setAttr_IssCap,5L - -#define SN_setAttr_GenCryptgrm "setAttr-GenCryptgrm" -#define LN_setAttr_GenCryptgrm "generate cryptogram" -#define NID_setAttr_GenCryptgrm 631 -#define OBJ_setAttr_GenCryptgrm OBJ_setAttr_IssCap_CVM,1L - -#define SN_setAttr_T2Enc "setAttr-T2Enc" -#define LN_setAttr_T2Enc "encrypted track 2" -#define NID_setAttr_T2Enc 632 -#define OBJ_setAttr_T2Enc OBJ_setAttr_IssCap_T2,1L - -#define SN_setAttr_T2cleartxt "setAttr-T2cleartxt" -#define LN_setAttr_T2cleartxt "cleartext track 2" -#define NID_setAttr_T2cleartxt 633 -#define OBJ_setAttr_T2cleartxt OBJ_setAttr_IssCap_T2,2L - -#define SN_setAttr_TokICCsig "setAttr-TokICCsig" -#define LN_setAttr_TokICCsig "ICC or token signature" -#define NID_setAttr_TokICCsig 634 -#define OBJ_setAttr_TokICCsig OBJ_setAttr_IssCap_Sig,1L - -#define SN_setAttr_SecDevSig "setAttr-SecDevSig" -#define LN_setAttr_SecDevSig "secure device signature" -#define NID_setAttr_SecDevSig 635 -#define OBJ_setAttr_SecDevSig OBJ_setAttr_IssCap_Sig,2L - -#define SN_set_brand_IATA_ATA "set-brand-IATA-ATA" -#define NID_set_brand_IATA_ATA 636 -#define OBJ_set_brand_IATA_ATA OBJ_set_brand,1L - -#define SN_set_brand_Diners "set-brand-Diners" -#define NID_set_brand_Diners 637 -#define OBJ_set_brand_Diners OBJ_set_brand,30L - -#define SN_set_brand_AmericanExpress "set-brand-AmericanExpress" -#define NID_set_brand_AmericanExpress 638 -#define OBJ_set_brand_AmericanExpress OBJ_set_brand,34L - -#define SN_set_brand_JCB "set-brand-JCB" -#define NID_set_brand_JCB 639 -#define OBJ_set_brand_JCB OBJ_set_brand,35L - -#define SN_set_brand_Visa "set-brand-Visa" -#define NID_set_brand_Visa 640 -#define OBJ_set_brand_Visa OBJ_set_brand,4L - -#define SN_set_brand_MasterCard "set-brand-MasterCard" -#define NID_set_brand_MasterCard 641 -#define OBJ_set_brand_MasterCard OBJ_set_brand,5L - -#define SN_set_brand_Novus "set-brand-Novus" -#define NID_set_brand_Novus 642 -#define OBJ_set_brand_Novus OBJ_set_brand,6011L - -#define SN_des_cdmf "DES-CDMF" -#define LN_des_cdmf "des-cdmf" -#define NID_des_cdmf 643 -#define OBJ_des_cdmf OBJ_rsadsi,3L,10L - -#define SN_rsaOAEPEncryptionSET "rsaOAEPEncryptionSET" -#define NID_rsaOAEPEncryptionSET 644 -#define OBJ_rsaOAEPEncryptionSET OBJ_rsadsi,1L,1L,6L - -#define SN_ipsec3 "Oakley-EC2N-3" -#define LN_ipsec3 "ipsec3" -#define NID_ipsec3 749 - -#define SN_ipsec4 "Oakley-EC2N-4" -#define LN_ipsec4 "ipsec4" -#define NID_ipsec4 750 - -#define SN_whirlpool "whirlpool" -#define NID_whirlpool 804 -#define OBJ_whirlpool OBJ_iso,0L,10118L,3L,0L,55L - -#define SN_cryptopro "cryptopro" -#define NID_cryptopro 805 -#define OBJ_cryptopro OBJ_member_body,643L,2L,2L - -#define SN_cryptocom "cryptocom" -#define NID_cryptocom 806 -#define OBJ_cryptocom OBJ_member_body,643L,2L,9L - -#define SN_id_tc26 "id-tc26" -#define NID_id_tc26 974 -#define OBJ_id_tc26 OBJ_member_body,643L,7L,1L - -#define SN_id_GostR3411_94_with_GostR3410_2001 "id-GostR3411-94-with-GostR3410-2001" -#define LN_id_GostR3411_94_with_GostR3410_2001 "GOST R 34.11-94 with GOST R 34.10-2001" -#define NID_id_GostR3411_94_with_GostR3410_2001 807 -#define OBJ_id_GostR3411_94_with_GostR3410_2001 OBJ_cryptopro,3L - -#define SN_id_GostR3411_94_with_GostR3410_94 "id-GostR3411-94-with-GostR3410-94" -#define LN_id_GostR3411_94_with_GostR3410_94 "GOST R 34.11-94 with GOST R 34.10-94" -#define NID_id_GostR3411_94_with_GostR3410_94 808 -#define OBJ_id_GostR3411_94_with_GostR3410_94 OBJ_cryptopro,4L - -#define SN_id_GostR3411_94 "md_gost94" -#define LN_id_GostR3411_94 "GOST R 34.11-94" -#define NID_id_GostR3411_94 809 -#define OBJ_id_GostR3411_94 OBJ_cryptopro,9L - -#define SN_id_HMACGostR3411_94 "id-HMACGostR3411-94" -#define LN_id_HMACGostR3411_94 "HMAC GOST 34.11-94" -#define NID_id_HMACGostR3411_94 810 -#define OBJ_id_HMACGostR3411_94 OBJ_cryptopro,10L - -#define SN_id_GostR3410_2001 "gost2001" -#define LN_id_GostR3410_2001 "GOST R 34.10-2001" -#define NID_id_GostR3410_2001 811 -#define OBJ_id_GostR3410_2001 OBJ_cryptopro,19L - -#define SN_id_GostR3410_94 "gost94" -#define LN_id_GostR3410_94 "GOST R 34.10-94" -#define NID_id_GostR3410_94 812 -#define OBJ_id_GostR3410_94 OBJ_cryptopro,20L - -#define SN_id_Gost28147_89 "gost89" -#define LN_id_Gost28147_89 "GOST 28147-89" -#define NID_id_Gost28147_89 813 -#define OBJ_id_Gost28147_89 OBJ_cryptopro,21L - -#define SN_gost89_cnt "gost89-cnt" -#define NID_gost89_cnt 814 - -#define SN_gost89_cnt_12 "gost89-cnt-12" -#define NID_gost89_cnt_12 975 - -#define SN_gost89_cbc "gost89-cbc" -#define NID_gost89_cbc 1009 - -#define SN_gost89_ecb "gost89-ecb" -#define NID_gost89_ecb 1010 - -#define SN_gost89_ctr "gost89-ctr" -#define NID_gost89_ctr 1011 - -#define SN_id_Gost28147_89_MAC "gost-mac" -#define LN_id_Gost28147_89_MAC "GOST 28147-89 MAC" -#define NID_id_Gost28147_89_MAC 815 -#define OBJ_id_Gost28147_89_MAC OBJ_cryptopro,22L - -#define SN_gost_mac_12 "gost-mac-12" -#define NID_gost_mac_12 976 - -#define SN_id_GostR3411_94_prf "prf-gostr3411-94" -#define LN_id_GostR3411_94_prf "GOST R 34.11-94 PRF" -#define NID_id_GostR3411_94_prf 816 -#define OBJ_id_GostR3411_94_prf OBJ_cryptopro,23L - -#define SN_id_GostR3410_2001DH "id-GostR3410-2001DH" -#define LN_id_GostR3410_2001DH "GOST R 34.10-2001 DH" -#define NID_id_GostR3410_2001DH 817 -#define OBJ_id_GostR3410_2001DH OBJ_cryptopro,98L - -#define SN_id_GostR3410_94DH "id-GostR3410-94DH" -#define LN_id_GostR3410_94DH "GOST R 34.10-94 DH" -#define NID_id_GostR3410_94DH 818 -#define OBJ_id_GostR3410_94DH OBJ_cryptopro,99L - -#define SN_id_Gost28147_89_CryptoPro_KeyMeshing "id-Gost28147-89-CryptoPro-KeyMeshing" -#define NID_id_Gost28147_89_CryptoPro_KeyMeshing 819 -#define OBJ_id_Gost28147_89_CryptoPro_KeyMeshing OBJ_cryptopro,14L,1L - -#define SN_id_Gost28147_89_None_KeyMeshing "id-Gost28147-89-None-KeyMeshing" -#define NID_id_Gost28147_89_None_KeyMeshing 820 -#define OBJ_id_Gost28147_89_None_KeyMeshing OBJ_cryptopro,14L,0L - -#define SN_id_GostR3411_94_TestParamSet "id-GostR3411-94-TestParamSet" -#define NID_id_GostR3411_94_TestParamSet 821 -#define OBJ_id_GostR3411_94_TestParamSet OBJ_cryptopro,30L,0L - -#define SN_id_GostR3411_94_CryptoProParamSet "id-GostR3411-94-CryptoProParamSet" -#define NID_id_GostR3411_94_CryptoProParamSet 822 -#define OBJ_id_GostR3411_94_CryptoProParamSet OBJ_cryptopro,30L,1L - -#define SN_id_Gost28147_89_TestParamSet "id-Gost28147-89-TestParamSet" -#define NID_id_Gost28147_89_TestParamSet 823 -#define OBJ_id_Gost28147_89_TestParamSet OBJ_cryptopro,31L,0L - -#define SN_id_Gost28147_89_CryptoPro_A_ParamSet "id-Gost28147-89-CryptoPro-A-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_A_ParamSet 824 -#define OBJ_id_Gost28147_89_CryptoPro_A_ParamSet OBJ_cryptopro,31L,1L - -#define SN_id_Gost28147_89_CryptoPro_B_ParamSet "id-Gost28147-89-CryptoPro-B-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_B_ParamSet 825 -#define OBJ_id_Gost28147_89_CryptoPro_B_ParamSet OBJ_cryptopro,31L,2L - -#define SN_id_Gost28147_89_CryptoPro_C_ParamSet "id-Gost28147-89-CryptoPro-C-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_C_ParamSet 826 -#define OBJ_id_Gost28147_89_CryptoPro_C_ParamSet OBJ_cryptopro,31L,3L - -#define SN_id_Gost28147_89_CryptoPro_D_ParamSet "id-Gost28147-89-CryptoPro-D-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_D_ParamSet 827 -#define OBJ_id_Gost28147_89_CryptoPro_D_ParamSet OBJ_cryptopro,31L,4L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet 828 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet OBJ_cryptopro,31L,5L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet 829 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet OBJ_cryptopro,31L,6L - -#define SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet "id-Gost28147-89-CryptoPro-RIC-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet 830 -#define OBJ_id_Gost28147_89_CryptoPro_RIC_1_ParamSet OBJ_cryptopro,31L,7L - -#define SN_id_GostR3410_94_TestParamSet "id-GostR3410-94-TestParamSet" -#define NID_id_GostR3410_94_TestParamSet 831 -#define OBJ_id_GostR3410_94_TestParamSet OBJ_cryptopro,32L,0L - -#define SN_id_GostR3410_94_CryptoPro_A_ParamSet "id-GostR3410-94-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_A_ParamSet 832 -#define OBJ_id_GostR3410_94_CryptoPro_A_ParamSet OBJ_cryptopro,32L,2L - -#define SN_id_GostR3410_94_CryptoPro_B_ParamSet "id-GostR3410-94-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_B_ParamSet 833 -#define OBJ_id_GostR3410_94_CryptoPro_B_ParamSet OBJ_cryptopro,32L,3L - -#define SN_id_GostR3410_94_CryptoPro_C_ParamSet "id-GostR3410-94-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_C_ParamSet 834 -#define OBJ_id_GostR3410_94_CryptoPro_C_ParamSet OBJ_cryptopro,32L,4L - -#define SN_id_GostR3410_94_CryptoPro_D_ParamSet "id-GostR3410-94-CryptoPro-D-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_D_ParamSet 835 -#define OBJ_id_GostR3410_94_CryptoPro_D_ParamSet OBJ_cryptopro,32L,5L - -#define SN_id_GostR3410_94_CryptoPro_XchA_ParamSet "id-GostR3410-94-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchA_ParamSet 836 -#define OBJ_id_GostR3410_94_CryptoPro_XchA_ParamSet OBJ_cryptopro,33L,1L - -#define SN_id_GostR3410_94_CryptoPro_XchB_ParamSet "id-GostR3410-94-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchB_ParamSet 837 -#define OBJ_id_GostR3410_94_CryptoPro_XchB_ParamSet OBJ_cryptopro,33L,2L - -#define SN_id_GostR3410_94_CryptoPro_XchC_ParamSet "id-GostR3410-94-CryptoPro-XchC-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchC_ParamSet 838 -#define OBJ_id_GostR3410_94_CryptoPro_XchC_ParamSet OBJ_cryptopro,33L,3L - -#define SN_id_GostR3410_2001_TestParamSet "id-GostR3410-2001-TestParamSet" -#define NID_id_GostR3410_2001_TestParamSet 839 -#define OBJ_id_GostR3410_2001_TestParamSet OBJ_cryptopro,35L,0L - -#define SN_id_GostR3410_2001_CryptoPro_A_ParamSet "id-GostR3410-2001-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_A_ParamSet 840 -#define OBJ_id_GostR3410_2001_CryptoPro_A_ParamSet OBJ_cryptopro,35L,1L - -#define SN_id_GostR3410_2001_CryptoPro_B_ParamSet "id-GostR3410-2001-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_B_ParamSet 841 -#define OBJ_id_GostR3410_2001_CryptoPro_B_ParamSet OBJ_cryptopro,35L,2L - -#define SN_id_GostR3410_2001_CryptoPro_C_ParamSet "id-GostR3410-2001-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_C_ParamSet 842 -#define OBJ_id_GostR3410_2001_CryptoPro_C_ParamSet OBJ_cryptopro,35L,3L - -#define SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet "id-GostR3410-2001-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet 843 -#define OBJ_id_GostR3410_2001_CryptoPro_XchA_ParamSet OBJ_cryptopro,36L,0L - -#define SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet "id-GostR3410-2001-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet 844 -#define OBJ_id_GostR3410_2001_CryptoPro_XchB_ParamSet OBJ_cryptopro,36L,1L - -#define SN_id_GostR3410_94_a "id-GostR3410-94-a" -#define NID_id_GostR3410_94_a 845 -#define OBJ_id_GostR3410_94_a OBJ_id_GostR3410_94,1L - -#define SN_id_GostR3410_94_aBis "id-GostR3410-94-aBis" -#define NID_id_GostR3410_94_aBis 846 -#define OBJ_id_GostR3410_94_aBis OBJ_id_GostR3410_94,2L - -#define SN_id_GostR3410_94_b "id-GostR3410-94-b" -#define NID_id_GostR3410_94_b 847 -#define OBJ_id_GostR3410_94_b OBJ_id_GostR3410_94,3L - -#define SN_id_GostR3410_94_bBis "id-GostR3410-94-bBis" -#define NID_id_GostR3410_94_bBis 848 -#define OBJ_id_GostR3410_94_bBis OBJ_id_GostR3410_94,4L - -#define SN_id_Gost28147_89_cc "id-Gost28147-89-cc" -#define LN_id_Gost28147_89_cc "GOST 28147-89 Cryptocom ParamSet" -#define NID_id_Gost28147_89_cc 849 -#define OBJ_id_Gost28147_89_cc OBJ_cryptocom,1L,6L,1L - -#define SN_id_GostR3410_94_cc "gost94cc" -#define LN_id_GostR3410_94_cc "GOST 34.10-94 Cryptocom" -#define NID_id_GostR3410_94_cc 850 -#define OBJ_id_GostR3410_94_cc OBJ_cryptocom,1L,5L,3L - -#define SN_id_GostR3410_2001_cc "gost2001cc" -#define LN_id_GostR3410_2001_cc "GOST 34.10-2001 Cryptocom" -#define NID_id_GostR3410_2001_cc 851 -#define OBJ_id_GostR3410_2001_cc OBJ_cryptocom,1L,5L,4L - -#define SN_id_GostR3411_94_with_GostR3410_94_cc "id-GostR3411-94-with-GostR3410-94-cc" -#define LN_id_GostR3411_94_with_GostR3410_94_cc "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_94_cc 852 -#define OBJ_id_GostR3411_94_with_GostR3410_94_cc OBJ_cryptocom,1L,3L,3L - -#define SN_id_GostR3411_94_with_GostR3410_2001_cc "id-GostR3411-94-with-GostR3410-2001-cc" -#define LN_id_GostR3411_94_with_GostR3410_2001_cc "GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_2001_cc 853 -#define OBJ_id_GostR3411_94_with_GostR3410_2001_cc OBJ_cryptocom,1L,3L,4L - -#define SN_id_GostR3410_2001_ParamSet_cc "id-GostR3410-2001-ParamSet-cc" -#define LN_id_GostR3410_2001_ParamSet_cc "GOST R 3410-2001 Parameter Set Cryptocom" -#define NID_id_GostR3410_2001_ParamSet_cc 854 -#define OBJ_id_GostR3410_2001_ParamSet_cc OBJ_cryptocom,1L,8L,1L - -#define SN_id_tc26_algorithms "id-tc26-algorithms" -#define NID_id_tc26_algorithms 977 -#define OBJ_id_tc26_algorithms OBJ_id_tc26,1L - -#define SN_id_tc26_sign "id-tc26-sign" -#define NID_id_tc26_sign 978 -#define OBJ_id_tc26_sign OBJ_id_tc26_algorithms,1L - -#define SN_id_GostR3410_2012_256 "gost2012_256" -#define LN_id_GostR3410_2012_256 "GOST R 34.10-2012 with 256 bit modulus" -#define NID_id_GostR3410_2012_256 979 -#define OBJ_id_GostR3410_2012_256 OBJ_id_tc26_sign,1L - -#define SN_id_GostR3410_2012_512 "gost2012_512" -#define LN_id_GostR3410_2012_512 "GOST R 34.10-2012 with 512 bit modulus" -#define NID_id_GostR3410_2012_512 980 -#define OBJ_id_GostR3410_2012_512 OBJ_id_tc26_sign,2L - -#define SN_id_tc26_digest "id-tc26-digest" -#define NID_id_tc26_digest 981 -#define OBJ_id_tc26_digest OBJ_id_tc26_algorithms,2L - -#define SN_id_GostR3411_2012_256 "md_gost12_256" -#define LN_id_GostR3411_2012_256 "GOST R 34.11-2012 with 256 bit hash" -#define NID_id_GostR3411_2012_256 982 -#define OBJ_id_GostR3411_2012_256 OBJ_id_tc26_digest,2L - -#define SN_id_GostR3411_2012_512 "md_gost12_512" -#define LN_id_GostR3411_2012_512 "GOST R 34.11-2012 with 512 bit hash" -#define NID_id_GostR3411_2012_512 983 -#define OBJ_id_GostR3411_2012_512 OBJ_id_tc26_digest,3L - -#define SN_id_tc26_signwithdigest "id-tc26-signwithdigest" -#define NID_id_tc26_signwithdigest 984 -#define OBJ_id_tc26_signwithdigest OBJ_id_tc26_algorithms,3L - -#define SN_id_tc26_signwithdigest_gost3410_2012_256 "id-tc26-signwithdigest-gost3410-2012-256" -#define LN_id_tc26_signwithdigest_gost3410_2012_256 "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)" -#define NID_id_tc26_signwithdigest_gost3410_2012_256 985 -#define OBJ_id_tc26_signwithdigest_gost3410_2012_256 OBJ_id_tc26_signwithdigest,2L - -#define SN_id_tc26_signwithdigest_gost3410_2012_512 "id-tc26-signwithdigest-gost3410-2012-512" -#define LN_id_tc26_signwithdigest_gost3410_2012_512 "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)" -#define NID_id_tc26_signwithdigest_gost3410_2012_512 986 -#define OBJ_id_tc26_signwithdigest_gost3410_2012_512 OBJ_id_tc26_signwithdigest,3L - -#define SN_id_tc26_mac "id-tc26-mac" -#define NID_id_tc26_mac 987 -#define OBJ_id_tc26_mac OBJ_id_tc26_algorithms,4L - -#define SN_id_tc26_hmac_gost_3411_2012_256 "id-tc26-hmac-gost-3411-2012-256" -#define LN_id_tc26_hmac_gost_3411_2012_256 "HMAC GOST 34.11-2012 256 bit" -#define NID_id_tc26_hmac_gost_3411_2012_256 988 -#define OBJ_id_tc26_hmac_gost_3411_2012_256 OBJ_id_tc26_mac,1L - -#define SN_id_tc26_hmac_gost_3411_2012_512 "id-tc26-hmac-gost-3411-2012-512" -#define LN_id_tc26_hmac_gost_3411_2012_512 "HMAC GOST 34.11-2012 512 bit" -#define NID_id_tc26_hmac_gost_3411_2012_512 989 -#define OBJ_id_tc26_hmac_gost_3411_2012_512 OBJ_id_tc26_mac,2L - -#define SN_id_tc26_cipher "id-tc26-cipher" -#define NID_id_tc26_cipher 990 -#define OBJ_id_tc26_cipher OBJ_id_tc26_algorithms,5L - -#define SN_id_tc26_cipher_gostr3412_2015_magma "id-tc26-cipher-gostr3412-2015-magma" -#define NID_id_tc26_cipher_gostr3412_2015_magma 1173 -#define OBJ_id_tc26_cipher_gostr3412_2015_magma OBJ_id_tc26_cipher,1L - -#define SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm "id-tc26-cipher-gostr3412-2015-magma-ctracpkm" -#define NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm 1174 -#define OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm OBJ_id_tc26_cipher_gostr3412_2015_magma,1L - -#define SN_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac "id-tc26-cipher-gostr3412-2015-magma-ctracpkm-omac" -#define NID_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac 1175 -#define OBJ_id_tc26_cipher_gostr3412_2015_magma_ctracpkm_omac OBJ_id_tc26_cipher_gostr3412_2015_magma,2L - -#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik "id-tc26-cipher-gostr3412-2015-kuznyechik" -#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik 1176 -#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik OBJ_id_tc26_cipher,2L - -#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm" -#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm 1177 -#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,1L - -#define SN_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac "id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm-omac" -#define NID_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac 1178 -#define OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik_ctracpkm_omac OBJ_id_tc26_cipher_gostr3412_2015_kuznyechik,2L - -#define SN_id_tc26_agreement "id-tc26-agreement" -#define NID_id_tc26_agreement 991 -#define OBJ_id_tc26_agreement OBJ_id_tc26_algorithms,6L - -#define SN_id_tc26_agreement_gost_3410_2012_256 "id-tc26-agreement-gost-3410-2012-256" -#define NID_id_tc26_agreement_gost_3410_2012_256 992 -#define OBJ_id_tc26_agreement_gost_3410_2012_256 OBJ_id_tc26_agreement,1L - -#define SN_id_tc26_agreement_gost_3410_2012_512 "id-tc26-agreement-gost-3410-2012-512" -#define NID_id_tc26_agreement_gost_3410_2012_512 993 -#define OBJ_id_tc26_agreement_gost_3410_2012_512 OBJ_id_tc26_agreement,2L - -#define SN_id_tc26_wrap "id-tc26-wrap" -#define NID_id_tc26_wrap 1179 -#define OBJ_id_tc26_wrap OBJ_id_tc26_algorithms,7L - -#define SN_id_tc26_wrap_gostr3412_2015_magma "id-tc26-wrap-gostr3412-2015-magma" -#define NID_id_tc26_wrap_gostr3412_2015_magma 1180 -#define OBJ_id_tc26_wrap_gostr3412_2015_magma OBJ_id_tc26_wrap,1L - -#define SN_id_tc26_wrap_gostr3412_2015_magma_kexp15 "id-tc26-wrap-gostr3412-2015-magma-kexp15" -#define NID_id_tc26_wrap_gostr3412_2015_magma_kexp15 1181 -#define OBJ_id_tc26_wrap_gostr3412_2015_magma_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_magma,1L - -#define SN_id_tc26_wrap_gostr3412_2015_kuznyechik "id-tc26-wrap-gostr3412-2015-kuznyechik" -#define NID_id_tc26_wrap_gostr3412_2015_kuznyechik 1182 -#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik OBJ_id_tc26_wrap,2L - -#define SN_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 "id-tc26-wrap-gostr3412-2015-kuznyechik-kexp15" -#define NID_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 1183 -#define OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik_kexp15 OBJ_id_tc26_wrap_gostr3412_2015_kuznyechik,1L - -#define SN_id_tc26_constants "id-tc26-constants" -#define NID_id_tc26_constants 994 -#define OBJ_id_tc26_constants OBJ_id_tc26,2L - -#define SN_id_tc26_sign_constants "id-tc26-sign-constants" -#define NID_id_tc26_sign_constants 995 -#define OBJ_id_tc26_sign_constants OBJ_id_tc26_constants,1L - -#define SN_id_tc26_gost_3410_2012_256_constants "id-tc26-gost-3410-2012-256-constants" -#define NID_id_tc26_gost_3410_2012_256_constants 1147 -#define OBJ_id_tc26_gost_3410_2012_256_constants OBJ_id_tc26_sign_constants,1L - -#define SN_id_tc26_gost_3410_2012_256_paramSetA "id-tc26-gost-3410-2012-256-paramSetA" -#define LN_id_tc26_gost_3410_2012_256_paramSetA "GOST R 34.10-2012 (256 bit) ParamSet A" -#define NID_id_tc26_gost_3410_2012_256_paramSetA 1148 -#define OBJ_id_tc26_gost_3410_2012_256_paramSetA OBJ_id_tc26_gost_3410_2012_256_constants,1L - -#define SN_id_tc26_gost_3410_2012_256_paramSetB "id-tc26-gost-3410-2012-256-paramSetB" -#define LN_id_tc26_gost_3410_2012_256_paramSetB "GOST R 34.10-2012 (256 bit) ParamSet B" -#define NID_id_tc26_gost_3410_2012_256_paramSetB 1184 -#define OBJ_id_tc26_gost_3410_2012_256_paramSetB OBJ_id_tc26_gost_3410_2012_256_constants,2L - -#define SN_id_tc26_gost_3410_2012_256_paramSetC "id-tc26-gost-3410-2012-256-paramSetC" -#define LN_id_tc26_gost_3410_2012_256_paramSetC "GOST R 34.10-2012 (256 bit) ParamSet C" -#define NID_id_tc26_gost_3410_2012_256_paramSetC 1185 -#define OBJ_id_tc26_gost_3410_2012_256_paramSetC OBJ_id_tc26_gost_3410_2012_256_constants,3L - -#define SN_id_tc26_gost_3410_2012_256_paramSetD "id-tc26-gost-3410-2012-256-paramSetD" -#define LN_id_tc26_gost_3410_2012_256_paramSetD "GOST R 34.10-2012 (256 bit) ParamSet D" -#define NID_id_tc26_gost_3410_2012_256_paramSetD 1186 -#define OBJ_id_tc26_gost_3410_2012_256_paramSetD OBJ_id_tc26_gost_3410_2012_256_constants,4L - -#define SN_id_tc26_gost_3410_2012_512_constants "id-tc26-gost-3410-2012-512-constants" -#define NID_id_tc26_gost_3410_2012_512_constants 996 -#define OBJ_id_tc26_gost_3410_2012_512_constants OBJ_id_tc26_sign_constants,2L - -#define SN_id_tc26_gost_3410_2012_512_paramSetTest "id-tc26-gost-3410-2012-512-paramSetTest" -#define LN_id_tc26_gost_3410_2012_512_paramSetTest "GOST R 34.10-2012 (512 bit) testing parameter set" -#define NID_id_tc26_gost_3410_2012_512_paramSetTest 997 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetTest OBJ_id_tc26_gost_3410_2012_512_constants,0L - -#define SN_id_tc26_gost_3410_2012_512_paramSetA "id-tc26-gost-3410-2012-512-paramSetA" -#define LN_id_tc26_gost_3410_2012_512_paramSetA "GOST R 34.10-2012 (512 bit) ParamSet A" -#define NID_id_tc26_gost_3410_2012_512_paramSetA 998 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetA OBJ_id_tc26_gost_3410_2012_512_constants,1L - -#define SN_id_tc26_gost_3410_2012_512_paramSetB "id-tc26-gost-3410-2012-512-paramSetB" -#define LN_id_tc26_gost_3410_2012_512_paramSetB "GOST R 34.10-2012 (512 bit) ParamSet B" -#define NID_id_tc26_gost_3410_2012_512_paramSetB 999 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetB OBJ_id_tc26_gost_3410_2012_512_constants,2L - -#define SN_id_tc26_gost_3410_2012_512_paramSetC "id-tc26-gost-3410-2012-512-paramSetC" -#define LN_id_tc26_gost_3410_2012_512_paramSetC "GOST R 34.10-2012 (512 bit) ParamSet C" -#define NID_id_tc26_gost_3410_2012_512_paramSetC 1149 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetC OBJ_id_tc26_gost_3410_2012_512_constants,3L - -#define SN_id_tc26_digest_constants "id-tc26-digest-constants" -#define NID_id_tc26_digest_constants 1000 -#define OBJ_id_tc26_digest_constants OBJ_id_tc26_constants,2L - -#define SN_id_tc26_cipher_constants "id-tc26-cipher-constants" -#define NID_id_tc26_cipher_constants 1001 -#define OBJ_id_tc26_cipher_constants OBJ_id_tc26_constants,5L - -#define SN_id_tc26_gost_28147_constants "id-tc26-gost-28147-constants" -#define NID_id_tc26_gost_28147_constants 1002 -#define OBJ_id_tc26_gost_28147_constants OBJ_id_tc26_cipher_constants,1L - -#define SN_id_tc26_gost_28147_param_Z "id-tc26-gost-28147-param-Z" -#define LN_id_tc26_gost_28147_param_Z "GOST 28147-89 TC26 parameter set" -#define NID_id_tc26_gost_28147_param_Z 1003 -#define OBJ_id_tc26_gost_28147_param_Z OBJ_id_tc26_gost_28147_constants,1L - -#define SN_INN "INN" -#define LN_INN "INN" -#define NID_INN 1004 -#define OBJ_INN OBJ_member_body,643L,3L,131L,1L,1L - -#define SN_OGRN "OGRN" -#define LN_OGRN "OGRN" -#define NID_OGRN 1005 -#define OBJ_OGRN OBJ_member_body,643L,100L,1L - -#define SN_SNILS "SNILS" -#define LN_SNILS "SNILS" -#define NID_SNILS 1006 -#define OBJ_SNILS OBJ_member_body,643L,100L,3L - -#define SN_subjectSignTool "subjectSignTool" -#define LN_subjectSignTool "Signing Tool of Subject" -#define NID_subjectSignTool 1007 -#define OBJ_subjectSignTool OBJ_member_body,643L,100L,111L - -#define SN_issuerSignTool "issuerSignTool" -#define LN_issuerSignTool "Signing Tool of Issuer" -#define NID_issuerSignTool 1008 -#define OBJ_issuerSignTool OBJ_member_body,643L,100L,112L - -#define SN_grasshopper_ecb "grasshopper-ecb" -#define NID_grasshopper_ecb 1012 - -#define SN_grasshopper_ctr "grasshopper-ctr" -#define NID_grasshopper_ctr 1013 - -#define SN_grasshopper_ofb "grasshopper-ofb" -#define NID_grasshopper_ofb 1014 - -#define SN_grasshopper_cbc "grasshopper-cbc" -#define NID_grasshopper_cbc 1015 - -#define SN_grasshopper_cfb "grasshopper-cfb" -#define NID_grasshopper_cfb 1016 - -#define SN_grasshopper_mac "grasshopper-mac" -#define NID_grasshopper_mac 1017 - -#define SN_magma_ecb "magma-ecb" -#define NID_magma_ecb 1187 - -#define SN_magma_ctr "magma-ctr" -#define NID_magma_ctr 1188 - -#define SN_magma_ofb "magma-ofb" -#define NID_magma_ofb 1189 - -#define SN_magma_cbc "magma-cbc" -#define NID_magma_cbc 1190 - -#define SN_magma_cfb "magma-cfb" -#define NID_magma_cfb 1191 - -#define SN_magma_mac "magma-mac" -#define NID_magma_mac 1192 - -#define SN_camellia_128_cbc "CAMELLIA-128-CBC" -#define LN_camellia_128_cbc "camellia-128-cbc" -#define NID_camellia_128_cbc 751 -#define OBJ_camellia_128_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,2L - -#define SN_camellia_192_cbc "CAMELLIA-192-CBC" -#define LN_camellia_192_cbc "camellia-192-cbc" -#define NID_camellia_192_cbc 752 -#define OBJ_camellia_192_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,3L - -#define SN_camellia_256_cbc "CAMELLIA-256-CBC" -#define LN_camellia_256_cbc "camellia-256-cbc" -#define NID_camellia_256_cbc 753 -#define OBJ_camellia_256_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,4L - -#define SN_id_camellia128_wrap "id-camellia128-wrap" -#define NID_id_camellia128_wrap 907 -#define OBJ_id_camellia128_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,2L - -#define SN_id_camellia192_wrap "id-camellia192-wrap" -#define NID_id_camellia192_wrap 908 -#define OBJ_id_camellia192_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,3L - -#define SN_id_camellia256_wrap "id-camellia256-wrap" -#define NID_id_camellia256_wrap 909 -#define OBJ_id_camellia256_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,4L - -#define OBJ_ntt_ds 0L,3L,4401L,5L - -#define OBJ_camellia OBJ_ntt_ds,3L,1L,9L - -#define SN_camellia_128_ecb "CAMELLIA-128-ECB" -#define LN_camellia_128_ecb "camellia-128-ecb" -#define NID_camellia_128_ecb 754 -#define OBJ_camellia_128_ecb OBJ_camellia,1L - -#define SN_camellia_128_ofb128 "CAMELLIA-128-OFB" -#define LN_camellia_128_ofb128 "camellia-128-ofb" -#define NID_camellia_128_ofb128 766 -#define OBJ_camellia_128_ofb128 OBJ_camellia,3L - -#define SN_camellia_128_cfb128 "CAMELLIA-128-CFB" -#define LN_camellia_128_cfb128 "camellia-128-cfb" -#define NID_camellia_128_cfb128 757 -#define OBJ_camellia_128_cfb128 OBJ_camellia,4L - -#define SN_camellia_128_gcm "CAMELLIA-128-GCM" -#define LN_camellia_128_gcm "camellia-128-gcm" -#define NID_camellia_128_gcm 961 -#define OBJ_camellia_128_gcm OBJ_camellia,6L - -#define SN_camellia_128_ccm "CAMELLIA-128-CCM" -#define LN_camellia_128_ccm "camellia-128-ccm" -#define NID_camellia_128_ccm 962 -#define OBJ_camellia_128_ccm OBJ_camellia,7L - -#define SN_camellia_128_ctr "CAMELLIA-128-CTR" -#define LN_camellia_128_ctr "camellia-128-ctr" -#define NID_camellia_128_ctr 963 -#define OBJ_camellia_128_ctr OBJ_camellia,9L - -#define SN_camellia_128_cmac "CAMELLIA-128-CMAC" -#define LN_camellia_128_cmac "camellia-128-cmac" -#define NID_camellia_128_cmac 964 -#define OBJ_camellia_128_cmac OBJ_camellia,10L - -#define SN_camellia_192_ecb "CAMELLIA-192-ECB" -#define LN_camellia_192_ecb "camellia-192-ecb" -#define NID_camellia_192_ecb 755 -#define OBJ_camellia_192_ecb OBJ_camellia,21L - -#define SN_camellia_192_ofb128 "CAMELLIA-192-OFB" -#define LN_camellia_192_ofb128 "camellia-192-ofb" -#define NID_camellia_192_ofb128 767 -#define OBJ_camellia_192_ofb128 OBJ_camellia,23L - -#define SN_camellia_192_cfb128 "CAMELLIA-192-CFB" -#define LN_camellia_192_cfb128 "camellia-192-cfb" -#define NID_camellia_192_cfb128 758 -#define OBJ_camellia_192_cfb128 OBJ_camellia,24L - -#define SN_camellia_192_gcm "CAMELLIA-192-GCM" -#define LN_camellia_192_gcm "camellia-192-gcm" -#define NID_camellia_192_gcm 965 -#define OBJ_camellia_192_gcm OBJ_camellia,26L - -#define SN_camellia_192_ccm "CAMELLIA-192-CCM" -#define LN_camellia_192_ccm "camellia-192-ccm" -#define NID_camellia_192_ccm 966 -#define OBJ_camellia_192_ccm OBJ_camellia,27L - -#define SN_camellia_192_ctr "CAMELLIA-192-CTR" -#define LN_camellia_192_ctr "camellia-192-ctr" -#define NID_camellia_192_ctr 967 -#define OBJ_camellia_192_ctr OBJ_camellia,29L - -#define SN_camellia_192_cmac "CAMELLIA-192-CMAC" -#define LN_camellia_192_cmac "camellia-192-cmac" -#define NID_camellia_192_cmac 968 -#define OBJ_camellia_192_cmac OBJ_camellia,30L - -#define SN_camellia_256_ecb "CAMELLIA-256-ECB" -#define LN_camellia_256_ecb "camellia-256-ecb" -#define NID_camellia_256_ecb 756 -#define OBJ_camellia_256_ecb OBJ_camellia,41L - -#define SN_camellia_256_ofb128 "CAMELLIA-256-OFB" -#define LN_camellia_256_ofb128 "camellia-256-ofb" -#define NID_camellia_256_ofb128 768 -#define OBJ_camellia_256_ofb128 OBJ_camellia,43L - -#define SN_camellia_256_cfb128 "CAMELLIA-256-CFB" -#define LN_camellia_256_cfb128 "camellia-256-cfb" -#define NID_camellia_256_cfb128 759 -#define OBJ_camellia_256_cfb128 OBJ_camellia,44L - -#define SN_camellia_256_gcm "CAMELLIA-256-GCM" -#define LN_camellia_256_gcm "camellia-256-gcm" -#define NID_camellia_256_gcm 969 -#define OBJ_camellia_256_gcm OBJ_camellia,46L - -#define SN_camellia_256_ccm "CAMELLIA-256-CCM" -#define LN_camellia_256_ccm "camellia-256-ccm" -#define NID_camellia_256_ccm 970 -#define OBJ_camellia_256_ccm OBJ_camellia,47L - -#define SN_camellia_256_ctr "CAMELLIA-256-CTR" -#define LN_camellia_256_ctr "camellia-256-ctr" -#define NID_camellia_256_ctr 971 -#define OBJ_camellia_256_ctr OBJ_camellia,49L - -#define SN_camellia_256_cmac "CAMELLIA-256-CMAC" -#define LN_camellia_256_cmac "camellia-256-cmac" -#define NID_camellia_256_cmac 972 -#define OBJ_camellia_256_cmac OBJ_camellia,50L - -#define SN_camellia_128_cfb1 "CAMELLIA-128-CFB1" -#define LN_camellia_128_cfb1 "camellia-128-cfb1" -#define NID_camellia_128_cfb1 760 - -#define SN_camellia_192_cfb1 "CAMELLIA-192-CFB1" -#define LN_camellia_192_cfb1 "camellia-192-cfb1" -#define NID_camellia_192_cfb1 761 - -#define SN_camellia_256_cfb1 "CAMELLIA-256-CFB1" -#define LN_camellia_256_cfb1 "camellia-256-cfb1" -#define NID_camellia_256_cfb1 762 - -#define SN_camellia_128_cfb8 "CAMELLIA-128-CFB8" -#define LN_camellia_128_cfb8 "camellia-128-cfb8" -#define NID_camellia_128_cfb8 763 - -#define SN_camellia_192_cfb8 "CAMELLIA-192-CFB8" -#define LN_camellia_192_cfb8 "camellia-192-cfb8" -#define NID_camellia_192_cfb8 764 - -#define SN_camellia_256_cfb8 "CAMELLIA-256-CFB8" -#define LN_camellia_256_cfb8 "camellia-256-cfb8" -#define NID_camellia_256_cfb8 765 - -#define OBJ_aria 1L,2L,410L,200046L,1L,1L - -#define SN_aria_128_ecb "ARIA-128-ECB" -#define LN_aria_128_ecb "aria-128-ecb" -#define NID_aria_128_ecb 1065 -#define OBJ_aria_128_ecb OBJ_aria,1L - -#define SN_aria_128_cbc "ARIA-128-CBC" -#define LN_aria_128_cbc "aria-128-cbc" -#define NID_aria_128_cbc 1066 -#define OBJ_aria_128_cbc OBJ_aria,2L - -#define SN_aria_128_cfb128 "ARIA-128-CFB" -#define LN_aria_128_cfb128 "aria-128-cfb" -#define NID_aria_128_cfb128 1067 -#define OBJ_aria_128_cfb128 OBJ_aria,3L - -#define SN_aria_128_ofb128 "ARIA-128-OFB" -#define LN_aria_128_ofb128 "aria-128-ofb" -#define NID_aria_128_ofb128 1068 -#define OBJ_aria_128_ofb128 OBJ_aria,4L - -#define SN_aria_128_ctr "ARIA-128-CTR" -#define LN_aria_128_ctr "aria-128-ctr" -#define NID_aria_128_ctr 1069 -#define OBJ_aria_128_ctr OBJ_aria,5L - -#define SN_aria_192_ecb "ARIA-192-ECB" -#define LN_aria_192_ecb "aria-192-ecb" -#define NID_aria_192_ecb 1070 -#define OBJ_aria_192_ecb OBJ_aria,6L - -#define SN_aria_192_cbc "ARIA-192-CBC" -#define LN_aria_192_cbc "aria-192-cbc" -#define NID_aria_192_cbc 1071 -#define OBJ_aria_192_cbc OBJ_aria,7L - -#define SN_aria_192_cfb128 "ARIA-192-CFB" -#define LN_aria_192_cfb128 "aria-192-cfb" -#define NID_aria_192_cfb128 1072 -#define OBJ_aria_192_cfb128 OBJ_aria,8L - -#define SN_aria_192_ofb128 "ARIA-192-OFB" -#define LN_aria_192_ofb128 "aria-192-ofb" -#define NID_aria_192_ofb128 1073 -#define OBJ_aria_192_ofb128 OBJ_aria,9L - -#define SN_aria_192_ctr "ARIA-192-CTR" -#define LN_aria_192_ctr "aria-192-ctr" -#define NID_aria_192_ctr 1074 -#define OBJ_aria_192_ctr OBJ_aria,10L - -#define SN_aria_256_ecb "ARIA-256-ECB" -#define LN_aria_256_ecb "aria-256-ecb" -#define NID_aria_256_ecb 1075 -#define OBJ_aria_256_ecb OBJ_aria,11L - -#define SN_aria_256_cbc "ARIA-256-CBC" -#define LN_aria_256_cbc "aria-256-cbc" -#define NID_aria_256_cbc 1076 -#define OBJ_aria_256_cbc OBJ_aria,12L - -#define SN_aria_256_cfb128 "ARIA-256-CFB" -#define LN_aria_256_cfb128 "aria-256-cfb" -#define NID_aria_256_cfb128 1077 -#define OBJ_aria_256_cfb128 OBJ_aria,13L - -#define SN_aria_256_ofb128 "ARIA-256-OFB" -#define LN_aria_256_ofb128 "aria-256-ofb" -#define NID_aria_256_ofb128 1078 -#define OBJ_aria_256_ofb128 OBJ_aria,14L - -#define SN_aria_256_ctr "ARIA-256-CTR" -#define LN_aria_256_ctr "aria-256-ctr" -#define NID_aria_256_ctr 1079 -#define OBJ_aria_256_ctr OBJ_aria,15L - -#define SN_aria_128_cfb1 "ARIA-128-CFB1" -#define LN_aria_128_cfb1 "aria-128-cfb1" -#define NID_aria_128_cfb1 1080 - -#define SN_aria_192_cfb1 "ARIA-192-CFB1" -#define LN_aria_192_cfb1 "aria-192-cfb1" -#define NID_aria_192_cfb1 1081 - -#define SN_aria_256_cfb1 "ARIA-256-CFB1" -#define LN_aria_256_cfb1 "aria-256-cfb1" -#define NID_aria_256_cfb1 1082 - -#define SN_aria_128_cfb8 "ARIA-128-CFB8" -#define LN_aria_128_cfb8 "aria-128-cfb8" -#define NID_aria_128_cfb8 1083 - -#define SN_aria_192_cfb8 "ARIA-192-CFB8" -#define LN_aria_192_cfb8 "aria-192-cfb8" -#define NID_aria_192_cfb8 1084 - -#define SN_aria_256_cfb8 "ARIA-256-CFB8" -#define LN_aria_256_cfb8 "aria-256-cfb8" -#define NID_aria_256_cfb8 1085 - -#define SN_aria_128_ccm "ARIA-128-CCM" -#define LN_aria_128_ccm "aria-128-ccm" -#define NID_aria_128_ccm 1120 -#define OBJ_aria_128_ccm OBJ_aria,37L - -#define SN_aria_192_ccm "ARIA-192-CCM" -#define LN_aria_192_ccm "aria-192-ccm" -#define NID_aria_192_ccm 1121 -#define OBJ_aria_192_ccm OBJ_aria,38L - -#define SN_aria_256_ccm "ARIA-256-CCM" -#define LN_aria_256_ccm "aria-256-ccm" -#define NID_aria_256_ccm 1122 -#define OBJ_aria_256_ccm OBJ_aria,39L - -#define SN_aria_128_gcm "ARIA-128-GCM" -#define LN_aria_128_gcm "aria-128-gcm" -#define NID_aria_128_gcm 1123 -#define OBJ_aria_128_gcm OBJ_aria,34L - -#define SN_aria_192_gcm "ARIA-192-GCM" -#define LN_aria_192_gcm "aria-192-gcm" -#define NID_aria_192_gcm 1124 -#define OBJ_aria_192_gcm OBJ_aria,35L - -#define SN_aria_256_gcm "ARIA-256-GCM" -#define LN_aria_256_gcm "aria-256-gcm" -#define NID_aria_256_gcm 1125 -#define OBJ_aria_256_gcm OBJ_aria,36L - -#define SN_kisa "KISA" -#define LN_kisa "kisa" -#define NID_kisa 773 -#define OBJ_kisa OBJ_member_body,410L,200004L - -#define SN_seed_ecb "SEED-ECB" -#define LN_seed_ecb "seed-ecb" -#define NID_seed_ecb 776 -#define OBJ_seed_ecb OBJ_kisa,1L,3L - -#define SN_seed_cbc "SEED-CBC" -#define LN_seed_cbc "seed-cbc" -#define NID_seed_cbc 777 -#define OBJ_seed_cbc OBJ_kisa,1L,4L - -#define SN_seed_cfb128 "SEED-CFB" -#define LN_seed_cfb128 "seed-cfb" -#define NID_seed_cfb128 779 -#define OBJ_seed_cfb128 OBJ_kisa,1L,5L - -#define SN_seed_ofb128 "SEED-OFB" -#define LN_seed_ofb128 "seed-ofb" -#define NID_seed_ofb128 778 -#define OBJ_seed_ofb128 OBJ_kisa,1L,6L - -#define SN_sm4_ecb "SM4-ECB" -#define LN_sm4_ecb "sm4-ecb" -#define NID_sm4_ecb 1133 -#define OBJ_sm4_ecb OBJ_sm_scheme,104L,1L - -#define SN_sm4_cbc "SM4-CBC" -#define LN_sm4_cbc "sm4-cbc" -#define NID_sm4_cbc 1134 -#define OBJ_sm4_cbc OBJ_sm_scheme,104L,2L - -#define SN_sm4_ofb128 "SM4-OFB" -#define LN_sm4_ofb128 "sm4-ofb" -#define NID_sm4_ofb128 1135 -#define OBJ_sm4_ofb128 OBJ_sm_scheme,104L,3L - -#define SN_sm4_cfb128 "SM4-CFB" -#define LN_sm4_cfb128 "sm4-cfb" -#define NID_sm4_cfb128 1137 -#define OBJ_sm4_cfb128 OBJ_sm_scheme,104L,4L - -#define SN_sm4_cfb1 "SM4-CFB1" -#define LN_sm4_cfb1 "sm4-cfb1" -#define NID_sm4_cfb1 1136 -#define OBJ_sm4_cfb1 OBJ_sm_scheme,104L,5L - -#define SN_sm4_cfb8 "SM4-CFB8" -#define LN_sm4_cfb8 "sm4-cfb8" -#define NID_sm4_cfb8 1138 -#define OBJ_sm4_cfb8 OBJ_sm_scheme,104L,6L - -#define SN_sm4_ctr "SM4-CTR" -#define LN_sm4_ctr "sm4-ctr" -#define NID_sm4_ctr 1139 -#define OBJ_sm4_ctr OBJ_sm_scheme,104L,7L - -#define SN_hmac "HMAC" -#define LN_hmac "hmac" -#define NID_hmac 855 - -#define SN_cmac "CMAC" -#define LN_cmac "cmac" -#define NID_cmac 894 - -#define SN_rc4_hmac_md5 "RC4-HMAC-MD5" -#define LN_rc4_hmac_md5 "rc4-hmac-md5" -#define NID_rc4_hmac_md5 915 - -#define SN_aes_128_cbc_hmac_sha1 "AES-128-CBC-HMAC-SHA1" -#define LN_aes_128_cbc_hmac_sha1 "aes-128-cbc-hmac-sha1" -#define NID_aes_128_cbc_hmac_sha1 916 - -#define SN_aes_192_cbc_hmac_sha1 "AES-192-CBC-HMAC-SHA1" -#define LN_aes_192_cbc_hmac_sha1 "aes-192-cbc-hmac-sha1" -#define NID_aes_192_cbc_hmac_sha1 917 - -#define SN_aes_256_cbc_hmac_sha1 "AES-256-CBC-HMAC-SHA1" -#define LN_aes_256_cbc_hmac_sha1 "aes-256-cbc-hmac-sha1" -#define NID_aes_256_cbc_hmac_sha1 918 - -#define SN_aes_128_cbc_hmac_sha256 "AES-128-CBC-HMAC-SHA256" -#define LN_aes_128_cbc_hmac_sha256 "aes-128-cbc-hmac-sha256" -#define NID_aes_128_cbc_hmac_sha256 948 - -#define SN_aes_192_cbc_hmac_sha256 "AES-192-CBC-HMAC-SHA256" -#define LN_aes_192_cbc_hmac_sha256 "aes-192-cbc-hmac-sha256" -#define NID_aes_192_cbc_hmac_sha256 949 - -#define SN_aes_256_cbc_hmac_sha256 "AES-256-CBC-HMAC-SHA256" -#define LN_aes_256_cbc_hmac_sha256 "aes-256-cbc-hmac-sha256" -#define NID_aes_256_cbc_hmac_sha256 950 - -#define SN_chacha20_poly1305 "ChaCha20-Poly1305" -#define LN_chacha20_poly1305 "chacha20-poly1305" -#define NID_chacha20_poly1305 1018 - -#define SN_chacha20 "ChaCha20" -#define LN_chacha20 "chacha20" -#define NID_chacha20 1019 - -#define SN_dhpublicnumber "dhpublicnumber" -#define LN_dhpublicnumber "X9.42 DH" -#define NID_dhpublicnumber 920 -#define OBJ_dhpublicnumber OBJ_ISO_US,10046L,2L,1L - -#define SN_brainpoolP160r1 "brainpoolP160r1" -#define NID_brainpoolP160r1 921 -#define OBJ_brainpoolP160r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,1L - -#define SN_brainpoolP160t1 "brainpoolP160t1" -#define NID_brainpoolP160t1 922 -#define OBJ_brainpoolP160t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,2L - -#define SN_brainpoolP192r1 "brainpoolP192r1" -#define NID_brainpoolP192r1 923 -#define OBJ_brainpoolP192r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,3L - -#define SN_brainpoolP192t1 "brainpoolP192t1" -#define NID_brainpoolP192t1 924 -#define OBJ_brainpoolP192t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,4L - -#define SN_brainpoolP224r1 "brainpoolP224r1" -#define NID_brainpoolP224r1 925 -#define OBJ_brainpoolP224r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,5L - -#define SN_brainpoolP224t1 "brainpoolP224t1" -#define NID_brainpoolP224t1 926 -#define OBJ_brainpoolP224t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,6L - -#define SN_brainpoolP256r1 "brainpoolP256r1" -#define NID_brainpoolP256r1 927 -#define OBJ_brainpoolP256r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,7L - -#define SN_brainpoolP256t1 "brainpoolP256t1" -#define NID_brainpoolP256t1 928 -#define OBJ_brainpoolP256t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,8L - -#define SN_brainpoolP320r1 "brainpoolP320r1" -#define NID_brainpoolP320r1 929 -#define OBJ_brainpoolP320r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,9L - -#define SN_brainpoolP320t1 "brainpoolP320t1" -#define NID_brainpoolP320t1 930 -#define OBJ_brainpoolP320t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,10L - -#define SN_brainpoolP384r1 "brainpoolP384r1" -#define NID_brainpoolP384r1 931 -#define OBJ_brainpoolP384r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,11L - -#define SN_brainpoolP384t1 "brainpoolP384t1" -#define NID_brainpoolP384t1 932 -#define OBJ_brainpoolP384t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,12L - -#define SN_brainpoolP512r1 "brainpoolP512r1" -#define NID_brainpoolP512r1 933 -#define OBJ_brainpoolP512r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,13L - -#define SN_brainpoolP512t1 "brainpoolP512t1" -#define NID_brainpoolP512t1 934 -#define OBJ_brainpoolP512t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,14L - -#define OBJ_x9_63_scheme 1L,3L,133L,16L,840L,63L,0L - -#define OBJ_secg_scheme OBJ_certicom_arc,1L - -#define SN_dhSinglePass_stdDH_sha1kdf_scheme "dhSinglePass-stdDH-sha1kdf-scheme" -#define NID_dhSinglePass_stdDH_sha1kdf_scheme 936 -#define OBJ_dhSinglePass_stdDH_sha1kdf_scheme OBJ_x9_63_scheme,2L - -#define SN_dhSinglePass_stdDH_sha224kdf_scheme "dhSinglePass-stdDH-sha224kdf-scheme" -#define NID_dhSinglePass_stdDH_sha224kdf_scheme 937 -#define OBJ_dhSinglePass_stdDH_sha224kdf_scheme OBJ_secg_scheme,11L,0L - -#define SN_dhSinglePass_stdDH_sha256kdf_scheme "dhSinglePass-stdDH-sha256kdf-scheme" -#define NID_dhSinglePass_stdDH_sha256kdf_scheme 938 -#define OBJ_dhSinglePass_stdDH_sha256kdf_scheme OBJ_secg_scheme,11L,1L - -#define SN_dhSinglePass_stdDH_sha384kdf_scheme "dhSinglePass-stdDH-sha384kdf-scheme" -#define NID_dhSinglePass_stdDH_sha384kdf_scheme 939 -#define OBJ_dhSinglePass_stdDH_sha384kdf_scheme OBJ_secg_scheme,11L,2L - -#define SN_dhSinglePass_stdDH_sha512kdf_scheme "dhSinglePass-stdDH-sha512kdf-scheme" -#define NID_dhSinglePass_stdDH_sha512kdf_scheme 940 -#define OBJ_dhSinglePass_stdDH_sha512kdf_scheme OBJ_secg_scheme,11L,3L - -#define SN_dhSinglePass_cofactorDH_sha1kdf_scheme "dhSinglePass-cofactorDH-sha1kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha1kdf_scheme 941 -#define OBJ_dhSinglePass_cofactorDH_sha1kdf_scheme OBJ_x9_63_scheme,3L - -#define SN_dhSinglePass_cofactorDH_sha224kdf_scheme "dhSinglePass-cofactorDH-sha224kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha224kdf_scheme 942 -#define OBJ_dhSinglePass_cofactorDH_sha224kdf_scheme OBJ_secg_scheme,14L,0L - -#define SN_dhSinglePass_cofactorDH_sha256kdf_scheme "dhSinglePass-cofactorDH-sha256kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha256kdf_scheme 943 -#define OBJ_dhSinglePass_cofactorDH_sha256kdf_scheme OBJ_secg_scheme,14L,1L - -#define SN_dhSinglePass_cofactorDH_sha384kdf_scheme "dhSinglePass-cofactorDH-sha384kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha384kdf_scheme 944 -#define OBJ_dhSinglePass_cofactorDH_sha384kdf_scheme OBJ_secg_scheme,14L,2L - -#define SN_dhSinglePass_cofactorDH_sha512kdf_scheme "dhSinglePass-cofactorDH-sha512kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha512kdf_scheme 945 -#define OBJ_dhSinglePass_cofactorDH_sha512kdf_scheme OBJ_secg_scheme,14L,3L - -#define SN_dh_std_kdf "dh-std-kdf" -#define NID_dh_std_kdf 946 - -#define SN_dh_cofactor_kdf "dh-cofactor-kdf" -#define NID_dh_cofactor_kdf 947 - -#define SN_ct_precert_scts "ct_precert_scts" -#define LN_ct_precert_scts "CT Precertificate SCTs" -#define NID_ct_precert_scts 951 -#define OBJ_ct_precert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,2L - -#define SN_ct_precert_poison "ct_precert_poison" -#define LN_ct_precert_poison "CT Precertificate Poison" -#define NID_ct_precert_poison 952 -#define OBJ_ct_precert_poison 1L,3L,6L,1L,4L,1L,11129L,2L,4L,3L - -#define SN_ct_precert_signer "ct_precert_signer" -#define LN_ct_precert_signer "CT Precertificate Signer" -#define NID_ct_precert_signer 953 -#define OBJ_ct_precert_signer 1L,3L,6L,1L,4L,1L,11129L,2L,4L,4L - -#define SN_ct_cert_scts "ct_cert_scts" -#define LN_ct_cert_scts "CT Certificate SCTs" -#define NID_ct_cert_scts 954 -#define OBJ_ct_cert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,5L - -#define SN_jurisdictionLocalityName "jurisdictionL" -#define LN_jurisdictionLocalityName "jurisdictionLocalityName" -#define NID_jurisdictionLocalityName 955 -#define OBJ_jurisdictionLocalityName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,1L - -#define SN_jurisdictionStateOrProvinceName "jurisdictionST" -#define LN_jurisdictionStateOrProvinceName "jurisdictionStateOrProvinceName" -#define NID_jurisdictionStateOrProvinceName 956 -#define OBJ_jurisdictionStateOrProvinceName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,2L - -#define SN_jurisdictionCountryName "jurisdictionC" -#define LN_jurisdictionCountryName "jurisdictionCountryName" -#define NID_jurisdictionCountryName 957 -#define OBJ_jurisdictionCountryName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,3L - -#define SN_id_scrypt "id-scrypt" -#define LN_id_scrypt "scrypt" -#define NID_id_scrypt 973 -#define OBJ_id_scrypt 1L,3L,6L,1L,4L,1L,11591L,4L,11L - -#define SN_tls1_prf "TLS1-PRF" -#define LN_tls1_prf "tls1-prf" -#define NID_tls1_prf 1021 - -#define SN_hkdf "HKDF" -#define LN_hkdf "hkdf" -#define NID_hkdf 1036 - -#define SN_id_pkinit "id-pkinit" -#define NID_id_pkinit 1031 -#define OBJ_id_pkinit 1L,3L,6L,1L,5L,2L,3L - -#define SN_pkInitClientAuth "pkInitClientAuth" -#define LN_pkInitClientAuth "PKINIT Client Auth" -#define NID_pkInitClientAuth 1032 -#define OBJ_pkInitClientAuth OBJ_id_pkinit,4L - -#define SN_pkInitKDC "pkInitKDC" -#define LN_pkInitKDC "Signing KDC Response" -#define NID_pkInitKDC 1033 -#define OBJ_pkInitKDC OBJ_id_pkinit,5L - -#define SN_X25519 "X25519" -#define NID_X25519 1034 -#define OBJ_X25519 1L,3L,101L,110L - -#define SN_X448 "X448" -#define NID_X448 1035 -#define OBJ_X448 1L,3L,101L,111L - -#define SN_ED25519 "ED25519" -#define NID_ED25519 1087 -#define OBJ_ED25519 1L,3L,101L,112L - -#define SN_ED448 "ED448" -#define NID_ED448 1088 -#define OBJ_ED448 1L,3L,101L,113L - -#define SN_kx_rsa "KxRSA" -#define LN_kx_rsa "kx-rsa" -#define NID_kx_rsa 1037 - -#define SN_kx_ecdhe "KxECDHE" -#define LN_kx_ecdhe "kx-ecdhe" -#define NID_kx_ecdhe 1038 - -#define SN_kx_dhe "KxDHE" -#define LN_kx_dhe "kx-dhe" -#define NID_kx_dhe 1039 - -#define SN_kx_ecdhe_psk "KxECDHE-PSK" -#define LN_kx_ecdhe_psk "kx-ecdhe-psk" -#define NID_kx_ecdhe_psk 1040 - -#define SN_kx_dhe_psk "KxDHE-PSK" -#define LN_kx_dhe_psk "kx-dhe-psk" -#define NID_kx_dhe_psk 1041 - -#define SN_kx_rsa_psk "KxRSA_PSK" -#define LN_kx_rsa_psk "kx-rsa-psk" -#define NID_kx_rsa_psk 1042 - -#define SN_kx_psk "KxPSK" -#define LN_kx_psk "kx-psk" -#define NID_kx_psk 1043 - -#define SN_kx_srp "KxSRP" -#define LN_kx_srp "kx-srp" -#define NID_kx_srp 1044 - -#define SN_kx_gost "KxGOST" -#define LN_kx_gost "kx-gost" -#define NID_kx_gost 1045 - -#define SN_kx_any "KxANY" -#define LN_kx_any "kx-any" -#define NID_kx_any 1063 - -#define SN_auth_rsa "AuthRSA" -#define LN_auth_rsa "auth-rsa" -#define NID_auth_rsa 1046 - -#define SN_auth_ecdsa "AuthECDSA" -#define LN_auth_ecdsa "auth-ecdsa" -#define NID_auth_ecdsa 1047 - -#define SN_auth_psk "AuthPSK" -#define LN_auth_psk "auth-psk" -#define NID_auth_psk 1048 - -#define SN_auth_dss "AuthDSS" -#define LN_auth_dss "auth-dss" -#define NID_auth_dss 1049 - -#define SN_auth_gost01 "AuthGOST01" -#define LN_auth_gost01 "auth-gost01" -#define NID_auth_gost01 1050 - -#define SN_auth_gost12 "AuthGOST12" -#define LN_auth_gost12 "auth-gost12" -#define NID_auth_gost12 1051 - -#define SN_auth_srp "AuthSRP" -#define LN_auth_srp "auth-srp" -#define NID_auth_srp 1052 - -#define SN_auth_null "AuthNULL" -#define LN_auth_null "auth-null" -#define NID_auth_null 1053 - -#define SN_auth_any "AuthANY" -#define LN_auth_any "auth-any" -#define NID_auth_any 1064 - -#define SN_poly1305 "Poly1305" -#define LN_poly1305 "poly1305" -#define NID_poly1305 1061 - -#define SN_siphash "SipHash" -#define LN_siphash "siphash" -#define NID_siphash 1062 - -#define SN_ffdhe2048 "ffdhe2048" -#define NID_ffdhe2048 1126 - -#define SN_ffdhe3072 "ffdhe3072" -#define NID_ffdhe3072 1127 - -#define SN_ffdhe4096 "ffdhe4096" -#define NID_ffdhe4096 1128 - -#define SN_ffdhe6144 "ffdhe6144" -#define NID_ffdhe6144 1129 - -#define SN_ffdhe8192 "ffdhe8192" -#define NID_ffdhe8192 1130 - -#define SN_ISO_UA "ISO-UA" -#define NID_ISO_UA 1150 -#define OBJ_ISO_UA OBJ_member_body,804L - -#define SN_ua_pki "ua-pki" -#define NID_ua_pki 1151 -#define OBJ_ua_pki OBJ_ISO_UA,2L,1L,1L,1L - -#define SN_dstu28147 "dstu28147" -#define LN_dstu28147 "DSTU Gost 28147-2009" -#define NID_dstu28147 1152 -#define OBJ_dstu28147 OBJ_ua_pki,1L,1L,1L - -#define SN_dstu28147_ofb "dstu28147-ofb" -#define LN_dstu28147_ofb "DSTU Gost 28147-2009 OFB mode" -#define NID_dstu28147_ofb 1153 -#define OBJ_dstu28147_ofb OBJ_dstu28147,2L - -#define SN_dstu28147_cfb "dstu28147-cfb" -#define LN_dstu28147_cfb "DSTU Gost 28147-2009 CFB mode" -#define NID_dstu28147_cfb 1154 -#define OBJ_dstu28147_cfb OBJ_dstu28147,3L - -#define SN_dstu28147_wrap "dstu28147-wrap" -#define LN_dstu28147_wrap "DSTU Gost 28147-2009 key wrap" -#define NID_dstu28147_wrap 1155 -#define OBJ_dstu28147_wrap OBJ_dstu28147,5L - -#define SN_hmacWithDstu34311 "hmacWithDstu34311" -#define LN_hmacWithDstu34311 "HMAC DSTU Gost 34311-95" -#define NID_hmacWithDstu34311 1156 -#define OBJ_hmacWithDstu34311 OBJ_ua_pki,1L,1L,2L - -#define SN_dstu34311 "dstu34311" -#define LN_dstu34311 "DSTU Gost 34311-95" -#define NID_dstu34311 1157 -#define OBJ_dstu34311 OBJ_ua_pki,1L,2L,1L - -#define SN_dstu4145le "dstu4145le" -#define LN_dstu4145le "DSTU 4145-2002 little endian" -#define NID_dstu4145le 1158 -#define OBJ_dstu4145le OBJ_ua_pki,1L,3L,1L,1L - -#define SN_dstu4145be "dstu4145be" -#define LN_dstu4145be "DSTU 4145-2002 big endian" -#define NID_dstu4145be 1159 -#define OBJ_dstu4145be OBJ_dstu4145le,1L,1L - -#define SN_uacurve0 "uacurve0" -#define LN_uacurve0 "DSTU curve 0" -#define NID_uacurve0 1160 -#define OBJ_uacurve0 OBJ_dstu4145le,2L,0L - -#define SN_uacurve1 "uacurve1" -#define LN_uacurve1 "DSTU curve 1" -#define NID_uacurve1 1161 -#define OBJ_uacurve1 OBJ_dstu4145le,2L,1L - -#define SN_uacurve2 "uacurve2" -#define LN_uacurve2 "DSTU curve 2" -#define NID_uacurve2 1162 -#define OBJ_uacurve2 OBJ_dstu4145le,2L,2L - -#define SN_uacurve3 "uacurve3" -#define LN_uacurve3 "DSTU curve 3" -#define NID_uacurve3 1163 -#define OBJ_uacurve3 OBJ_dstu4145le,2L,3L - -#define SN_uacurve4 "uacurve4" -#define LN_uacurve4 "DSTU curve 4" -#define NID_uacurve4 1164 -#define OBJ_uacurve4 OBJ_dstu4145le,2L,4L - -#define SN_uacurve5 "uacurve5" -#define LN_uacurve5 "DSTU curve 5" -#define NID_uacurve5 1165 -#define OBJ_uacurve5 OBJ_dstu4145le,2L,5L - -#define SN_uacurve6 "uacurve6" -#define LN_uacurve6 "DSTU curve 6" -#define NID_uacurve6 1166 -#define OBJ_uacurve6 OBJ_dstu4145le,2L,6L - -#define SN_uacurve7 "uacurve7" -#define LN_uacurve7 "DSTU curve 7" -#define NID_uacurve7 1167 -#define OBJ_uacurve7 OBJ_dstu4145le,2L,7L - -#define SN_uacurve8 "uacurve8" -#define LN_uacurve8 "DSTU curve 8" -#define NID_uacurve8 1168 -#define OBJ_uacurve8 OBJ_dstu4145le,2L,8L - -#define SN_uacurve9 "uacurve9" -#define LN_uacurve9 "DSTU curve 9" -#define NID_uacurve9 1169 -#define OBJ_uacurve9 OBJ_dstu4145le,2L,9L diff --git a/submodules/MtProtoKit/openssl/openssl/objects.h b/submodules/MtProtoKit/openssl/openssl/objects.h deleted file mode 100644 index 5e8b5762f8..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/objects.h +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_OBJECTS_H -# define HEADER_OBJECTS_H - -# include -# include -# include -# include - -# define OBJ_NAME_TYPE_UNDEF 0x00 -# define OBJ_NAME_TYPE_MD_METH 0x01 -# define OBJ_NAME_TYPE_CIPHER_METH 0x02 -# define OBJ_NAME_TYPE_PKEY_METH 0x03 -# define OBJ_NAME_TYPE_COMP_METH 0x04 -# define OBJ_NAME_TYPE_NUM 0x05 - -# define OBJ_NAME_ALIAS 0x8000 - -# define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01 -# define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02 - - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct obj_name_st { - int type; - int alias; - const char *name; - const char *data; -} OBJ_NAME; - -# define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c) - -int OBJ_NAME_init(void); -int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), - int (*cmp_func) (const char *, const char *), - void (*free_func) (const char *, int, const char *)); -const char *OBJ_NAME_get(const char *name, int type); -int OBJ_NAME_add(const char *name, int type, const char *data); -int OBJ_NAME_remove(const char *name, int type); -void OBJ_NAME_cleanup(int type); /* -1 for everything */ -void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), - void *arg); -void OBJ_NAME_do_all_sorted(int type, - void (*fn) (const OBJ_NAME *, void *arg), - void *arg); - -ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o); -ASN1_OBJECT *OBJ_nid2obj(int n); -const char *OBJ_nid2ln(int n); -const char *OBJ_nid2sn(int n); -int OBJ_obj2nid(const ASN1_OBJECT *o); -ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); -int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); -int OBJ_txt2nid(const char *s); -int OBJ_ln2nid(const char *s); -int OBJ_sn2nid(const char *s); -int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); -const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, - int (*cmp) (const void *, const void *)); -const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, - int size, - int (*cmp) (const void *, const void *), - int flags); - -# define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *, const void *); \ - static int nm##_cmp(type1 const *, type2 const *); \ - scope type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -# define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \ - _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) -# define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -/*- - * Unsolved problem: if a type is actually a pointer type, like - * nid_triple is, then its impossible to get a const where you need - * it. Consider: - * - * typedef int nid_triple[3]; - * const void *a_; - * const nid_triple const *a = a_; - * - * The assignment discards a const because what you really want is: - * - * const int const * const *a = a_; - * - * But if you do that, you lose the fact that a is an array of 3 ints, - * which breaks comparison functions. - * - * Thus we end up having to cast, sadly, or unpack the - * declarations. Or, as I finally did in this case, declare nid_triple - * to be a struct, which it should have been in the first place. - * - * Ben, August 2008. - * - * Also, strictly speaking not all types need be const, but handling - * the non-constness means a lot of complication, and in practice - * comparison routines do always not touch their arguments. - */ - -# define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -# define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -# define OBJ_bsearch(type1,key,type2,base,num,cmp) \ - ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN))) - -# define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \ - ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN)),flags) - -int OBJ_new_nid(int num); -int OBJ_add_object(const ASN1_OBJECT *obj); -int OBJ_create(const char *oid, const char *sn, const char *ln); -#if OPENSSL_API_COMPAT < 0x10100000L -# define OBJ_cleanup() while(0) continue -#endif -int OBJ_create_objects(BIO *in); - -size_t OBJ_length(const ASN1_OBJECT *obj); -const unsigned char *OBJ_get0_data(const ASN1_OBJECT *obj); - -int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); -int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); -int OBJ_add_sigid(int signid, int dig_id, int pkey_id); -void OBJ_sigid_free(void); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/objectserr.h b/submodules/MtProtoKit/openssl/openssl/objectserr.h deleted file mode 100644 index 02e166f1ac..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/objectserr.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_OBJERR_H -# define HEADER_OBJERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_OBJ_strings(void); - -/* - * OBJ function codes. - */ -# define OBJ_F_OBJ_ADD_OBJECT 105 -# define OBJ_F_OBJ_ADD_SIGID 107 -# define OBJ_F_OBJ_CREATE 100 -# define OBJ_F_OBJ_DUP 101 -# define OBJ_F_OBJ_NAME_NEW_INDEX 106 -# define OBJ_F_OBJ_NID2LN 102 -# define OBJ_F_OBJ_NID2OBJ 103 -# define OBJ_F_OBJ_NID2SN 104 -# define OBJ_F_OBJ_TXT2OBJ 108 - -/* - * OBJ reason codes. - */ -# define OBJ_R_OID_EXISTS 102 -# define OBJ_R_UNKNOWN_NID 101 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ocsp.h b/submodules/MtProtoKit/openssl/openssl/ocsp.h deleted file mode 100644 index 8582fe1ee1..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ocsp.h +++ /dev/null @@ -1,352 +0,0 @@ -/* - * Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_OCSP_H -# define HEADER_OCSP_H - -#include - -/* - * These definitions are outside the OPENSSL_NO_OCSP guard because although for - * historical reasons they have OCSP_* names, they can actually be used - * independently of OCSP. E.g. see RFC5280 - */ -/*- - * CRLReason ::= ENUMERATED { - * unspecified (0), - * keyCompromise (1), - * cACompromise (2), - * affiliationChanged (3), - * superseded (4), - * cessationOfOperation (5), - * certificateHold (6), - * removeFromCRL (8) } - */ -# define OCSP_REVOKED_STATUS_NOSTATUS -1 -# define OCSP_REVOKED_STATUS_UNSPECIFIED 0 -# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1 -# define OCSP_REVOKED_STATUS_CACOMPROMISE 2 -# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3 -# define OCSP_REVOKED_STATUS_SUPERSEDED 4 -# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5 -# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6 -# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8 - - -# ifndef OPENSSL_NO_OCSP - -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Various flags and values */ - -# define OCSP_DEFAULT_NONCE_LENGTH 16 - -# define OCSP_NOCERTS 0x1 -# define OCSP_NOINTERN 0x2 -# define OCSP_NOSIGS 0x4 -# define OCSP_NOCHAIN 0x8 -# define OCSP_NOVERIFY 0x10 -# define OCSP_NOEXPLICIT 0x20 -# define OCSP_NOCASIGN 0x40 -# define OCSP_NODELEGATED 0x80 -# define OCSP_NOCHECKS 0x100 -# define OCSP_TRUSTOTHER 0x200 -# define OCSP_RESPID_KEY 0x400 -# define OCSP_NOTIME 0x800 - -typedef struct ocsp_cert_id_st OCSP_CERTID; - -DEFINE_STACK_OF(OCSP_CERTID) - -typedef struct ocsp_one_request_st OCSP_ONEREQ; - -DEFINE_STACK_OF(OCSP_ONEREQ) - -typedef struct ocsp_req_info_st OCSP_REQINFO; -typedef struct ocsp_signature_st OCSP_SIGNATURE; -typedef struct ocsp_request_st OCSP_REQUEST; - -# define OCSP_RESPONSE_STATUS_SUCCESSFUL 0 -# define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1 -# define OCSP_RESPONSE_STATUS_INTERNALERROR 2 -# define OCSP_RESPONSE_STATUS_TRYLATER 3 -# define OCSP_RESPONSE_STATUS_SIGREQUIRED 5 -# define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6 - -typedef struct ocsp_resp_bytes_st OCSP_RESPBYTES; - -# define V_OCSP_RESPID_NAME 0 -# define V_OCSP_RESPID_KEY 1 - -DEFINE_STACK_OF(OCSP_RESPID) - -typedef struct ocsp_revoked_info_st OCSP_REVOKEDINFO; - -# define V_OCSP_CERTSTATUS_GOOD 0 -# define V_OCSP_CERTSTATUS_REVOKED 1 -# define V_OCSP_CERTSTATUS_UNKNOWN 2 - -typedef struct ocsp_cert_status_st OCSP_CERTSTATUS; -typedef struct ocsp_single_response_st OCSP_SINGLERESP; - -DEFINE_STACK_OF(OCSP_SINGLERESP) - -typedef struct ocsp_response_data_st OCSP_RESPDATA; - -typedef struct ocsp_basic_response_st OCSP_BASICRESP; - -typedef struct ocsp_crl_id_st OCSP_CRLID; -typedef struct ocsp_service_locator_st OCSP_SERVICELOC; - -# define PEM_STRING_OCSP_REQUEST "OCSP REQUEST" -# define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE" - -# define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p) - -# define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p) - -# define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \ - (char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST, \ - bp,(char **)(x),cb,NULL) - -# define PEM_read_bio_OCSP_RESPONSE(bp,x,cb)(OCSP_RESPONSE *)PEM_ASN1_read_bio(\ - (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE, \ - bp,(char **)(x),cb,NULL) - -# define PEM_write_bio_OCSP_REQUEST(bp,o) \ - PEM_ASN1_write_bio((int (*)())i2d_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,\ - bp,(char *)(o), NULL,NULL,0,NULL,NULL) - -# define PEM_write_bio_OCSP_RESPONSE(bp,o) \ - PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\ - bp,(char *)(o), NULL,NULL,0,NULL,NULL) - -# define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) - -# define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o) - -# define ASN1_BIT_STRING_digest(data,type,md,len) \ - ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len) - -# define OCSP_CERTSTATUS_dup(cs)\ - (OCSP_CERTSTATUS*)ASN1_dup((int(*)())i2d_OCSP_CERTSTATUS,\ - (char *(*)())d2i_OCSP_CERTSTATUS,(char *)(cs)) - -OCSP_CERTID *OCSP_CERTID_dup(OCSP_CERTID *id); - -OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req); -OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, OCSP_REQUEST *req, - int maxline); -int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx); -int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx); -OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline); -void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx); -void OCSP_set_max_response_length(OCSP_REQ_CTX *rctx, unsigned long len); -int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, - ASN1_VALUE *val); -int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, ASN1_VALUE **pval, - const ASN1_ITEM *it); -BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx); -int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path); -int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); -int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, - const char *name, const char *value); - -OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, const X509 *subject, - const X509 *issuer); - -OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, - const X509_NAME *issuerName, - const ASN1_BIT_STRING *issuerKey, - const ASN1_INTEGER *serialNumber); - -OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid); - -int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len); -int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len); -int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs); -int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req); - -int OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm); -int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert); - -int OCSP_request_sign(OCSP_REQUEST *req, - X509 *signer, - EVP_PKEY *key, - const EVP_MD *dgst, - STACK_OF(X509) *certs, unsigned long flags); - -int OCSP_response_status(OCSP_RESPONSE *resp); -OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp); - -const ASN1_OCTET_STRING *OCSP_resp_get0_signature(const OCSP_BASICRESP *bs); -const X509_ALGOR *OCSP_resp_get0_tbs_sigalg(const OCSP_BASICRESP *bs); -const OCSP_RESPDATA *OCSP_resp_get0_respdata(const OCSP_BASICRESP *bs); -int OCSP_resp_get0_signer(OCSP_BASICRESP *bs, X509 **signer, - STACK_OF(X509) *extra_certs); - -int OCSP_resp_count(OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx); -const ASN1_GENERALIZEDTIME *OCSP_resp_get0_produced_at(const OCSP_BASICRESP* bs); -const STACK_OF(X509) *OCSP_resp_get0_certs(const OCSP_BASICRESP *bs); -int OCSP_resp_get0_id(const OCSP_BASICRESP *bs, - const ASN1_OCTET_STRING **pid, - const X509_NAME **pname); -int OCSP_resp_get1_id(const OCSP_BASICRESP *bs, - ASN1_OCTET_STRING **pid, - X509_NAME **pname); - -int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last); -int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, - ASN1_GENERALIZEDTIME **revtime, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status, - int *reason, - ASN1_GENERALIZEDTIME **revtime, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, - ASN1_GENERALIZEDTIME *nextupd, long sec, long maxsec); - -int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, - X509_STORE *store, unsigned long flags); - -int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath, - int *pssl); - -int OCSP_id_issuer_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); -int OCSP_id_cmp(const OCSP_CERTID *a, const OCSP_CERTID *b); - -int OCSP_request_onereq_count(OCSP_REQUEST *req); -OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i); -OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one); -int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, - ASN1_OCTET_STRING **pikeyHash, - ASN1_INTEGER **pserial, OCSP_CERTID *cid); -int OCSP_request_is_signed(OCSP_REQUEST *req); -OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp, - OCSP_CERTID *cid, - int status, int reason, - ASN1_TIME *revtime, - ASN1_TIME *thisupd, - ASN1_TIME *nextupd); -int OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert); -int OCSP_basic_sign(OCSP_BASICRESP *brsp, - X509 *signer, EVP_PKEY *key, const EVP_MD *dgst, - STACK_OF(X509) *certs, unsigned long flags); -int OCSP_basic_sign_ctx(OCSP_BASICRESP *brsp, - X509 *signer, EVP_MD_CTX *ctx, - STACK_OF(X509) *certs, unsigned long flags); -int OCSP_RESPID_set_by_name(OCSP_RESPID *respid, X509 *cert); -int OCSP_RESPID_set_by_key(OCSP_RESPID *respid, X509 *cert); -int OCSP_RESPID_match(OCSP_RESPID *respid, X509 *cert); - -X509_EXTENSION *OCSP_crlID_new(const char *url, long *n, char *tim); - -X509_EXTENSION *OCSP_accept_responses_new(char **oids); - -X509_EXTENSION *OCSP_archive_cutoff_new(char *tim); - -X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME *issuer, const char **urls); - -int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x); -int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos); -int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos); -X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc); -X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc); -void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit, - int *idx); -int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int crit, - unsigned long flags); -int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc); - -int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x); -int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos); -int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, const ASN1_OBJECT *obj, int lastpos); -int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos); -X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc); -X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc); -void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int *idx); -int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int crit, - unsigned long flags); -int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc); - -int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x); -int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos); -int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit, - int lastpos); -X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc); -X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc); -void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit, - int *idx); -int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value, - int crit, unsigned long flags); -int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc); - -int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x); -int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos); -int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit, - int lastpos); -X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc); -X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc); -void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit, - int *idx); -int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value, - int crit, unsigned long flags); -int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc); -const OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *x); - -DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) -DECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES) -DECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTID) -DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) -DECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE) -DECLARE_ASN1_FUNCTIONS(OCSP_REQINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_CRLID) -DECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC) - -const char *OCSP_response_status_str(long s); -const char *OCSP_cert_status_str(long s); -const char *OCSP_crl_reason_str(long s); - -int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *a, unsigned long flags); -int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags); - -int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, - X509_STORE *st, unsigned long flags); - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ocsperr.h b/submodules/MtProtoKit/openssl/openssl/ocsperr.h deleted file mode 100644 index 8dd9e01a17..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ocsperr.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_OCSPERR_H -# define HEADER_OCSPERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# include - -# ifndef OPENSSL_NO_OCSP - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_OCSP_strings(void); - -/* - * OCSP function codes. - */ -# define OCSP_F_D2I_OCSP_NONCE 102 -# define OCSP_F_OCSP_BASIC_ADD1_STATUS 103 -# define OCSP_F_OCSP_BASIC_SIGN 104 -# define OCSP_F_OCSP_BASIC_SIGN_CTX 119 -# define OCSP_F_OCSP_BASIC_VERIFY 105 -# define OCSP_F_OCSP_CERT_ID_NEW 101 -# define OCSP_F_OCSP_CHECK_DELEGATED 106 -# define OCSP_F_OCSP_CHECK_IDS 107 -# define OCSP_F_OCSP_CHECK_ISSUER 108 -# define OCSP_F_OCSP_CHECK_VALIDITY 115 -# define OCSP_F_OCSP_MATCH_ISSUERID 109 -# define OCSP_F_OCSP_PARSE_URL 114 -# define OCSP_F_OCSP_REQUEST_SIGN 110 -# define OCSP_F_OCSP_REQUEST_VERIFY 116 -# define OCSP_F_OCSP_RESPONSE_GET1_BASIC 111 -# define OCSP_F_PARSE_HTTP_LINE1 118 - -/* - * OCSP reason codes. - */ -# define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 -# define OCSP_R_DIGEST_ERR 102 -# define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 -# define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 -# define OCSP_R_ERROR_PARSING_URL 121 -# define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 -# define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 -# define OCSP_R_NOT_BASIC_RESPONSE 104 -# define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 -# define OCSP_R_NO_RESPONSE_DATA 108 -# define OCSP_R_NO_REVOKED_TIME 109 -# define OCSP_R_NO_SIGNER_KEY 130 -# define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 -# define OCSP_R_REQUEST_NOT_SIGNED 128 -# define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 -# define OCSP_R_ROOT_CA_NOT_TRUSTED 112 -# define OCSP_R_SERVER_RESPONSE_ERROR 114 -# define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115 -# define OCSP_R_SIGNATURE_FAILURE 117 -# define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 -# define OCSP_R_STATUS_EXPIRED 125 -# define OCSP_R_STATUS_NOT_YET_VALID 126 -# define OCSP_R_STATUS_TOO_OLD 127 -# define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 -# define OCSP_R_UNKNOWN_NID 120 -# define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 - -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/opensslconf.h b/submodules/MtProtoKit/openssl/openssl/opensslconf.h deleted file mode 100644 index 55ebf8c603..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/opensslconf.h +++ /dev/null @@ -1,195 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by Makefile from include/openssl/opensslconf.h.in - * - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef OPENSSL_ALGORITHM_DEFINES -# error OPENSSL_ALGORITHM_DEFINES no longer supported -#endif - -/* - * OpenSSL was configured with the following options: - */ - -#ifndef OPENSSL_SYS_MACOSX -# define OPENSSL_SYS_MACOSX 1 -#endif -#ifndef OPENSSL_NO_MD2 -# define OPENSSL_NO_MD2 -#endif -#ifndef OPENSSL_NO_RC5 -# define OPENSSL_NO_RC5 -#endif -#ifndef OPENSSL_THREADS -# define OPENSSL_THREADS -#endif -#ifndef OPENSSL_RAND_SEED_OS -# define OPENSSL_RAND_SEED_OS -#endif -#ifndef OPENSSL_NO_ASAN -# define OPENSSL_NO_ASAN -#endif -#ifndef OPENSSL_NO_CRYPTO_MDEBUG -# define OPENSSL_NO_CRYPTO_MDEBUG -#endif -#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE -# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE -#endif -#ifndef OPENSSL_NO_DEVCRYPTOENG -# define OPENSSL_NO_DEVCRYPTOENG -#endif -#ifndef OPENSSL_NO_EGD -# define OPENSSL_NO_EGD -#endif -#ifndef OPENSSL_NO_EXTERNAL_TESTS -# define OPENSSL_NO_EXTERNAL_TESTS -#endif -#ifndef OPENSSL_NO_FUZZ_AFL -# define OPENSSL_NO_FUZZ_AFL -#endif -#ifndef OPENSSL_NO_FUZZ_LIBFUZZER -# define OPENSSL_NO_FUZZ_LIBFUZZER -#endif -#ifndef OPENSSL_NO_HEARTBEATS -# define OPENSSL_NO_HEARTBEATS -#endif -#ifndef OPENSSL_NO_MSAN -# define OPENSSL_NO_MSAN -#endif -#ifndef OPENSSL_NO_SCTP -# define OPENSSL_NO_SCTP -#endif -#ifndef OPENSSL_NO_SSL_TRACE -# define OPENSSL_NO_SSL_TRACE -#endif -#ifndef OPENSSL_NO_SSL3 -# define OPENSSL_NO_SSL3 -#endif -#ifndef OPENSSL_NO_SSL3_METHOD -# define OPENSSL_NO_SSL3_METHOD -#endif -#ifndef OPENSSL_NO_UBSAN -# define OPENSSL_NO_UBSAN -#endif -#ifndef OPENSSL_NO_UNIT_TEST -# define OPENSSL_NO_UNIT_TEST -#endif -#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS -# define OPENSSL_NO_WEAK_SSL_CIPHERS -#endif -#ifndef OPENSSL_NO_STATIC_ENGINE -# define OPENSSL_NO_STATIC_ENGINE -#endif -#ifndef OPENSSL_NO_AFALGENG -# define OPENSSL_NO_AFALGENG -#endif - - -/* - * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers - * don't like that. This will hopefully silence them. - */ -#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; - -/* - * Applications should use -DOPENSSL_API_COMPAT= to suppress the - * declarations of functions deprecated in or before . Otherwise, they - * still won't see them if the library has been built to disable deprecated - * functions. - */ -#ifndef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f; -# ifdef __GNUC__ -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# undef DECLARE_DEPRECATED -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -# endif -# endif -#endif - -#ifndef OPENSSL_FILE -# ifdef OPENSSL_NO_FILENAMES -# define OPENSSL_FILE "" -# define OPENSSL_LINE 0 -# else -# define OPENSSL_FILE __FILE__ -# define OPENSSL_LINE __LINE__ -# endif -#endif - -#ifndef OPENSSL_MIN_API -# define OPENSSL_MIN_API 0 -#endif - -#if !defined(OPENSSL_API_COMPAT) || OPENSSL_API_COMPAT < OPENSSL_MIN_API -# undef OPENSSL_API_COMPAT -# define OPENSSL_API_COMPAT OPENSSL_MIN_API -#endif - -/* - * Do not deprecate things to be deprecated in version 1.2.0 before the - * OpenSSL version number matches. - */ -#if OPENSSL_VERSION_NUMBER < 0x10200000L -# define DEPRECATEDIN_1_2_0(f) f; -#elif OPENSSL_API_COMPAT < 0x10200000L -# define DEPRECATEDIN_1_2_0(f) DECLARE_DEPRECATED(f) -#else -# define DEPRECATEDIN_1_2_0(f) -#endif - -#if OPENSSL_API_COMPAT < 0x10100000L -# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) -#else -# define DEPRECATEDIN_1_1_0(f) -#endif - -#if OPENSSL_API_COMPAT < 0x10000000L -# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) -#else -# define DEPRECATEDIN_1_0_0(f) -#endif - -#if OPENSSL_API_COMPAT < 0x00908000L -# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) -#else -# define DEPRECATEDIN_0_9_8(f) -#endif - -/* Generate 80386 code? */ -#undef I386_ONLY - -#undef OPENSSL_UNISTD -#define OPENSSL_UNISTD - -#undef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* - * The following are cipher-specific, but are part of the public API. - */ -#if !defined(OPENSSL_SYS_UEFI) -# undef BN_LLONG -/* Only one for the following should be defined */ -# define SIXTY_FOUR_BIT_LONG -# undef SIXTY_FOUR_BIT -# undef THIRTY_TWO_BIT -#endif - -#define RC4_INT unsigned int - -#ifdef __cplusplus -} -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/opensslv.h b/submodules/MtProtoKit/openssl/openssl/opensslv.h deleted file mode 100644 index c28e632c44..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/opensslv.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_OPENSSLV_H -# define HEADER_OPENSSLV_H - -#ifdef __cplusplus -extern "C" { -#endif - -/*- - * Numeric release version identifier: - * MNNFFPPS: major minor fix patch status - * The status nibble has one of the values 0 for development, 1 to e for betas - * 1 to 14, and f for release. The patch level is exactly that. - * For example: - * 0.9.3-dev 0x00903000 - * 0.9.3-beta1 0x00903001 - * 0.9.3-beta2-dev 0x00903002 - * 0.9.3-beta2 0x00903002 (same as ...beta2-dev) - * 0.9.3 0x0090300f - * 0.9.3a 0x0090301f - * 0.9.4 0x0090400f - * 1.2.3z 0x102031af - * - * For continuity reasons (because 0.9.5 is already out, and is coded - * 0x00905100), between 0.9.5 and 0.9.6 the coding of the patch level - * part is slightly different, by setting the highest bit. This means - * that 0.9.5a looks like this: 0x0090581f. At 0.9.6, we can start - * with 0x0090600S... - * - * (Prior to 0.9.3-dev a different scheme was used: 0.9.2b is 0x0922.) - * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for - * major minor fix final patch/beta) - */ -# define OPENSSL_VERSION_NUMBER 0x1010104fL -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1d 10 Sep 2019" - -/*- - * The macros below are to be used for shared library (.so, .dll, ...) - * versioning. That kind of versioning works a bit differently between - * operating systems. The most usual scheme is to set a major and a minor - * number, and have the runtime loader check that the major number is equal - * to what it was at application link time, while the minor number has to - * be greater or equal to what it was at application link time. With this - * scheme, the version number is usually part of the file name, like this: - * - * libcrypto.so.0.9 - * - * Some unixen also make a softlink with the major version number only: - * - * libcrypto.so.0 - * - * On Tru64 and IRIX 6.x it works a little bit differently. There, the - * shared library version is stored in the file, and is actually a series - * of versions, separated by colons. The rightmost version present in the - * library when linking an application is stored in the application to be - * matched at run time. When the application is run, a check is done to - * see if the library version stored in the application matches any of the - * versions in the version string of the library itself. - * This version string can be constructed in any way, depending on what - * kind of matching is desired. However, to implement the same scheme as - * the one used in the other unixen, all compatible versions, from lowest - * to highest, should be part of the string. Consecutive builds would - * give the following versions strings: - * - * 3.0 - * 3.0:3.1 - * 3.0:3.1:3.2 - * 4.0 - * 4.0:4.1 - * - * Notice how version 4 is completely incompatible with version, and - * therefore give the breach you can see. - * - * There may be other schemes as well that I haven't yet discovered. - * - * So, here's the way it works here: first of all, the library version - * number doesn't need at all to match the overall OpenSSL version. - * However, it's nice and more understandable if it actually does. - * The current library version is stored in the macro SHLIB_VERSION_NUMBER, - * which is just a piece of text in the format "M.m.e" (Major, minor, edit). - * For the sake of Tru64, IRIX, and any other OS that behaves in similar ways, - * we need to keep a history of version numbers, which is done in the - * macro SHLIB_VERSION_HISTORY. The numbers are separated by colons and - * should only keep the versions that are binary compatible with the current. - */ -# define SHLIB_VERSION_HISTORY "" -# define SHLIB_VERSION_NUMBER "1.1" - - -#ifdef __cplusplus -} -#endif -#endif /* HEADER_OPENSSLV_H */ diff --git a/submodules/MtProtoKit/openssl/openssl/ossl_typ.h b/submodules/MtProtoKit/openssl/openssl/ossl_typ.h deleted file mode 100644 index 7993ca28f3..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ossl_typ.h +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_OPENSSL_TYPES_H -# define HEADER_OPENSSL_TYPES_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -# include - -# ifdef NO_ASN1_TYPEDEFS -# define ASN1_INTEGER ASN1_STRING -# define ASN1_ENUMERATED ASN1_STRING -# define ASN1_BIT_STRING ASN1_STRING -# define ASN1_OCTET_STRING ASN1_STRING -# define ASN1_PRINTABLESTRING ASN1_STRING -# define ASN1_T61STRING ASN1_STRING -# define ASN1_IA5STRING ASN1_STRING -# define ASN1_UTCTIME ASN1_STRING -# define ASN1_GENERALIZEDTIME ASN1_STRING -# define ASN1_TIME ASN1_STRING -# define ASN1_GENERALSTRING ASN1_STRING -# define ASN1_UNIVERSALSTRING ASN1_STRING -# define ASN1_BMPSTRING ASN1_STRING -# define ASN1_VISIBLESTRING ASN1_STRING -# define ASN1_UTF8STRING ASN1_STRING -# define ASN1_BOOLEAN int -# define ASN1_NULL int -# else -typedef struct asn1_string_st ASN1_INTEGER; -typedef struct asn1_string_st ASN1_ENUMERATED; -typedef struct asn1_string_st ASN1_BIT_STRING; -typedef struct asn1_string_st ASN1_OCTET_STRING; -typedef struct asn1_string_st ASN1_PRINTABLESTRING; -typedef struct asn1_string_st ASN1_T61STRING; -typedef struct asn1_string_st ASN1_IA5STRING; -typedef struct asn1_string_st ASN1_GENERALSTRING; -typedef struct asn1_string_st ASN1_UNIVERSALSTRING; -typedef struct asn1_string_st ASN1_BMPSTRING; -typedef struct asn1_string_st ASN1_UTCTIME; -typedef struct asn1_string_st ASN1_TIME; -typedef struct asn1_string_st ASN1_GENERALIZEDTIME; -typedef struct asn1_string_st ASN1_VISIBLESTRING; -typedef struct asn1_string_st ASN1_UTF8STRING; -typedef struct asn1_string_st ASN1_STRING; -typedef int ASN1_BOOLEAN; -typedef int ASN1_NULL; -# endif - -typedef struct asn1_object_st ASN1_OBJECT; - -typedef struct ASN1_ITEM_st ASN1_ITEM; -typedef struct asn1_pctx_st ASN1_PCTX; -typedef struct asn1_sctx_st ASN1_SCTX; - -# ifdef _WIN32 -# undef X509_NAME -# undef X509_EXTENSIONS -# undef PKCS7_ISSUER_AND_SERIAL -# undef PKCS7_SIGNER_INFO -# undef OCSP_REQUEST -# undef OCSP_RESPONSE -# endif - -# ifdef BIGNUM -# undef BIGNUM -# endif -struct dane_st; -typedef struct bio_st BIO; -typedef struct bignum_st BIGNUM; -typedef struct bignum_ctx BN_CTX; -typedef struct bn_blinding_st BN_BLINDING; -typedef struct bn_mont_ctx_st BN_MONT_CTX; -typedef struct bn_recp_ctx_st BN_RECP_CTX; -typedef struct bn_gencb_st BN_GENCB; - -typedef struct buf_mem_st BUF_MEM; - -typedef struct evp_cipher_st EVP_CIPHER; -typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; -typedef struct evp_md_st EVP_MD; -typedef struct evp_md_ctx_st EVP_MD_CTX; -typedef struct evp_pkey_st EVP_PKEY; - -typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; - -typedef struct evp_pkey_method_st EVP_PKEY_METHOD; -typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; - -typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX; - -typedef struct hmac_ctx_st HMAC_CTX; - -typedef struct dh_st DH; -typedef struct dh_method DH_METHOD; - -typedef struct dsa_st DSA; -typedef struct dsa_method DSA_METHOD; - -typedef struct rsa_st RSA; -typedef struct rsa_meth_st RSA_METHOD; - -typedef struct ec_key_st EC_KEY; -typedef struct ec_key_method_st EC_KEY_METHOD; - -typedef struct rand_meth_st RAND_METHOD; -typedef struct rand_drbg_st RAND_DRBG; - -typedef struct ssl_dane_st SSL_DANE; -typedef struct x509_st X509; -typedef struct X509_algor_st X509_ALGOR; -typedef struct X509_crl_st X509_CRL; -typedef struct x509_crl_method_st X509_CRL_METHOD; -typedef struct x509_revoked_st X509_REVOKED; -typedef struct X509_name_st X509_NAME; -typedef struct X509_pubkey_st X509_PUBKEY; -typedef struct x509_store_st X509_STORE; -typedef struct x509_store_ctx_st X509_STORE_CTX; - -typedef struct x509_object_st X509_OBJECT; -typedef struct x509_lookup_st X509_LOOKUP; -typedef struct x509_lookup_method_st X509_LOOKUP_METHOD; -typedef struct X509_VERIFY_PARAM_st X509_VERIFY_PARAM; - -typedef struct x509_sig_info_st X509_SIG_INFO; - -typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; - -typedef struct v3_ext_ctx X509V3_CTX; -typedef struct conf_st CONF; -typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS; - -typedef struct ui_st UI; -typedef struct ui_method_st UI_METHOD; - -typedef struct engine_st ENGINE; -typedef struct ssl_st SSL; -typedef struct ssl_ctx_st SSL_CTX; - -typedef struct comp_ctx_st COMP_CTX; -typedef struct comp_method_st COMP_METHOD; - -typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; -typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; -typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; -typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; - -typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; -typedef struct DIST_POINT_st DIST_POINT; -typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; -typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; - -typedef struct crypto_ex_data_st CRYPTO_EX_DATA; - -typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; -typedef struct ocsp_response_st OCSP_RESPONSE; -typedef struct ocsp_responder_id_st OCSP_RESPID; - -typedef struct sct_st SCT; -typedef struct sct_ctx_st SCT_CTX; -typedef struct ctlog_st CTLOG; -typedef struct ctlog_store_st CTLOG_STORE; -typedef struct ct_policy_eval_ctx_st CT_POLICY_EVAL_CTX; - -typedef struct ossl_store_info_st OSSL_STORE_INFO; -typedef struct ossl_store_search_st OSSL_STORE_SEARCH; - -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L && \ - defined(INTMAX_MAX) && defined(UINTMAX_MAX) -typedef intmax_t ossl_intmax_t; -typedef uintmax_t ossl_uintmax_t; -#else -/* - * Not long long, because the C-library can only be expected to provide - * strtoll(), strtoull() at the same time as intmax_t and strtoimax(), - * strtoumax(). Since we use these for parsing arguments, we need the - * conversion functions, not just the sizes. - */ -typedef long ossl_intmax_t; -typedef unsigned long ossl_uintmax_t; -#endif - -#ifdef __cplusplus -} -#endif -#endif /* def HEADER_OPENSSL_TYPES_H */ diff --git a/submodules/MtProtoKit/openssl/openssl/pem.h b/submodules/MtProtoKit/openssl/openssl/pem.h deleted file mode 100644 index 2ef5b5d04c..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/pem.h +++ /dev/null @@ -1,378 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_PEM_H -# define HEADER_PEM_H - -# include -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define PEM_BUFSIZE 1024 - -# define PEM_STRING_X509_OLD "X509 CERTIFICATE" -# define PEM_STRING_X509 "CERTIFICATE" -# define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE" -# define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST" -# define PEM_STRING_X509_REQ "CERTIFICATE REQUEST" -# define PEM_STRING_X509_CRL "X509 CRL" -# define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY" -# define PEM_STRING_PUBLIC "PUBLIC KEY" -# define PEM_STRING_RSA "RSA PRIVATE KEY" -# define PEM_STRING_RSA_PUBLIC "RSA PUBLIC KEY" -# define PEM_STRING_DSA "DSA PRIVATE KEY" -# define PEM_STRING_DSA_PUBLIC "DSA PUBLIC KEY" -# define PEM_STRING_PKCS7 "PKCS7" -# define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA" -# define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY" -# define PEM_STRING_PKCS8INF "PRIVATE KEY" -# define PEM_STRING_DHPARAMS "DH PARAMETERS" -# define PEM_STRING_DHXPARAMS "X9.42 DH PARAMETERS" -# define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" -# define PEM_STRING_DSAPARAMS "DSA PARAMETERS" -# define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" -# define PEM_STRING_ECPARAMETERS "EC PARAMETERS" -# define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY" -# define PEM_STRING_PARAMETERS "PARAMETERS" -# define PEM_STRING_CMS "CMS" - -# define PEM_TYPE_ENCRYPTED 10 -# define PEM_TYPE_MIC_ONLY 20 -# define PEM_TYPE_MIC_CLEAR 30 -# define PEM_TYPE_CLEAR 40 - -/* - * These macros make the PEM_read/PEM_write functions easier to maintain and - * write. Now they are all implemented with either: IMPLEMENT_PEM_rw(...) or - * IMPLEMENT_PEM_rw_cb(...) - */ - -# ifdef OPENSSL_NO_STDIO - -# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) /**/ -# else - -# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \ -type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\ -{ \ -return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str,fp,(void **)x,cb,u); \ -} - -# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x) \ -{ \ -return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, const type *x) \ -{ \ -return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,(void *)x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, \ - void *u) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ - } - -# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, \ - void *u) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ - } - -# endif - -# define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ -type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\ -{ \ -return PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str,bp,(void **)x,cb,u); \ -} - -# define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x) \ -{ \ -return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, const type *x) \ -{ \ -return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u); \ - } - -# define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,enc,kstr,klen,cb,u); \ - } - -# define IMPLEMENT_PEM_write(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_write_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) - -# define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) - -# define IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_read_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_const(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb(name, type, str, asn1) - -/* These are the same except they are for the declarations */ - -# if defined(OPENSSL_NO_STDIO) - -# define DECLARE_PEM_read_fp(name, type) /**/ -# define DECLARE_PEM_write_fp(name, type) /**/ -# define DECLARE_PEM_write_fp_const(name, type) /**/ -# define DECLARE_PEM_write_cb_fp(name, type) /**/ -# else - -# define DECLARE_PEM_read_fp(name, type) \ - type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u); - -# define DECLARE_PEM_write_fp(name, type) \ - int PEM_write_##name(FILE *fp, type *x); - -# define DECLARE_PEM_write_fp_const(name, type) \ - int PEM_write_##name(FILE *fp, const type *x); - -# define DECLARE_PEM_write_cb_fp(name, type) \ - int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u); - -# endif - -# define DECLARE_PEM_read_bio(name, type) \ - type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u); - -# define DECLARE_PEM_write_bio(name, type) \ - int PEM_write_bio_##name(BIO *bp, type *x); - -# define DECLARE_PEM_write_bio_const(name, type) \ - int PEM_write_bio_##name(BIO *bp, const type *x); - -# define DECLARE_PEM_write_cb_bio(name, type) \ - int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u); - -# define DECLARE_PEM_write(name, type) \ - DECLARE_PEM_write_bio(name, type) \ - DECLARE_PEM_write_fp(name, type) -# define DECLARE_PEM_write_const(name, type) \ - DECLARE_PEM_write_bio_const(name, type) \ - DECLARE_PEM_write_fp_const(name, type) -# define DECLARE_PEM_write_cb(name, type) \ - DECLARE_PEM_write_cb_bio(name, type) \ - DECLARE_PEM_write_cb_fp(name, type) -# define DECLARE_PEM_read(name, type) \ - DECLARE_PEM_read_bio(name, type) \ - DECLARE_PEM_read_fp(name, type) -# define DECLARE_PEM_rw(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write(name, type) -# define DECLARE_PEM_rw_const(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write_const(name, type) -# define DECLARE_PEM_rw_cb(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write_cb(name, type) -typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata); - -int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); -int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, - pem_password_cb *callback, void *u); - -int PEM_read_bio(BIO *bp, char **name, char **header, - unsigned char **data, long *len); -# define PEM_FLAG_SECURE 0x1 -# define PEM_FLAG_EAY_COMPATIBLE 0x2 -# define PEM_FLAG_ONLY_B64 0x4 -int PEM_read_bio_ex(BIO *bp, char **name, char **header, - unsigned char **data, long *len, unsigned int flags); -int PEM_bytes_read_bio_secmem(unsigned char **pdata, long *plen, char **pnm, - const char *name, BIO *bp, pem_password_cb *cb, - void *u); -int PEM_write_bio(BIO *bp, const char *name, const char *hdr, - const unsigned char *data, long len); -int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, - const char *name, BIO *bp, pem_password_cb *cb, - void *u); -void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, - pem_password_cb *cb, void *u); -int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, - const EVP_CIPHER *enc, unsigned char *kstr, int klen, - pem_password_cb *cb, void *u); - -STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u); -int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, - unsigned char *kstr, int klen, - pem_password_cb *cd, void *u); - -#ifndef OPENSSL_NO_STDIO -int PEM_read(FILE *fp, char **name, char **header, - unsigned char **data, long *len); -int PEM_write(FILE *fp, const char *name, const char *hdr, - const unsigned char *data, long len); -void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, - pem_password_cb *cb, void *u); -int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, - void *x, const EVP_CIPHER *enc, unsigned char *kstr, - int klen, pem_password_cb *callback, void *u); -STACK_OF(X509_INFO) *PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u); -#endif - -int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); -int PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *d, unsigned int cnt); -int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, - unsigned int *siglen, EVP_PKEY *pkey); - -/* The default pem_password_cb that's used internally */ -int PEM_def_callback(char *buf, int num, int rwflag, void *userdata); -void PEM_proc_type(char *buf, int type); -void PEM_dek_info(char *buf, const char *type, int len, char *str); - -# include - -DECLARE_PEM_rw(X509, X509) -DECLARE_PEM_rw(X509_AUX, X509) -DECLARE_PEM_rw(X509_REQ, X509_REQ) -DECLARE_PEM_write(X509_REQ_NEW, X509_REQ) -DECLARE_PEM_rw(X509_CRL, X509_CRL) -DECLARE_PEM_rw(PKCS7, PKCS7) -DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) -DECLARE_PEM_rw(PKCS8, X509_SIG) -DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) -# ifndef OPENSSL_NO_RSA -DECLARE_PEM_rw_cb(RSAPrivateKey, RSA) -DECLARE_PEM_rw_const(RSAPublicKey, RSA) -DECLARE_PEM_rw(RSA_PUBKEY, RSA) -# endif -# ifndef OPENSSL_NO_DSA -DECLARE_PEM_rw_cb(DSAPrivateKey, DSA) -DECLARE_PEM_rw(DSA_PUBKEY, DSA) -DECLARE_PEM_rw_const(DSAparams, DSA) -# endif -# ifndef OPENSSL_NO_EC -DECLARE_PEM_rw_const(ECPKParameters, EC_GROUP) -DECLARE_PEM_rw_cb(ECPrivateKey, EC_KEY) -DECLARE_PEM_rw(EC_PUBKEY, EC_KEY) -# endif -# ifndef OPENSSL_NO_DH -DECLARE_PEM_rw_const(DHparams, DH) -DECLARE_PEM_write_const(DHxparams, DH) -# endif -DECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY) -DECLARE_PEM_rw(PUBKEY, EVP_PKEY) - -int PEM_write_bio_PrivateKey_traditional(BIO *bp, EVP_PKEY *x, - const EVP_CIPHER *enc, - unsigned char *kstr, int klen, - pem_password_cb *cb, void *u); - -int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, - char *, int, pem_password_cb *, void *); -int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, - void *u); - -# ifndef OPENSSL_NO_STDIO -int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); - -EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, - void *u); - -int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, pem_password_cb *cd, - void *u); -# endif -EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); -int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x); - -# ifndef OPENSSL_NO_DSA -EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length); -EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length); -EVP_PKEY *b2i_PrivateKey_bio(BIO *in); -EVP_PKEY *b2i_PublicKey_bio(BIO *in); -int i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk); -int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk); -# ifndef OPENSSL_NO_RC4 -EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); -int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, - pem_password_cb *cb, void *u); -# endif -# endif - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/pem2.h b/submodules/MtProtoKit/openssl/openssl/pem2.h deleted file mode 100644 index 038fe790ac..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/pem2.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_PEM2_H -# define HEADER_PEM2_H -# include -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/pemerr.h b/submodules/MtProtoKit/openssl/openssl/pemerr.h deleted file mode 100644 index 0c45918f3c..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/pemerr.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_PEMERR_H -# define HEADER_PEMERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_PEM_strings(void); - -/* - * PEM function codes. - */ -# define PEM_F_B2I_DSS 127 -# define PEM_F_B2I_PVK_BIO 128 -# define PEM_F_B2I_RSA 129 -# define PEM_F_CHECK_BITLEN_DSA 130 -# define PEM_F_CHECK_BITLEN_RSA 131 -# define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 120 -# define PEM_F_D2I_PKCS8PRIVATEKEY_FP 121 -# define PEM_F_DO_B2I 132 -# define PEM_F_DO_B2I_BIO 133 -# define PEM_F_DO_BLOB_HEADER 134 -# define PEM_F_DO_I2B 146 -# define PEM_F_DO_PK8PKEY 126 -# define PEM_F_DO_PK8PKEY_FP 125 -# define PEM_F_DO_PVK_BODY 135 -# define PEM_F_DO_PVK_HEADER 136 -# define PEM_F_GET_HEADER_AND_DATA 143 -# define PEM_F_GET_NAME 144 -# define PEM_F_I2B_PVK 137 -# define PEM_F_I2B_PVK_BIO 138 -# define PEM_F_LOAD_IV 101 -# define PEM_F_PEM_ASN1_READ 102 -# define PEM_F_PEM_ASN1_READ_BIO 103 -# define PEM_F_PEM_ASN1_WRITE 104 -# define PEM_F_PEM_ASN1_WRITE_BIO 105 -# define PEM_F_PEM_DEF_CALLBACK 100 -# define PEM_F_PEM_DO_HEADER 106 -# define PEM_F_PEM_GET_EVP_CIPHER_INFO 107 -# define PEM_F_PEM_READ 108 -# define PEM_F_PEM_READ_BIO 109 -# define PEM_F_PEM_READ_BIO_DHPARAMS 141 -# define PEM_F_PEM_READ_BIO_EX 145 -# define PEM_F_PEM_READ_BIO_PARAMETERS 140 -# define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 -# define PEM_F_PEM_READ_DHPARAMS 142 -# define PEM_F_PEM_READ_PRIVATEKEY 124 -# define PEM_F_PEM_SIGNFINAL 112 -# define PEM_F_PEM_WRITE 113 -# define PEM_F_PEM_WRITE_BIO 114 -# define PEM_F_PEM_WRITE_PRIVATEKEY 139 -# define PEM_F_PEM_X509_INFO_READ 115 -# define PEM_F_PEM_X509_INFO_READ_BIO 116 -# define PEM_F_PEM_X509_INFO_WRITE_BIO 117 - -/* - * PEM reason codes. - */ -# define PEM_R_BAD_BASE64_DECODE 100 -# define PEM_R_BAD_DECRYPT 101 -# define PEM_R_BAD_END_LINE 102 -# define PEM_R_BAD_IV_CHARS 103 -# define PEM_R_BAD_MAGIC_NUMBER 116 -# define PEM_R_BAD_PASSWORD_READ 104 -# define PEM_R_BAD_VERSION_NUMBER 117 -# define PEM_R_BIO_WRITE_FAILURE 118 -# define PEM_R_CIPHER_IS_NULL 127 -# define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 -# define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 -# define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 -# define PEM_R_HEADER_TOO_LONG 128 -# define PEM_R_INCONSISTENT_HEADER 121 -# define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 -# define PEM_R_KEYBLOB_TOO_SHORT 123 -# define PEM_R_MISSING_DEK_IV 129 -# define PEM_R_NOT_DEK_INFO 105 -# define PEM_R_NOT_ENCRYPTED 106 -# define PEM_R_NOT_PROC_TYPE 107 -# define PEM_R_NO_START_LINE 108 -# define PEM_R_PROBLEMS_GETTING_PASSWORD 109 -# define PEM_R_PVK_DATA_TOO_SHORT 124 -# define PEM_R_PVK_TOO_SHORT 125 -# define PEM_R_READ_KEY 111 -# define PEM_R_SHORT_HEADER 112 -# define PEM_R_UNEXPECTED_DEK_IV 130 -# define PEM_R_UNSUPPORTED_CIPHER 113 -# define PEM_R_UNSUPPORTED_ENCRYPTION 114 -# define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/pkcs12.h b/submodules/MtProtoKit/openssl/openssl/pkcs12.h deleted file mode 100644 index 3f43dad6d9..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/pkcs12.h +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_PKCS12_H -# define HEADER_PKCS12_H - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define PKCS12_KEY_ID 1 -# define PKCS12_IV_ID 2 -# define PKCS12_MAC_ID 3 - -/* Default iteration count */ -# ifndef PKCS12_DEFAULT_ITER -# define PKCS12_DEFAULT_ITER PKCS5_DEFAULT_ITER -# endif - -# define PKCS12_MAC_KEY_LENGTH 20 - -# define PKCS12_SALT_LEN 8 - -/* It's not clear if these are actually needed... */ -# define PKCS12_key_gen PKCS12_key_gen_utf8 -# define PKCS12_add_friendlyname PKCS12_add_friendlyname_utf8 - -/* MS key usage constants */ - -# define KEY_EX 0x10 -# define KEY_SIG 0x80 - -typedef struct PKCS12_MAC_DATA_st PKCS12_MAC_DATA; - -typedef struct PKCS12_st PKCS12; - -typedef struct PKCS12_SAFEBAG_st PKCS12_SAFEBAG; - -DEFINE_STACK_OF(PKCS12_SAFEBAG) - -typedef struct pkcs12_bag_st PKCS12_BAGS; - -# define PKCS12_ERROR 0 -# define PKCS12_OK 1 - -/* Compatibility macros */ - -#if OPENSSL_API_COMPAT < 0x10100000L - -# define M_PKCS12_bag_type PKCS12_bag_type -# define M_PKCS12_cert_bag_type PKCS12_cert_bag_type -# define M_PKCS12_crl_bag_type PKCS12_cert_bag_type - -# define PKCS12_certbag2x509 PKCS12_SAFEBAG_get1_cert -# define PKCS12_certbag2scrl PKCS12_SAFEBAG_get1_crl -# define PKCS12_bag_type PKCS12_SAFEBAG_get_nid -# define PKCS12_cert_bag_type PKCS12_SAFEBAG_get_bag_nid -# define PKCS12_x5092certbag PKCS12_SAFEBAG_create_cert -# define PKCS12_x509crl2certbag PKCS12_SAFEBAG_create_crl -# define PKCS12_MAKE_KEYBAG PKCS12_SAFEBAG_create0_p8inf -# define PKCS12_MAKE_SHKEYBAG PKCS12_SAFEBAG_create_pkcs8_encrypt - -#endif - -DEPRECATEDIN_1_1_0(ASN1_TYPE *PKCS12_get_attr(const PKCS12_SAFEBAG *bag, int attr_nid)) - -ASN1_TYPE *PKCS8_get_attr(PKCS8_PRIV_KEY_INFO *p8, int attr_nid); -int PKCS12_mac_present(const PKCS12 *p12); -void PKCS12_get0_mac(const ASN1_OCTET_STRING **pmac, - const X509_ALGOR **pmacalg, - const ASN1_OCTET_STRING **psalt, - const ASN1_INTEGER **piter, - const PKCS12 *p12); - -const ASN1_TYPE *PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag, - int attr_nid); -const ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag); -int PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag); -int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); - -X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); -X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); -const STACK_OF(PKCS12_SAFEBAG) * -PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); -const PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag); -const X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag); - -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid, - const char *pass, - int passlen, - unsigned char *salt, - int saltlen, int iter, - PKCS8_PRIV_KEY_INFO *p8inf); - -PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, - int nid1, int nid2); -PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(const X509_SIG *p8, const char *pass, - int passlen); -PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag, - const char *pass, int passlen); -X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, - const char *pass, int passlen, unsigned char *salt, - int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8); -X509_SIG *PKCS8_set0_pbe(const char *pass, int passlen, - PKCS8_PRIV_KEY_INFO *p8inf, X509_ALGOR *pbe); -PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk); -STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7); -PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - STACK_OF(PKCS12_SAFEBAG) *bags); -STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, - int passlen); - -int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes); -STACK_OF(PKCS7) *PKCS12_unpack_authsafes(const PKCS12 *p12); - -int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name, - int namelen); -int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_friendlyname_utf8(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag, - const unsigned char *name, int namelen); -int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage); -ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, - int attr_nid); -char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); -const STACK_OF(X509_ATTRIBUTE) * -PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); -unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, - const char *pass, int passlen, - const unsigned char *in, int inlen, - unsigned char **data, int *datalen, - int en_de); -void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it, - const char *pass, int passlen, - const ASN1_OCTET_STRING *oct, int zbuf); -ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, - const ASN1_ITEM *it, - const char *pass, int passlen, - void *obj, int zbuf); -PKCS12 *PKCS12_init(int mode); -int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_key_gen_utf8(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md_type, int en_de); -int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *mac, unsigned int *maclen); -int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); -int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - const EVP_MD *md_type); -int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, - int saltlen, const EVP_MD *md_type); -unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, - unsigned char **uni, int *unilen); -char *OPENSSL_uni2asc(const unsigned char *uni, int unilen); -unsigned char *OPENSSL_utf82uni(const char *asc, int asclen, - unsigned char **uni, int *unilen); -char *OPENSSL_uni2utf8(const unsigned char *uni, int unilen); - -DECLARE_ASN1_FUNCTIONS(PKCS12) -DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA) -DECLARE_ASN1_FUNCTIONS(PKCS12_SAFEBAG) -DECLARE_ASN1_FUNCTIONS(PKCS12_BAGS) - -DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS) -DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) - -void PKCS12_PBE_add(void); -int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, - STACK_OF(X509) **ca); -PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, - X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, - int iter, int mac_iter, int keytype); - -PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); -PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, - EVP_PKEY *key, int key_usage, int iter, - int key_nid, const char *pass); -int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, - int safe_nid, int iter, const char *pass); -PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); - -int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12); -# ifndef OPENSSL_NO_STDIO -int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12); -# endif -PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); -# ifndef OPENSSL_NO_STDIO -PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); -# endif -int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/pkcs12err.h b/submodules/MtProtoKit/openssl/openssl/pkcs12err.h deleted file mode 100644 index eff5eb2602..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/pkcs12err.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_PKCS12ERR_H -# define HEADER_PKCS12ERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_PKCS12_strings(void); - -/* - * PKCS12 function codes. - */ -# define PKCS12_F_OPENSSL_ASC2UNI 121 -# define PKCS12_F_OPENSSL_UNI2ASC 124 -# define PKCS12_F_OPENSSL_UNI2UTF8 127 -# define PKCS12_F_OPENSSL_UTF82UNI 129 -# define PKCS12_F_PKCS12_CREATE 105 -# define PKCS12_F_PKCS12_GEN_MAC 107 -# define PKCS12_F_PKCS12_INIT 109 -# define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 106 -# define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 108 -# define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 117 -# define PKCS12_F_PKCS12_KEY_GEN_ASC 110 -# define PKCS12_F_PKCS12_KEY_GEN_UNI 111 -# define PKCS12_F_PKCS12_KEY_GEN_UTF8 116 -# define PKCS12_F_PKCS12_NEWPASS 128 -# define PKCS12_F_PKCS12_PACK_P7DATA 114 -# define PKCS12_F_PKCS12_PACK_P7ENCDATA 115 -# define PKCS12_F_PKCS12_PARSE 118 -# define PKCS12_F_PKCS12_PBE_CRYPT 119 -# define PKCS12_F_PKCS12_PBE_KEYIVGEN 120 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_P8INF 112 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_PKCS8 113 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE_PKCS8_ENCRYPT 133 -# define PKCS12_F_PKCS12_SETUP_MAC 122 -# define PKCS12_F_PKCS12_SET_MAC 123 -# define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 130 -# define PKCS12_F_PKCS12_UNPACK_P7DATA 131 -# define PKCS12_F_PKCS12_VERIFY_MAC 126 -# define PKCS12_F_PKCS8_ENCRYPT 125 -# define PKCS12_F_PKCS8_SET0_PBE 132 - -/* - * PKCS12 reason codes. - */ -# define PKCS12_R_CANT_PACK_STRUCTURE 100 -# define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 -# define PKCS12_R_DECODE_ERROR 101 -# define PKCS12_R_ENCODE_ERROR 102 -# define PKCS12_R_ENCRYPT_ERROR 103 -# define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 -# define PKCS12_R_INVALID_NULL_ARGUMENT 104 -# define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 -# define PKCS12_R_IV_GEN_ERROR 106 -# define PKCS12_R_KEY_GEN_ERROR 107 -# define PKCS12_R_MAC_ABSENT 108 -# define PKCS12_R_MAC_GENERATION_ERROR 109 -# define PKCS12_R_MAC_SETUP_ERROR 110 -# define PKCS12_R_MAC_STRING_SET_ERROR 111 -# define PKCS12_R_MAC_VERIFY_FAILURE 113 -# define PKCS12_R_PARSE_ERROR 114 -# define PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR 115 -# define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 -# define PKCS12_R_PKCS12_PBE_CRYPT_ERROR 117 -# define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 -# define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/pkcs7.h b/submodules/MtProtoKit/openssl/openssl/pkcs7.h deleted file mode 100644 index 9b66e002d2..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/pkcs7.h +++ /dev/null @@ -1,319 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_PKCS7_H -# define HEADER_PKCS7_H - -# include -# include -# include - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/*- -Encryption_ID DES-CBC -Digest_ID MD5 -Digest_Encryption_ID rsaEncryption -Key_Encryption_ID rsaEncryption -*/ - -typedef struct pkcs7_issuer_and_serial_st { - X509_NAME *issuer; - ASN1_INTEGER *serial; -} PKCS7_ISSUER_AND_SERIAL; - -typedef struct pkcs7_signer_info_st { - ASN1_INTEGER *version; /* version 1 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *digest_alg; - STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; - STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ - /* The private key to sign with */ - EVP_PKEY *pkey; -} PKCS7_SIGNER_INFO; - -DEFINE_STACK_OF(PKCS7_SIGNER_INFO) - -typedef struct pkcs7_recip_info_st { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *key_enc_algor; - ASN1_OCTET_STRING *enc_key; - X509 *cert; /* get the pub-key from this */ -} PKCS7_RECIP_INFO; - -DEFINE_STACK_OF(PKCS7_RECIP_INFO) - -typedef struct pkcs7_signed_st { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - struct pkcs7_st *contents; -} PKCS7_SIGNED; -/* - * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about - * merging the two - */ - -typedef struct pkcs7_enc_content_st { - ASN1_OBJECT *content_type; - X509_ALGOR *algorithm; - ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ - const EVP_CIPHER *cipher; -} PKCS7_ENC_CONTENT; - -typedef struct pkcs7_enveloped_st { - ASN1_INTEGER *version; /* version 0 */ - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; - PKCS7_ENC_CONTENT *enc_data; -} PKCS7_ENVELOPE; - -typedef struct pkcs7_signedandenveloped_st { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - PKCS7_ENC_CONTENT *enc_data; - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; -} PKCS7_SIGN_ENVELOPE; - -typedef struct pkcs7_digest_st { - ASN1_INTEGER *version; /* version 0 */ - X509_ALGOR *md; /* md used */ - struct pkcs7_st *contents; - ASN1_OCTET_STRING *digest; -} PKCS7_DIGEST; - -typedef struct pkcs7_encrypted_st { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ENC_CONTENT *enc_data; -} PKCS7_ENCRYPT; - -typedef struct pkcs7_st { - /* - * The following is non NULL if it contains ASN1 encoding of this - * structure - */ - unsigned char *asn1; - long length; -# define PKCS7_S_HEADER 0 -# define PKCS7_S_BODY 1 -# define PKCS7_S_TAIL 2 - int state; /* used during processing */ - int detached; - ASN1_OBJECT *type; - /* content as defined by the type */ - /* - * all encryption/message digests are applied to the 'contents', leaving - * out the 'type' field. - */ - union { - char *ptr; - /* NID_pkcs7_data */ - ASN1_OCTET_STRING *data; - /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; - /* NID_pkcs7_enveloped */ - PKCS7_ENVELOPE *enveloped; - /* NID_pkcs7_signedAndEnveloped */ - PKCS7_SIGN_ENVELOPE *signed_and_enveloped; - /* NID_pkcs7_digest */ - PKCS7_DIGEST *digest; - /* NID_pkcs7_encrypted */ - PKCS7_ENCRYPT *encrypted; - /* Anything else */ - ASN1_TYPE *other; - } d; -} PKCS7; - -DEFINE_STACK_OF(PKCS7) - -# define PKCS7_OP_SET_DETACHED_SIGNATURE 1 -# define PKCS7_OP_GET_DETACHED_SIGNATURE 2 - -# define PKCS7_get_signed_attributes(si) ((si)->auth_attr) -# define PKCS7_get_attributes(si) ((si)->unauth_attr) - -# define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) -# define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) -# define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) -# define PKCS7_type_is_signedAndEnveloped(a) \ - (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) -# define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) -# define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) - -# define PKCS7_set_detached(p,v) \ - PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL) -# define PKCS7_get_detached(p) \ - PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) - -# define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) - -/* S/MIME related flags */ - -# define PKCS7_TEXT 0x1 -# define PKCS7_NOCERTS 0x2 -# define PKCS7_NOSIGS 0x4 -# define PKCS7_NOCHAIN 0x8 -# define PKCS7_NOINTERN 0x10 -# define PKCS7_NOVERIFY 0x20 -# define PKCS7_DETACHED 0x40 -# define PKCS7_BINARY 0x80 -# define PKCS7_NOATTR 0x100 -# define PKCS7_NOSMIMECAP 0x200 -# define PKCS7_NOOLDMIMETYPE 0x400 -# define PKCS7_CRLFEOL 0x800 -# define PKCS7_STREAM 0x1000 -# define PKCS7_NOCRL 0x2000 -# define PKCS7_PARTIAL 0x4000 -# define PKCS7_REUSE_DIGEST 0x8000 -# define PKCS7_NO_DUAL_CONTENT 0x10000 - -/* Flags: for compatibility with older code */ - -# define SMIME_TEXT PKCS7_TEXT -# define SMIME_NOCERTS PKCS7_NOCERTS -# define SMIME_NOSIGS PKCS7_NOSIGS -# define SMIME_NOCHAIN PKCS7_NOCHAIN -# define SMIME_NOINTERN PKCS7_NOINTERN -# define SMIME_NOVERIFY PKCS7_NOVERIFY -# define SMIME_DETACHED PKCS7_DETACHED -# define SMIME_BINARY PKCS7_BINARY -# define SMIME_NOATTR PKCS7_NOATTR - -/* CRLF ASCII canonicalisation */ -# define SMIME_ASCIICRLF 0x80000 - -DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) - -int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, - const EVP_MD *type, unsigned char *md, - unsigned int *len); -# ifndef OPENSSL_NO_STDIO -PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); -int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7); -# endif -PKCS7 *PKCS7_dup(PKCS7 *p7); -PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); -int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7); -int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); -int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); - -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) -DECLARE_ASN1_FUNCTIONS(PKCS7) - -DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) -DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) - -DECLARE_ASN1_NDEF_FUNCTION(PKCS7) -DECLARE_ASN1_PRINT_FUNCTION(PKCS7) - -long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); - -int PKCS7_set_type(PKCS7 *p7, int type); -int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); -int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); -int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, - const EVP_MD *dgst); -int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); -int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); -int PKCS7_content_new(PKCS7 *p7, int nid); -int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, - BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); - -BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); -int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); -BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); - -PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, - EVP_PKEY *pkey, const EVP_MD *dgst); -X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); -STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7); - -PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); -void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, - X509_ALGOR **pdig, X509_ALGOR **psig); -void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); -int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); -int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); -int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); -int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); - -PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); -ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, - void *data); -int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, - void *value); -ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); -ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); -int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, - STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, - STACK_OF(X509_ATTRIBUTE) *sk); - -PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, - BIO *data, int flags); - -PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, - X509 *signcert, EVP_PKEY *pkey, - const EVP_MD *md, int flags); - -int PKCS7_final(PKCS7 *p7, BIO *data, int flags); -int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, - BIO *indata, BIO *out, int flags); -STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, - int flags); -PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, - int flags); -int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, - int flags); - -int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, - STACK_OF(X509_ALGOR) *cap); -STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); -int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg); - -int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); -int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); -int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, - const unsigned char *md, int mdlen); - -int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); -PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); - -BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/pkcs7err.h b/submodules/MtProtoKit/openssl/openssl/pkcs7err.h deleted file mode 100644 index 02e0299a3c..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/pkcs7err.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_PKCS7ERR_H -# define HEADER_PKCS7ERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_PKCS7_strings(void); - -/* - * PKCS7 function codes. - */ -# define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136 -# define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135 -# define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 -# define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 -# define PKCS7_F_PKCS7_ADD_CRL 101 -# define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 -# define PKCS7_F_PKCS7_ADD_SIGNATURE 131 -# define PKCS7_F_PKCS7_ADD_SIGNER 103 -# define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125 -# define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138 -# define PKCS7_F_PKCS7_CTRL 104 -# define PKCS7_F_PKCS7_DATADECODE 112 -# define PKCS7_F_PKCS7_DATAFINAL 128 -# define PKCS7_F_PKCS7_DATAINIT 105 -# define PKCS7_F_PKCS7_DATAVERIFY 107 -# define PKCS7_F_PKCS7_DECRYPT 114 -# define PKCS7_F_PKCS7_DECRYPT_RINFO 133 -# define PKCS7_F_PKCS7_ENCODE_RINFO 132 -# define PKCS7_F_PKCS7_ENCRYPT 115 -# define PKCS7_F_PKCS7_FINAL 134 -# define PKCS7_F_PKCS7_FIND_DIGEST 127 -# define PKCS7_F_PKCS7_GET0_SIGNERS 124 -# define PKCS7_F_PKCS7_RECIP_INFO_SET 130 -# define PKCS7_F_PKCS7_SET_CIPHER 108 -# define PKCS7_F_PKCS7_SET_CONTENT 109 -# define PKCS7_F_PKCS7_SET_DIGEST 126 -# define PKCS7_F_PKCS7_SET_TYPE 110 -# define PKCS7_F_PKCS7_SIGN 116 -# define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 -# define PKCS7_F_PKCS7_SIGNER_INFO_SET 129 -# define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139 -# define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137 -# define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 -# define PKCS7_F_PKCS7_VERIFY 117 - -/* - * PKCS7 reason codes. - */ -# define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 -# define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 -# define PKCS7_R_CIPHER_NOT_INITIALIZED 116 -# define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 -# define PKCS7_R_CTRL_ERROR 152 -# define PKCS7_R_DECRYPT_ERROR 119 -# define PKCS7_R_DIGEST_FAILURE 101 -# define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 -# define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 -# define PKCS7_R_ERROR_ADDING_RECIPIENT 120 -# define PKCS7_R_ERROR_SETTING_CIPHER 121 -# define PKCS7_R_INVALID_NULL_POINTER 143 -# define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155 -# define PKCS7_R_NO_CONTENT 122 -# define PKCS7_R_NO_DEFAULT_DIGEST 151 -# define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 -# define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 -# define PKCS7_R_NO_SIGNATURES_ON_DATA 123 -# define PKCS7_R_NO_SIGNERS 142 -# define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 -# define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 -# define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 -# define PKCS7_R_PKCS7_DATASIGN 145 -# define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 -# define PKCS7_R_SIGNATURE_FAILURE 105 -# define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 -# define PKCS7_R_SIGNING_CTRL_FAILURE 147 -# define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 -# define PKCS7_R_SMIME_TEXT_ERROR 129 -# define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 -# define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 -# define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 -# define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 -# define PKCS7_R_UNKNOWN_OPERATION 110 -# define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 -# define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 -# define PKCS7_R_WRONG_CONTENT_TYPE 113 -# define PKCS7_R_WRONG_PKCS7_TYPE 114 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/pqueue.h b/submodules/MtProtoKit/openssl/openssl/pqueue.h deleted file mode 100644 index d40d9c7d85..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/pqueue.h +++ /dev/null @@ -1,99 +0,0 @@ -/* crypto/pqueue/pqueue.h */ -/* - * DTLS implementation written by Nagendra Modadugu - * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. - */ -/* ==================================================================== - * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_PQUEUE_H -# define HEADER_PQUEUE_H - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif -typedef struct _pqueue *pqueue; - -typedef struct _pitem { - unsigned char priority[8]; /* 64-bit value in big-endian encoding */ - void *data; - struct _pitem *next; -} pitem; - -typedef struct _pitem *piterator; - -pitem *pitem_new(unsigned char *prio64be, void *data); -void pitem_free(pitem *item); - -pqueue pqueue_new(void); -void pqueue_free(pqueue pq); - -pitem *pqueue_insert(pqueue pq, pitem *item); -pitem *pqueue_peek(pqueue pq); -pitem *pqueue_pop(pqueue pq); -pitem *pqueue_find(pqueue pq, unsigned char *prio64be); -pitem *pqueue_iterator(pqueue pq); -pitem *pqueue_next(piterator *iter); - -void pqueue_print(pqueue pq); -int pqueue_size(pqueue pq); - -#ifdef __cplusplus -} -#endif -#endif /* ! HEADER_PQUEUE_H */ diff --git a/submodules/MtProtoKit/openssl/openssl/rand.h b/submodules/MtProtoKit/openssl/openssl/rand.h deleted file mode 100644 index 38a2a2718f..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/rand.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_RAND_H -# define HEADER_RAND_H - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -struct rand_meth_st { - int (*seed) (const void *buf, int num); - int (*bytes) (unsigned char *buf, int num); - void (*cleanup) (void); - int (*add) (const void *buf, int num, double randomness); - int (*pseudorand) (unsigned char *buf, int num); - int (*status) (void); -}; - -int RAND_set_rand_method(const RAND_METHOD *meth); -const RAND_METHOD *RAND_get_rand_method(void); -# ifndef OPENSSL_NO_ENGINE -int RAND_set_rand_engine(ENGINE *engine); -# endif - -RAND_METHOD *RAND_OpenSSL(void); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define RAND_cleanup() while(0) continue -# endif -int RAND_bytes(unsigned char *buf, int num); -int RAND_priv_bytes(unsigned char *buf, int num); -DEPRECATEDIN_1_1_0(int RAND_pseudo_bytes(unsigned char *buf, int num)) - -void RAND_seed(const void *buf, int num); -void RAND_keep_random_devices_open(int keep); - -# if defined(__ANDROID__) && defined(__NDK_FPABI__) -__NDK_FPABI__ /* __attribute__((pcs("aapcs"))) on ARM */ -# endif -void RAND_add(const void *buf, int num, double randomness); -int RAND_load_file(const char *file, long max_bytes); -int RAND_write_file(const char *file); -const char *RAND_file_name(char *file, size_t num); -int RAND_status(void); - -# ifndef OPENSSL_NO_EGD -int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes); -int RAND_egd(const char *path); -int RAND_egd_bytes(const char *path, int bytes); -# endif - -int RAND_poll(void); - -# if defined(_WIN32) && (defined(BASETYPES) || defined(_WINDEF_H)) -/* application has to include in order to use these */ -DEPRECATEDIN_1_1_0(void RAND_screen(void)) -DEPRECATEDIN_1_1_0(int RAND_event(UINT, WPARAM, LPARAM)) -# endif - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/rand_drbg.h b/submodules/MtProtoKit/openssl/openssl/rand_drbg.h deleted file mode 100644 index 45b731b73c..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/rand_drbg.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_DRBG_RAND_H -# define HEADER_DRBG_RAND_H - -# include -# include -# include - -/* - * RAND_DRBG flags - * - * Note: if new flags are added, the constant `rand_drbg_used_flags` - * in drbg_lib.c needs to be updated accordingly. - */ - -/* In CTR mode, disable derivation function ctr_df */ -# define RAND_DRBG_FLAG_CTR_NO_DF 0x1 - - -# if OPENSSL_API_COMPAT < 0x10200000L -/* This #define was replaced by an internal constant and should not be used. */ -# define RAND_DRBG_USED_FLAGS (RAND_DRBG_FLAG_CTR_NO_DF) -# endif - -/* - * Default security strength (in the sense of [NIST SP 800-90Ar1]) - * - * NIST SP 800-90Ar1 supports the strength of the DRBG being smaller than that - * of the cipher by collecting less entropy. The current DRBG implementation - * does not take RAND_DRBG_STRENGTH into account and sets the strength of the - * DRBG to that of the cipher. - * - * RAND_DRBG_STRENGTH is currently only used for the legacy RAND - * implementation. - * - * Currently supported ciphers are: NID_aes_128_ctr, NID_aes_192_ctr and - * NID_aes_256_ctr - */ -# define RAND_DRBG_STRENGTH 256 -/* Default drbg type */ -# define RAND_DRBG_TYPE NID_aes_256_ctr -/* Default drbg flags */ -# define RAND_DRBG_FLAGS 0 - - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * Object lifetime functions. - */ -RAND_DRBG *RAND_DRBG_new(int type, unsigned int flags, RAND_DRBG *parent); -RAND_DRBG *RAND_DRBG_secure_new(int type, unsigned int flags, RAND_DRBG *parent); -int RAND_DRBG_set(RAND_DRBG *drbg, int type, unsigned int flags); -int RAND_DRBG_set_defaults(int type, unsigned int flags); -int RAND_DRBG_instantiate(RAND_DRBG *drbg, - const unsigned char *pers, size_t perslen); -int RAND_DRBG_uninstantiate(RAND_DRBG *drbg); -void RAND_DRBG_free(RAND_DRBG *drbg); - -/* - * Object "use" functions. - */ -int RAND_DRBG_reseed(RAND_DRBG *drbg, - const unsigned char *adin, size_t adinlen, - int prediction_resistance); -int RAND_DRBG_generate(RAND_DRBG *drbg, unsigned char *out, size_t outlen, - int prediction_resistance, - const unsigned char *adin, size_t adinlen); -int RAND_DRBG_bytes(RAND_DRBG *drbg, unsigned char *out, size_t outlen); - -int RAND_DRBG_set_reseed_interval(RAND_DRBG *drbg, unsigned int interval); -int RAND_DRBG_set_reseed_time_interval(RAND_DRBG *drbg, time_t interval); - -int RAND_DRBG_set_reseed_defaults( - unsigned int master_reseed_interval, - unsigned int slave_reseed_interval, - time_t master_reseed_time_interval, - time_t slave_reseed_time_interval - ); - -RAND_DRBG *RAND_DRBG_get0_master(void); -RAND_DRBG *RAND_DRBG_get0_public(void); -RAND_DRBG *RAND_DRBG_get0_private(void); - -/* - * EXDATA - */ -# define RAND_DRBG_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DRBG, l, p, newf, dupf, freef) -int RAND_DRBG_set_ex_data(RAND_DRBG *drbg, int idx, void *arg); -void *RAND_DRBG_get_ex_data(const RAND_DRBG *drbg, int idx); - -/* - * Callback function typedefs - */ -typedef size_t (*RAND_DRBG_get_entropy_fn)(RAND_DRBG *drbg, - unsigned char **pout, - int entropy, size_t min_len, - size_t max_len, - int prediction_resistance); -typedef void (*RAND_DRBG_cleanup_entropy_fn)(RAND_DRBG *ctx, - unsigned char *out, size_t outlen); -typedef size_t (*RAND_DRBG_get_nonce_fn)(RAND_DRBG *drbg, unsigned char **pout, - int entropy, size_t min_len, - size_t max_len); -typedef void (*RAND_DRBG_cleanup_nonce_fn)(RAND_DRBG *drbg, - unsigned char *out, size_t outlen); - -int RAND_DRBG_set_callbacks(RAND_DRBG *drbg, - RAND_DRBG_get_entropy_fn get_entropy, - RAND_DRBG_cleanup_entropy_fn cleanup_entropy, - RAND_DRBG_get_nonce_fn get_nonce, - RAND_DRBG_cleanup_nonce_fn cleanup_nonce); - - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/randerr.h b/submodules/MtProtoKit/openssl/openssl/randerr.h deleted file mode 100644 index 70d1a17a4c..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/randerr.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_RANDERR_H -# define HEADER_RANDERR_H - -# include - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_RAND_strings(void); - -/* - * RAND function codes. - */ -# define RAND_F_DRBG_BYTES 101 -# define RAND_F_DRBG_GET_ENTROPY 105 -# define RAND_F_DRBG_SETUP 117 -# define RAND_F_GET_ENTROPY 106 -# define RAND_F_RAND_BYTES 100 -# define RAND_F_RAND_DRBG_ENABLE_LOCKING 119 -# define RAND_F_RAND_DRBG_GENERATE 107 -# define RAND_F_RAND_DRBG_GET_ENTROPY 120 -# define RAND_F_RAND_DRBG_GET_NONCE 123 -# define RAND_F_RAND_DRBG_INSTANTIATE 108 -# define RAND_F_RAND_DRBG_NEW 109 -# define RAND_F_RAND_DRBG_RESEED 110 -# define RAND_F_RAND_DRBG_RESTART 102 -# define RAND_F_RAND_DRBG_SET 104 -# define RAND_F_RAND_DRBG_SET_DEFAULTS 121 -# define RAND_F_RAND_DRBG_UNINSTANTIATE 118 -# define RAND_F_RAND_LOAD_FILE 111 -# define RAND_F_RAND_POOL_ACQUIRE_ENTROPY 122 -# define RAND_F_RAND_POOL_ADD 103 -# define RAND_F_RAND_POOL_ADD_BEGIN 113 -# define RAND_F_RAND_POOL_ADD_END 114 -# define RAND_F_RAND_POOL_ATTACH 124 -# define RAND_F_RAND_POOL_BYTES_NEEDED 115 -# define RAND_F_RAND_POOL_GROW 125 -# define RAND_F_RAND_POOL_NEW 116 -# define RAND_F_RAND_WRITE_FILE 112 - -/* - * RAND reason codes. - */ -# define RAND_R_ADDITIONAL_INPUT_TOO_LONG 102 -# define RAND_R_ALREADY_INSTANTIATED 103 -# define RAND_R_ARGUMENT_OUT_OF_RANGE 105 -# define RAND_R_CANNOT_OPEN_FILE 121 -# define RAND_R_DRBG_ALREADY_INITIALIZED 129 -# define RAND_R_DRBG_NOT_INITIALISED 104 -# define RAND_R_ENTROPY_INPUT_TOO_LONG 106 -# define RAND_R_ENTROPY_OUT_OF_RANGE 124 -# define RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED 127 -# define RAND_R_ERROR_INITIALISING_DRBG 107 -# define RAND_R_ERROR_INSTANTIATING_DRBG 108 -# define RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT 109 -# define RAND_R_ERROR_RETRIEVING_ENTROPY 110 -# define RAND_R_ERROR_RETRIEVING_NONCE 111 -# define RAND_R_FAILED_TO_CREATE_LOCK 126 -# define RAND_R_FUNC_NOT_IMPLEMENTED 101 -# define RAND_R_FWRITE_ERROR 123 -# define RAND_R_GENERATE_ERROR 112 -# define RAND_R_INTERNAL_ERROR 113 -# define RAND_R_IN_ERROR_STATE 114 -# define RAND_R_NOT_A_REGULAR_FILE 122 -# define RAND_R_NOT_INSTANTIATED 115 -# define RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED 128 -# define RAND_R_PARENT_LOCKING_NOT_ENABLED 130 -# define RAND_R_PARENT_STRENGTH_TOO_WEAK 131 -# define RAND_R_PERSONALISATION_STRING_TOO_LONG 116 -# define RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED 133 -# define RAND_R_PRNG_NOT_SEEDED 100 -# define RAND_R_RANDOM_POOL_OVERFLOW 125 -# define RAND_R_RANDOM_POOL_UNDERFLOW 134 -# define RAND_R_REQUEST_TOO_LARGE_FOR_DRBG 117 -# define RAND_R_RESEED_ERROR 118 -# define RAND_R_SELFTEST_FAILURE 119 -# define RAND_R_TOO_LITTLE_NONCE_REQUESTED 135 -# define RAND_R_TOO_MUCH_NONCE_REQUESTED 136 -# define RAND_R_UNSUPPORTED_DRBG_FLAGS 132 -# define RAND_R_UNSUPPORTED_DRBG_TYPE 120 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/rc2.h b/submodules/MtProtoKit/openssl/openssl/rc2.h deleted file mode 100644 index 585f9e4c38..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/rc2.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_RC2_H -# define HEADER_RC2_H - -# include - -# ifndef OPENSSL_NO_RC2 -# ifdef __cplusplus -extern "C" { -# endif - -typedef unsigned int RC2_INT; - -# define RC2_ENCRYPT 1 -# define RC2_DECRYPT 0 - -# define RC2_BLOCK 8 -# define RC2_KEY_LENGTH 16 - -typedef struct rc2_key_st { - RC2_INT data[64]; -} RC2_KEY; - -void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits); -void RC2_ecb_encrypt(const unsigned char *in, unsigned char *out, - RC2_KEY *key, int enc); -void RC2_encrypt(unsigned long *data, RC2_KEY *key); -void RC2_decrypt(unsigned long *data, RC2_KEY *key); -void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, - RC2_KEY *ks, unsigned char *iv, int enc); -void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC2_KEY *schedule, unsigned char *ivec, - int *num, int enc); -void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC2_KEY *schedule, unsigned char *ivec, - int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/rc4.h b/submodules/MtProtoKit/openssl/openssl/rc4.h deleted file mode 100644 index 86803b37fb..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/rc4.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_RC4_H -# define HEADER_RC4_H - -# include - -# ifndef OPENSSL_NO_RC4 -# include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct rc4_key_st { - RC4_INT x, y; - RC4_INT data[256]; -} RC4_KEY; - -const char *RC4_options(void); -void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); -void RC4(RC4_KEY *key, size_t len, const unsigned char *indata, - unsigned char *outdata); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/rc5.h b/submodules/MtProtoKit/openssl/openssl/rc5.h deleted file mode 100644 index 793f88e4e8..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/rc5.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_RC5_H -# define HEADER_RC5_H - -# include - -# ifndef OPENSSL_NO_RC5 -# ifdef __cplusplus -extern "C" { -# endif - -# define RC5_ENCRYPT 1 -# define RC5_DECRYPT 0 - -# define RC5_32_INT unsigned int - -# define RC5_32_BLOCK 8 -# define RC5_32_KEY_LENGTH 16/* This is a default, max is 255 */ - -/* - * This are the only values supported. Tweak the code if you want more The - * most supported modes will be RC5-32/12/16 RC5-32/16/8 - */ -# define RC5_8_ROUNDS 8 -# define RC5_12_ROUNDS 12 -# define RC5_16_ROUNDS 16 - -typedef struct rc5_key_st { - /* Number of rounds */ - int rounds; - RC5_32_INT data[2 * (RC5_16_ROUNDS + 1)]; -} RC5_32_KEY; - -void RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data, - int rounds); -void RC5_32_ecb_encrypt(const unsigned char *in, unsigned char *out, - RC5_32_KEY *key, int enc); -void RC5_32_encrypt(unsigned long *data, RC5_32_KEY *key); -void RC5_32_decrypt(unsigned long *data, RC5_32_KEY *key); -void RC5_32_cbc_encrypt(const unsigned char *in, unsigned char *out, - long length, RC5_32_KEY *ks, unsigned char *iv, - int enc); -void RC5_32_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC5_32_KEY *schedule, - unsigned char *ivec, int *num, int enc); -void RC5_32_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC5_32_KEY *schedule, - unsigned char *ivec, int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ripemd.h b/submodules/MtProtoKit/openssl/openssl/ripemd.h deleted file mode 100644 index c42026aa42..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ripemd.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_RIPEMD_H -# define HEADER_RIPEMD_H - -# include - -#ifndef OPENSSL_NO_RMD160 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define RIPEMD160_LONG unsigned int - -# define RIPEMD160_CBLOCK 64 -# define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4) -# define RIPEMD160_DIGEST_LENGTH 20 - -typedef struct RIPEMD160state_st { - RIPEMD160_LONG A, B, C, D, E; - RIPEMD160_LONG Nl, Nh; - RIPEMD160_LONG data[RIPEMD160_LBLOCK]; - unsigned int num; -} RIPEMD160_CTX; - -int RIPEMD160_Init(RIPEMD160_CTX *c); -int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, size_t len); -int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); -unsigned char *RIPEMD160(const unsigned char *d, size_t n, unsigned char *md); -void RIPEMD160_Transform(RIPEMD160_CTX *c, const unsigned char *b); - -# ifdef __cplusplus -} -# endif -# endif - - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/rsa.h b/submodules/MtProtoKit/openssl/openssl/rsa.h deleted file mode 100644 index cdce1264eb..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/rsa.h +++ /dev/null @@ -1,512 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_RSA_H -# define HEADER_RSA_H - -# include - -# ifndef OPENSSL_NO_RSA -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include -# ifdef __cplusplus -extern "C" { -# endif - -/* The types RSA and RSA_METHOD are defined in ossl_typ.h */ - -# ifndef OPENSSL_RSA_MAX_MODULUS_BITS -# define OPENSSL_RSA_MAX_MODULUS_BITS 16384 -# endif - -# define OPENSSL_RSA_FIPS_MIN_MODULUS_BITS 1024 - -# ifndef OPENSSL_RSA_SMALL_MODULUS_BITS -# define OPENSSL_RSA_SMALL_MODULUS_BITS 3072 -# endif -# ifndef OPENSSL_RSA_MAX_PUBEXP_BITS - -/* exponent limit enforced for "large" modulus only */ -# define OPENSSL_RSA_MAX_PUBEXP_BITS 64 -# endif - -# define RSA_3 0x3L -# define RSA_F4 0x10001L - -/* based on RFC 8017 appendix A.1.2 */ -# define RSA_ASN1_VERSION_DEFAULT 0 -# define RSA_ASN1_VERSION_MULTI 1 - -# define RSA_DEFAULT_PRIME_NUM 2 - -# define RSA_METHOD_FLAG_NO_CHECK 0x0001/* don't check pub/private - * match */ - -# define RSA_FLAG_CACHE_PUBLIC 0x0002 -# define RSA_FLAG_CACHE_PRIVATE 0x0004 -# define RSA_FLAG_BLINDING 0x0008 -# define RSA_FLAG_THREAD_SAFE 0x0010 -/* - * This flag means the private key operations will be handled by rsa_mod_exp - * and that they do not depend on the private key components being present: - * for example a key stored in external hardware. Without this flag - * bn_mod_exp gets called when private key components are absent. - */ -# define RSA_FLAG_EXT_PKEY 0x0020 - -/* - * new with 0.9.6j and 0.9.7b; the built-in - * RSA implementation now uses blinding by - * default (ignoring RSA_FLAG_BLINDING), - * but other engines might not need it - */ -# define RSA_FLAG_NO_BLINDING 0x0080 -# if OPENSSL_API_COMPAT < 0x10100000L -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# define RSA_FLAG_NO_CONSTTIME 0x0000 -# endif -# if OPENSSL_API_COMPAT < 0x00908000L -/* deprecated name for the flag*/ -/* - * new with 0.9.7h; the built-in RSA - * implementation now uses constant time - * modular exponentiation for secret exponents - * by default. This flag causes the - * faster variable sliding window method to - * be used for all exponents. - */ -# define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME -# endif - -# define EVP_PKEY_CTX_set_rsa_padding(ctx, pad) \ - RSA_pkey_ctx_ctrl(ctx, -1, EVP_PKEY_CTRL_RSA_PADDING, pad, NULL) - -# define EVP_PKEY_CTX_get_rsa_padding(ctx, ppad) \ - RSA_pkey_ctx_ctrl(ctx, -1, EVP_PKEY_CTRL_GET_RSA_PADDING, 0, ppad) - -# define EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, len) \ - RSA_pkey_ctx_ctrl(ctx, (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_RSA_PSS_SALTLEN, len, NULL) -/* Salt length matches digest */ -# define RSA_PSS_SALTLEN_DIGEST -1 -/* Verify only: auto detect salt length */ -# define RSA_PSS_SALTLEN_AUTO -2 -/* Set salt length to maximum possible */ -# define RSA_PSS_SALTLEN_MAX -3 -/* Old compatible max salt length for sign only */ -# define RSA_PSS_SALTLEN_MAX_SIGN -2 - -# define EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_PSS_SALTLEN, len, NULL) - -# define EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx, plen) \ - RSA_pkey_ctx_ctrl(ctx, (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN, 0, plen) - -# define EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, bits) \ - RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_BITS, bits, NULL) - -# define EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp) \ - RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) - -# define EVP_PKEY_CTX_set_rsa_keygen_primes(ctx, primes) \ - RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES, primes, NULL) - -# define EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md) \ - RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)(md)) - -# define EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA_PSS, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)(md)) - -# define EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_OAEP_MD, 0, (void *)(md)) - -# define EVP_PKEY_CTX_get_rsa_mgf1_md(ctx, pmd) \ - RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void *)(pmd)) - -# define EVP_PKEY_CTX_get_rsa_oaep_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_GET_RSA_OAEP_MD, 0, (void *)(pmd)) - -# define EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, l, llen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_OAEP_LABEL, llen, (void *)(l)) - -# define EVP_PKEY_CTX_get0_rsa_oaep_label(ctx, l) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL, 0, (void *)(l)) - -# define EVP_PKEY_CTX_set_rsa_pss_keygen_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA_PSS, \ - EVP_PKEY_OP_KEYGEN, EVP_PKEY_CTRL_MD, \ - 0, (void *)(md)) - -# define EVP_PKEY_CTRL_RSA_PADDING (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 2) - -# define EVP_PKEY_CTRL_RSA_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 5) - -# define EVP_PKEY_CTRL_GET_RSA_PADDING (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 8) - -# define EVP_PKEY_CTRL_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 10) - -# define EVP_PKEY_CTRL_GET_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 11) -# define EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 12) - -# define EVP_PKEY_CTRL_RSA_KEYGEN_PRIMES (EVP_PKEY_ALG_CTRL + 13) - -# define RSA_PKCS1_PADDING 1 -# define RSA_SSLV23_PADDING 2 -# define RSA_NO_PADDING 3 -# define RSA_PKCS1_OAEP_PADDING 4 -# define RSA_X931_PADDING 5 -/* EVP_PKEY_ only */ -# define RSA_PKCS1_PSS_PADDING 6 - -# define RSA_PKCS1_PADDING_SIZE 11 - -# define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg) -# define RSA_get_app_data(s) RSA_get_ex_data(s,0) - -RSA *RSA_new(void); -RSA *RSA_new_method(ENGINE *engine); -int RSA_bits(const RSA *rsa); -int RSA_size(const RSA *rsa); -int RSA_security_bits(const RSA *rsa); - -int RSA_set0_key(RSA *r, BIGNUM *n, BIGNUM *e, BIGNUM *d); -int RSA_set0_factors(RSA *r, BIGNUM *p, BIGNUM *q); -int RSA_set0_crt_params(RSA *r,BIGNUM *dmp1, BIGNUM *dmq1, BIGNUM *iqmp); -int RSA_set0_multi_prime_params(RSA *r, BIGNUM *primes[], BIGNUM *exps[], - BIGNUM *coeffs[], int pnum); -void RSA_get0_key(const RSA *r, - const BIGNUM **n, const BIGNUM **e, const BIGNUM **d); -void RSA_get0_factors(const RSA *r, const BIGNUM **p, const BIGNUM **q); -int RSA_get_multi_prime_extra_count(const RSA *r); -int RSA_get0_multi_prime_factors(const RSA *r, const BIGNUM *primes[]); -void RSA_get0_crt_params(const RSA *r, - const BIGNUM **dmp1, const BIGNUM **dmq1, - const BIGNUM **iqmp); -int RSA_get0_multi_prime_crt_params(const RSA *r, const BIGNUM *exps[], - const BIGNUM *coeffs[]); -const BIGNUM *RSA_get0_n(const RSA *d); -const BIGNUM *RSA_get0_e(const RSA *d); -const BIGNUM *RSA_get0_d(const RSA *d); -const BIGNUM *RSA_get0_p(const RSA *d); -const BIGNUM *RSA_get0_q(const RSA *d); -const BIGNUM *RSA_get0_dmp1(const RSA *r); -const BIGNUM *RSA_get0_dmq1(const RSA *r); -const BIGNUM *RSA_get0_iqmp(const RSA *r); -void RSA_clear_flags(RSA *r, int flags); -int RSA_test_flags(const RSA *r, int flags); -void RSA_set_flags(RSA *r, int flags); -int RSA_get_version(RSA *r); -ENGINE *RSA_get0_engine(const RSA *r); - -/* Deprecated version */ -DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void - (*callback) (int, int, void *), - void *cb_arg)) - -/* New version */ -int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); -/* Multi-prime version */ -int RSA_generate_multi_prime_key(RSA *rsa, int bits, int primes, - BIGNUM *e, BN_GENCB *cb); - -int RSA_X931_derive_ex(RSA *rsa, BIGNUM *p1, BIGNUM *p2, BIGNUM *q1, - BIGNUM *q2, const BIGNUM *Xp1, const BIGNUM *Xp2, - const BIGNUM *Xp, const BIGNUM *Xq1, const BIGNUM *Xq2, - const BIGNUM *Xq, const BIGNUM *e, BN_GENCB *cb); -int RSA_X931_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e, - BN_GENCB *cb); - -int RSA_check_key(const RSA *); -int RSA_check_key_ex(const RSA *, BN_GENCB *cb); - /* next 4 return -1 on error */ -int RSA_public_encrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_private_encrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_public_decrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_private_decrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -void RSA_free(RSA *r); -/* "up" the RSA object's reference count */ -int RSA_up_ref(RSA *r); - -int RSA_flags(const RSA *r); - -void RSA_set_default_method(const RSA_METHOD *meth); -const RSA_METHOD *RSA_get_default_method(void); -const RSA_METHOD *RSA_null_method(void); -const RSA_METHOD *RSA_get_method(const RSA *rsa); -int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); - -/* these are the actual RSA functions */ -const RSA_METHOD *RSA_PKCS1_OpenSSL(void); - -int RSA_pkey_ctx_ctrl(EVP_PKEY_CTX *ctx, int optype, int cmd, int p1, void *p2); - -DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPublicKey) -DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPrivateKey) - -typedef struct rsa_pss_params_st { - X509_ALGOR *hashAlgorithm; - X509_ALGOR *maskGenAlgorithm; - ASN1_INTEGER *saltLength; - ASN1_INTEGER *trailerField; - /* Decoded hash algorithm from maskGenAlgorithm */ - X509_ALGOR *maskHash; -} RSA_PSS_PARAMS; - -DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) - -typedef struct rsa_oaep_params_st { - X509_ALGOR *hashFunc; - X509_ALGOR *maskGenFunc; - X509_ALGOR *pSourceFunc; - /* Decoded hash algorithm from maskGenFunc */ - X509_ALGOR *maskHash; -} RSA_OAEP_PARAMS; - -DECLARE_ASN1_FUNCTIONS(RSA_OAEP_PARAMS) - -# ifndef OPENSSL_NO_STDIO -int RSA_print_fp(FILE *fp, const RSA *r, int offset); -# endif - -int RSA_print(BIO *bp, const RSA *r, int offset); - -/* - * The following 2 functions sign and verify a X509_SIG ASN1 object inside - * PKCS#1 padded RSA encryption - */ -int RSA_sign(int type, const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, RSA *rsa); -int RSA_verify(int type, const unsigned char *m, unsigned int m_length, - const unsigned char *sigbuf, unsigned int siglen, RSA *rsa); - -/* - * The following 2 function sign and verify a ASN1_OCTET_STRING object inside - * PKCS#1 padded RSA encryption - */ -int RSA_sign_ASN1_OCTET_STRING(int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - RSA *rsa); -int RSA_verify_ASN1_OCTET_STRING(int type, const unsigned char *m, - unsigned int m_length, unsigned char *sigbuf, - unsigned int siglen, RSA *rsa); - -int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); -void RSA_blinding_off(RSA *rsa); -BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); - -int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, - const unsigned char *f, int fl); -int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, - const unsigned char *f, int fl); -int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -int PKCS1_MGF1(unsigned char *mask, long len, const unsigned char *seed, - long seedlen, const EVP_MD *dgst); -int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, - const unsigned char *f, int fl, - const unsigned char *p, int pl); -int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len, - const unsigned char *p, int pl); -int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, - const unsigned char *from, int flen, - const unsigned char *param, int plen, - const EVP_MD *md, const EVP_MD *mgf1md); -int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, - const unsigned char *from, int flen, - int num, const unsigned char *param, - int plen, const EVP_MD *md, - const EVP_MD *mgf1md); -int RSA_padding_add_SSLv23(unsigned char *to, int tlen, - const unsigned char *f, int fl); -int RSA_padding_check_SSLv23(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len); -int RSA_padding_add_none(unsigned char *to, int tlen, const unsigned char *f, - int fl); -int RSA_padding_check_none(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len); -int RSA_padding_add_X931(unsigned char *to, int tlen, const unsigned char *f, - int fl); -int RSA_padding_check_X931(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len); -int RSA_X931_hash_id(int nid); - -int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const unsigned char *EM, - int sLen); -int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, const EVP_MD *Hash, - int sLen); - -int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - const unsigned char *EM, int sLen); - -int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - int sLen); - -#define RSA_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_RSA, l, p, newf, dupf, freef) -int RSA_set_ex_data(RSA *r, int idx, void *arg); -void *RSA_get_ex_data(const RSA *r, int idx); - -RSA *RSAPublicKey_dup(RSA *rsa); -RSA *RSAPrivateKey_dup(RSA *rsa); - -/* - * If this flag is set the RSA method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define RSA_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define RSA_FLAG_NON_FIPS_ALLOW 0x0400 -/* - * Application has decided PRNG is good enough to generate a key: don't - * check. - */ -# define RSA_FLAG_CHECKED 0x0800 - -RSA_METHOD *RSA_meth_new(const char *name, int flags); -void RSA_meth_free(RSA_METHOD *meth); -RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth); -const char *RSA_meth_get0_name(const RSA_METHOD *meth); -int RSA_meth_set1_name(RSA_METHOD *meth, const char *name); -int RSA_meth_get_flags(const RSA_METHOD *meth); -int RSA_meth_set_flags(RSA_METHOD *meth, int flags); -void *RSA_meth_get0_app_data(const RSA_METHOD *meth); -int RSA_meth_set0_app_data(RSA_METHOD *meth, void *app_data); -int (*RSA_meth_get_pub_enc(const RSA_METHOD *meth)) - (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_meth_set_pub_enc(RSA_METHOD *rsa, - int (*pub_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -int (*RSA_meth_get_pub_dec(const RSA_METHOD *meth)) - (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_meth_set_pub_dec(RSA_METHOD *rsa, - int (*pub_dec) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -int (*RSA_meth_get_priv_enc(const RSA_METHOD *meth)) - (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_meth_set_priv_enc(RSA_METHOD *rsa, - int (*priv_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -int (*RSA_meth_get_priv_dec(const RSA_METHOD *meth)) - (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_meth_set_priv_dec(RSA_METHOD *rsa, - int (*priv_dec) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -int (*RSA_meth_get_mod_exp(const RSA_METHOD *meth)) - (BIGNUM *r0, const BIGNUM *i, RSA *rsa, BN_CTX *ctx); -int RSA_meth_set_mod_exp(RSA_METHOD *rsa, - int (*mod_exp) (BIGNUM *r0, const BIGNUM *i, RSA *rsa, - BN_CTX *ctx)); -int (*RSA_meth_get_bn_mod_exp(const RSA_METHOD *meth)) - (BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int RSA_meth_set_bn_mod_exp(RSA_METHOD *rsa, - int (*bn_mod_exp) (BIGNUM *r, - const BIGNUM *a, - const BIGNUM *p, - const BIGNUM *m, - BN_CTX *ctx, - BN_MONT_CTX *m_ctx)); -int (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa); -int RSA_meth_set_init(RSA_METHOD *rsa, int (*init) (RSA *rsa)); -int (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa); -int RSA_meth_set_finish(RSA_METHOD *rsa, int (*finish) (RSA *rsa)); -int (*RSA_meth_get_sign(const RSA_METHOD *meth)) - (int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - const RSA *rsa); -int RSA_meth_set_sign(RSA_METHOD *rsa, - int (*sign) (int type, const unsigned char *m, - unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - const RSA *rsa)); -int (*RSA_meth_get_verify(const RSA_METHOD *meth)) - (int dtype, const unsigned char *m, - unsigned int m_length, const unsigned char *sigbuf, - unsigned int siglen, const RSA *rsa); -int RSA_meth_set_verify(RSA_METHOD *rsa, - int (*verify) (int dtype, const unsigned char *m, - unsigned int m_length, - const unsigned char *sigbuf, - unsigned int siglen, const RSA *rsa)); -int (*RSA_meth_get_keygen(const RSA_METHOD *meth)) - (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); -int RSA_meth_set_keygen(RSA_METHOD *rsa, - int (*keygen) (RSA *rsa, int bits, BIGNUM *e, - BN_GENCB *cb)); -int (*RSA_meth_get_multi_prime_keygen(const RSA_METHOD *meth)) - (RSA *rsa, int bits, int primes, BIGNUM *e, BN_GENCB *cb); -int RSA_meth_set_multi_prime_keygen(RSA_METHOD *meth, - int (*keygen) (RSA *rsa, int bits, - int primes, BIGNUM *e, - BN_GENCB *cb)); - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/rsaerr.h b/submodules/MtProtoKit/openssl/openssl/rsaerr.h deleted file mode 100644 index 59b15e13e9..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/rsaerr.h +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_RSAERR_H -# define HEADER_RSAERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_RSA_strings(void); - -/* - * RSA function codes. - */ -# define RSA_F_CHECK_PADDING_MD 140 -# define RSA_F_ENCODE_PKCS1 146 -# define RSA_F_INT_RSA_VERIFY 145 -# define RSA_F_OLD_RSA_PRIV_DECODE 147 -# define RSA_F_PKEY_PSS_INIT 165 -# define RSA_F_PKEY_RSA_CTRL 143 -# define RSA_F_PKEY_RSA_CTRL_STR 144 -# define RSA_F_PKEY_RSA_SIGN 142 -# define RSA_F_PKEY_RSA_VERIFY 149 -# define RSA_F_PKEY_RSA_VERIFYRECOVER 141 -# define RSA_F_RSA_ALGOR_TO_MD 156 -# define RSA_F_RSA_BUILTIN_KEYGEN 129 -# define RSA_F_RSA_CHECK_KEY 123 -# define RSA_F_RSA_CHECK_KEY_EX 160 -# define RSA_F_RSA_CMS_DECRYPT 159 -# define RSA_F_RSA_CMS_VERIFY 158 -# define RSA_F_RSA_ITEM_VERIFY 148 -# define RSA_F_RSA_METH_DUP 161 -# define RSA_F_RSA_METH_NEW 162 -# define RSA_F_RSA_METH_SET1_NAME 163 -# define RSA_F_RSA_MGF1_TO_MD 157 -# define RSA_F_RSA_MULTIP_INFO_NEW 166 -# define RSA_F_RSA_NEW_METHOD 106 -# define RSA_F_RSA_NULL 124 -# define RSA_F_RSA_NULL_PRIVATE_DECRYPT 132 -# define RSA_F_RSA_NULL_PRIVATE_ENCRYPT 133 -# define RSA_F_RSA_NULL_PUBLIC_DECRYPT 134 -# define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 135 -# define RSA_F_RSA_OSSL_PRIVATE_DECRYPT 101 -# define RSA_F_RSA_OSSL_PRIVATE_ENCRYPT 102 -# define RSA_F_RSA_OSSL_PUBLIC_DECRYPT 103 -# define RSA_F_RSA_OSSL_PUBLIC_ENCRYPT 104 -# define RSA_F_RSA_PADDING_ADD_NONE 107 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 154 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 125 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 152 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 109 -# define RSA_F_RSA_PADDING_ADD_SSLV23 110 -# define RSA_F_RSA_PADDING_ADD_X931 127 -# define RSA_F_RSA_PADDING_CHECK_NONE 111 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 122 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 153 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 112 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 113 -# define RSA_F_RSA_PADDING_CHECK_SSLV23 114 -# define RSA_F_RSA_PADDING_CHECK_X931 128 -# define RSA_F_RSA_PARAM_DECODE 164 -# define RSA_F_RSA_PRINT 115 -# define RSA_F_RSA_PRINT_FP 116 -# define RSA_F_RSA_PRIV_DECODE 150 -# define RSA_F_RSA_PRIV_ENCODE 138 -# define RSA_F_RSA_PSS_GET_PARAM 151 -# define RSA_F_RSA_PSS_TO_CTX 155 -# define RSA_F_RSA_PUB_DECODE 139 -# define RSA_F_RSA_SETUP_BLINDING 136 -# define RSA_F_RSA_SIGN 117 -# define RSA_F_RSA_SIGN_ASN1_OCTET_STRING 118 -# define RSA_F_RSA_VERIFY 119 -# define RSA_F_RSA_VERIFY_ASN1_OCTET_STRING 120 -# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 126 -# define RSA_F_SETUP_TBUF 167 - -/* - * RSA reason codes. - */ -# define RSA_R_ALGORITHM_MISMATCH 100 -# define RSA_R_BAD_E_VALUE 101 -# define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 -# define RSA_R_BAD_PAD_BYTE_COUNT 103 -# define RSA_R_BAD_SIGNATURE 104 -# define RSA_R_BLOCK_TYPE_IS_NOT_01 106 -# define RSA_R_BLOCK_TYPE_IS_NOT_02 107 -# define RSA_R_DATA_GREATER_THAN_MOD_LEN 108 -# define RSA_R_DATA_TOO_LARGE 109 -# define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 -# define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 -# define RSA_R_DATA_TOO_SMALL 111 -# define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 -# define RSA_R_DIGEST_DOES_NOT_MATCH 158 -# define RSA_R_DIGEST_NOT_ALLOWED 145 -# define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 -# define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 -# define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 -# define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 -# define RSA_R_FIRST_OCTET_INVALID 133 -# define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 -# define RSA_R_INVALID_DIGEST 157 -# define RSA_R_INVALID_DIGEST_LENGTH 143 -# define RSA_R_INVALID_HEADER 137 -# define RSA_R_INVALID_LABEL 160 -# define RSA_R_INVALID_MESSAGE_LENGTH 131 -# define RSA_R_INVALID_MGF1_MD 156 -# define RSA_R_INVALID_MULTI_PRIME_KEY 167 -# define RSA_R_INVALID_OAEP_PARAMETERS 161 -# define RSA_R_INVALID_PADDING 138 -# define RSA_R_INVALID_PADDING_MODE 141 -# define RSA_R_INVALID_PSS_PARAMETERS 149 -# define RSA_R_INVALID_PSS_SALTLEN 146 -# define RSA_R_INVALID_SALT_LENGTH 150 -# define RSA_R_INVALID_TRAILER 139 -# define RSA_R_INVALID_X931_DIGEST 142 -# define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 -# define RSA_R_KEY_PRIME_NUM_INVALID 165 -# define RSA_R_KEY_SIZE_TOO_SMALL 120 -# define RSA_R_LAST_OCTET_INVALID 134 -# define RSA_R_MISSING_PRIVATE_KEY 179 -# define RSA_R_MGF1_DIGEST_NOT_ALLOWED 152 -# define RSA_R_MODULUS_TOO_LARGE 105 -# define RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R 168 -# define RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D 169 -# define RSA_R_MP_R_NOT_PRIME 170 -# define RSA_R_NO_PUBLIC_EXPONENT 140 -# define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 -# define RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES 172 -# define RSA_R_N_DOES_NOT_EQUAL_P_Q 127 -# define RSA_R_OAEP_DECODING_ERROR 121 -# define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 148 -# define RSA_R_PADDING_CHECK_FAILED 114 -# define RSA_R_PKCS_DECODING_ERROR 159 -# define RSA_R_PSS_SALTLEN_TOO_SMALL 164 -# define RSA_R_P_NOT_PRIME 128 -# define RSA_R_Q_NOT_PRIME 129 -# define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 -# define RSA_R_SLEN_CHECK_FAILED 136 -# define RSA_R_SLEN_RECOVERY_FAILED 135 -# define RSA_R_SSLV3_ROLLBACK_ATTACK 115 -# define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 -# define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 -# define RSA_R_UNKNOWN_DIGEST 166 -# define RSA_R_UNKNOWN_MASK_DIGEST 151 -# define RSA_R_UNKNOWN_PADDING_TYPE 118 -# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 162 -# define RSA_R_UNSUPPORTED_LABEL_SOURCE 163 -# define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 -# define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 -# define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 -# define RSA_R_VALUE_MISSING 147 -# define RSA_R_WRONG_SIGNATURE_LENGTH 119 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/safestack.h b/submodules/MtProtoKit/openssl/openssl/safestack.h deleted file mode 100644 index 38b5578978..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/safestack.h +++ /dev/null @@ -1,207 +0,0 @@ -/* - * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SAFESTACK_H -# define HEADER_SAFESTACK_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define STACK_OF(type) struct stack_st_##type - -# define SKM_DEFINE_STACK_OF(t1, t2, t3) \ - STACK_OF(t1); \ - typedef int (*sk_##t1##_compfunc)(const t3 * const *a, const t3 *const *b); \ - typedef void (*sk_##t1##_freefunc)(t3 *a); \ - typedef t3 * (*sk_##t1##_copyfunc)(const t3 *a); \ - static ossl_unused ossl_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \ - { \ - return (t2 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_reserve(sk_##t1##_compfunc compare, int n) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_new_reserve((OPENSSL_sk_compfunc)compare, n); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_reserve(STACK_OF(t1) *sk, int n) \ - { \ - return OPENSSL_sk_reserve((OPENSSL_STACK *)sk, n); \ - } \ - static ossl_unused ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_free((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_zero((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \ - { \ - return (t2 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return (t2 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, \ - (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \ - { \ - OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \ - { \ - return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \ - { \ - return (t2 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_unused ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_sort((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *sk) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \ - sk_##t1##_copyfunc copyfunc, \ - sk_##t1##_freefunc freefunc) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, \ - (OPENSSL_sk_copyfunc)copyfunc, \ - (OPENSSL_sk_freefunc)freefunc); \ - } \ - static ossl_unused ossl_inline sk_##t1##_compfunc sk_##t1##_set_cmp_func(STACK_OF(t1) *sk, sk_##t1##_compfunc compare) \ - { \ - return (sk_##t1##_compfunc)OPENSSL_sk_set_cmp_func((OPENSSL_STACK *)sk, (OPENSSL_sk_compfunc)compare); \ - } - -# define DEFINE_SPECIAL_STACK_OF(t1, t2) SKM_DEFINE_STACK_OF(t1, t2, t2) -# define DEFINE_STACK_OF(t) SKM_DEFINE_STACK_OF(t, t, t) -# define DEFINE_SPECIAL_STACK_OF_CONST(t1, t2) \ - SKM_DEFINE_STACK_OF(t1, const t2, t2) -# define DEFINE_STACK_OF_CONST(t) SKM_DEFINE_STACK_OF(t, const t, t) - -/*- - * Strings are special: normally an lhash entry will point to a single - * (somewhat) mutable object. In the case of strings: - * - * a) Instead of a single char, there is an array of chars, NUL-terminated. - * b) The string may have be immutable. - * - * So, they need their own declarations. Especially important for - * type-checking tools, such as Deputy. - * - * In practice, however, it appears to be hard to have a const - * string. For now, I'm settling for dealing with the fact it is a - * string at all. - */ -typedef char *OPENSSL_STRING; -typedef const char *OPENSSL_CSTRING; - -/*- - * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but - * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned - * above, instead of a single char each entry is a NUL-terminated array of - * chars. So, we have to implement STRING specially for STACK_OF. This is - * dealt with in the autogenerated macros below. - */ -DEFINE_SPECIAL_STACK_OF(OPENSSL_STRING, char) -DEFINE_SPECIAL_STACK_OF_CONST(OPENSSL_CSTRING, char) - -/* - * Similarly, we sometimes use a block of characters, NOT nul-terminated. - * These should also be distinguished from "normal" stacks. - */ -typedef void *OPENSSL_BLOCK; -DEFINE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) - -/* - * If called without higher optimization (min. -xO3) the Oracle Developer - * Studio compiler generates code for the defined (static inline) functions - * above. - * This would later lead to the linker complaining about missing symbols when - * this header file is included but the resulting object is not linked against - * the Crypto library (openssl#6912). - */ -# ifdef __SUNPRO_C -# pragma weak OPENSSL_sk_num -# pragma weak OPENSSL_sk_value -# pragma weak OPENSSL_sk_new -# pragma weak OPENSSL_sk_new_null -# pragma weak OPENSSL_sk_new_reserve -# pragma weak OPENSSL_sk_reserve -# pragma weak OPENSSL_sk_free -# pragma weak OPENSSL_sk_zero -# pragma weak OPENSSL_sk_delete -# pragma weak OPENSSL_sk_delete_ptr -# pragma weak OPENSSL_sk_push -# pragma weak OPENSSL_sk_unshift -# pragma weak OPENSSL_sk_pop -# pragma weak OPENSSL_sk_shift -# pragma weak OPENSSL_sk_pop_free -# pragma weak OPENSSL_sk_insert -# pragma weak OPENSSL_sk_set -# pragma weak OPENSSL_sk_find -# pragma weak OPENSSL_sk_find_ex -# pragma weak OPENSSL_sk_sort -# pragma weak OPENSSL_sk_is_sorted -# pragma weak OPENSSL_sk_dup -# pragma weak OPENSSL_sk_deep_copy -# pragma weak OPENSSL_sk_set_cmp_func -# endif /* __SUNPRO_C */ - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/seed.h b/submodules/MtProtoKit/openssl/openssl/seed.h deleted file mode 100644 index de10b08572..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/seed.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * Copyright (c) 2007 KISA(Korea Information Security Agency). All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Neither the name of author nor the names of its contributors may - * be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef HEADER_SEED_H -# define HEADER_SEED_H - -# include - -# ifndef OPENSSL_NO_SEED -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* look whether we need 'long' to get 32 bits */ -# ifdef AES_LONG -# ifndef SEED_LONG -# define SEED_LONG 1 -# endif -# endif - -# include - -# define SEED_BLOCK_SIZE 16 -# define SEED_KEY_LENGTH 16 - -typedef struct seed_key_st { -# ifdef SEED_LONG - unsigned long data[32]; -# else - unsigned int data[32]; -# endif -} SEED_KEY_SCHEDULE; - -void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], - SEED_KEY_SCHEDULE *ks); - -void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE], - unsigned char d[SEED_BLOCK_SIZE], - const SEED_KEY_SCHEDULE *ks); -void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE], - unsigned char d[SEED_BLOCK_SIZE], - const SEED_KEY_SCHEDULE *ks); - -void SEED_ecb_encrypt(const unsigned char *in, unsigned char *out, - const SEED_KEY_SCHEDULE *ks, int enc); -void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, - const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], int enc); -void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], int *num, - int enc); -void SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/sha.h b/submodules/MtProtoKit/openssl/openssl/sha.h deleted file mode 100644 index 6a1eb0de8b..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/sha.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SHA_H -# define HEADER_SHA_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! SHA_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define SHA_LONG unsigned int - -# define SHA_LBLOCK 16 -# define SHA_CBLOCK (SHA_LBLOCK*4)/* SHA treats input data as a - * contiguous array of 32 bit wide - * big-endian values. */ -# define SHA_LAST_BLOCK (SHA_CBLOCK-8) -# define SHA_DIGEST_LENGTH 20 - -typedef struct SHAstate_st { - SHA_LONG h0, h1, h2, h3, h4; - SHA_LONG Nl, Nh; - SHA_LONG data[SHA_LBLOCK]; - unsigned int num; -} SHA_CTX; - -int SHA1_Init(SHA_CTX *c); -int SHA1_Update(SHA_CTX *c, const void *data, size_t len); -int SHA1_Final(unsigned char *md, SHA_CTX *c); -unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); -void SHA1_Transform(SHA_CTX *c, const unsigned char *data); - -# define SHA256_CBLOCK (SHA_LBLOCK*4)/* SHA-256 treats input data as a - * contiguous array of 32 bit wide - * big-endian values. */ - -typedef struct SHA256state_st { - SHA_LONG h[8]; - SHA_LONG Nl, Nh; - SHA_LONG data[SHA_LBLOCK]; - unsigned int num, md_len; -} SHA256_CTX; - -int SHA224_Init(SHA256_CTX *c); -int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); -int SHA224_Final(unsigned char *md, SHA256_CTX *c); -unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); -int SHA256_Init(SHA256_CTX *c); -int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); -int SHA256_Final(unsigned char *md, SHA256_CTX *c); -unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); -void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); - -# define SHA224_DIGEST_LENGTH 28 -# define SHA256_DIGEST_LENGTH 32 -# define SHA384_DIGEST_LENGTH 48 -# define SHA512_DIGEST_LENGTH 64 - -/* - * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64 - * being exactly 64-bit wide. See Implementation Notes in sha512.c - * for further details. - */ -/* - * SHA-512 treats input data as a - * contiguous array of 64 bit - * wide big-endian values. - */ -# define SHA512_CBLOCK (SHA_LBLOCK*8) -# if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__) -# define SHA_LONG64 unsigned __int64 -# define U64(C) C##UI64 -# elif defined(__arch64__) -# define SHA_LONG64 unsigned long -# define U64(C) C##UL -# else -# define SHA_LONG64 unsigned long long -# define U64(C) C##ULL -# endif - -typedef struct SHA512state_st { - SHA_LONG64 h[8]; - SHA_LONG64 Nl, Nh; - union { - SHA_LONG64 d[SHA_LBLOCK]; - unsigned char p[SHA512_CBLOCK]; - } u; - unsigned int num, md_len; -} SHA512_CTX; - -int SHA384_Init(SHA512_CTX *c); -int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); -int SHA384_Final(unsigned char *md, SHA512_CTX *c); -unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); -int SHA512_Init(SHA512_CTX *c); -int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); -int SHA512_Final(unsigned char *md, SHA512_CTX *c); -unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); -void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/srp.h b/submodules/MtProtoKit/openssl/openssl/srp.h deleted file mode 100644 index aaf13558e3..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/srp.h +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright 2004-2018 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2004, EdelKey Project. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - * - * Originally written by Christophe Renou and Peter Sylvester, - * for the EdelKey project. - */ - -#ifndef HEADER_SRP_H -# define HEADER_SRP_H - -#include - -#ifndef OPENSSL_NO_SRP -# include -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct SRP_gN_cache_st { - char *b64_bn; - BIGNUM *bn; -} SRP_gN_cache; - - -DEFINE_STACK_OF(SRP_gN_cache) - -typedef struct SRP_user_pwd_st { - /* Owned by us. */ - char *id; - BIGNUM *s; - BIGNUM *v; - /* Not owned by us. */ - const BIGNUM *g; - const BIGNUM *N; - /* Owned by us. */ - char *info; -} SRP_user_pwd; - -void SRP_user_pwd_free(SRP_user_pwd *user_pwd); - -DEFINE_STACK_OF(SRP_user_pwd) - -typedef struct SRP_VBASE_st { - STACK_OF(SRP_user_pwd) *users_pwd; - STACK_OF(SRP_gN_cache) *gN_cache; -/* to simulate a user */ - char *seed_key; - const BIGNUM *default_g; - const BIGNUM *default_N; -} SRP_VBASE; - -/* - * Internal structure storing N and g pair - */ -typedef struct SRP_gN_st { - char *id; - const BIGNUM *g; - const BIGNUM *N; -} SRP_gN; - -DEFINE_STACK_OF(SRP_gN) - -SRP_VBASE *SRP_VBASE_new(char *seed_key); -void SRP_VBASE_free(SRP_VBASE *vb); -int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); - -/* This method ignores the configured seed and fails for an unknown user. */ -DEPRECATEDIN_1_1_0(SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username)) -/* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/ -SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username); - -char *SRP_create_verifier(const char *user, const char *pass, char **salt, - char **verifier, const char *N, const char *g); -int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, - BIGNUM **verifier, const BIGNUM *N, - const BIGNUM *g); - -# define SRP_NO_ERROR 0 -# define SRP_ERR_VBASE_INCOMPLETE_FILE 1 -# define SRP_ERR_VBASE_BN_LIB 2 -# define SRP_ERR_OPEN_FILE 3 -# define SRP_ERR_MEMORY 4 - -# define DB_srptype 0 -# define DB_srpverifier 1 -# define DB_srpsalt 2 -# define DB_srpid 3 -# define DB_srpgN 4 -# define DB_srpinfo 5 -# undef DB_NUMBER -# define DB_NUMBER 6 - -# define DB_SRP_INDEX 'I' -# define DB_SRP_VALID 'V' -# define DB_SRP_REVOKED 'R' -# define DB_SRP_MODIF 'v' - -/* see srp.c */ -char *SRP_check_known_gN_param(const BIGNUM *g, const BIGNUM *N); -SRP_gN *SRP_get_default_gN(const char *id); - -/* server side .... */ -BIGNUM *SRP_Calc_server_key(const BIGNUM *A, const BIGNUM *v, const BIGNUM *u, - const BIGNUM *b, const BIGNUM *N); -BIGNUM *SRP_Calc_B(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g, - const BIGNUM *v); -int SRP_Verify_A_mod_N(const BIGNUM *A, const BIGNUM *N); -BIGNUM *SRP_Calc_u(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N); - -/* client side .... */ -BIGNUM *SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass); -BIGNUM *SRP_Calc_A(const BIGNUM *a, const BIGNUM *N, const BIGNUM *g); -BIGNUM *SRP_Calc_client_key(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g, - const BIGNUM *x, const BIGNUM *a, const BIGNUM *u); -int SRP_Verify_B_mod_N(const BIGNUM *B, const BIGNUM *N); - -# define SRP_MINIMAL_N 1024 - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/srtp.h b/submodules/MtProtoKit/openssl/openssl/srtp.h deleted file mode 100644 index 0b57c2356c..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/srtp.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * DTLS code by Eric Rescorla - * - * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc. - */ - -#ifndef HEADER_D1_SRTP_H -# define HEADER_D1_SRTP_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define SRTP_AES128_CM_SHA1_80 0x0001 -# define SRTP_AES128_CM_SHA1_32 0x0002 -# define SRTP_AES128_F8_SHA1_80 0x0003 -# define SRTP_AES128_F8_SHA1_32 0x0004 -# define SRTP_NULL_SHA1_80 0x0005 -# define SRTP_NULL_SHA1_32 0x0006 - -/* AEAD SRTP protection profiles from RFC 7714 */ -# define SRTP_AEAD_AES_128_GCM 0x0007 -# define SRTP_AEAD_AES_256_GCM 0x0008 - -# ifndef OPENSSL_NO_SRTP - -__owur int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); -__owur int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles); - -__owur STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); -__owur SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); - -# endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ssl.h b/submodules/MtProtoKit/openssl/openssl/ssl.h deleted file mode 100644 index 6724ccf2d2..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ssl.h +++ /dev/null @@ -1,2438 +0,0 @@ -/* - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * Copyright 2005 Nokia. All rights reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SSL_H -# define HEADER_SSL_H - -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# endif -# include -# include -# include -# include - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* OpenSSL version number for ASN.1 encoding of the session information */ -/*- - * Version 0 - initial version - * Version 1 - added the optional peer certificate - */ -# define SSL_SESSION_ASN1_VERSION 0x0001 - -# define SSL_MAX_SSL_SESSION_ID_LENGTH 32 -# define SSL_MAX_SID_CTX_LENGTH 32 - -# define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8) -# define SSL_MAX_KEY_ARG_LENGTH 8 -# define SSL_MAX_MASTER_KEY_LENGTH 48 - -/* The maximum number of encrypt/decrypt pipelines we can support */ -# define SSL_MAX_PIPELINES 32 - -/* text strings for the ciphers */ - -/* These are used to specify which ciphers to use and not to use */ - -# define SSL_TXT_LOW "LOW" -# define SSL_TXT_MEDIUM "MEDIUM" -# define SSL_TXT_HIGH "HIGH" -# define SSL_TXT_FIPS "FIPS" - -# define SSL_TXT_aNULL "aNULL" -# define SSL_TXT_eNULL "eNULL" -# define SSL_TXT_NULL "NULL" - -# define SSL_TXT_kRSA "kRSA" -# define SSL_TXT_kDHr "kDHr"/* this cipher class has been removed */ -# define SSL_TXT_kDHd "kDHd"/* this cipher class has been removed */ -# define SSL_TXT_kDH "kDH"/* this cipher class has been removed */ -# define SSL_TXT_kEDH "kEDH"/* alias for kDHE */ -# define SSL_TXT_kDHE "kDHE" -# define SSL_TXT_kECDHr "kECDHr"/* this cipher class has been removed */ -# define SSL_TXT_kECDHe "kECDHe"/* this cipher class has been removed */ -# define SSL_TXT_kECDH "kECDH"/* this cipher class has been removed */ -# define SSL_TXT_kEECDH "kEECDH"/* alias for kECDHE */ -# define SSL_TXT_kECDHE "kECDHE" -# define SSL_TXT_kPSK "kPSK" -# define SSL_TXT_kRSAPSK "kRSAPSK" -# define SSL_TXT_kECDHEPSK "kECDHEPSK" -# define SSL_TXT_kDHEPSK "kDHEPSK" -# define SSL_TXT_kGOST "kGOST" -# define SSL_TXT_kSRP "kSRP" - -# define SSL_TXT_aRSA "aRSA" -# define SSL_TXT_aDSS "aDSS" -# define SSL_TXT_aDH "aDH"/* this cipher class has been removed */ -# define SSL_TXT_aECDH "aECDH"/* this cipher class has been removed */ -# define SSL_TXT_aECDSA "aECDSA" -# define SSL_TXT_aPSK "aPSK" -# define SSL_TXT_aGOST94 "aGOST94" -# define SSL_TXT_aGOST01 "aGOST01" -# define SSL_TXT_aGOST12 "aGOST12" -# define SSL_TXT_aGOST "aGOST" -# define SSL_TXT_aSRP "aSRP" - -# define SSL_TXT_DSS "DSS" -# define SSL_TXT_DH "DH" -# define SSL_TXT_DHE "DHE"/* same as "kDHE:-ADH" */ -# define SSL_TXT_EDH "EDH"/* alias for DHE */ -# define SSL_TXT_ADH "ADH" -# define SSL_TXT_RSA "RSA" -# define SSL_TXT_ECDH "ECDH" -# define SSL_TXT_EECDH "EECDH"/* alias for ECDHE" */ -# define SSL_TXT_ECDHE "ECDHE"/* same as "kECDHE:-AECDH" */ -# define SSL_TXT_AECDH "AECDH" -# define SSL_TXT_ECDSA "ECDSA" -# define SSL_TXT_PSK "PSK" -# define SSL_TXT_SRP "SRP" - -# define SSL_TXT_DES "DES" -# define SSL_TXT_3DES "3DES" -# define SSL_TXT_RC4 "RC4" -# define SSL_TXT_RC2 "RC2" -# define SSL_TXT_IDEA "IDEA" -# define SSL_TXT_SEED "SEED" -# define SSL_TXT_AES128 "AES128" -# define SSL_TXT_AES256 "AES256" -# define SSL_TXT_AES "AES" -# define SSL_TXT_AES_GCM "AESGCM" -# define SSL_TXT_AES_CCM "AESCCM" -# define SSL_TXT_AES_CCM_8 "AESCCM8" -# define SSL_TXT_CAMELLIA128 "CAMELLIA128" -# define SSL_TXT_CAMELLIA256 "CAMELLIA256" -# define SSL_TXT_CAMELLIA "CAMELLIA" -# define SSL_TXT_CHACHA20 "CHACHA20" -# define SSL_TXT_GOST "GOST89" -# define SSL_TXT_ARIA "ARIA" -# define SSL_TXT_ARIA_GCM "ARIAGCM" -# define SSL_TXT_ARIA128 "ARIA128" -# define SSL_TXT_ARIA256 "ARIA256" - -# define SSL_TXT_MD5 "MD5" -# define SSL_TXT_SHA1 "SHA1" -# define SSL_TXT_SHA "SHA"/* same as "SHA1" */ -# define SSL_TXT_GOST94 "GOST94" -# define SSL_TXT_GOST89MAC "GOST89MAC" -# define SSL_TXT_GOST12 "GOST12" -# define SSL_TXT_GOST89MAC12 "GOST89MAC12" -# define SSL_TXT_SHA256 "SHA256" -# define SSL_TXT_SHA384 "SHA384" - -# define SSL_TXT_SSLV3 "SSLv3" -# define SSL_TXT_TLSV1 "TLSv1" -# define SSL_TXT_TLSV1_1 "TLSv1.1" -# define SSL_TXT_TLSV1_2 "TLSv1.2" - -# define SSL_TXT_ALL "ALL" - -/*- - * COMPLEMENTOF* definitions. These identifiers are used to (de-select) - * ciphers normally not being used. - * Example: "RC4" will activate all ciphers using RC4 including ciphers - * without authentication, which would normally disabled by DEFAULT (due - * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT" - * will make sure that it is also disabled in the specific selection. - * COMPLEMENTOF* identifiers are portable between version, as adjustments - * to the default cipher setup will also be included here. - * - * COMPLEMENTOFDEFAULT does not experience the same special treatment that - * DEFAULT gets, as only selection is being done and no sorting as needed - * for DEFAULT. - */ -# define SSL_TXT_CMPALL "COMPLEMENTOFALL" -# define SSL_TXT_CMPDEF "COMPLEMENTOFDEFAULT" - -/* - * The following cipher list is used by default. It also is substituted when - * an application-defined cipher list string starts with 'DEFAULT'. - * This applies to ciphersuites for TLSv1.2 and below. - */ -# define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL" -/* This is the default set of TLSv1.3 ciphersuites */ -# if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305) -# define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \ - "TLS_CHACHA20_POLY1305_SHA256:" \ - "TLS_AES_128_GCM_SHA256" -# else -# define TLS_DEFAULT_CIPHERSUITES "TLS_AES_256_GCM_SHA384:" \ - "TLS_AES_128_GCM_SHA256" -#endif -/* - * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always - * starts with a reasonable order, and all we have to do for DEFAULT is - * throwing out anonymous and unencrypted ciphersuites! (The latter are not - * actually enabled by ALL, but "ALL:RSA" would enable some of them.) - */ - -/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ -# define SSL_SENT_SHUTDOWN 1 -# define SSL_RECEIVED_SHUTDOWN 2 - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 -# define SSL_FILETYPE_PEM X509_FILETYPE_PEM - -/* - * This is needed to stop compilers complaining about the 'struct ssl_st *' - * function parameters used to prototype callbacks in SSL_CTX. - */ -typedef struct ssl_st *ssl_crock_st; -typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; -typedef struct ssl_method_st SSL_METHOD; -typedef struct ssl_cipher_st SSL_CIPHER; -typedef struct ssl_session_st SSL_SESSION; -typedef struct tls_sigalgs_st TLS_SIGALGS; -typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; - -STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); - -/* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ -typedef struct srtp_protection_profile_st { - const char *name; - unsigned long id; -} SRTP_PROTECTION_PROFILE; - -DEFINE_STACK_OF(SRTP_PROTECTION_PROFILE) - -typedef int (*tls_session_ticket_ext_cb_fn)(SSL *s, const unsigned char *data, - int len, void *arg); -typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, - STACK_OF(SSL_CIPHER) *peer_ciphers, - const SSL_CIPHER **cipher, void *arg); - -/* Extension context codes */ -/* This extension is only allowed in TLS */ -#define SSL_EXT_TLS_ONLY 0x0001 -/* This extension is only allowed in DTLS */ -#define SSL_EXT_DTLS_ONLY 0x0002 -/* Some extensions may be allowed in DTLS but we don't implement them for it */ -#define SSL_EXT_TLS_IMPLEMENTATION_ONLY 0x0004 -/* Most extensions are not defined for SSLv3 but EXT_TYPE_renegotiate is */ -#define SSL_EXT_SSL3_ALLOWED 0x0008 -/* Extension is only defined for TLS1.2 and below */ -#define SSL_EXT_TLS1_2_AND_BELOW_ONLY 0x0010 -/* Extension is only defined for TLS1.3 and above */ -#define SSL_EXT_TLS1_3_ONLY 0x0020 -/* Ignore this extension during parsing if we are resuming */ -#define SSL_EXT_IGNORE_ON_RESUMPTION 0x0040 -#define SSL_EXT_CLIENT_HELLO 0x0080 -/* Really means TLS1.2 or below */ -#define SSL_EXT_TLS1_2_SERVER_HELLO 0x0100 -#define SSL_EXT_TLS1_3_SERVER_HELLO 0x0200 -#define SSL_EXT_TLS1_3_ENCRYPTED_EXTENSIONS 0x0400 -#define SSL_EXT_TLS1_3_HELLO_RETRY_REQUEST 0x0800 -#define SSL_EXT_TLS1_3_CERTIFICATE 0x1000 -#define SSL_EXT_TLS1_3_NEW_SESSION_TICKET 0x2000 -#define SSL_EXT_TLS1_3_CERTIFICATE_REQUEST 0x4000 - -/* Typedefs for handling custom extensions */ - -typedef int (*custom_ext_add_cb)(SSL *s, unsigned int ext_type, - const unsigned char **out, size_t *outlen, - int *al, void *add_arg); - -typedef void (*custom_ext_free_cb)(SSL *s, unsigned int ext_type, - const unsigned char *out, void *add_arg); - -typedef int (*custom_ext_parse_cb)(SSL *s, unsigned int ext_type, - const unsigned char *in, size_t inlen, - int *al, void *parse_arg); - - -typedef int (*SSL_custom_ext_add_cb_ex)(SSL *s, unsigned int ext_type, - unsigned int context, - const unsigned char **out, - size_t *outlen, X509 *x, - size_t chainidx, - int *al, void *add_arg); - -typedef void (*SSL_custom_ext_free_cb_ex)(SSL *s, unsigned int ext_type, - unsigned int context, - const unsigned char *out, - void *add_arg); - -typedef int (*SSL_custom_ext_parse_cb_ex)(SSL *s, unsigned int ext_type, - unsigned int context, - const unsigned char *in, - size_t inlen, X509 *x, - size_t chainidx, - int *al, void *parse_arg); - -/* Typedef for verification callback */ -typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); - -/* - * Some values are reserved until OpenSSL 1.2.0 because they were previously - * included in SSL_OP_ALL in a 1.1.x release. - * - * Reserved value (until OpenSSL 1.2.0) 0x00000001U - * Reserved value (until OpenSSL 1.2.0) 0x00000002U - */ -/* Allow initial connection to servers that don't support RI */ -# define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004U - -/* Reserved value (until OpenSSL 1.2.0) 0x00000008U */ -# define SSL_OP_TLSEXT_PADDING 0x00000010U -/* Reserved value (until OpenSSL 1.2.0) 0x00000020U */ -# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040U -/* - * Reserved value (until OpenSSL 1.2.0) 0x00000080U - * Reserved value (until OpenSSL 1.2.0) 0x00000100U - * Reserved value (until OpenSSL 1.2.0) 0x00000200U - */ - -/* In TLSv1.3 allow a non-(ec)dhe based kex_mode */ -# define SSL_OP_ALLOW_NO_DHE_KEX 0x00000400U - -/* - * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added in - * OpenSSL 0.9.6d. Usually (depending on the application protocol) the - * workaround is not needed. Unfortunately some broken SSL/TLS - * implementations cannot handle it at all, which is why we include it in - * SSL_OP_ALL. Added in 0.9.6e - */ -# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 0x00000800U - -/* DTLS options */ -# define SSL_OP_NO_QUERY_MTU 0x00001000U -/* Turn on Cookie Exchange (on relevant for servers) */ -# define SSL_OP_COOKIE_EXCHANGE 0x00002000U -/* Don't use RFC4507 ticket extension */ -# define SSL_OP_NO_TICKET 0x00004000U -# ifndef OPENSSL_NO_DTLS1_METHOD -/* Use Cisco's "speshul" version of DTLS_BAD_VER - * (only with deprecated DTLSv1_client_method()) */ -# define SSL_OP_CISCO_ANYCONNECT 0x00008000U -# endif - -/* As server, disallow session resumption on renegotiation */ -# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000U -/* Don't use compression even if supported */ -# define SSL_OP_NO_COMPRESSION 0x00020000U -/* Permit unsafe legacy renegotiation */ -# define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x00040000U -/* Disable encrypt-then-mac */ -# define SSL_OP_NO_ENCRYPT_THEN_MAC 0x00080000U - -/* - * Enable TLSv1.3 Compatibility mode. This is on by default. A future version - * of OpenSSL may have this disabled by default. - */ -# define SSL_OP_ENABLE_MIDDLEBOX_COMPAT 0x00100000U - -/* Prioritize Chacha20Poly1305 when client does. - * Modifies SSL_OP_CIPHER_SERVER_PREFERENCE */ -# define SSL_OP_PRIORITIZE_CHACHA 0x00200000U - -/* - * Set on servers to choose the cipher according to the server's preferences - */ -# define SSL_OP_CIPHER_SERVER_PREFERENCE 0x00400000U -/* - * If set, a server will allow a client to issue a SSLv3.0 version number as - * latest version supported in the premaster secret, even when TLSv1.0 - * (version 3.1) was announced in the client hello. Normally this is - * forbidden to prevent version rollback attacks. - */ -# define SSL_OP_TLS_ROLLBACK_BUG 0x00800000U - -/* - * Switches off automatic TLSv1.3 anti-replay protection for early data. This - * is a server-side option only (no effect on the client). - */ -# define SSL_OP_NO_ANTI_REPLAY 0x01000000U - -# define SSL_OP_NO_SSLv3 0x02000000U -# define SSL_OP_NO_TLSv1 0x04000000U -# define SSL_OP_NO_TLSv1_2 0x08000000U -# define SSL_OP_NO_TLSv1_1 0x10000000U -# define SSL_OP_NO_TLSv1_3 0x20000000U - -# define SSL_OP_NO_DTLSv1 0x04000000U -# define SSL_OP_NO_DTLSv1_2 0x08000000U - -# define SSL_OP_NO_SSL_MASK (SSL_OP_NO_SSLv3|\ - SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1|SSL_OP_NO_TLSv1_2|SSL_OP_NO_TLSv1_3) -# define SSL_OP_NO_DTLS_MASK (SSL_OP_NO_DTLSv1|SSL_OP_NO_DTLSv1_2) - -/* Disallow all renegotiation */ -# define SSL_OP_NO_RENEGOTIATION 0x40000000U - -/* - * Make server add server-hello extension from early version of cryptopro - * draft, when GOST ciphersuite is negotiated. Required for interoperability - * with CryptoPro CSP 3.x - */ -# define SSL_OP_CRYPTOPRO_TLSEXT_BUG 0x80000000U - -/* - * SSL_OP_ALL: various bug workarounds that should be rather harmless. - * This used to be 0x000FFFFFL before 0.9.7. - * This used to be 0x80000BFFU before 1.1.1. - */ -# define SSL_OP_ALL (SSL_OP_CRYPTOPRO_TLSEXT_BUG|\ - SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS|\ - SSL_OP_LEGACY_SERVER_CONNECT|\ - SSL_OP_TLSEXT_PADDING|\ - SSL_OP_SAFARI_ECDHE_ECDSA_BUG) - -/* OBSOLETE OPTIONS: retained for compatibility */ - -/* Removed from OpenSSL 1.1.0. Was 0x00000001L */ -/* Related to removed SSLv2. */ -# define SSL_OP_MICROSOFT_SESS_ID_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000002L */ -/* Related to removed SSLv2. */ -# define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x0 -/* Removed from OpenSSL 0.9.8q and 1.0.0c. Was 0x00000008L */ -/* Dead forever, see CVE-2010-4180 */ -# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x0 -/* Removed from OpenSSL 1.0.1h and 1.0.2. Was 0x00000010L */ -/* Refers to ancient SSLREF and SSLv2. */ -# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000020 */ -# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x0 -/* Removed from OpenSSL 0.9.7h and 0.9.8b. Was 0x00000040L */ -# define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000080 */ -/* Ancient SSLeay version. */ -# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000100L */ -# define SSL_OP_TLS_D5_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000200L */ -# define SSL_OP_TLS_BLOCK_PADDING_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00080000L */ -# define SSL_OP_SINGLE_ECDH_USE 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00100000L */ -# define SSL_OP_SINGLE_DH_USE 0x0 -/* Removed from OpenSSL 1.0.1k and 1.0.2. Was 0x00200000L */ -# define SSL_OP_EPHEMERAL_RSA 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x01000000L */ -# define SSL_OP_NO_SSLv2 0x0 -/* Removed from OpenSSL 1.0.1. Was 0x08000000L */ -# define SSL_OP_PKCS1_CHECK_1 0x0 -/* Removed from OpenSSL 1.0.1. Was 0x10000000L */ -# define SSL_OP_PKCS1_CHECK_2 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x20000000L */ -# define SSL_OP_NETSCAPE_CA_DN_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x40000000L */ -# define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x0 - -/* - * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success - * when just a single record has been written): - */ -# define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001U -/* - * Make it possible to retry SSL_write() with changed buffer location (buffer - * contents must stay the same!); this is not the default to avoid the - * misconception that non-blocking SSL_write() behaves like non-blocking - * write(): - */ -# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002U -/* - * Never bother the application with retries if the transport is blocking: - */ -# define SSL_MODE_AUTO_RETRY 0x00000004U -/* Don't attempt to automatically build certificate chain */ -# define SSL_MODE_NO_AUTO_CHAIN 0x00000008U -/* - * Save RAM by releasing read and write buffers when they're empty. (SSL3 and - * TLS only.) Released buffers are freed. - */ -# define SSL_MODE_RELEASE_BUFFERS 0x00000010U -/* - * Send the current time in the Random fields of the ClientHello and - * ServerHello records for compatibility with hypothetical implementations - * that require it. - */ -# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020U -# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040U -/* - * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications - * that reconnect with a downgraded protocol version; see - * draft-ietf-tls-downgrade-scsv-00 for details. DO NOT ENABLE THIS if your - * application attempts a normal handshake. Only use this in explicit - * fallback retries, following the guidance in - * draft-ietf-tls-downgrade-scsv-00. - */ -# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080U -/* - * Support Asynchronous operation - */ -# define SSL_MODE_ASYNC 0x00000100U - -/* - * When using DTLS/SCTP, include the terminating zero in the label - * used for computing the endpoint-pair shared secret. Required for - * interoperability with implementations having this bug like these - * older version of OpenSSL: - * - OpenSSL 1.0.0 series - * - OpenSSL 1.0.1 series - * - OpenSSL 1.0.2 series - * - OpenSSL 1.1.0 series - * - OpenSSL 1.1.1 and 1.1.1a - */ -# define SSL_MODE_DTLS_SCTP_LABEL_LENGTH_BUG 0x00000400U - -/* Cert related flags */ -/* - * Many implementations ignore some aspects of the TLS standards such as - * enforcing certificate chain algorithms. When this is set we enforce them. - */ -# define SSL_CERT_FLAG_TLS_STRICT 0x00000001U - -/* Suite B modes, takes same values as certificate verify flags */ -# define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY 0x10000 -/* Suite B 192 bit only mode */ -# define SSL_CERT_FLAG_SUITEB_192_LOS 0x20000 -/* Suite B 128 bit mode allowing 192 bit algorithms */ -# define SSL_CERT_FLAG_SUITEB_128_LOS 0x30000 - -/* Perform all sorts of protocol violations for testing purposes */ -# define SSL_CERT_FLAG_BROKEN_PROTOCOL 0x10000000 - -/* Flags for building certificate chains */ -/* Treat any existing certificates as untrusted CAs */ -# define SSL_BUILD_CHAIN_FLAG_UNTRUSTED 0x1 -/* Don't include root CA in chain */ -# define SSL_BUILD_CHAIN_FLAG_NO_ROOT 0x2 -/* Just check certificates already there */ -# define SSL_BUILD_CHAIN_FLAG_CHECK 0x4 -/* Ignore verification errors */ -# define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR 0x8 -/* Clear verification errors from queue */ -# define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR 0x10 - -/* Flags returned by SSL_check_chain */ -/* Certificate can be used with this session */ -# define CERT_PKEY_VALID 0x1 -/* Certificate can also be used for signing */ -# define CERT_PKEY_SIGN 0x2 -/* EE certificate signing algorithm OK */ -# define CERT_PKEY_EE_SIGNATURE 0x10 -/* CA signature algorithms OK */ -# define CERT_PKEY_CA_SIGNATURE 0x20 -/* EE certificate parameters OK */ -# define CERT_PKEY_EE_PARAM 0x40 -/* CA certificate parameters OK */ -# define CERT_PKEY_CA_PARAM 0x80 -/* Signing explicitly allowed as opposed to SHA1 fallback */ -# define CERT_PKEY_EXPLICIT_SIGN 0x100 -/* Client CA issuer names match (always set for server cert) */ -# define CERT_PKEY_ISSUER_NAME 0x200 -/* Cert type matches client types (always set for server cert) */ -# define CERT_PKEY_CERT_TYPE 0x400 -/* Cert chain suitable to Suite B */ -# define CERT_PKEY_SUITEB 0x800 - -# define SSL_CONF_FLAG_CMDLINE 0x1 -# define SSL_CONF_FLAG_FILE 0x2 -# define SSL_CONF_FLAG_CLIENT 0x4 -# define SSL_CONF_FLAG_SERVER 0x8 -# define SSL_CONF_FLAG_SHOW_ERRORS 0x10 -# define SSL_CONF_FLAG_CERTIFICATE 0x20 -# define SSL_CONF_FLAG_REQUIRE_PRIVATE 0x40 -/* Configuration value types */ -# define SSL_CONF_TYPE_UNKNOWN 0x0 -# define SSL_CONF_TYPE_STRING 0x1 -# define SSL_CONF_TYPE_FILE 0x2 -# define SSL_CONF_TYPE_DIR 0x3 -# define SSL_CONF_TYPE_NONE 0x4 - -/* Maximum length of the application-controlled segment of a a TLSv1.3 cookie */ -# define SSL_COOKIE_LENGTH 4096 - -/* - * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they - * cannot be used to clear bits. - */ - -unsigned long SSL_CTX_get_options(const SSL_CTX *ctx); -unsigned long SSL_get_options(const SSL *s); -unsigned long SSL_CTX_clear_options(SSL_CTX *ctx, unsigned long op); -unsigned long SSL_clear_options(SSL *s, unsigned long op); -unsigned long SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op); -unsigned long SSL_set_options(SSL *s, unsigned long op); - -# define SSL_CTX_set_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) -# define SSL_CTX_clear_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL) -# define SSL_CTX_get_mode(ctx) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL) -# define SSL_clear_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL) -# define SSL_set_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL) -# define SSL_get_mode(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL) -# define SSL_set_mtu(ssl, mtu) \ - SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL) -# define DTLS_set_link_mtu(ssl, mtu) \ - SSL_ctrl((ssl),DTLS_CTRL_SET_LINK_MTU,(mtu),NULL) -# define DTLS_get_link_min_mtu(ssl) \ - SSL_ctrl((ssl),DTLS_CTRL_GET_LINK_MIN_MTU,0,NULL) - -# define SSL_get_secure_renegotiation_support(ssl) \ - SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL) - -# ifndef OPENSSL_NO_HEARTBEATS -# define SSL_heartbeat(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT,0,NULL) -# endif - -# define SSL_CTX_set_cert_flags(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL) -# define SSL_set_cert_flags(s,op) \ - SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL) -# define SSL_CTX_clear_cert_flags(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) -# define SSL_clear_cert_flags(s,op) \ - SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) - -void SSL_CTX_set_msg_callback(SSL_CTX *ctx, - void (*cb) (int write_p, int version, - int content_type, const void *buf, - size_t len, SSL *ssl, void *arg)); -void SSL_set_msg_callback(SSL *ssl, - void (*cb) (int write_p, int version, - int content_type, const void *buf, - size_t len, SSL *ssl, void *arg)); -# define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) -# define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) - -# define SSL_get_extms_support(s) \ - SSL_ctrl((s),SSL_CTRL_GET_EXTMS_SUPPORT,0,NULL) - -# ifndef OPENSSL_NO_SRP - -/* see tls_srp.c */ -__owur int SSL_SRP_CTX_init(SSL *s); -__owur int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx); -int SSL_SRP_CTX_free(SSL *ctx); -int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx); -__owur int SSL_srp_server_param_with_username(SSL *s, int *ad); -__owur int SRP_Calc_A_param(SSL *s); - -# endif - -/* 100k max cert list */ -# define SSL_MAX_CERT_LIST_DEFAULT 1024*100 - -# define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) - -/* - * This callback type is used inside SSL_CTX, SSL, and in the functions that - * set them. It is used to override the generation of SSL/TLS session IDs in - * a server. Return value should be zero on an error, non-zero to proceed. - * Also, callbacks should themselves check if the id they generate is unique - * otherwise the SSL handshake will fail with an error - callbacks can do - * this using the 'ssl' value they're passed by; - * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in - * is set at the maximum size the session ID can be. In SSLv3/TLSv1 it is 32 - * bytes. The callback can alter this length to be less if desired. It is - * also an error for the callback to set the size to zero. - */ -typedef int (*GEN_SESSION_CB) (SSL *ssl, unsigned char *id, - unsigned int *id_len); - -# define SSL_SESS_CACHE_OFF 0x0000 -# define SSL_SESS_CACHE_CLIENT 0x0001 -# define SSL_SESS_CACHE_SERVER 0x0002 -# define SSL_SESS_CACHE_BOTH (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER) -# define SSL_SESS_CACHE_NO_AUTO_CLEAR 0x0080 -/* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */ -# define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100 -# define SSL_SESS_CACHE_NO_INTERNAL_STORE 0x0200 -# define SSL_SESS_CACHE_NO_INTERNAL \ - (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE) - -LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx); -# define SSL_CTX_sess_number(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) -# define SSL_CTX_sess_connect(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL) -# define SSL_CTX_sess_connect_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL) -# define SSL_CTX_sess_connect_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL) -# define SSL_CTX_sess_accept(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL) -# define SSL_CTX_sess_accept_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL) -# define SSL_CTX_sess_accept_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL) -# define SSL_CTX_sess_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL) -# define SSL_CTX_sess_cb_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL) -# define SSL_CTX_sess_misses(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL) -# define SSL_CTX_sess_timeouts(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL) -# define SSL_CTX_sess_cache_full(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL) - -void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, - int (*new_session_cb) (struct ssl_st *ssl, - SSL_SESSION *sess)); -int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, - SSL_SESSION *sess); -void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, - void (*remove_session_cb) (struct ssl_ctx_st - *ctx, - SSL_SESSION *sess)); -void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx, - SSL_SESSION *sess); -void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, - SSL_SESSION *(*get_session_cb) (struct ssl_st - *ssl, - const unsigned char - *data, int len, - int *copy)); -SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, - const unsigned char *data, - int len, int *copy); -void SSL_CTX_set_info_callback(SSL_CTX *ctx, - void (*cb) (const SSL *ssl, int type, int val)); -void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type, - int val); -void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, - int (*client_cert_cb) (SSL *ssl, X509 **x509, - EVP_PKEY **pkey)); -int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509, - EVP_PKEY **pkey); -# ifndef OPENSSL_NO_ENGINE -__owur int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e); -# endif -void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, - int (*app_gen_cookie_cb) (SSL *ssl, - unsigned char - *cookie, - unsigned int - *cookie_len)); -void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, - int (*app_verify_cookie_cb) (SSL *ssl, - const unsigned - char *cookie, - unsigned int - cookie_len)); - -void SSL_CTX_set_stateless_cookie_generate_cb( - SSL_CTX *ctx, - int (*gen_stateless_cookie_cb) (SSL *ssl, - unsigned char *cookie, - size_t *cookie_len)); -void SSL_CTX_set_stateless_cookie_verify_cb( - SSL_CTX *ctx, - int (*verify_stateless_cookie_cb) (SSL *ssl, - const unsigned char *cookie, - size_t cookie_len)); -# ifndef OPENSSL_NO_NEXTPROTONEG - -typedef int (*SSL_CTX_npn_advertised_cb_func)(SSL *ssl, - const unsigned char **out, - unsigned int *outlen, - void *arg); -void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, - SSL_CTX_npn_advertised_cb_func cb, - void *arg); -# define SSL_CTX_set_npn_advertised_cb SSL_CTX_set_next_protos_advertised_cb - -typedef int (*SSL_CTX_npn_select_cb_func)(SSL *s, - unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg); -void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, - SSL_CTX_npn_select_cb_func cb, - void *arg); -# define SSL_CTX_set_npn_select_cb SSL_CTX_set_next_proto_select_cb - -void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, - unsigned *len); -# define SSL_get0_npn_negotiated SSL_get0_next_proto_negotiated -# endif - -__owur int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, - const unsigned char *in, unsigned int inlen, - const unsigned char *client, - unsigned int client_len); - -# define OPENSSL_NPN_UNSUPPORTED 0 -# define OPENSSL_NPN_NEGOTIATED 1 -# define OPENSSL_NPN_NO_OVERLAP 2 - -__owur int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, - unsigned int protos_len); -__owur int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, - unsigned int protos_len); -typedef int (*SSL_CTX_alpn_select_cb_func)(SSL *ssl, - const unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg); -void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, - SSL_CTX_alpn_select_cb_func cb, - void *arg); -void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, - unsigned int *len); - -# ifndef OPENSSL_NO_PSK -/* - * the maximum length of the buffer given to callbacks containing the - * resulting identity/psk - */ -# define PSK_MAX_IDENTITY_LEN 128 -# define PSK_MAX_PSK_LEN 256 -typedef unsigned int (*SSL_psk_client_cb_func)(SSL *ssl, - const char *hint, - char *identity, - unsigned int max_identity_len, - unsigned char *psk, - unsigned int max_psk_len); -void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, SSL_psk_client_cb_func cb); -void SSL_set_psk_client_callback(SSL *ssl, SSL_psk_client_cb_func cb); - -typedef unsigned int (*SSL_psk_server_cb_func)(SSL *ssl, - const char *identity, - unsigned char *psk, - unsigned int max_psk_len); -void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, SSL_psk_server_cb_func cb); -void SSL_set_psk_server_callback(SSL *ssl, SSL_psk_server_cb_func cb); - -__owur int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint); -__owur int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint); -const char *SSL_get_psk_identity_hint(const SSL *s); -const char *SSL_get_psk_identity(const SSL *s); -# endif - -typedef int (*SSL_psk_find_session_cb_func)(SSL *ssl, - const unsigned char *identity, - size_t identity_len, - SSL_SESSION **sess); -typedef int (*SSL_psk_use_session_cb_func)(SSL *ssl, const EVP_MD *md, - const unsigned char **id, - size_t *idlen, - SSL_SESSION **sess); - -void SSL_set_psk_find_session_callback(SSL *s, SSL_psk_find_session_cb_func cb); -void SSL_CTX_set_psk_find_session_callback(SSL_CTX *ctx, - SSL_psk_find_session_cb_func cb); -void SSL_set_psk_use_session_callback(SSL *s, SSL_psk_use_session_cb_func cb); -void SSL_CTX_set_psk_use_session_callback(SSL_CTX *ctx, - SSL_psk_use_session_cb_func cb); - -/* Register callbacks to handle custom TLS Extensions for client or server. */ - -__owur int SSL_CTX_has_client_custom_ext(const SSL_CTX *ctx, - unsigned int ext_type); - -__owur int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, - unsigned int ext_type, - custom_ext_add_cb add_cb, - custom_ext_free_cb free_cb, - void *add_arg, - custom_ext_parse_cb parse_cb, - void *parse_arg); - -__owur int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, - unsigned int ext_type, - custom_ext_add_cb add_cb, - custom_ext_free_cb free_cb, - void *add_arg, - custom_ext_parse_cb parse_cb, - void *parse_arg); - -__owur int SSL_CTX_add_custom_ext(SSL_CTX *ctx, unsigned int ext_type, - unsigned int context, - SSL_custom_ext_add_cb_ex add_cb, - SSL_custom_ext_free_cb_ex free_cb, - void *add_arg, - SSL_custom_ext_parse_cb_ex parse_cb, - void *parse_arg); - -__owur int SSL_extension_supported(unsigned int ext_type); - -# define SSL_NOTHING 1 -# define SSL_WRITING 2 -# define SSL_READING 3 -# define SSL_X509_LOOKUP 4 -# define SSL_ASYNC_PAUSED 5 -# define SSL_ASYNC_NO_JOBS 6 -# define SSL_CLIENT_HELLO_CB 7 - -/* These will only be used when doing non-blocking IO */ -# define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING) -# define SSL_want_read(s) (SSL_want(s) == SSL_READING) -# define SSL_want_write(s) (SSL_want(s) == SSL_WRITING) -# define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP) -# define SSL_want_async(s) (SSL_want(s) == SSL_ASYNC_PAUSED) -# define SSL_want_async_job(s) (SSL_want(s) == SSL_ASYNC_NO_JOBS) -# define SSL_want_client_hello_cb(s) (SSL_want(s) == SSL_CLIENT_HELLO_CB) - -# define SSL_MAC_FLAG_READ_MAC_STREAM 1 -# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 - -/* - * A callback for logging out TLS key material. This callback should log out - * |line| followed by a newline. - */ -typedef void (*SSL_CTX_keylog_cb_func)(const SSL *ssl, const char *line); - -/* - * SSL_CTX_set_keylog_callback configures a callback to log key material. This - * is intended for debugging use with tools like Wireshark. The cb function - * should log line followed by a newline. - */ -void SSL_CTX_set_keylog_callback(SSL_CTX *ctx, SSL_CTX_keylog_cb_func cb); - -/* - * SSL_CTX_get_keylog_callback returns the callback configured by - * SSL_CTX_set_keylog_callback. - */ -SSL_CTX_keylog_cb_func SSL_CTX_get_keylog_callback(const SSL_CTX *ctx); - -int SSL_CTX_set_max_early_data(SSL_CTX *ctx, uint32_t max_early_data); -uint32_t SSL_CTX_get_max_early_data(const SSL_CTX *ctx); -int SSL_set_max_early_data(SSL *s, uint32_t max_early_data); -uint32_t SSL_get_max_early_data(const SSL *s); -int SSL_CTX_set_recv_max_early_data(SSL_CTX *ctx, uint32_t recv_max_early_data); -uint32_t SSL_CTX_get_recv_max_early_data(const SSL_CTX *ctx); -int SSL_set_recv_max_early_data(SSL *s, uint32_t recv_max_early_data); -uint32_t SSL_get_recv_max_early_data(const SSL *s); - -#ifdef __cplusplus -} -#endif - -# include -# include -# include /* This is mostly sslv3 with a few tweaks */ -# include /* Datagram TLS */ -# include /* Support for the use_srtp extension */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * These need to be after the above set of includes due to a compiler bug - * in VisualStudio 2015 - */ -DEFINE_STACK_OF_CONST(SSL_CIPHER) -DEFINE_STACK_OF(SSL_COMP) - -/* compatibility */ -# define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)(arg))) -# define SSL_get_app_data(s) (SSL_get_ex_data(s,0)) -# define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0, \ - (char *)(a))) -# define SSL_SESSION_get_app_data(s) (SSL_SESSION_get_ex_data(s,0)) -# define SSL_CTX_get_app_data(ctx) (SSL_CTX_get_ex_data(ctx,0)) -# define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0, \ - (char *)(arg))) -DEPRECATEDIN_1_1_0(void SSL_set_debug(SSL *s, int debug)) - -/* TLSv1.3 KeyUpdate message types */ -/* -1 used so that this is an invalid value for the on-the-wire protocol */ -#define SSL_KEY_UPDATE_NONE -1 -/* Values as defined for the on-the-wire protocol */ -#define SSL_KEY_UPDATE_NOT_REQUESTED 0 -#define SSL_KEY_UPDATE_REQUESTED 1 - -/* - * The valid handshake states (one for each type message sent and one for each - * type of message received). There are also two "special" states: - * TLS = TLS or DTLS state - * DTLS = DTLS specific state - * CR/SR = Client Read/Server Read - * CW/SW = Client Write/Server Write - * - * The "special" states are: - * TLS_ST_BEFORE = No handshake has been initiated yet - * TLS_ST_OK = A handshake has been successfully completed - */ -typedef enum { - TLS_ST_BEFORE, - TLS_ST_OK, - DTLS_ST_CR_HELLO_VERIFY_REQUEST, - TLS_ST_CR_SRVR_HELLO, - TLS_ST_CR_CERT, - TLS_ST_CR_CERT_STATUS, - TLS_ST_CR_KEY_EXCH, - TLS_ST_CR_CERT_REQ, - TLS_ST_CR_SRVR_DONE, - TLS_ST_CR_SESSION_TICKET, - TLS_ST_CR_CHANGE, - TLS_ST_CR_FINISHED, - TLS_ST_CW_CLNT_HELLO, - TLS_ST_CW_CERT, - TLS_ST_CW_KEY_EXCH, - TLS_ST_CW_CERT_VRFY, - TLS_ST_CW_CHANGE, - TLS_ST_CW_NEXT_PROTO, - TLS_ST_CW_FINISHED, - TLS_ST_SW_HELLO_REQ, - TLS_ST_SR_CLNT_HELLO, - DTLS_ST_SW_HELLO_VERIFY_REQUEST, - TLS_ST_SW_SRVR_HELLO, - TLS_ST_SW_CERT, - TLS_ST_SW_KEY_EXCH, - TLS_ST_SW_CERT_REQ, - TLS_ST_SW_SRVR_DONE, - TLS_ST_SR_CERT, - TLS_ST_SR_KEY_EXCH, - TLS_ST_SR_CERT_VRFY, - TLS_ST_SR_NEXT_PROTO, - TLS_ST_SR_CHANGE, - TLS_ST_SR_FINISHED, - TLS_ST_SW_SESSION_TICKET, - TLS_ST_SW_CERT_STATUS, - TLS_ST_SW_CHANGE, - TLS_ST_SW_FINISHED, - TLS_ST_SW_ENCRYPTED_EXTENSIONS, - TLS_ST_CR_ENCRYPTED_EXTENSIONS, - TLS_ST_CR_CERT_VRFY, - TLS_ST_SW_CERT_VRFY, - TLS_ST_CR_HELLO_REQ, - TLS_ST_SW_KEY_UPDATE, - TLS_ST_CW_KEY_UPDATE, - TLS_ST_SR_KEY_UPDATE, - TLS_ST_CR_KEY_UPDATE, - TLS_ST_EARLY_DATA, - TLS_ST_PENDING_EARLY_DATA_END, - TLS_ST_CW_END_OF_EARLY_DATA, - TLS_ST_SR_END_OF_EARLY_DATA -} OSSL_HANDSHAKE_STATE; - -/* - * Most of the following state values are no longer used and are defined to be - * the closest equivalent value in the current state machine code. Not all - * defines have an equivalent and are set to a dummy value (-1). SSL_ST_CONNECT - * and SSL_ST_ACCEPT are still in use in the definition of SSL_CB_ACCEPT_LOOP, - * SSL_CB_ACCEPT_EXIT, SSL_CB_CONNECT_LOOP and SSL_CB_CONNECT_EXIT. - */ - -# define SSL_ST_CONNECT 0x1000 -# define SSL_ST_ACCEPT 0x2000 - -# define SSL_ST_MASK 0x0FFF - -# define SSL_CB_LOOP 0x01 -# define SSL_CB_EXIT 0x02 -# define SSL_CB_READ 0x04 -# define SSL_CB_WRITE 0x08 -# define SSL_CB_ALERT 0x4000/* used in callback */ -# define SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ) -# define SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE) -# define SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP) -# define SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT) -# define SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP) -# define SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT) -# define SSL_CB_HANDSHAKE_START 0x10 -# define SSL_CB_HANDSHAKE_DONE 0x20 - -/* Is the SSL_connection established? */ -# define SSL_in_connect_init(a) (SSL_in_init(a) && !SSL_is_server(a)) -# define SSL_in_accept_init(a) (SSL_in_init(a) && SSL_is_server(a)) -int SSL_in_init(const SSL *s); -int SSL_in_before(const SSL *s); -int SSL_is_init_finished(const SSL *s); - -/* - * The following 3 states are kept in ssl->rlayer.rstate when reads fail, you - * should not need these - */ -# define SSL_ST_READ_HEADER 0xF0 -# define SSL_ST_READ_BODY 0xF1 -# define SSL_ST_READ_DONE 0xF2 - -/*- - * Obtain latest Finished message - * -- that we sent (SSL_get_finished) - * -- that we expected from peer (SSL_get_peer_finished). - * Returns length (0 == no Finished so far), copies up to 'count' bytes. - */ -size_t SSL_get_finished(const SSL *s, void *buf, size_t count); -size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); - -/* - * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 3 options are - * 'ored' with SSL_VERIFY_PEER if they are desired - */ -# define SSL_VERIFY_NONE 0x00 -# define SSL_VERIFY_PEER 0x01 -# define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 -# define SSL_VERIFY_CLIENT_ONCE 0x04 -# define SSL_VERIFY_POST_HANDSHAKE 0x08 - -# if OPENSSL_API_COMPAT < 0x10100000L -# define OpenSSL_add_ssl_algorithms() SSL_library_init() -# define SSLeay_add_ssl_algorithms() SSL_library_init() -# endif - -/* More backward compatibility */ -# define SSL_get_cipher(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -# define SSL_get_cipher_bits(s,np) \ - SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np) -# define SSL_get_cipher_version(s) \ - SSL_CIPHER_get_version(SSL_get_current_cipher(s)) -# define SSL_get_cipher_name(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -# define SSL_get_time(a) SSL_SESSION_get_time(a) -# define SSL_set_time(a,b) SSL_SESSION_set_time((a),(b)) -# define SSL_get_timeout(a) SSL_SESSION_get_timeout(a) -# define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b)) - -# define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id) -# define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id) - -DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) -# define SSL_AD_REASON_OFFSET 1000/* offset to get SSL_R_... value - * from SSL_AD_... */ -/* These alert types are for SSLv3 and TLSv1 */ -# define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY -/* fatal */ -# define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE -/* fatal */ -# define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC -# define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED -# define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW -/* fatal */ -# define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE -/* fatal */ -# define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE -/* Not for TLS */ -# define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE -# define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE -# define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE -# define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED -# define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED -# define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN -/* fatal */ -# define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER -/* fatal */ -# define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA -/* fatal */ -# define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED -/* fatal */ -# define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR -# define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR -/* fatal */ -# define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION -/* fatal */ -# define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION -/* fatal */ -# define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY -/* fatal */ -# define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR -# define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED -# define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION -# define SSL_AD_MISSING_EXTENSION TLS13_AD_MISSING_EXTENSION -# define SSL_AD_CERTIFICATE_REQUIRED TLS13_AD_CERTIFICATE_REQUIRED -# define SSL_AD_UNSUPPORTED_EXTENSION TLS1_AD_UNSUPPORTED_EXTENSION -# define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE -# define SSL_AD_UNRECOGNIZED_NAME TLS1_AD_UNRECOGNIZED_NAME -# define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE -# define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE -/* fatal */ -# define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY -/* fatal */ -# define SSL_AD_INAPPROPRIATE_FALLBACK TLS1_AD_INAPPROPRIATE_FALLBACK -# define SSL_AD_NO_APPLICATION_PROTOCOL TLS1_AD_NO_APPLICATION_PROTOCOL -# define SSL_ERROR_NONE 0 -# define SSL_ERROR_SSL 1 -# define SSL_ERROR_WANT_READ 2 -# define SSL_ERROR_WANT_WRITE 3 -# define SSL_ERROR_WANT_X509_LOOKUP 4 -# define SSL_ERROR_SYSCALL 5/* look at error stack/return - * value/errno */ -# define SSL_ERROR_ZERO_RETURN 6 -# define SSL_ERROR_WANT_CONNECT 7 -# define SSL_ERROR_WANT_ACCEPT 8 -# define SSL_ERROR_WANT_ASYNC 9 -# define SSL_ERROR_WANT_ASYNC_JOB 10 -# define SSL_ERROR_WANT_CLIENT_HELLO_CB 11 -# define SSL_CTRL_SET_TMP_DH 3 -# define SSL_CTRL_SET_TMP_ECDH 4 -# define SSL_CTRL_SET_TMP_DH_CB 6 -# define SSL_CTRL_GET_CLIENT_CERT_REQUEST 9 -# define SSL_CTRL_GET_NUM_RENEGOTIATIONS 10 -# define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11 -# define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12 -# define SSL_CTRL_GET_FLAGS 13 -# define SSL_CTRL_EXTRA_CHAIN_CERT 14 -# define SSL_CTRL_SET_MSG_CALLBACK 15 -# define SSL_CTRL_SET_MSG_CALLBACK_ARG 16 -/* only applies to datagram connections */ -# define SSL_CTRL_SET_MTU 17 -/* Stats */ -# define SSL_CTRL_SESS_NUMBER 20 -# define SSL_CTRL_SESS_CONNECT 21 -# define SSL_CTRL_SESS_CONNECT_GOOD 22 -# define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23 -# define SSL_CTRL_SESS_ACCEPT 24 -# define SSL_CTRL_SESS_ACCEPT_GOOD 25 -# define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26 -# define SSL_CTRL_SESS_HIT 27 -# define SSL_CTRL_SESS_CB_HIT 28 -# define SSL_CTRL_SESS_MISSES 29 -# define SSL_CTRL_SESS_TIMEOUTS 30 -# define SSL_CTRL_SESS_CACHE_FULL 31 -# define SSL_CTRL_MODE 33 -# define SSL_CTRL_GET_READ_AHEAD 40 -# define SSL_CTRL_SET_READ_AHEAD 41 -# define SSL_CTRL_SET_SESS_CACHE_SIZE 42 -# define SSL_CTRL_GET_SESS_CACHE_SIZE 43 -# define SSL_CTRL_SET_SESS_CACHE_MODE 44 -# define SSL_CTRL_GET_SESS_CACHE_MODE 45 -# define SSL_CTRL_GET_MAX_CERT_LIST 50 -# define SSL_CTRL_SET_MAX_CERT_LIST 51 -# define SSL_CTRL_SET_MAX_SEND_FRAGMENT 52 -/* see tls1.h for macros based on these */ -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53 -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG 54 -# define SSL_CTRL_SET_TLSEXT_HOSTNAME 55 -# define SSL_CTRL_SET_TLSEXT_DEBUG_CB 56 -# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57 -# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59 -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 */ -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 */ -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 */ -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72 -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB 75 -# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB 76 -# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB 77 -# define SSL_CTRL_SET_SRP_ARG 78 -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME 79 -# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH 80 -# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD 81 -# ifndef OPENSSL_NO_HEARTBEATS -# define SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT 85 -# define SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING 86 -# define SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS 87 -# endif -# define DTLS_CTRL_GET_TIMEOUT 73 -# define DTLS_CTRL_HANDLE_TIMEOUT 74 -# define SSL_CTRL_GET_RI_SUPPORT 76 -# define SSL_CTRL_CLEAR_MODE 78 -# define SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB 79 -# define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82 -# define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 -# define SSL_CTRL_CHAIN 88 -# define SSL_CTRL_CHAIN_CERT 89 -# define SSL_CTRL_GET_GROUPS 90 -# define SSL_CTRL_SET_GROUPS 91 -# define SSL_CTRL_SET_GROUPS_LIST 92 -# define SSL_CTRL_GET_SHARED_GROUP 93 -# define SSL_CTRL_SET_SIGALGS 97 -# define SSL_CTRL_SET_SIGALGS_LIST 98 -# define SSL_CTRL_CERT_FLAGS 99 -# define SSL_CTRL_CLEAR_CERT_FLAGS 100 -# define SSL_CTRL_SET_CLIENT_SIGALGS 101 -# define SSL_CTRL_SET_CLIENT_SIGALGS_LIST 102 -# define SSL_CTRL_GET_CLIENT_CERT_TYPES 103 -# define SSL_CTRL_SET_CLIENT_CERT_TYPES 104 -# define SSL_CTRL_BUILD_CERT_CHAIN 105 -# define SSL_CTRL_SET_VERIFY_CERT_STORE 106 -# define SSL_CTRL_SET_CHAIN_CERT_STORE 107 -# define SSL_CTRL_GET_PEER_SIGNATURE_NID 108 -# define SSL_CTRL_GET_PEER_TMP_KEY 109 -# define SSL_CTRL_GET_RAW_CIPHERLIST 110 -# define SSL_CTRL_GET_EC_POINT_FORMATS 111 -# define SSL_CTRL_GET_CHAIN_CERTS 115 -# define SSL_CTRL_SELECT_CURRENT_CERT 116 -# define SSL_CTRL_SET_CURRENT_CERT 117 -# define SSL_CTRL_SET_DH_AUTO 118 -# define DTLS_CTRL_SET_LINK_MTU 120 -# define DTLS_CTRL_GET_LINK_MIN_MTU 121 -# define SSL_CTRL_GET_EXTMS_SUPPORT 122 -# define SSL_CTRL_SET_MIN_PROTO_VERSION 123 -# define SSL_CTRL_SET_MAX_PROTO_VERSION 124 -# define SSL_CTRL_SET_SPLIT_SEND_FRAGMENT 125 -# define SSL_CTRL_SET_MAX_PIPELINES 126 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE 127 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB 128 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG 129 -# define SSL_CTRL_GET_MIN_PROTO_VERSION 130 -# define SSL_CTRL_GET_MAX_PROTO_VERSION 131 -# define SSL_CTRL_GET_SIGNATURE_NID 132 -# define SSL_CTRL_GET_TMP_KEY 133 -# define SSL_CERT_SET_FIRST 1 -# define SSL_CERT_SET_NEXT 2 -# define SSL_CERT_SET_SERVER 3 -# define DTLSv1_get_timeout(ssl, arg) \ - SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)(arg)) -# define DTLSv1_handle_timeout(ssl) \ - SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL) -# define SSL_num_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL) -# define SSL_clear_num_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL) -# define SSL_total_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL) -# define SSL_CTX_set_tmp_dh(ctx,dh) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)(dh)) -# define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh)) -# define SSL_CTX_set_dh_auto(ctx, onoff) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_DH_AUTO,onoff,NULL) -# define SSL_set_dh_auto(s, onoff) \ - SSL_ctrl(s,SSL_CTRL_SET_DH_AUTO,onoff,NULL) -# define SSL_set_tmp_dh(ssl,dh) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)(dh)) -# define SSL_set_tmp_ecdh(ssl,ecdh) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)(ecdh)) -# define SSL_CTX_add_extra_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)(x509)) -# define SSL_CTX_get_extra_chain_certs(ctx,px509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509) -# define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509) -# define SSL_CTX_clear_extra_chain_certs(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL) -# define SSL_CTX_set0_chain(ctx,sk) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)(sk)) -# define SSL_CTX_set1_chain(ctx,sk) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)(sk)) -# define SSL_CTX_add0_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) -# define SSL_CTX_add1_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) -# define SSL_CTX_get0_chain_certs(ctx,px509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) -# define SSL_CTX_clear_chain_certs(ctx) \ - SSL_CTX_set0_chain(ctx,NULL) -# define SSL_CTX_build_cert_chain(ctx, flags) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) -# define SSL_CTX_select_current_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) -# define SSL_CTX_set_current_cert(ctx, op) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) -# define SSL_CTX_set0_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_CTX_set1_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) -# define SSL_CTX_set0_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st)) -# define SSL_CTX_set1_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st)) -# define SSL_set0_chain(s,sk) \ - SSL_ctrl(s,SSL_CTRL_CHAIN,0,(char *)(sk)) -# define SSL_set1_chain(s,sk) \ - SSL_ctrl(s,SSL_CTRL_CHAIN,1,(char *)(sk)) -# define SSL_add0_chain_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) -# define SSL_add1_chain_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) -# define SSL_get0_chain_certs(s,px509) \ - SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERTS,0,px509) -# define SSL_clear_chain_certs(s) \ - SSL_set0_chain(s,NULL) -# define SSL_build_cert_chain(s, flags) \ - SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) -# define SSL_select_current_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) -# define SSL_set_current_cert(s,op) \ - SSL_ctrl(s,SSL_CTRL_SET_CURRENT_CERT, op, NULL) -# define SSL_set0_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_set1_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) -# define SSL_set0_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)(st)) -# define SSL_set1_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)(st)) -# define SSL_get1_groups(s, glist) \ - SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) -# define SSL_CTX_set1_groups(ctx, glist, glistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) -# define SSL_CTX_set1_groups_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(s)) -# define SSL_set1_groups(s, glist, glistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) -# define SSL_set1_groups_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(str)) -# define SSL_get_shared_group(s, n) \ - SSL_ctrl(s,SSL_CTRL_GET_SHARED_GROUP,n,NULL) -# define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) -# define SSL_CTX_set1_sigalgs_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(s)) -# define SSL_set1_sigalgs(s, slist, slistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) -# define SSL_set1_sigalgs_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(str)) -# define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist)) -# define SSL_CTX_set1_client_sigalgs_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(s)) -# define SSL_set1_client_sigalgs(s, slist, slistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist)) -# define SSL_set1_client_sigalgs_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(str)) -# define SSL_get0_certificate_types(s, clist) \ - SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)(clist)) -# define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen, \ - (char *)(clist)) -# define SSL_set1_client_certificate_types(s, clist, clistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)(clist)) -# define SSL_get_signature_nid(s, pn) \ - SSL_ctrl(s,SSL_CTRL_GET_SIGNATURE_NID,0,pn) -# define SSL_get_peer_signature_nid(s, pn) \ - SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) -# define SSL_get_peer_tmp_key(s, pk) \ - SSL_ctrl(s,SSL_CTRL_GET_PEER_TMP_KEY,0,pk) -# define SSL_get_tmp_key(s, pk) \ - SSL_ctrl(s,SSL_CTRL_GET_TMP_KEY,0,pk) -# define SSL_get0_raw_cipherlist(s, plst) \ - SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,plst) -# define SSL_get0_ec_point_formats(s, plst) \ - SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,plst) -# define SSL_CTX_set_min_proto_version(ctx, version) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) -# define SSL_CTX_set_max_proto_version(ctx, version) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) -# define SSL_CTX_get_min_proto_version(ctx) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) -# define SSL_CTX_get_max_proto_version(ctx) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) -# define SSL_set_min_proto_version(s, version) \ - SSL_ctrl(s, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) -# define SSL_set_max_proto_version(s, version) \ - SSL_ctrl(s, SSL_CTRL_SET_MAX_PROTO_VERSION, version, NULL) -# define SSL_get_min_proto_version(s) \ - SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) -# define SSL_get_max_proto_version(s) \ - SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) - -/* Backwards compatibility, original 1.1.0 names */ -# define SSL_CTRL_GET_SERVER_TMP_KEY \ - SSL_CTRL_GET_PEER_TMP_KEY -# define SSL_get_server_tmp_key(s, pk) \ - SSL_get_peer_tmp_key(s, pk) - -/* - * The following symbol names are old and obsolete. They are kept - * for compatibility reasons only and should not be used anymore. - */ -# define SSL_CTRL_GET_CURVES SSL_CTRL_GET_GROUPS -# define SSL_CTRL_SET_CURVES SSL_CTRL_SET_GROUPS -# define SSL_CTRL_SET_CURVES_LIST SSL_CTRL_SET_GROUPS_LIST -# define SSL_CTRL_GET_SHARED_CURVE SSL_CTRL_GET_SHARED_GROUP - -# define SSL_get1_curves SSL_get1_groups -# define SSL_CTX_set1_curves SSL_CTX_set1_groups -# define SSL_CTX_set1_curves_list SSL_CTX_set1_groups_list -# define SSL_set1_curves SSL_set1_groups -# define SSL_set1_curves_list SSL_set1_groups_list -# define SSL_get_shared_curve SSL_get_shared_group - - -# if OPENSSL_API_COMPAT < 0x10100000L -/* Provide some compatibility macros for removed functionality. */ -# define SSL_CTX_need_tmp_RSA(ctx) 0 -# define SSL_CTX_set_tmp_rsa(ctx,rsa) 1 -# define SSL_need_tmp_RSA(ssl) 0 -# define SSL_set_tmp_rsa(ssl,rsa) 1 -# define SSL_CTX_set_ecdh_auto(dummy, onoff) ((onoff) != 0) -# define SSL_set_ecdh_auto(dummy, onoff) ((onoff) != 0) -/* - * We "pretend" to call the callback to avoid warnings about unused static - * functions. - */ -# define SSL_CTX_set_tmp_rsa_callback(ctx, cb) while(0) (cb)(NULL, 0, 0) -# define SSL_set_tmp_rsa_callback(ssl, cb) while(0) (cb)(NULL, 0, 0) -# endif -__owur const BIO_METHOD *BIO_f_ssl(void); -__owur BIO *BIO_new_ssl(SSL_CTX *ctx, int client); -__owur BIO *BIO_new_ssl_connect(SSL_CTX *ctx); -__owur BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); -__owur int BIO_ssl_copy_session_id(BIO *to, BIO *from); -void BIO_ssl_shutdown(BIO *ssl_bio); - -__owur int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str); -__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); -int SSL_CTX_up_ref(SSL_CTX *ctx); -void SSL_CTX_free(SSL_CTX *); -__owur long SSL_CTX_set_timeout(SSL_CTX *ctx, long t); -__owur long SSL_CTX_get_timeout(const SSL_CTX *ctx); -__owur X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *); -void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *); -void SSL_CTX_set1_cert_store(SSL_CTX *, X509_STORE *); -__owur int SSL_want(const SSL *s); -__owur int SSL_clear(SSL *s); - -void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); - -__owur const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); -__owur const SSL_CIPHER *SSL_get_pending_cipher(const SSL *s); -__owur int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits); -__owur const char *SSL_CIPHER_get_version(const SSL_CIPHER *c); -__owur const char *SSL_CIPHER_get_name(const SSL_CIPHER *c); -__owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); -__owur const char *OPENSSL_cipher_name(const char *rfc_name); -__owur uint32_t SSL_CIPHER_get_id(const SSL_CIPHER *c); -__owur uint16_t SSL_CIPHER_get_protocol_id(const SSL_CIPHER *c); -__owur int SSL_CIPHER_get_kx_nid(const SSL_CIPHER *c); -__owur int SSL_CIPHER_get_auth_nid(const SSL_CIPHER *c); -__owur const EVP_MD *SSL_CIPHER_get_handshake_digest(const SSL_CIPHER *c); -__owur int SSL_CIPHER_is_aead(const SSL_CIPHER *c); - -__owur int SSL_get_fd(const SSL *s); -__owur int SSL_get_rfd(const SSL *s); -__owur int SSL_get_wfd(const SSL *s); -__owur const char *SSL_get_cipher_list(const SSL *s, int n); -__owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size); -__owur int SSL_get_read_ahead(const SSL *s); -__owur int SSL_pending(const SSL *s); -__owur int SSL_has_pending(const SSL *s); -# ifndef OPENSSL_NO_SOCK -__owur int SSL_set_fd(SSL *s, int fd); -__owur int SSL_set_rfd(SSL *s, int fd); -__owur int SSL_set_wfd(SSL *s, int fd); -# endif -void SSL_set0_rbio(SSL *s, BIO *rbio); -void SSL_set0_wbio(SSL *s, BIO *wbio); -void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio); -__owur BIO *SSL_get_rbio(const SSL *s); -__owur BIO *SSL_get_wbio(const SSL *s); -__owur int SSL_set_cipher_list(SSL *s, const char *str); -__owur int SSL_CTX_set_ciphersuites(SSL_CTX *ctx, const char *str); -__owur int SSL_set_ciphersuites(SSL *s, const char *str); -void SSL_set_read_ahead(SSL *s, int yes); -__owur int SSL_get_verify_mode(const SSL *s); -__owur int SSL_get_verify_depth(const SSL *s); -__owur SSL_verify_cb SSL_get_verify_callback(const SSL *s); -void SSL_set_verify(SSL *s, int mode, SSL_verify_cb callback); -void SSL_set_verify_depth(SSL *s, int depth); -void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg); -# ifndef OPENSSL_NO_RSA -__owur int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); -__owur int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const unsigned char *d, - long len); -# endif -__owur int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); -__owur int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, - long len); -__owur int SSL_use_certificate(SSL *ssl, X509 *x); -__owur int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); -__owur int SSL_use_cert_and_key(SSL *ssl, X509 *x509, EVP_PKEY *privatekey, - STACK_OF(X509) *chain, int override); - - -/* serverinfo file format versions */ -# define SSL_SERVERINFOV1 1 -# define SSL_SERVERINFOV2 2 - -/* Set serverinfo data for the current active cert. */ -__owur int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, - size_t serverinfo_length); -__owur int SSL_CTX_use_serverinfo_ex(SSL_CTX *ctx, unsigned int version, - const unsigned char *serverinfo, - size_t serverinfo_length); -__owur int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); - -#ifndef OPENSSL_NO_RSA -__owur int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); -#endif - -__owur int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); -__owur int SSL_use_certificate_file(SSL *ssl, const char *file, int type); - -#ifndef OPENSSL_NO_RSA -__owur int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, - int type); -#endif -__owur int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, - int type); -__owur int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, - int type); -/* PEM type */ -__owur int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); -__owur int SSL_use_certificate_chain_file(SSL *ssl, const char *file); -__owur STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); -__owur int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, - const char *file); -int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, - const char *dir); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define SSL_load_error_strings() \ - OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \ - | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) -# endif - -__owur const char *SSL_state_string(const SSL *s); -__owur const char *SSL_rstate_string(const SSL *s); -__owur const char *SSL_state_string_long(const SSL *s); -__owur const char *SSL_rstate_string_long(const SSL *s); -__owur long SSL_SESSION_get_time(const SSL_SESSION *s); -__owur long SSL_SESSION_set_time(SSL_SESSION *s, long t); -__owur long SSL_SESSION_get_timeout(const SSL_SESSION *s); -__owur long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); -__owur int SSL_SESSION_get_protocol_version(const SSL_SESSION *s); -__owur int SSL_SESSION_set_protocol_version(SSL_SESSION *s, int version); - -__owur const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); -__owur int SSL_SESSION_set1_hostname(SSL_SESSION *s, const char *hostname); -void SSL_SESSION_get0_alpn_selected(const SSL_SESSION *s, - const unsigned char **alpn, - size_t *len); -__owur int SSL_SESSION_set1_alpn_selected(SSL_SESSION *s, - const unsigned char *alpn, - size_t len); -__owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s); -__owur int SSL_SESSION_set_cipher(SSL_SESSION *s, const SSL_CIPHER *cipher); -__owur int SSL_SESSION_has_ticket(const SSL_SESSION *s); -__owur unsigned long SSL_SESSION_get_ticket_lifetime_hint(const SSL_SESSION *s); -void SSL_SESSION_get0_ticket(const SSL_SESSION *s, const unsigned char **tick, - size_t *len); -__owur uint32_t SSL_SESSION_get_max_early_data(const SSL_SESSION *s); -__owur int SSL_SESSION_set_max_early_data(SSL_SESSION *s, - uint32_t max_early_data); -__owur int SSL_copy_session_id(SSL *to, const SSL *from); -__owur X509 *SSL_SESSION_get0_peer(SSL_SESSION *s); -__owur int SSL_SESSION_set1_id_context(SSL_SESSION *s, - const unsigned char *sid_ctx, - unsigned int sid_ctx_len); -__owur int SSL_SESSION_set1_id(SSL_SESSION *s, const unsigned char *sid, - unsigned int sid_len); -__owur int SSL_SESSION_is_resumable(const SSL_SESSION *s); - -__owur SSL_SESSION *SSL_SESSION_new(void); -__owur SSL_SESSION *SSL_SESSION_dup(SSL_SESSION *src); -const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, - unsigned int *len); -const unsigned char *SSL_SESSION_get0_id_context(const SSL_SESSION *s, - unsigned int *len); -__owur unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s); -# ifndef OPENSSL_NO_STDIO -int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses); -# endif -int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); -int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x); -int SSL_SESSION_up_ref(SSL_SESSION *ses); -void SSL_SESSION_free(SSL_SESSION *ses); -__owur int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp); -__owur int SSL_set_session(SSL *to, SSL_SESSION *session); -int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *session); -int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *session); -__owur int SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb); -__owur int SSL_set_generate_session_id(SSL *s, GEN_SESSION_CB cb); -__owur int SSL_has_matching_session_id(const SSL *s, - const unsigned char *id, - unsigned int id_len); -SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, - long length); - -# ifdef HEADER_X509_H -__owur X509 *SSL_get_peer_certificate(const SSL *s); -# endif - -__owur STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s); - -__owur int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); -__owur int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); -__owur SSL_verify_cb SSL_CTX_get_verify_callback(const SSL_CTX *ctx); -void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, SSL_verify_cb callback); -void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth); -void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, - int (*cb) (X509_STORE_CTX *, void *), - void *arg); -void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), - void *arg); -# ifndef OPENSSL_NO_RSA -__owur int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); -__owur int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, - long len); -# endif -__owur int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); -__owur int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, - const unsigned char *d, long len); -__owur int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); -__owur int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, - const unsigned char *d); -__owur int SSL_CTX_use_cert_and_key(SSL_CTX *ctx, X509 *x509, EVP_PKEY *privatekey, - STACK_OF(X509) *chain, int override); - -void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); -void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); -pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx); -void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx); -void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb); -void SSL_set_default_passwd_cb_userdata(SSL *s, void *u); -pem_password_cb *SSL_get_default_passwd_cb(SSL *s); -void *SSL_get_default_passwd_cb_userdata(SSL *s); - -__owur int SSL_CTX_check_private_key(const SSL_CTX *ctx); -__owur int SSL_check_private_key(const SSL *ctx); - -__owur int SSL_CTX_set_session_id_context(SSL_CTX *ctx, - const unsigned char *sid_ctx, - unsigned int sid_ctx_len); - -SSL *SSL_new(SSL_CTX *ctx); -int SSL_up_ref(SSL *s); -int SSL_is_dtls(const SSL *s); -__owur int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, - unsigned int sid_ctx_len); - -__owur int SSL_CTX_set_purpose(SSL_CTX *ctx, int purpose); -__owur int SSL_set_purpose(SSL *ssl, int purpose); -__owur int SSL_CTX_set_trust(SSL_CTX *ctx, int trust); -__owur int SSL_set_trust(SSL *ssl, int trust); - -__owur int SSL_set1_host(SSL *s, const char *hostname); -__owur int SSL_add1_host(SSL *s, const char *hostname); -__owur const char *SSL_get0_peername(SSL *s); -void SSL_set_hostflags(SSL *s, unsigned int flags); - -__owur int SSL_CTX_dane_enable(SSL_CTX *ctx); -__owur int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md, - uint8_t mtype, uint8_t ord); -__owur int SSL_dane_enable(SSL *s, const char *basedomain); -__owur int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector, - uint8_t mtype, unsigned const char *data, size_t dlen); -__owur int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki); -__owur int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector, - uint8_t *mtype, unsigned const char **data, - size_t *dlen); -/* - * Bridge opacity barrier between libcrypt and libssl, also needed to support - * offline testing in test/danetest.c - */ -SSL_DANE *SSL_get0_dane(SSL *ssl); -/* - * DANE flags - */ -unsigned long SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags); -unsigned long SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long flags); -unsigned long SSL_dane_set_flags(SSL *ssl, unsigned long flags); -unsigned long SSL_dane_clear_flags(SSL *ssl, unsigned long flags); - -__owur int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); -__owur int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); - -__owur X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); -__owur X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); - -# ifndef OPENSSL_NO_SRP -int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name); -int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password); -int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength); -int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx, - char *(*cb) (SSL *, void *)); -int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx, - int (*cb) (SSL *, void *)); -int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx, - int (*cb) (SSL *, int *, void *)); -int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg); - -int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g, - BIGNUM *sa, BIGNUM *v, char *info); -int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass, - const char *grp); - -__owur BIGNUM *SSL_get_srp_g(SSL *s); -__owur BIGNUM *SSL_get_srp_N(SSL *s); - -__owur char *SSL_get_srp_username(SSL *s); -__owur char *SSL_get_srp_userinfo(SSL *s); -# endif - -/* - * ClientHello callback and helpers. - */ - -# define SSL_CLIENT_HELLO_SUCCESS 1 -# define SSL_CLIENT_HELLO_ERROR 0 -# define SSL_CLIENT_HELLO_RETRY (-1) - -typedef int (*SSL_client_hello_cb_fn) (SSL *s, int *al, void *arg); -void SSL_CTX_set_client_hello_cb(SSL_CTX *c, SSL_client_hello_cb_fn cb, - void *arg); -int SSL_client_hello_isv2(SSL *s); -unsigned int SSL_client_hello_get0_legacy_version(SSL *s); -size_t SSL_client_hello_get0_random(SSL *s, const unsigned char **out); -size_t SSL_client_hello_get0_session_id(SSL *s, const unsigned char **out); -size_t SSL_client_hello_get0_ciphers(SSL *s, const unsigned char **out); -size_t SSL_client_hello_get0_compression_methods(SSL *s, - const unsigned char **out); -int SSL_client_hello_get1_extensions_present(SSL *s, int **out, size_t *outlen); -int SSL_client_hello_get0_ext(SSL *s, unsigned int type, - const unsigned char **out, size_t *outlen); - -void SSL_certs_clear(SSL *s); -void SSL_free(SSL *ssl); -# ifdef OSSL_ASYNC_FD -/* - * Windows application developer has to include windows.h to use these. - */ -__owur int SSL_waiting_for_async(SSL *s); -__owur int SSL_get_all_async_fds(SSL *s, OSSL_ASYNC_FD *fds, size_t *numfds); -__owur int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd, - size_t *numaddfds, OSSL_ASYNC_FD *delfd, - size_t *numdelfds); -# endif -__owur int SSL_accept(SSL *ssl); -__owur int SSL_stateless(SSL *s); -__owur int SSL_connect(SSL *ssl); -__owur int SSL_read(SSL *ssl, void *buf, int num); -__owur int SSL_read_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); - -# define SSL_READ_EARLY_DATA_ERROR 0 -# define SSL_READ_EARLY_DATA_SUCCESS 1 -# define SSL_READ_EARLY_DATA_FINISH 2 - -__owur int SSL_read_early_data(SSL *s, void *buf, size_t num, - size_t *readbytes); -__owur int SSL_peek(SSL *ssl, void *buf, int num); -__owur int SSL_peek_ex(SSL *ssl, void *buf, size_t num, size_t *readbytes); -__owur int SSL_write(SSL *ssl, const void *buf, int num); -__owur int SSL_write_ex(SSL *s, const void *buf, size_t num, size_t *written); -__owur int SSL_write_early_data(SSL *s, const void *buf, size_t num, - size_t *written); -long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); -long SSL_callback_ctrl(SSL *, int, void (*)(void)); -long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); -long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); - -# define SSL_EARLY_DATA_NOT_SENT 0 -# define SSL_EARLY_DATA_REJECTED 1 -# define SSL_EARLY_DATA_ACCEPTED 2 - -__owur int SSL_get_early_data_status(const SSL *s); - -__owur int SSL_get_error(const SSL *s, int ret_code); -__owur const char *SSL_get_version(const SSL *s); - -/* This sets the 'default' SSL version that SSL_new() will create */ -__owur int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); - -# ifndef OPENSSL_NO_SSL3_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_method(void)) /* SSLv3 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_server_method(void)) -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_client_method(void)) -# endif - -#define SSLv23_method TLS_method -#define SSLv23_server_method TLS_server_method -#define SSLv23_client_method TLS_client_method - -/* Negotiate highest available SSL/TLS version */ -__owur const SSL_METHOD *TLS_method(void); -__owur const SSL_METHOD *TLS_server_method(void); -__owur const SSL_METHOD *TLS_client_method(void); - -# ifndef OPENSSL_NO_TLS1_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_method(void)) /* TLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void)) -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) -# endif - -# ifndef OPENSSL_NO_TLS1_1_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_method(void)) /* TLSv1.1 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_server_method(void)) -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void)) -# endif - -# ifndef OPENSSL_NO_TLS1_2_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_server_method(void)) -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) -# endif - -# ifndef OPENSSL_NO_DTLS1_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_method(void)) /* DTLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_server_method(void)) -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void)) -# endif - -# ifndef OPENSSL_NO_DTLS1_2_METHOD -/* DTLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_method(void)) -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_server_method(void)) -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_client_method(void)) -# endif - -__owur const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ -__owur const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ -__owur const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ - -__owur size_t DTLS_get_data_mtu(const SSL *s); - -__owur STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); -__owur STACK_OF(SSL_CIPHER) *SSL_CTX_get_ciphers(const SSL_CTX *ctx); -__owur STACK_OF(SSL_CIPHER) *SSL_get_client_ciphers(const SSL *s); -__owur STACK_OF(SSL_CIPHER) *SSL_get1_supported_ciphers(SSL *s); - -__owur int SSL_do_handshake(SSL *s); -int SSL_key_update(SSL *s, int updatetype); -int SSL_get_key_update_type(const SSL *s); -int SSL_renegotiate(SSL *s); -int SSL_renegotiate_abbreviated(SSL *s); -__owur int SSL_renegotiate_pending(const SSL *s); -int SSL_shutdown(SSL *s); -__owur int SSL_verify_client_post_handshake(SSL *s); -void SSL_CTX_set_post_handshake_auth(SSL_CTX *ctx, int val); -void SSL_set_post_handshake_auth(SSL *s, int val); - -__owur const SSL_METHOD *SSL_CTX_get_ssl_method(const SSL_CTX *ctx); -__owur const SSL_METHOD *SSL_get_ssl_method(const SSL *s); -__owur int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); -__owur const char *SSL_alert_type_string_long(int value); -__owur const char *SSL_alert_type_string(int value); -__owur const char *SSL_alert_desc_string_long(int value); -__owur const char *SSL_alert_desc_string(int value); - -void SSL_set0_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); -void SSL_CTX_set0_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); -__owur const STACK_OF(X509_NAME) *SSL_get0_CA_list(const SSL *s); -__owur const STACK_OF(X509_NAME) *SSL_CTX_get0_CA_list(const SSL_CTX *ctx); -__owur int SSL_add1_to_CA_list(SSL *ssl, const X509 *x); -__owur int SSL_CTX_add1_to_CA_list(SSL_CTX *ctx, const X509 *x); -__owur const STACK_OF(X509_NAME) *SSL_get0_peer_CA_list(const SSL *s); - -void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); -void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); -__owur STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s); -__owur STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s); -__owur int SSL_add_client_CA(SSL *ssl, X509 *x); -__owur int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x); - -void SSL_set_connect_state(SSL *s); -void SSL_set_accept_state(SSL *s); - -__owur long SSL_get_default_timeout(const SSL *s); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define SSL_library_init() OPENSSL_init_ssl(0, NULL) -# endif - -__owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); -__owur STACK_OF(X509_NAME) *SSL_dup_CA_list(const STACK_OF(X509_NAME) *sk); - -__owur SSL *SSL_dup(SSL *ssl); - -__owur X509 *SSL_get_certificate(const SSL *ssl); -/* - * EVP_PKEY - */ -struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl); - -__owur X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); -__owur EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); - -void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); -__owur int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); -void SSL_set_quiet_shutdown(SSL *ssl, int mode); -__owur int SSL_get_quiet_shutdown(const SSL *ssl); -void SSL_set_shutdown(SSL *ssl, int mode); -__owur int SSL_get_shutdown(const SSL *ssl); -__owur int SSL_version(const SSL *ssl); -__owur int SSL_client_version(const SSL *s); -__owur int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); -__owur int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx); -__owur int SSL_CTX_set_default_verify_file(SSL_CTX *ctx); -__owur int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, - const char *CApath); -# define SSL_get0_session SSL_get_session/* just peek at pointer */ -__owur SSL_SESSION *SSL_get_session(const SSL *ssl); -__owur SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ -__owur SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); -SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx); -void SSL_set_info_callback(SSL *ssl, - void (*cb) (const SSL *ssl, int type, int val)); -void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, - int val); -__owur OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl); - -void SSL_set_verify_result(SSL *ssl, long v); -__owur long SSL_get_verify_result(const SSL *ssl); -__owur STACK_OF(X509) *SSL_get0_verified_chain(const SSL *s); - -__owur size_t SSL_get_client_random(const SSL *ssl, unsigned char *out, - size_t outlen); -__owur size_t SSL_get_server_random(const SSL *ssl, unsigned char *out, - size_t outlen); -__owur size_t SSL_SESSION_get_master_key(const SSL_SESSION *sess, - unsigned char *out, size_t outlen); -__owur int SSL_SESSION_set1_master_key(SSL_SESSION *sess, - const unsigned char *in, size_t len); -uint8_t SSL_SESSION_get_max_fragment_length(const SSL_SESSION *sess); - -#define SSL_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL, l, p, newf, dupf, freef) -__owur int SSL_set_ex_data(SSL *ssl, int idx, void *data); -void *SSL_get_ex_data(const SSL *ssl, int idx); -#define SSL_SESSION_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION, l, p, newf, dupf, freef) -__owur int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data); -void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx); -#define SSL_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX, l, p, newf, dupf, freef) -__owur int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data); -void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx); - -__owur int SSL_get_ex_data_X509_STORE_CTX_idx(void); - -# define SSL_CTX_sess_set_cache_size(ctx,t) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL) -# define SSL_CTX_sess_get_cache_size(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL) -# define SSL_CTX_set_session_cache_mode(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL) -# define SSL_CTX_get_session_cache_mode(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL) - -# define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx) -# define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m) -# define SSL_CTX_get_read_ahead(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) -# define SSL_CTX_set_read_ahead(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL) -# define SSL_CTX_get_max_cert_list(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -# define SSL_CTX_set_max_cert_list(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) -# define SSL_get_max_cert_list(ssl) \ - SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -# define SSL_set_max_cert_list(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) - -# define SSL_CTX_set_max_send_fragment(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) -# define SSL_set_max_send_fragment(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) -# define SSL_CTX_set_split_send_fragment(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) -# define SSL_set_split_send_fragment(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) -# define SSL_CTX_set_max_pipelines(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) -# define SSL_set_max_pipelines(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) - -void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len); -void SSL_set_default_read_buffer_len(SSL *s, size_t len); - -# ifndef OPENSSL_NO_DH -/* NB: the |keylength| is only applicable when is_export is true */ -void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, - DH *(*dh) (SSL *ssl, int is_export, - int keylength)); -void SSL_set_tmp_dh_callback(SSL *ssl, - DH *(*dh) (SSL *ssl, int is_export, - int keylength)); -# endif - -__owur const COMP_METHOD *SSL_get_current_compression(const SSL *s); -__owur const COMP_METHOD *SSL_get_current_expansion(const SSL *s); -__owur const char *SSL_COMP_get_name(const COMP_METHOD *comp); -__owur const char *SSL_COMP_get0_name(const SSL_COMP *comp); -__owur int SSL_COMP_get_id(const SSL_COMP *comp); -STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); -__owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) - *meths); -# if OPENSSL_API_COMPAT < 0x10100000L -# define SSL_COMP_free_compression_methods() while(0) continue -# endif -__owur int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); - -const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); -int SSL_CIPHER_get_cipher_nid(const SSL_CIPHER *c); -int SSL_CIPHER_get_digest_nid(const SSL_CIPHER *c); -int SSL_bytes_to_cipher_list(SSL *s, const unsigned char *bytes, size_t len, - int isv2format, STACK_OF(SSL_CIPHER) **sk, - STACK_OF(SSL_CIPHER) **scsvs); - -/* TLS extensions functions */ -__owur int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); - -__owur int SSL_set_session_ticket_ext_cb(SSL *s, - tls_session_ticket_ext_cb_fn cb, - void *arg); - -/* Pre-shared secret session resumption functions */ -__owur int SSL_set_session_secret_cb(SSL *s, - tls_session_secret_cb_fn session_secret_cb, - void *arg); - -void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx, - int (*cb) (SSL *ssl, - int - is_forward_secure)); - -void SSL_set_not_resumable_session_callback(SSL *ssl, - int (*cb) (SSL *ssl, - int is_forward_secure)); - -void SSL_CTX_set_record_padding_callback(SSL_CTX *ctx, - size_t (*cb) (SSL *ssl, int type, - size_t len, void *arg)); -void SSL_CTX_set_record_padding_callback_arg(SSL_CTX *ctx, void *arg); -void *SSL_CTX_get_record_padding_callback_arg(const SSL_CTX *ctx); -int SSL_CTX_set_block_padding(SSL_CTX *ctx, size_t block_size); - -void SSL_set_record_padding_callback(SSL *ssl, - size_t (*cb) (SSL *ssl, int type, - size_t len, void *arg)); -void SSL_set_record_padding_callback_arg(SSL *ssl, void *arg); -void *SSL_get_record_padding_callback_arg(const SSL *ssl); -int SSL_set_block_padding(SSL *ssl, size_t block_size); - -int SSL_set_num_tickets(SSL *s, size_t num_tickets); -size_t SSL_get_num_tickets(const SSL *s); -int SSL_CTX_set_num_tickets(SSL_CTX *ctx, size_t num_tickets); -size_t SSL_CTX_get_num_tickets(const SSL_CTX *ctx); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define SSL_cache_hit(s) SSL_session_reused(s) -# endif - -__owur int SSL_session_reused(const SSL *s); -__owur int SSL_is_server(const SSL *s); - -__owur __owur SSL_CONF_CTX *SSL_CONF_CTX_new(void); -int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx); -void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx); -unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags); -__owur unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, - unsigned int flags); -__owur int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre); - -void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); -void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); - -__owur int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); -__owur int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); -__owur int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); - -void SSL_add_ssl_module(void); -int SSL_config(SSL *s, const char *name); -int SSL_CTX_config(SSL_CTX *ctx, const char *name); - -# ifndef OPENSSL_NO_SSL_TRACE -void SSL_trace(int write_p, int version, int content_type, - const void *buf, size_t len, SSL *ssl, void *arg); -# endif - -# ifndef OPENSSL_NO_SOCK -int DTLSv1_listen(SSL *s, BIO_ADDR *client); -# endif - -# ifndef OPENSSL_NO_CT - -/* - * A callback for verifying that the received SCTs are sufficient. - * Expected to return 1 if they are sufficient, otherwise 0. - * May return a negative integer if an error occurs. - * A connection should be aborted if the SCTs are deemed insufficient. - */ -typedef int (*ssl_ct_validation_cb)(const CT_POLICY_EVAL_CTX *ctx, - const STACK_OF(SCT) *scts, void *arg); - -/* - * Sets a |callback| that is invoked upon receipt of ServerHelloDone to validate - * the received SCTs. - * If the callback returns a non-positive result, the connection is terminated. - * Call this function before beginning a handshake. - * If a NULL |callback| is provided, SCT validation is disabled. - * |arg| is arbitrary userdata that will be passed to the callback whenever it - * is invoked. Ownership of |arg| remains with the caller. - * - * NOTE: A side-effect of setting a CT callback is that an OCSP stapled response - * will be requested. - */ -int SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback, - void *arg); -int SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx, - ssl_ct_validation_cb callback, - void *arg); -#define SSL_disable_ct(s) \ - ((void) SSL_set_validation_callback((s), NULL, NULL)) -#define SSL_CTX_disable_ct(ctx) \ - ((void) SSL_CTX_set_validation_callback((ctx), NULL, NULL)) - -/* - * The validation type enumerates the available behaviours of the built-in SSL - * CT validation callback selected via SSL_enable_ct() and SSL_CTX_enable_ct(). - * The underlying callback is a static function in libssl. - */ -enum { - SSL_CT_VALIDATION_PERMISSIVE = 0, - SSL_CT_VALIDATION_STRICT -}; - -/* - * Enable CT by setting up a callback that implements one of the built-in - * validation variants. The SSL_CT_VALIDATION_PERMISSIVE variant always - * continues the handshake, the application can make appropriate decisions at - * handshake completion. The SSL_CT_VALIDATION_STRICT variant requires at - * least one valid SCT, or else handshake termination will be requested. The - * handshake may continue anyway if SSL_VERIFY_NONE is in effect. - */ -int SSL_enable_ct(SSL *s, int validation_mode); -int SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode); - -/* - * Report whether a non-NULL callback is enabled. - */ -int SSL_ct_is_enabled(const SSL *s); -int SSL_CTX_ct_is_enabled(const SSL_CTX *ctx); - -/* Gets the SCTs received from a connection */ -const STACK_OF(SCT) *SSL_get0_peer_scts(SSL *s); - -/* - * Loads the CT log list from the default location. - * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, - * the log information loaded from this file will be appended to the - * CTLOG_STORE. - * Returns 1 on success, 0 otherwise. - */ -int SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx); - -/* - * Loads the CT log list from the specified file path. - * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, - * the log information loaded from this file will be appended to the - * CTLOG_STORE. - * Returns 1 on success, 0 otherwise. - */ -int SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path); - -/* - * Sets the CT log list used by all SSL connections created from this SSL_CTX. - * Ownership of the CTLOG_STORE is transferred to the SSL_CTX. - */ -void SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE *logs); - -/* - * Gets the CT log list used by all SSL connections created from this SSL_CTX. - * This will be NULL unless one of the following functions has been called: - * - SSL_CTX_set_default_ctlog_list_file - * - SSL_CTX_set_ctlog_list_file - * - SSL_CTX_set_ctlog_store - */ -const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx); - -# endif /* OPENSSL_NO_CT */ - -/* What the "other" parameter contains in security callback */ -/* Mask for type */ -# define SSL_SECOP_OTHER_TYPE 0xffff0000 -# define SSL_SECOP_OTHER_NONE 0 -# define SSL_SECOP_OTHER_CIPHER (1 << 16) -# define SSL_SECOP_OTHER_CURVE (2 << 16) -# define SSL_SECOP_OTHER_DH (3 << 16) -# define SSL_SECOP_OTHER_PKEY (4 << 16) -# define SSL_SECOP_OTHER_SIGALG (5 << 16) -# define SSL_SECOP_OTHER_CERT (6 << 16) - -/* Indicated operation refers to peer key or certificate */ -# define SSL_SECOP_PEER 0x1000 - -/* Values for "op" parameter in security callback */ - -/* Called to filter ciphers */ -/* Ciphers client supports */ -# define SSL_SECOP_CIPHER_SUPPORTED (1 | SSL_SECOP_OTHER_CIPHER) -/* Cipher shared by client/server */ -# define SSL_SECOP_CIPHER_SHARED (2 | SSL_SECOP_OTHER_CIPHER) -/* Sanity check of cipher server selects */ -# define SSL_SECOP_CIPHER_CHECK (3 | SSL_SECOP_OTHER_CIPHER) -/* Curves supported by client */ -# define SSL_SECOP_CURVE_SUPPORTED (4 | SSL_SECOP_OTHER_CURVE) -/* Curves shared by client/server */ -# define SSL_SECOP_CURVE_SHARED (5 | SSL_SECOP_OTHER_CURVE) -/* Sanity check of curve server selects */ -# define SSL_SECOP_CURVE_CHECK (6 | SSL_SECOP_OTHER_CURVE) -/* Temporary DH key */ -# define SSL_SECOP_TMP_DH (7 | SSL_SECOP_OTHER_PKEY) -/* SSL/TLS version */ -# define SSL_SECOP_VERSION (9 | SSL_SECOP_OTHER_NONE) -/* Session tickets */ -# define SSL_SECOP_TICKET (10 | SSL_SECOP_OTHER_NONE) -/* Supported signature algorithms sent to peer */ -# define SSL_SECOP_SIGALG_SUPPORTED (11 | SSL_SECOP_OTHER_SIGALG) -/* Shared signature algorithm */ -# define SSL_SECOP_SIGALG_SHARED (12 | SSL_SECOP_OTHER_SIGALG) -/* Sanity check signature algorithm allowed */ -# define SSL_SECOP_SIGALG_CHECK (13 | SSL_SECOP_OTHER_SIGALG) -/* Used to get mask of supported public key signature algorithms */ -# define SSL_SECOP_SIGALG_MASK (14 | SSL_SECOP_OTHER_SIGALG) -/* Use to see if compression is allowed */ -# define SSL_SECOP_COMPRESSION (15 | SSL_SECOP_OTHER_NONE) -/* EE key in certificate */ -# define SSL_SECOP_EE_KEY (16 | SSL_SECOP_OTHER_CERT) -/* CA key in certificate */ -# define SSL_SECOP_CA_KEY (17 | SSL_SECOP_OTHER_CERT) -/* CA digest algorithm in certificate */ -# define SSL_SECOP_CA_MD (18 | SSL_SECOP_OTHER_CERT) -/* Peer EE key in certificate */ -# define SSL_SECOP_PEER_EE_KEY (SSL_SECOP_EE_KEY | SSL_SECOP_PEER) -/* Peer CA key in certificate */ -# define SSL_SECOP_PEER_CA_KEY (SSL_SECOP_CA_KEY | SSL_SECOP_PEER) -/* Peer CA digest algorithm in certificate */ -# define SSL_SECOP_PEER_CA_MD (SSL_SECOP_CA_MD | SSL_SECOP_PEER) - -void SSL_set_security_level(SSL *s, int level); -__owur int SSL_get_security_level(const SSL *s); -void SSL_set_security_callback(SSL *s, - int (*cb) (const SSL *s, const SSL_CTX *ctx, - int op, int bits, int nid, - void *other, void *ex)); -int (*SSL_get_security_callback(const SSL *s)) (const SSL *s, - const SSL_CTX *ctx, int op, - int bits, int nid, void *other, - void *ex); -void SSL_set0_security_ex_data(SSL *s, void *ex); -__owur void *SSL_get0_security_ex_data(const SSL *s); - -void SSL_CTX_set_security_level(SSL_CTX *ctx, int level); -__owur int SSL_CTX_get_security_level(const SSL_CTX *ctx); -void SSL_CTX_set_security_callback(SSL_CTX *ctx, - int (*cb) (const SSL *s, const SSL_CTX *ctx, - int op, int bits, int nid, - void *other, void *ex)); -int (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s, - const SSL_CTX *ctx, - int op, int bits, - int nid, - void *other, - void *ex); -void SSL_CTX_set0_security_ex_data(SSL_CTX *ctx, void *ex); -__owur void *SSL_CTX_get0_security_ex_data(const SSL_CTX *ctx); - -/* OPENSSL_INIT flag 0x010000 reserved for internal use */ -# define OPENSSL_INIT_NO_LOAD_SSL_STRINGS 0x00100000L -# define OPENSSL_INIT_LOAD_SSL_STRINGS 0x00200000L - -# define OPENSSL_INIT_SSL_DEFAULT \ - (OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS) - -int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); - -# ifndef OPENSSL_NO_UNIT_TEST -__owur const struct openssl_ssl_test_functions *SSL_test_functions(void); -# endif - -__owur int SSL_free_buffers(SSL *ssl); -__owur int SSL_alloc_buffers(SSL *ssl); - -/* Status codes passed to the decrypt session ticket callback. Some of these - * are for internal use only and are never passed to the callback. */ -typedef int SSL_TICKET_STATUS; - -/* Support for ticket appdata */ -/* fatal error, malloc failure */ -# define SSL_TICKET_FATAL_ERR_MALLOC 0 -/* fatal error, either from parsing or decrypting the ticket */ -# define SSL_TICKET_FATAL_ERR_OTHER 1 -/* No ticket present */ -# define SSL_TICKET_NONE 2 -/* Empty ticket present */ -# define SSL_TICKET_EMPTY 3 -/* the ticket couldn't be decrypted */ -# define SSL_TICKET_NO_DECRYPT 4 -/* a ticket was successfully decrypted */ -# define SSL_TICKET_SUCCESS 5 -/* same as above but the ticket needs to be renewed */ -# define SSL_TICKET_SUCCESS_RENEW 6 - -/* Return codes for the decrypt session ticket callback */ -typedef int SSL_TICKET_RETURN; - -/* An error occurred */ -#define SSL_TICKET_RETURN_ABORT 0 -/* Do not use the ticket, do not send a renewed ticket to the client */ -#define SSL_TICKET_RETURN_IGNORE 1 -/* Do not use the ticket, send a renewed ticket to the client */ -#define SSL_TICKET_RETURN_IGNORE_RENEW 2 -/* Use the ticket, do not send a renewed ticket to the client */ -#define SSL_TICKET_RETURN_USE 3 -/* Use the ticket, send a renewed ticket to the client */ -#define SSL_TICKET_RETURN_USE_RENEW 4 - -typedef int (*SSL_CTX_generate_session_ticket_fn)(SSL *s, void *arg); -typedef SSL_TICKET_RETURN (*SSL_CTX_decrypt_session_ticket_fn)(SSL *s, SSL_SESSION *ss, - const unsigned char *keyname, - size_t keyname_length, - SSL_TICKET_STATUS status, - void *arg); -int SSL_CTX_set_session_ticket_cb(SSL_CTX *ctx, - SSL_CTX_generate_session_ticket_fn gen_cb, - SSL_CTX_decrypt_session_ticket_fn dec_cb, - void *arg); -int SSL_SESSION_set1_ticket_appdata(SSL_SESSION *ss, const void *data, size_t len); -int SSL_SESSION_get0_ticket_appdata(SSL_SESSION *ss, void **data, size_t *len); - -extern const char SSL_version_str[]; - -typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us); - -void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb); - - -typedef int (*SSL_allow_early_data_cb_fn)(SSL *s, void *arg); -void SSL_CTX_set_allow_early_data_cb(SSL_CTX *ctx, - SSL_allow_early_data_cb_fn cb, - void *arg); -void SSL_set_allow_early_data_cb(SSL *s, - SSL_allow_early_data_cb_fn cb, - void *arg); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ssl2.h b/submodules/MtProtoKit/openssl/openssl/ssl2.h deleted file mode 100644 index 5321bd272c..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ssl2.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SSL2_H -# define HEADER_SSL2_H - -#ifdef __cplusplus -extern "C" { -#endif - -# define SSL2_VERSION 0x0002 - -# define SSL2_MT_CLIENT_HELLO 1 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ssl23.h b/submodules/MtProtoKit/openssl/openssl/ssl23.h deleted file mode 100644 index 9de4685af9..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ssl23.h +++ /dev/null @@ -1,84 +0,0 @@ -/* ssl/ssl23.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_SSL23_H -# define HEADER_SSL23_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * client - */ -/* write to server */ -# define SSL23_ST_CW_CLNT_HELLO_A (0x210|SSL_ST_CONNECT) -# define SSL23_ST_CW_CLNT_HELLO_B (0x211|SSL_ST_CONNECT) -/* read from server */ -# define SSL23_ST_CR_SRVR_HELLO_A (0x220|SSL_ST_CONNECT) -# define SSL23_ST_CR_SRVR_HELLO_B (0x221|SSL_ST_CONNECT) - -/* server */ -/* read from client */ -# define SSL23_ST_SR_CLNT_HELLO_A (0x210|SSL_ST_ACCEPT) -# define SSL23_ST_SR_CLNT_HELLO_B (0x211|SSL_ST_ACCEPT) - -#ifdef __cplusplus -} -#endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ssl3.h b/submodules/MtProtoKit/openssl/openssl/ssl3.h deleted file mode 100644 index 8d01fcc487..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ssl3.h +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SSL3_H -# define HEADER_SSL3_H - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Signalling cipher suite value from RFC 5746 - * (TLS_EMPTY_RENEGOTIATION_INFO_SCSV) - */ -# define SSL3_CK_SCSV 0x030000FF - -/* - * Signalling cipher suite value from draft-ietf-tls-downgrade-scsv-00 - * (TLS_FALLBACK_SCSV) - */ -# define SSL3_CK_FALLBACK_SCSV 0x03005600 - -# define SSL3_CK_RSA_NULL_MD5 0x03000001 -# define SSL3_CK_RSA_NULL_SHA 0x03000002 -# define SSL3_CK_RSA_RC4_40_MD5 0x03000003 -# define SSL3_CK_RSA_RC4_128_MD5 0x03000004 -# define SSL3_CK_RSA_RC4_128_SHA 0x03000005 -# define SSL3_CK_RSA_RC2_40_MD5 0x03000006 -# define SSL3_CK_RSA_IDEA_128_SHA 0x03000007 -# define SSL3_CK_RSA_DES_40_CBC_SHA 0x03000008 -# define SSL3_CK_RSA_DES_64_CBC_SHA 0x03000009 -# define SSL3_CK_RSA_DES_192_CBC3_SHA 0x0300000A - -# define SSL3_CK_DH_DSS_DES_40_CBC_SHA 0x0300000B -# define SSL3_CK_DH_DSS_DES_64_CBC_SHA 0x0300000C -# define SSL3_CK_DH_DSS_DES_192_CBC3_SHA 0x0300000D -# define SSL3_CK_DH_RSA_DES_40_CBC_SHA 0x0300000E -# define SSL3_CK_DH_RSA_DES_64_CBC_SHA 0x0300000F -# define SSL3_CK_DH_RSA_DES_192_CBC3_SHA 0x03000010 - -# define SSL3_CK_DHE_DSS_DES_40_CBC_SHA 0x03000011 -# define SSL3_CK_EDH_DSS_DES_40_CBC_SHA SSL3_CK_DHE_DSS_DES_40_CBC_SHA -# define SSL3_CK_DHE_DSS_DES_64_CBC_SHA 0x03000012 -# define SSL3_CK_EDH_DSS_DES_64_CBC_SHA SSL3_CK_DHE_DSS_DES_64_CBC_SHA -# define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA 0x03000013 -# define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA SSL3_CK_DHE_DSS_DES_192_CBC3_SHA -# define SSL3_CK_DHE_RSA_DES_40_CBC_SHA 0x03000014 -# define SSL3_CK_EDH_RSA_DES_40_CBC_SHA SSL3_CK_DHE_RSA_DES_40_CBC_SHA -# define SSL3_CK_DHE_RSA_DES_64_CBC_SHA 0x03000015 -# define SSL3_CK_EDH_RSA_DES_64_CBC_SHA SSL3_CK_DHE_RSA_DES_64_CBC_SHA -# define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA 0x03000016 -# define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA SSL3_CK_DHE_RSA_DES_192_CBC3_SHA - -# define SSL3_CK_ADH_RC4_40_MD5 0x03000017 -# define SSL3_CK_ADH_RC4_128_MD5 0x03000018 -# define SSL3_CK_ADH_DES_40_CBC_SHA 0x03000019 -# define SSL3_CK_ADH_DES_64_CBC_SHA 0x0300001A -# define SSL3_CK_ADH_DES_192_CBC_SHA 0x0300001B - -/* a bundle of RFC standard cipher names, generated from ssl3_ciphers[] */ -# define SSL3_RFC_RSA_NULL_MD5 "TLS_RSA_WITH_NULL_MD5" -# define SSL3_RFC_RSA_NULL_SHA "TLS_RSA_WITH_NULL_SHA" -# define SSL3_RFC_RSA_DES_192_CBC3_SHA "TLS_RSA_WITH_3DES_EDE_CBC_SHA" -# define SSL3_RFC_DHE_DSS_DES_192_CBC3_SHA "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA" -# define SSL3_RFC_DHE_RSA_DES_192_CBC3_SHA "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA" -# define SSL3_RFC_ADH_DES_192_CBC_SHA "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA" -# define SSL3_RFC_RSA_IDEA_128_SHA "TLS_RSA_WITH_IDEA_CBC_SHA" -# define SSL3_RFC_RSA_RC4_128_MD5 "TLS_RSA_WITH_RC4_128_MD5" -# define SSL3_RFC_RSA_RC4_128_SHA "TLS_RSA_WITH_RC4_128_SHA" -# define SSL3_RFC_ADH_RC4_128_MD5 "TLS_DH_anon_WITH_RC4_128_MD5" - -# define SSL3_TXT_RSA_NULL_MD5 "NULL-MD5" -# define SSL3_TXT_RSA_NULL_SHA "NULL-SHA" -# define SSL3_TXT_RSA_RC4_40_MD5 "EXP-RC4-MD5" -# define SSL3_TXT_RSA_RC4_128_MD5 "RC4-MD5" -# define SSL3_TXT_RSA_RC4_128_SHA "RC4-SHA" -# define SSL3_TXT_RSA_RC2_40_MD5 "EXP-RC2-CBC-MD5" -# define SSL3_TXT_RSA_IDEA_128_SHA "IDEA-CBC-SHA" -# define SSL3_TXT_RSA_DES_40_CBC_SHA "EXP-DES-CBC-SHA" -# define SSL3_TXT_RSA_DES_64_CBC_SHA "DES-CBC-SHA" -# define SSL3_TXT_RSA_DES_192_CBC3_SHA "DES-CBC3-SHA" - -# define SSL3_TXT_DH_DSS_DES_40_CBC_SHA "EXP-DH-DSS-DES-CBC-SHA" -# define SSL3_TXT_DH_DSS_DES_64_CBC_SHA "DH-DSS-DES-CBC-SHA" -# define SSL3_TXT_DH_DSS_DES_192_CBC3_SHA "DH-DSS-DES-CBC3-SHA" -# define SSL3_TXT_DH_RSA_DES_40_CBC_SHA "EXP-DH-RSA-DES-CBC-SHA" -# define SSL3_TXT_DH_RSA_DES_64_CBC_SHA "DH-RSA-DES-CBC-SHA" -# define SSL3_TXT_DH_RSA_DES_192_CBC3_SHA "DH-RSA-DES-CBC3-SHA" - -# define SSL3_TXT_DHE_DSS_DES_40_CBC_SHA "EXP-DHE-DSS-DES-CBC-SHA" -# define SSL3_TXT_DHE_DSS_DES_64_CBC_SHA "DHE-DSS-DES-CBC-SHA" -# define SSL3_TXT_DHE_DSS_DES_192_CBC3_SHA "DHE-DSS-DES-CBC3-SHA" -# define SSL3_TXT_DHE_RSA_DES_40_CBC_SHA "EXP-DHE-RSA-DES-CBC-SHA" -# define SSL3_TXT_DHE_RSA_DES_64_CBC_SHA "DHE-RSA-DES-CBC-SHA" -# define SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA "DHE-RSA-DES-CBC3-SHA" - -/* - * This next block of six "EDH" labels is for backward compatibility with - * older versions of OpenSSL. New code should use the six "DHE" labels above - * instead: - */ -# define SSL3_TXT_EDH_DSS_DES_40_CBC_SHA "EXP-EDH-DSS-DES-CBC-SHA" -# define SSL3_TXT_EDH_DSS_DES_64_CBC_SHA "EDH-DSS-DES-CBC-SHA" -# define SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA "EDH-DSS-DES-CBC3-SHA" -# define SSL3_TXT_EDH_RSA_DES_40_CBC_SHA "EXP-EDH-RSA-DES-CBC-SHA" -# define SSL3_TXT_EDH_RSA_DES_64_CBC_SHA "EDH-RSA-DES-CBC-SHA" -# define SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA "EDH-RSA-DES-CBC3-SHA" - -# define SSL3_TXT_ADH_RC4_40_MD5 "EXP-ADH-RC4-MD5" -# define SSL3_TXT_ADH_RC4_128_MD5 "ADH-RC4-MD5" -# define SSL3_TXT_ADH_DES_40_CBC_SHA "EXP-ADH-DES-CBC-SHA" -# define SSL3_TXT_ADH_DES_64_CBC_SHA "ADH-DES-CBC-SHA" -# define SSL3_TXT_ADH_DES_192_CBC_SHA "ADH-DES-CBC3-SHA" - -# define SSL3_SSL_SESSION_ID_LENGTH 32 -# define SSL3_MAX_SSL_SESSION_ID_LENGTH 32 - -# define SSL3_MASTER_SECRET_SIZE 48 -# define SSL3_RANDOM_SIZE 32 -# define SSL3_SESSION_ID_SIZE 32 -# define SSL3_RT_HEADER_LENGTH 5 - -# define SSL3_HM_HEADER_LENGTH 4 - -# ifndef SSL3_ALIGN_PAYLOAD - /* - * Some will argue that this increases memory footprint, but it's not - * actually true. Point is that malloc has to return at least 64-bit aligned - * pointers, meaning that allocating 5 bytes wastes 3 bytes in either case. - * Suggested pre-gaping simply moves these wasted bytes from the end of - * allocated region to its front, but makes data payload aligned, which - * improves performance:-) - */ -# define SSL3_ALIGN_PAYLOAD 8 -# else -# if (SSL3_ALIGN_PAYLOAD&(SSL3_ALIGN_PAYLOAD-1))!=0 -# error "insane SSL3_ALIGN_PAYLOAD" -# undef SSL3_ALIGN_PAYLOAD -# endif -# endif - -/* - * This is the maximum MAC (digest) size used by the SSL library. Currently - * maximum of 20 is used by SHA1, but we reserve for future extension for - * 512-bit hashes. - */ - -# define SSL3_RT_MAX_MD_SIZE 64 - -/* - * Maximum block size used in all ciphersuites. Currently 16 for AES. - */ - -# define SSL_RT_MAX_CIPHER_BLOCK_SIZE 16 - -# define SSL3_RT_MAX_EXTRA (16384) - -/* Maximum plaintext length: defined by SSL/TLS standards */ -# define SSL3_RT_MAX_PLAIN_LENGTH 16384 -/* Maximum compression overhead: defined by SSL/TLS standards */ -# define SSL3_RT_MAX_COMPRESSED_OVERHEAD 1024 - -/* - * The standards give a maximum encryption overhead of 1024 bytes. In - * practice the value is lower than this. The overhead is the maximum number - * of padding bytes (256) plus the mac size. - */ -# define SSL3_RT_MAX_ENCRYPTED_OVERHEAD (256 + SSL3_RT_MAX_MD_SIZE) -# define SSL3_RT_MAX_TLS13_ENCRYPTED_OVERHEAD 256 - -/* - * OpenSSL currently only uses a padding length of at most one block so the - * send overhead is smaller. - */ - -# define SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD \ - (SSL_RT_MAX_CIPHER_BLOCK_SIZE + SSL3_RT_MAX_MD_SIZE) - -/* If compression isn't used don't include the compression overhead */ - -# ifdef OPENSSL_NO_COMP -# define SSL3_RT_MAX_COMPRESSED_LENGTH SSL3_RT_MAX_PLAIN_LENGTH -# else -# define SSL3_RT_MAX_COMPRESSED_LENGTH \ - (SSL3_RT_MAX_PLAIN_LENGTH+SSL3_RT_MAX_COMPRESSED_OVERHEAD) -# endif -# define SSL3_RT_MAX_ENCRYPTED_LENGTH \ - (SSL3_RT_MAX_ENCRYPTED_OVERHEAD+SSL3_RT_MAX_COMPRESSED_LENGTH) -# define SSL3_RT_MAX_TLS13_ENCRYPTED_LENGTH \ - (SSL3_RT_MAX_PLAIN_LENGTH + SSL3_RT_MAX_TLS13_ENCRYPTED_OVERHEAD) -# define SSL3_RT_MAX_PACKET_SIZE \ - (SSL3_RT_MAX_ENCRYPTED_LENGTH+SSL3_RT_HEADER_LENGTH) - -# define SSL3_MD_CLIENT_FINISHED_CONST "\x43\x4C\x4E\x54" -# define SSL3_MD_SERVER_FINISHED_CONST "\x53\x52\x56\x52" - -# define SSL3_VERSION 0x0300 -# define SSL3_VERSION_MAJOR 0x03 -# define SSL3_VERSION_MINOR 0x00 - -# define SSL3_RT_CHANGE_CIPHER_SPEC 20 -# define SSL3_RT_ALERT 21 -# define SSL3_RT_HANDSHAKE 22 -# define SSL3_RT_APPLICATION_DATA 23 -# define DTLS1_RT_HEARTBEAT 24 - -/* Pseudo content types to indicate additional parameters */ -# define TLS1_RT_CRYPTO 0x1000 -# define TLS1_RT_CRYPTO_PREMASTER (TLS1_RT_CRYPTO | 0x1) -# define TLS1_RT_CRYPTO_CLIENT_RANDOM (TLS1_RT_CRYPTO | 0x2) -# define TLS1_RT_CRYPTO_SERVER_RANDOM (TLS1_RT_CRYPTO | 0x3) -# define TLS1_RT_CRYPTO_MASTER (TLS1_RT_CRYPTO | 0x4) - -# define TLS1_RT_CRYPTO_READ 0x0000 -# define TLS1_RT_CRYPTO_WRITE 0x0100 -# define TLS1_RT_CRYPTO_MAC (TLS1_RT_CRYPTO | 0x5) -# define TLS1_RT_CRYPTO_KEY (TLS1_RT_CRYPTO | 0x6) -# define TLS1_RT_CRYPTO_IV (TLS1_RT_CRYPTO | 0x7) -# define TLS1_RT_CRYPTO_FIXED_IV (TLS1_RT_CRYPTO | 0x8) - -/* Pseudo content types for SSL/TLS header info */ -# define SSL3_RT_HEADER 0x100 -# define SSL3_RT_INNER_CONTENT_TYPE 0x101 - -# define SSL3_AL_WARNING 1 -# define SSL3_AL_FATAL 2 - -# define SSL3_AD_CLOSE_NOTIFY 0 -# define SSL3_AD_UNEXPECTED_MESSAGE 10/* fatal */ -# define SSL3_AD_BAD_RECORD_MAC 20/* fatal */ -# define SSL3_AD_DECOMPRESSION_FAILURE 30/* fatal */ -# define SSL3_AD_HANDSHAKE_FAILURE 40/* fatal */ -# define SSL3_AD_NO_CERTIFICATE 41 -# define SSL3_AD_BAD_CERTIFICATE 42 -# define SSL3_AD_UNSUPPORTED_CERTIFICATE 43 -# define SSL3_AD_CERTIFICATE_REVOKED 44 -# define SSL3_AD_CERTIFICATE_EXPIRED 45 -# define SSL3_AD_CERTIFICATE_UNKNOWN 46 -# define SSL3_AD_ILLEGAL_PARAMETER 47/* fatal */ - -# define TLS1_HB_REQUEST 1 -# define TLS1_HB_RESPONSE 2 - - -# define SSL3_CT_RSA_SIGN 1 -# define SSL3_CT_DSS_SIGN 2 -# define SSL3_CT_RSA_FIXED_DH 3 -# define SSL3_CT_DSS_FIXED_DH 4 -# define SSL3_CT_RSA_EPHEMERAL_DH 5 -# define SSL3_CT_DSS_EPHEMERAL_DH 6 -# define SSL3_CT_FORTEZZA_DMS 20 -/* - * SSL3_CT_NUMBER is used to size arrays and it must be large enough to - * contain all of the cert types defined for *either* SSLv3 and TLSv1. - */ -# define SSL3_CT_NUMBER 10 - -# if defined(TLS_CT_NUMBER) -# if TLS_CT_NUMBER != SSL3_CT_NUMBER -# error "SSL/TLS CT_NUMBER values do not match" -# endif -# endif - -/* No longer used as of OpenSSL 1.1.1 */ -# define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001 - -/* Removed from OpenSSL 1.1.0 */ -# define TLS1_FLAGS_TLS_PADDING_BUG 0x0 - -# define TLS1_FLAGS_SKIP_CERT_VERIFY 0x0010 - -/* Set if we encrypt then mac instead of usual mac then encrypt */ -# define TLS1_FLAGS_ENCRYPT_THEN_MAC_READ 0x0100 -# define TLS1_FLAGS_ENCRYPT_THEN_MAC TLS1_FLAGS_ENCRYPT_THEN_MAC_READ - -/* Set if extended master secret extension received from peer */ -# define TLS1_FLAGS_RECEIVED_EXTMS 0x0200 - -# define TLS1_FLAGS_ENCRYPT_THEN_MAC_WRITE 0x0400 - -# define TLS1_FLAGS_STATELESS 0x0800 - -# define SSL3_MT_HELLO_REQUEST 0 -# define SSL3_MT_CLIENT_HELLO 1 -# define SSL3_MT_SERVER_HELLO 2 -# define SSL3_MT_NEWSESSION_TICKET 4 -# define SSL3_MT_END_OF_EARLY_DATA 5 -# define SSL3_MT_ENCRYPTED_EXTENSIONS 8 -# define SSL3_MT_CERTIFICATE 11 -# define SSL3_MT_SERVER_KEY_EXCHANGE 12 -# define SSL3_MT_CERTIFICATE_REQUEST 13 -# define SSL3_MT_SERVER_DONE 14 -# define SSL3_MT_CERTIFICATE_VERIFY 15 -# define SSL3_MT_CLIENT_KEY_EXCHANGE 16 -# define SSL3_MT_FINISHED 20 -# define SSL3_MT_CERTIFICATE_URL 21 -# define SSL3_MT_CERTIFICATE_STATUS 22 -# define SSL3_MT_SUPPLEMENTAL_DATA 23 -# define SSL3_MT_KEY_UPDATE 24 -# ifndef OPENSSL_NO_NEXTPROTONEG -# define SSL3_MT_NEXT_PROTO 67 -# endif -# define SSL3_MT_MESSAGE_HASH 254 -# define DTLS1_MT_HELLO_VERIFY_REQUEST 3 - -/* Dummy message type for handling CCS like a normal handshake message */ -# define SSL3_MT_CHANGE_CIPHER_SPEC 0x0101 - -# define SSL3_MT_CCS 1 - -/* These are used when changing over to a new cipher */ -# define SSL3_CC_READ 0x001 -# define SSL3_CC_WRITE 0x002 -# define SSL3_CC_CLIENT 0x010 -# define SSL3_CC_SERVER 0x020 -# define SSL3_CC_EARLY 0x040 -# define SSL3_CC_HANDSHAKE 0x080 -# define SSL3_CC_APPLICATION 0x100 -# define SSL3_CHANGE_CIPHER_CLIENT_WRITE (SSL3_CC_CLIENT|SSL3_CC_WRITE) -# define SSL3_CHANGE_CIPHER_SERVER_READ (SSL3_CC_SERVER|SSL3_CC_READ) -# define SSL3_CHANGE_CIPHER_CLIENT_READ (SSL3_CC_CLIENT|SSL3_CC_READ) -# define SSL3_CHANGE_CIPHER_SERVER_WRITE (SSL3_CC_SERVER|SSL3_CC_WRITE) - -#ifdef __cplusplus -} -#endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/sslerr.h b/submodules/MtProtoKit/openssl/openssl/sslerr.h deleted file mode 100644 index 3d6850dea3..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/sslerr.h +++ /dev/null @@ -1,772 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SSLERR_H -# define HEADER_SSLERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_SSL_strings(void); - -/* - * SSL function codes. - */ -# define SSL_F_ADD_CLIENT_KEY_SHARE_EXT 438 -# define SSL_F_ADD_KEY_SHARE 512 -# define SSL_F_BYTES_TO_CIPHER_LIST 519 -# define SSL_F_CHECK_SUITEB_CIPHER_LIST 331 -# define SSL_F_CIPHERSUITE_CB 622 -# define SSL_F_CONSTRUCT_CA_NAMES 552 -# define SSL_F_CONSTRUCT_KEY_EXCHANGE_TBS 553 -# define SSL_F_CONSTRUCT_STATEFUL_TICKET 636 -# define SSL_F_CONSTRUCT_STATELESS_TICKET 637 -# define SSL_F_CREATE_SYNTHETIC_MESSAGE_HASH 539 -# define SSL_F_CREATE_TICKET_PREQUEL 638 -# define SSL_F_CT_MOVE_SCTS 345 -# define SSL_F_CT_STRICT 349 -# define SSL_F_CUSTOM_EXT_ADD 554 -# define SSL_F_CUSTOM_EXT_PARSE 555 -# define SSL_F_D2I_SSL_SESSION 103 -# define SSL_F_DANE_CTX_ENABLE 347 -# define SSL_F_DANE_MTYPE_SET 393 -# define SSL_F_DANE_TLSA_ADD 394 -# define SSL_F_DERIVE_SECRET_KEY_AND_IV 514 -# define SSL_F_DO_DTLS1_WRITE 245 -# define SSL_F_DO_SSL3_WRITE 104 -# define SSL_F_DTLS1_BUFFER_RECORD 247 -# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 318 -# define SSL_F_DTLS1_HEARTBEAT 305 -# define SSL_F_DTLS1_HM_FRAGMENT_NEW 623 -# define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 -# define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 424 -# define SSL_F_DTLS1_PROCESS_RECORD 257 -# define SSL_F_DTLS1_READ_BYTES 258 -# define SSL_F_DTLS1_READ_FAILED 339 -# define SSL_F_DTLS1_RETRANSMIT_MESSAGE 390 -# define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268 -# define SSL_F_DTLS1_WRITE_BYTES 545 -# define SSL_F_DTLSV1_LISTEN 350 -# define SSL_F_DTLS_CONSTRUCT_CHANGE_CIPHER_SPEC 371 -# define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 385 -# define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 370 -# define SSL_F_DTLS_PROCESS_HELLO_VERIFY 386 -# define SSL_F_DTLS_RECORD_LAYER_NEW 635 -# define SSL_F_DTLS_WAIT_FOR_DRY 592 -# define SSL_F_EARLY_DATA_COUNT_OK 532 -# define SSL_F_FINAL_EARLY_DATA 556 -# define SSL_F_FINAL_EC_PT_FORMATS 485 -# define SSL_F_FINAL_EMS 486 -# define SSL_F_FINAL_KEY_SHARE 503 -# define SSL_F_FINAL_MAXFRAGMENTLEN 557 -# define SSL_F_FINAL_RENEGOTIATE 483 -# define SSL_F_FINAL_SERVER_NAME 558 -# define SSL_F_FINAL_SIG_ALGS 497 -# define SSL_F_GET_CERT_VERIFY_TBS_DATA 588 -# define SSL_F_NSS_KEYLOG_INT 500 -# define SSL_F_OPENSSL_INIT_SSL 342 -# define SSL_F_OSSL_STATEM_CLIENT13_READ_TRANSITION 436 -# define SSL_F_OSSL_STATEM_CLIENT13_WRITE_TRANSITION 598 -# define SSL_F_OSSL_STATEM_CLIENT_CONSTRUCT_MESSAGE 430 -# define SSL_F_OSSL_STATEM_CLIENT_POST_PROCESS_MESSAGE 593 -# define SSL_F_OSSL_STATEM_CLIENT_PROCESS_MESSAGE 594 -# define SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION 417 -# define SSL_F_OSSL_STATEM_CLIENT_WRITE_TRANSITION 599 -# define SSL_F_OSSL_STATEM_SERVER13_READ_TRANSITION 437 -# define SSL_F_OSSL_STATEM_SERVER13_WRITE_TRANSITION 600 -# define SSL_F_OSSL_STATEM_SERVER_CONSTRUCT_MESSAGE 431 -# define SSL_F_OSSL_STATEM_SERVER_POST_PROCESS_MESSAGE 601 -# define SSL_F_OSSL_STATEM_SERVER_POST_WORK 602 -# define SSL_F_OSSL_STATEM_SERVER_PROCESS_MESSAGE 603 -# define SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION 418 -# define SSL_F_OSSL_STATEM_SERVER_WRITE_TRANSITION 604 -# define SSL_F_PARSE_CA_NAMES 541 -# define SSL_F_PITEM_NEW 624 -# define SSL_F_PQUEUE_NEW 625 -# define SSL_F_PROCESS_KEY_SHARE_EXT 439 -# define SSL_F_READ_STATE_MACHINE 352 -# define SSL_F_SET_CLIENT_CIPHERSUITE 540 -# define SSL_F_SRP_GENERATE_CLIENT_MASTER_SECRET 595 -# define SSL_F_SRP_GENERATE_SERVER_MASTER_SECRET 589 -# define SSL_F_SRP_VERIFY_SERVER_PARAM 596 -# define SSL_F_SSL3_CHANGE_CIPHER_STATE 129 -# define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130 -# define SSL_F_SSL3_CTRL 213 -# define SSL_F_SSL3_CTX_CTRL 133 -# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293 -# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 -# define SSL_F_SSL3_ENC 608 -# define SSL_F_SSL3_FINAL_FINISH_MAC 285 -# define SSL_F_SSL3_FINISH_MAC 587 -# define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 -# define SSL_F_SSL3_GENERATE_MASTER_SECRET 388 -# define SSL_F_SSL3_GET_RECORD 143 -# define SSL_F_SSL3_INIT_FINISHED_MAC 397 -# define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147 -# define SSL_F_SSL3_READ_BYTES 148 -# define SSL_F_SSL3_READ_N 149 -# define SSL_F_SSL3_SETUP_KEY_BLOCK 157 -# define SSL_F_SSL3_SETUP_READ_BUFFER 156 -# define SSL_F_SSL3_SETUP_WRITE_BUFFER 291 -# define SSL_F_SSL3_WRITE_BYTES 158 -# define SSL_F_SSL3_WRITE_PENDING 159 -# define SSL_F_SSL_ADD_CERT_CHAIN 316 -# define SSL_F_SSL_ADD_CERT_TO_BUF 319 -# define SSL_F_SSL_ADD_CERT_TO_WPACKET 493 -# define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 -# define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 -# define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307 -# define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215 -# define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216 -# define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299 -# define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278 -# define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308 -# define SSL_F_SSL_BAD_METHOD 160 -# define SSL_F_SSL_BUILD_CERT_CHAIN 332 -# define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 -# define SSL_F_SSL_CACHE_CIPHERLIST 520 -# define SSL_F_SSL_CERT_ADD0_CHAIN_CERT 346 -# define SSL_F_SSL_CERT_DUP 221 -# define SSL_F_SSL_CERT_NEW 162 -# define SSL_F_SSL_CERT_SET0_CHAIN 340 -# define SSL_F_SSL_CHECK_PRIVATE_KEY 163 -# define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280 -# define SSL_F_SSL_CHECK_SRP_EXT_CLIENTHELLO 606 -# define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279 -# define SSL_F_SSL_CHOOSE_CLIENT_VERSION 607 -# define SSL_F_SSL_CIPHER_DESCRIPTION 626 -# define SSL_F_SSL_CIPHER_LIST_TO_BYTES 425 -# define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230 -# define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 -# define SSL_F_SSL_CLEAR 164 -# define SSL_F_SSL_CLIENT_HELLO_GET1_EXTENSIONS_PRESENT 627 -# define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 -# define SSL_F_SSL_CONF_CMD 334 -# define SSL_F_SSL_CREATE_CIPHER_LIST 166 -# define SSL_F_SSL_CTRL 232 -# define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 -# define SSL_F_SSL_CTX_ENABLE_CT 398 -# define SSL_F_SSL_CTX_MAKE_PROFILES 309 -# define SSL_F_SSL_CTX_NEW 169 -# define SSL_F_SSL_CTX_SET_ALPN_PROTOS 343 -# define SSL_F_SSL_CTX_SET_CIPHER_LIST 269 -# define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290 -# define SSL_F_SSL_CTX_SET_CT_VALIDATION_CALLBACK 396 -# define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 -# define SSL_F_SSL_CTX_SET_SSL_VERSION 170 -# define SSL_F_SSL_CTX_SET_TLSEXT_MAX_FRAGMENT_LENGTH 551 -# define SSL_F_SSL_CTX_USE_CERTIFICATE 171 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY 174 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176 -# define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 -# define SSL_F_SSL_CTX_USE_SERVERINFO 336 -# define SSL_F_SSL_CTX_USE_SERVERINFO_EX 543 -# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337 -# define SSL_F_SSL_DANE_DUP 403 -# define SSL_F_SSL_DANE_ENABLE 395 -# define SSL_F_SSL_DERIVE 590 -# define SSL_F_SSL_DO_CONFIG 391 -# define SSL_F_SSL_DO_HANDSHAKE 180 -# define SSL_F_SSL_DUP_CA_LIST 408 -# define SSL_F_SSL_ENABLE_CT 402 -# define SSL_F_SSL_GENERATE_PKEY_GROUP 559 -# define SSL_F_SSL_GENERATE_SESSION_ID 547 -# define SSL_F_SSL_GET_NEW_SESSION 181 -# define SSL_F_SSL_GET_PREV_SESSION 217 -# define SSL_F_SSL_GET_SERVER_CERT_INDEX 322 -# define SSL_F_SSL_GET_SIGN_PKEY 183 -# define SSL_F_SSL_HANDSHAKE_HASH 560 -# define SSL_F_SSL_INIT_WBIO_BUFFER 184 -# define SSL_F_SSL_KEY_UPDATE 515 -# define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 -# define SSL_F_SSL_LOG_MASTER_SECRET 498 -# define SSL_F_SSL_LOG_RSA_CLIENT_KEY_EXCHANGE 499 -# define SSL_F_SSL_MODULE_INIT 392 -# define SSL_F_SSL_NEW 186 -# define SSL_F_SSL_NEXT_PROTO_VALIDATE 565 -# define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300 -# define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302 -# define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 310 -# define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301 -# define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303 -# define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 311 -# define SSL_F_SSL_PEEK 270 -# define SSL_F_SSL_PEEK_EX 432 -# define SSL_F_SSL_PEEK_INTERNAL 522 -# define SSL_F_SSL_READ 223 -# define SSL_F_SSL_READ_EARLY_DATA 529 -# define SSL_F_SSL_READ_EX 434 -# define SSL_F_SSL_READ_INTERNAL 523 -# define SSL_F_SSL_RENEGOTIATE 516 -# define SSL_F_SSL_RENEGOTIATE_ABBREVIATED 546 -# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320 -# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321 -# define SSL_F_SSL_SESSION_DUP 348 -# define SSL_F_SSL_SESSION_NEW 189 -# define SSL_F_SSL_SESSION_PRINT_FP 190 -# define SSL_F_SSL_SESSION_SET1_ID 423 -# define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312 -# define SSL_F_SSL_SET_ALPN_PROTOS 344 -# define SSL_F_SSL_SET_CERT 191 -# define SSL_F_SSL_SET_CERT_AND_KEY 621 -# define SSL_F_SSL_SET_CIPHER_LIST 271 -# define SSL_F_SSL_SET_CT_VALIDATION_CALLBACK 399 -# define SSL_F_SSL_SET_FD 192 -# define SSL_F_SSL_SET_PKEY 193 -# define SSL_F_SSL_SET_RFD 194 -# define SSL_F_SSL_SET_SESSION 195 -# define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 -# define SSL_F_SSL_SET_SESSION_TICKET_EXT 294 -# define SSL_F_SSL_SET_TLSEXT_MAX_FRAGMENT_LENGTH 550 -# define SSL_F_SSL_SET_WFD 196 -# define SSL_F_SSL_SHUTDOWN 224 -# define SSL_F_SSL_SRP_CTX_INIT 313 -# define SSL_F_SSL_START_ASYNC_JOB 389 -# define SSL_F_SSL_UNDEFINED_FUNCTION 197 -# define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244 -# define SSL_F_SSL_USE_CERTIFICATE 198 -# define SSL_F_SSL_USE_CERTIFICATE_ASN1 199 -# define SSL_F_SSL_USE_CERTIFICATE_FILE 200 -# define SSL_F_SSL_USE_PRIVATEKEY 201 -# define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202 -# define SSL_F_SSL_USE_PRIVATEKEY_FILE 203 -# define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273 -# define SSL_F_SSL_USE_RSAPRIVATEKEY 204 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206 -# define SSL_F_SSL_VALIDATE_CT 400 -# define SSL_F_SSL_VERIFY_CERT_CHAIN 207 -# define SSL_F_SSL_VERIFY_CLIENT_POST_HANDSHAKE 616 -# define SSL_F_SSL_WRITE 208 -# define SSL_F_SSL_WRITE_EARLY_DATA 526 -# define SSL_F_SSL_WRITE_EARLY_FINISH 527 -# define SSL_F_SSL_WRITE_EX 433 -# define SSL_F_SSL_WRITE_INTERNAL 524 -# define SSL_F_STATE_MACHINE 353 -# define SSL_F_TLS12_CHECK_PEER_SIGALG 333 -# define SSL_F_TLS12_COPY_SIGALGS 533 -# define SSL_F_TLS13_CHANGE_CIPHER_STATE 440 -# define SSL_F_TLS13_ENC 609 -# define SSL_F_TLS13_FINAL_FINISH_MAC 605 -# define SSL_F_TLS13_GENERATE_SECRET 591 -# define SSL_F_TLS13_HKDF_EXPAND 561 -# define SSL_F_TLS13_RESTORE_HANDSHAKE_DIGEST_FOR_PHA 617 -# define SSL_F_TLS13_SAVE_HANDSHAKE_DIGEST_FOR_PHA 618 -# define SSL_F_TLS13_SETUP_KEY_BLOCK 441 -# define SSL_F_TLS1_CHANGE_CIPHER_STATE 209 -# define SSL_F_TLS1_CHECK_DUPLICATE_EXTENSIONS 341 -# define SSL_F_TLS1_ENC 401 -# define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314 -# define SSL_F_TLS1_GET_CURVELIST 338 -# define SSL_F_TLS1_PRF 284 -# define SSL_F_TLS1_SAVE_U16 628 -# define SSL_F_TLS1_SETUP_KEY_BLOCK 211 -# define SSL_F_TLS1_SET_GROUPS 629 -# define SSL_F_TLS1_SET_RAW_SIGALGS 630 -# define SSL_F_TLS1_SET_SERVER_SIGALGS 335 -# define SSL_F_TLS1_SET_SHARED_SIGALGS 631 -# define SSL_F_TLS1_SET_SIGALGS 632 -# define SSL_F_TLS_CHOOSE_SIGALG 513 -# define SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK 354 -# define SSL_F_TLS_COLLECT_EXTENSIONS 435 -# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_AUTHORITIES 542 -# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST 372 -# define SSL_F_TLS_CONSTRUCT_CERT_STATUS 429 -# define SSL_F_TLS_CONSTRUCT_CERT_STATUS_BODY 494 -# define SSL_F_TLS_CONSTRUCT_CERT_VERIFY 496 -# define SSL_F_TLS_CONSTRUCT_CHANGE_CIPHER_SPEC 427 -# define SSL_F_TLS_CONSTRUCT_CKE_DHE 404 -# define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 405 -# define SSL_F_TLS_CONSTRUCT_CKE_GOST 406 -# define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 407 -# define SSL_F_TLS_CONSTRUCT_CKE_RSA 409 -# define SSL_F_TLS_CONSTRUCT_CKE_SRP 410 -# define SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE 484 -# define SSL_F_TLS_CONSTRUCT_CLIENT_HELLO 487 -# define SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE 488 -# define SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY 489 -# define SSL_F_TLS_CONSTRUCT_CTOS_ALPN 466 -# define SSL_F_TLS_CONSTRUCT_CTOS_CERTIFICATE 355 -# define SSL_F_TLS_CONSTRUCT_CTOS_COOKIE 535 -# define SSL_F_TLS_CONSTRUCT_CTOS_EARLY_DATA 530 -# define SSL_F_TLS_CONSTRUCT_CTOS_EC_PT_FORMATS 467 -# define SSL_F_TLS_CONSTRUCT_CTOS_EMS 468 -# define SSL_F_TLS_CONSTRUCT_CTOS_ETM 469 -# define SSL_F_TLS_CONSTRUCT_CTOS_HELLO 356 -# define SSL_F_TLS_CONSTRUCT_CTOS_KEY_EXCHANGE 357 -# define SSL_F_TLS_CONSTRUCT_CTOS_KEY_SHARE 470 -# define SSL_F_TLS_CONSTRUCT_CTOS_MAXFRAGMENTLEN 549 -# define SSL_F_TLS_CONSTRUCT_CTOS_NPN 471 -# define SSL_F_TLS_CONSTRUCT_CTOS_PADDING 472 -# define SSL_F_TLS_CONSTRUCT_CTOS_POST_HANDSHAKE_AUTH 619 -# define SSL_F_TLS_CONSTRUCT_CTOS_PSK 501 -# define SSL_F_TLS_CONSTRUCT_CTOS_PSK_KEX_MODES 509 -# define SSL_F_TLS_CONSTRUCT_CTOS_RENEGOTIATE 473 -# define SSL_F_TLS_CONSTRUCT_CTOS_SCT 474 -# define SSL_F_TLS_CONSTRUCT_CTOS_SERVER_NAME 475 -# define SSL_F_TLS_CONSTRUCT_CTOS_SESSION_TICKET 476 -# define SSL_F_TLS_CONSTRUCT_CTOS_SIG_ALGS 477 -# define SSL_F_TLS_CONSTRUCT_CTOS_SRP 478 -# define SSL_F_TLS_CONSTRUCT_CTOS_STATUS_REQUEST 479 -# define SSL_F_TLS_CONSTRUCT_CTOS_SUPPORTED_GROUPS 480 -# define SSL_F_TLS_CONSTRUCT_CTOS_SUPPORTED_VERSIONS 481 -# define SSL_F_TLS_CONSTRUCT_CTOS_USE_SRTP 482 -# define SSL_F_TLS_CONSTRUCT_CTOS_VERIFY 358 -# define SSL_F_TLS_CONSTRUCT_ENCRYPTED_EXTENSIONS 443 -# define SSL_F_TLS_CONSTRUCT_END_OF_EARLY_DATA 536 -# define SSL_F_TLS_CONSTRUCT_EXTENSIONS 447 -# define SSL_F_TLS_CONSTRUCT_FINISHED 359 -# define SSL_F_TLS_CONSTRUCT_HELLO_REQUEST 373 -# define SSL_F_TLS_CONSTRUCT_HELLO_RETRY_REQUEST 510 -# define SSL_F_TLS_CONSTRUCT_KEY_UPDATE 517 -# define SSL_F_TLS_CONSTRUCT_NEW_SESSION_TICKET 428 -# define SSL_F_TLS_CONSTRUCT_NEXT_PROTO 426 -# define SSL_F_TLS_CONSTRUCT_SERVER_CERTIFICATE 490 -# define SSL_F_TLS_CONSTRUCT_SERVER_HELLO 491 -# define SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE 492 -# define SSL_F_TLS_CONSTRUCT_STOC_ALPN 451 -# define SSL_F_TLS_CONSTRUCT_STOC_CERTIFICATE 374 -# define SSL_F_TLS_CONSTRUCT_STOC_COOKIE 613 -# define SSL_F_TLS_CONSTRUCT_STOC_CRYPTOPRO_BUG 452 -# define SSL_F_TLS_CONSTRUCT_STOC_DONE 375 -# define SSL_F_TLS_CONSTRUCT_STOC_EARLY_DATA 531 -# define SSL_F_TLS_CONSTRUCT_STOC_EARLY_DATA_INFO 525 -# define SSL_F_TLS_CONSTRUCT_STOC_EC_PT_FORMATS 453 -# define SSL_F_TLS_CONSTRUCT_STOC_EMS 454 -# define SSL_F_TLS_CONSTRUCT_STOC_ETM 455 -# define SSL_F_TLS_CONSTRUCT_STOC_HELLO 376 -# define SSL_F_TLS_CONSTRUCT_STOC_KEY_EXCHANGE 377 -# define SSL_F_TLS_CONSTRUCT_STOC_KEY_SHARE 456 -# define SSL_F_TLS_CONSTRUCT_STOC_MAXFRAGMENTLEN 548 -# define SSL_F_TLS_CONSTRUCT_STOC_NEXT_PROTO_NEG 457 -# define SSL_F_TLS_CONSTRUCT_STOC_PSK 504 -# define SSL_F_TLS_CONSTRUCT_STOC_RENEGOTIATE 458 -# define SSL_F_TLS_CONSTRUCT_STOC_SERVER_NAME 459 -# define SSL_F_TLS_CONSTRUCT_STOC_SESSION_TICKET 460 -# define SSL_F_TLS_CONSTRUCT_STOC_STATUS_REQUEST 461 -# define SSL_F_TLS_CONSTRUCT_STOC_SUPPORTED_GROUPS 544 -# define SSL_F_TLS_CONSTRUCT_STOC_SUPPORTED_VERSIONS 611 -# define SSL_F_TLS_CONSTRUCT_STOC_USE_SRTP 462 -# define SSL_F_TLS_EARLY_POST_PROCESS_CLIENT_HELLO 521 -# define SSL_F_TLS_FINISH_HANDSHAKE 597 -# define SSL_F_TLS_GET_MESSAGE_BODY 351 -# define SSL_F_TLS_GET_MESSAGE_HEADER 387 -# define SSL_F_TLS_HANDLE_ALPN 562 -# define SSL_F_TLS_HANDLE_STATUS_REQUEST 563 -# define SSL_F_TLS_PARSE_CERTIFICATE_AUTHORITIES 566 -# define SSL_F_TLS_PARSE_CLIENTHELLO_TLSEXT 449 -# define SSL_F_TLS_PARSE_CTOS_ALPN 567 -# define SSL_F_TLS_PARSE_CTOS_COOKIE 614 -# define SSL_F_TLS_PARSE_CTOS_EARLY_DATA 568 -# define SSL_F_TLS_PARSE_CTOS_EC_PT_FORMATS 569 -# define SSL_F_TLS_PARSE_CTOS_EMS 570 -# define SSL_F_TLS_PARSE_CTOS_KEY_SHARE 463 -# define SSL_F_TLS_PARSE_CTOS_MAXFRAGMENTLEN 571 -# define SSL_F_TLS_PARSE_CTOS_POST_HANDSHAKE_AUTH 620 -# define SSL_F_TLS_PARSE_CTOS_PSK 505 -# define SSL_F_TLS_PARSE_CTOS_PSK_KEX_MODES 572 -# define SSL_F_TLS_PARSE_CTOS_RENEGOTIATE 464 -# define SSL_F_TLS_PARSE_CTOS_SERVER_NAME 573 -# define SSL_F_TLS_PARSE_CTOS_SESSION_TICKET 574 -# define SSL_F_TLS_PARSE_CTOS_SIG_ALGS 575 -# define SSL_F_TLS_PARSE_CTOS_SIG_ALGS_CERT 615 -# define SSL_F_TLS_PARSE_CTOS_SRP 576 -# define SSL_F_TLS_PARSE_CTOS_STATUS_REQUEST 577 -# define SSL_F_TLS_PARSE_CTOS_SUPPORTED_GROUPS 578 -# define SSL_F_TLS_PARSE_CTOS_USE_SRTP 465 -# define SSL_F_TLS_PARSE_STOC_ALPN 579 -# define SSL_F_TLS_PARSE_STOC_COOKIE 534 -# define SSL_F_TLS_PARSE_STOC_EARLY_DATA 538 -# define SSL_F_TLS_PARSE_STOC_EARLY_DATA_INFO 528 -# define SSL_F_TLS_PARSE_STOC_EC_PT_FORMATS 580 -# define SSL_F_TLS_PARSE_STOC_KEY_SHARE 445 -# define SSL_F_TLS_PARSE_STOC_MAXFRAGMENTLEN 581 -# define SSL_F_TLS_PARSE_STOC_NPN 582 -# define SSL_F_TLS_PARSE_STOC_PSK 502 -# define SSL_F_TLS_PARSE_STOC_RENEGOTIATE 448 -# define SSL_F_TLS_PARSE_STOC_SCT 564 -# define SSL_F_TLS_PARSE_STOC_SERVER_NAME 583 -# define SSL_F_TLS_PARSE_STOC_SESSION_TICKET 584 -# define SSL_F_TLS_PARSE_STOC_STATUS_REQUEST 585 -# define SSL_F_TLS_PARSE_STOC_SUPPORTED_VERSIONS 612 -# define SSL_F_TLS_PARSE_STOC_USE_SRTP 446 -# define SSL_F_TLS_POST_PROCESS_CLIENT_HELLO 378 -# define SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE 384 -# define SSL_F_TLS_PREPARE_CLIENT_CERTIFICATE 360 -# define SSL_F_TLS_PROCESS_AS_HELLO_RETRY_REQUEST 610 -# define SSL_F_TLS_PROCESS_CERTIFICATE_REQUEST 361 -# define SSL_F_TLS_PROCESS_CERT_STATUS 362 -# define SSL_F_TLS_PROCESS_CERT_STATUS_BODY 495 -# define SSL_F_TLS_PROCESS_CERT_VERIFY 379 -# define SSL_F_TLS_PROCESS_CHANGE_CIPHER_SPEC 363 -# define SSL_F_TLS_PROCESS_CKE_DHE 411 -# define SSL_F_TLS_PROCESS_CKE_ECDHE 412 -# define SSL_F_TLS_PROCESS_CKE_GOST 413 -# define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 414 -# define SSL_F_TLS_PROCESS_CKE_RSA 415 -# define SSL_F_TLS_PROCESS_CKE_SRP 416 -# define SSL_F_TLS_PROCESS_CLIENT_CERTIFICATE 380 -# define SSL_F_TLS_PROCESS_CLIENT_HELLO 381 -# define SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE 382 -# define SSL_F_TLS_PROCESS_ENCRYPTED_EXTENSIONS 444 -# define SSL_F_TLS_PROCESS_END_OF_EARLY_DATA 537 -# define SSL_F_TLS_PROCESS_FINISHED 364 -# define SSL_F_TLS_PROCESS_HELLO_REQ 507 -# define SSL_F_TLS_PROCESS_HELLO_RETRY_REQUEST 511 -# define SSL_F_TLS_PROCESS_INITIAL_SERVER_FLIGHT 442 -# define SSL_F_TLS_PROCESS_KEY_EXCHANGE 365 -# define SSL_F_TLS_PROCESS_KEY_UPDATE 518 -# define SSL_F_TLS_PROCESS_NEW_SESSION_TICKET 366 -# define SSL_F_TLS_PROCESS_NEXT_PROTO 383 -# define SSL_F_TLS_PROCESS_SERVER_CERTIFICATE 367 -# define SSL_F_TLS_PROCESS_SERVER_DONE 368 -# define SSL_F_TLS_PROCESS_SERVER_HELLO 369 -# define SSL_F_TLS_PROCESS_SKE_DHE 419 -# define SSL_F_TLS_PROCESS_SKE_ECDHE 420 -# define SSL_F_TLS_PROCESS_SKE_PSK_PREAMBLE 421 -# define SSL_F_TLS_PROCESS_SKE_SRP 422 -# define SSL_F_TLS_PSK_DO_BINDER 506 -# define SSL_F_TLS_SCAN_CLIENTHELLO_TLSEXT 450 -# define SSL_F_TLS_SETUP_HANDSHAKE 508 -# define SSL_F_USE_CERTIFICATE_CHAIN_FILE 220 -# define SSL_F_WPACKET_INTERN_INIT_LEN 633 -# define SSL_F_WPACKET_START_SUB_PACKET_LEN__ 634 -# define SSL_F_WRITE_STATE_MACHINE 586 - -/* - * SSL reason codes. - */ -# define SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY 291 -# define SSL_R_APP_DATA_IN_HANDSHAKE 100 -# define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272 -# define SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE 143 -# define SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE 158 -# define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 -# define SSL_R_BAD_CIPHER 186 -# define SSL_R_BAD_DATA 390 -# define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 -# define SSL_R_BAD_DECOMPRESSION 107 -# define SSL_R_BAD_DH_VALUE 102 -# define SSL_R_BAD_DIGEST_LENGTH 111 -# define SSL_R_BAD_EARLY_DATA 233 -# define SSL_R_BAD_ECC_CERT 304 -# define SSL_R_BAD_ECPOINT 306 -# define SSL_R_BAD_EXTENSION 110 -# define SSL_R_BAD_HANDSHAKE_LENGTH 332 -# define SSL_R_BAD_HANDSHAKE_STATE 236 -# define SSL_R_BAD_HELLO_REQUEST 105 -# define SSL_R_BAD_HRR_VERSION 263 -# define SSL_R_BAD_KEY_SHARE 108 -# define SSL_R_BAD_KEY_UPDATE 122 -# define SSL_R_BAD_LEGACY_VERSION 292 -# define SSL_R_BAD_LENGTH 271 -# define SSL_R_BAD_PACKET 240 -# define SSL_R_BAD_PACKET_LENGTH 115 -# define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 -# define SSL_R_BAD_PSK 219 -# define SSL_R_BAD_PSK_IDENTITY 114 -# define SSL_R_BAD_RECORD_TYPE 443 -# define SSL_R_BAD_RSA_ENCRYPT 119 -# define SSL_R_BAD_SIGNATURE 123 -# define SSL_R_BAD_SRP_A_LENGTH 347 -# define SSL_R_BAD_SRP_PARAMETERS 371 -# define SSL_R_BAD_SRTP_MKI_VALUE 352 -# define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 -# define SSL_R_BAD_SSL_FILETYPE 124 -# define SSL_R_BAD_VALUE 384 -# define SSL_R_BAD_WRITE_RETRY 127 -# define SSL_R_BINDER_DOES_NOT_VERIFY 253 -# define SSL_R_BIO_NOT_SET 128 -# define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 -# define SSL_R_BN_LIB 130 -# define SSL_R_CALLBACK_FAILED 234 -# define SSL_R_CANNOT_CHANGE_CIPHER 109 -# define SSL_R_CA_DN_LENGTH_MISMATCH 131 -# define SSL_R_CA_KEY_TOO_SMALL 397 -# define SSL_R_CA_MD_TOO_WEAK 398 -# define SSL_R_CCS_RECEIVED_EARLY 133 -# define SSL_R_CERTIFICATE_VERIFY_FAILED 134 -# define SSL_R_CERT_CB_ERROR 377 -# define SSL_R_CERT_LENGTH_MISMATCH 135 -# define SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED 218 -# define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 -# define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138 -# define SSL_R_CLIENTHELLO_TLSEXT 226 -# define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 -# define SSL_R_COMPRESSION_DISABLED 343 -# define SSL_R_COMPRESSION_FAILURE 141 -# define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 -# define SSL_R_COMPRESSION_LIBRARY_ERROR 142 -# define SSL_R_CONNECTION_TYPE_NOT_SET 144 -# define SSL_R_CONTEXT_NOT_DANE_ENABLED 167 -# define SSL_R_COOKIE_GEN_CALLBACK_FAILURE 400 -# define SSL_R_COOKIE_MISMATCH 308 -# define SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED 206 -# define SSL_R_DANE_ALREADY_ENABLED 172 -# define SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL 173 -# define SSL_R_DANE_NOT_ENABLED 175 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE 180 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE 184 -# define SSL_R_DANE_TLSA_BAD_DATA_LENGTH 189 -# define SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH 192 -# define SSL_R_DANE_TLSA_BAD_MATCHING_TYPE 200 -# define SSL_R_DANE_TLSA_BAD_PUBLIC_KEY 201 -# define SSL_R_DANE_TLSA_BAD_SELECTOR 202 -# define SSL_R_DANE_TLSA_NULL_DATA 203 -# define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 -# define SSL_R_DATA_LENGTH_TOO_LONG 146 -# define SSL_R_DECRYPTION_FAILED 147 -# define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 -# define SSL_R_DH_KEY_TOO_SMALL 394 -# define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 -# define SSL_R_DIGEST_CHECK_FAILED 149 -# define SSL_R_DTLS_MESSAGE_TOO_BIG 334 -# define SSL_R_DUPLICATE_COMPRESSION_ID 309 -# define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 -# define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 -# define SSL_R_EE_KEY_TOO_SMALL 399 -# define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 -# define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 -# define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 -# define SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN 204 -# define SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE 194 -# define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 -# define SSL_R_EXTENSION_NOT_RECEIVED 279 -# define SSL_R_EXTRA_DATA_IN_MESSAGE 153 -# define SSL_R_EXT_LENGTH_MISMATCH 163 -# define SSL_R_FAILED_TO_INIT_ASYNC 405 -# define SSL_R_FRAGMENTED_CLIENT_HELLO 401 -# define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 -# define SSL_R_HTTPS_PROXY_REQUEST 155 -# define SSL_R_HTTP_REQUEST 156 -# define SSL_R_ILLEGAL_POINT_COMPRESSION 162 -# define SSL_R_ILLEGAL_SUITEB_DIGEST 380 -# define SSL_R_INAPPROPRIATE_FALLBACK 373 -# define SSL_R_INCONSISTENT_COMPRESSION 340 -# define SSL_R_INCONSISTENT_EARLY_DATA_ALPN 222 -# define SSL_R_INCONSISTENT_EARLY_DATA_SNI 231 -# define SSL_R_INCONSISTENT_EXTMS 104 -# define SSL_R_INSUFFICIENT_SECURITY 241 -# define SSL_R_INVALID_ALERT 205 -# define SSL_R_INVALID_CCS_MESSAGE 260 -# define SSL_R_INVALID_CERTIFICATE_OR_ALG 238 -# define SSL_R_INVALID_COMMAND 280 -# define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 -# define SSL_R_INVALID_CONFIG 283 -# define SSL_R_INVALID_CONFIGURATION_NAME 113 -# define SSL_R_INVALID_CONTEXT 282 -# define SSL_R_INVALID_CT_VALIDATION_TYPE 212 -# define SSL_R_INVALID_KEY_UPDATE_TYPE 120 -# define SSL_R_INVALID_MAX_EARLY_DATA 174 -# define SSL_R_INVALID_NULL_CMD_NAME 385 -# define SSL_R_INVALID_SEQUENCE_NUMBER 402 -# define SSL_R_INVALID_SERVERINFO_DATA 388 -# define SSL_R_INVALID_SESSION_ID 999 -# define SSL_R_INVALID_SRP_USERNAME 357 -# define SSL_R_INVALID_STATUS_RESPONSE 328 -# define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 -# define SSL_R_LENGTH_MISMATCH 159 -# define SSL_R_LENGTH_TOO_LONG 404 -# define SSL_R_LENGTH_TOO_SHORT 160 -# define SSL_R_LIBRARY_BUG 274 -# define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 -# define SSL_R_MISSING_DSA_SIGNING_CERT 165 -# define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 -# define SSL_R_MISSING_FATAL 256 -# define SSL_R_MISSING_PARAMETERS 290 -# define SSL_R_MISSING_RSA_CERTIFICATE 168 -# define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 -# define SSL_R_MISSING_RSA_SIGNING_CERT 170 -# define SSL_R_MISSING_SIGALGS_EXTENSION 112 -# define SSL_R_MISSING_SIGNING_CERT 221 -# define SSL_R_MISSING_SRP_PARAM 358 -# define SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION 209 -# define SSL_R_MISSING_TMP_DH_KEY 171 -# define SSL_R_MISSING_TMP_ECDH_KEY 311 -# define SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA 293 -# define SSL_R_NOT_ON_RECORD_BOUNDARY 182 -# define SSL_R_NOT_REPLACING_CERTIFICATE 289 -# define SSL_R_NOT_SERVER 284 -# define SSL_R_NO_APPLICATION_PROTOCOL 235 -# define SSL_R_NO_CERTIFICATES_RETURNED 176 -# define SSL_R_NO_CERTIFICATE_ASSIGNED 177 -# define SSL_R_NO_CERTIFICATE_SET 179 -# define SSL_R_NO_CHANGE_FOLLOWING_HRR 214 -# define SSL_R_NO_CIPHERS_AVAILABLE 181 -# define SSL_R_NO_CIPHERS_SPECIFIED 183 -# define SSL_R_NO_CIPHER_MATCH 185 -# define SSL_R_NO_CLIENT_CERT_METHOD 331 -# define SSL_R_NO_COMPRESSION_SPECIFIED 187 -# define SSL_R_NO_COOKIE_CALLBACK_SET 287 -# define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 -# define SSL_R_NO_METHOD_SPECIFIED 188 -# define SSL_R_NO_PEM_EXTENSIONS 389 -# define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 -# define SSL_R_NO_PROTOCOLS_AVAILABLE 191 -# define SSL_R_NO_RENEGOTIATION 339 -# define SSL_R_NO_REQUIRED_DIGEST 324 -# define SSL_R_NO_SHARED_CIPHER 193 -# define SSL_R_NO_SHARED_GROUPS 410 -# define SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS 376 -# define SSL_R_NO_SRTP_PROFILES 359 -# define SSL_R_NO_SUITABLE_KEY_SHARE 101 -# define SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM 118 -# define SSL_R_NO_VALID_SCTS 216 -# define SSL_R_NO_VERIFY_COOKIE_CALLBACK 403 -# define SSL_R_NULL_SSL_CTX 195 -# define SSL_R_NULL_SSL_METHOD_PASSED 196 -# define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 -# define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 -# define SSL_R_OVERFLOW_ERROR 237 -# define SSL_R_PACKET_LENGTH_TOO_LONG 198 -# define SSL_R_PARSE_TLSEXT 227 -# define SSL_R_PATH_TOO_LONG 270 -# define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 -# define SSL_R_PEM_NAME_BAD_PREFIX 391 -# define SSL_R_PEM_NAME_TOO_SHORT 392 -# define SSL_R_PIPELINE_FAILURE 406 -# define SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR 278 -# define SSL_R_PRIVATE_KEY_MISMATCH 288 -# define SSL_R_PROTOCOL_IS_SHUTDOWN 207 -# define SSL_R_PSK_IDENTITY_NOT_FOUND 223 -# define SSL_R_PSK_NO_CLIENT_CB 224 -# define SSL_R_PSK_NO_SERVER_CB 225 -# define SSL_R_READ_BIO_NOT_SET 211 -# define SSL_R_READ_TIMEOUT_EXPIRED 312 -# define SSL_R_RECORD_LENGTH_MISMATCH 213 -# define SSL_R_RECORD_TOO_SMALL 298 -# define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 -# define SSL_R_RENEGOTIATION_ENCODING_ERR 336 -# define SSL_R_RENEGOTIATION_MISMATCH 337 -# define SSL_R_REQUEST_PENDING 285 -# define SSL_R_REQUEST_SENT 286 -# define SSL_R_REQUIRED_CIPHER_MISSING 215 -# define SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING 342 -# define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 -# define SSL_R_SCT_VERIFICATION_FAILED 208 -# define SSL_R_SERVERHELLO_TLSEXT 275 -# define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 -# define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 -# define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 -# define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 -# define SSL_R_SRP_A_CALC 361 -# define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362 -# define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363 -# define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364 -# define SSL_R_SSL3_EXT_INVALID_MAX_FRAGMENT_LENGTH 232 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 -# define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 -# define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 -# define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 -# define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 -# define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 -# define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 -# define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 -# define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 -# define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 -# define SSL_R_SSL_COMMAND_SECTION_EMPTY 117 -# define SSL_R_SSL_COMMAND_SECTION_NOT_FOUND 125 -# define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 -# define SSL_R_SSL_HANDSHAKE_FAILURE 229 -# define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 -# define SSL_R_SSL_NEGATIVE_LENGTH 372 -# define SSL_R_SSL_SECTION_EMPTY 126 -# define SSL_R_SSL_SECTION_NOT_FOUND 136 -# define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301 -# define SSL_R_SSL_SESSION_ID_CONFLICT 302 -# define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 -# define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303 -# define SSL_R_SSL_SESSION_ID_TOO_LONG 408 -# define SSL_R_SSL_SESSION_VERSION_MISMATCH 210 -# define SSL_R_STILL_IN_INIT 121 -# define SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED 1116 -# define SSL_R_TLSV13_ALERT_MISSING_EXTENSION 1109 -# define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 -# define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 -# define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 -# define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 -# define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 -# define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086 -# define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 -# define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 -# define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 -# define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 -# define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 -# define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 -# define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 -# define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 -# define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 -# define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 -# define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 -# define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 -# define SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT 365 -# define SSL_R_TLS_HEARTBEAT_PENDING 366 -# define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 -# define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 -# define SSL_R_TOO_MANY_KEY_UPDATES 132 -# define SSL_R_TOO_MANY_WARN_ALERTS 409 -# define SSL_R_TOO_MUCH_EARLY_DATA 164 -# define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314 -# define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239 -# define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242 -# define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243 -# define SSL_R_UNEXPECTED_CCS_MESSAGE 262 -# define SSL_R_UNEXPECTED_END_OF_EARLY_DATA 178 -# define SSL_R_UNEXPECTED_MESSAGE 244 -# define SSL_R_UNEXPECTED_RECORD 245 -# define SSL_R_UNINITIALIZED 276 -# define SSL_R_UNKNOWN_ALERT_TYPE 246 -# define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 -# define SSL_R_UNKNOWN_CIPHER_RETURNED 248 -# define SSL_R_UNKNOWN_CIPHER_TYPE 249 -# define SSL_R_UNKNOWN_CMD_NAME 386 -# define SSL_R_UNKNOWN_COMMAND 139 -# define SSL_R_UNKNOWN_DIGEST 368 -# define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 -# define SSL_R_UNKNOWN_PKEY_TYPE 251 -# define SSL_R_UNKNOWN_PROTOCOL 252 -# define SSL_R_UNKNOWN_SSL_VERSION 254 -# define SSL_R_UNKNOWN_STATE 255 -# define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 -# define SSL_R_UNSOLICITED_EXTENSION 217 -# define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 -# define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 -# define SSL_R_UNSUPPORTED_PROTOCOL 258 -# define SSL_R_UNSUPPORTED_SSL_VERSION 259 -# define SSL_R_UNSUPPORTED_STATUS_TYPE 329 -# define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 -# define SSL_R_VERSION_TOO_HIGH 166 -# define SSL_R_VERSION_TOO_LOW 396 -# define SSL_R_WRONG_CERTIFICATE_TYPE 383 -# define SSL_R_WRONG_CIPHER_RETURNED 261 -# define SSL_R_WRONG_CURVE 378 -# define SSL_R_WRONG_SIGNATURE_LENGTH 264 -# define SSL_R_WRONG_SIGNATURE_SIZE 265 -# define SSL_R_WRONG_SIGNATURE_TYPE 370 -# define SSL_R_WRONG_SSL_VERSION 266 -# define SSL_R_WRONG_VERSION_NUMBER 267 -# define SSL_R_X509_LIB 268 -# define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/stack.h b/submodules/MtProtoKit/openssl/openssl/stack.h deleted file mode 100644 index cfc075057a..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/stack.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_STACK_H -# define HEADER_STACK_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct stack_st OPENSSL_STACK; /* Use STACK_OF(...) instead */ - -typedef int (*OPENSSL_sk_compfunc)(const void *, const void *); -typedef void (*OPENSSL_sk_freefunc)(void *); -typedef void *(*OPENSSL_sk_copyfunc)(const void *); - -int OPENSSL_sk_num(const OPENSSL_STACK *); -void *OPENSSL_sk_value(const OPENSSL_STACK *, int); - -void *OPENSSL_sk_set(OPENSSL_STACK *st, int i, const void *data); - -OPENSSL_STACK *OPENSSL_sk_new(OPENSSL_sk_compfunc cmp); -OPENSSL_STACK *OPENSSL_sk_new_null(void); -OPENSSL_STACK *OPENSSL_sk_new_reserve(OPENSSL_sk_compfunc c, int n); -int OPENSSL_sk_reserve(OPENSSL_STACK *st, int n); -void OPENSSL_sk_free(OPENSSL_STACK *); -void OPENSSL_sk_pop_free(OPENSSL_STACK *st, void (*func) (void *)); -OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *, - OPENSSL_sk_copyfunc c, - OPENSSL_sk_freefunc f); -int OPENSSL_sk_insert(OPENSSL_STACK *sk, const void *data, int where); -void *OPENSSL_sk_delete(OPENSSL_STACK *st, int loc); -void *OPENSSL_sk_delete_ptr(OPENSSL_STACK *st, const void *p); -int OPENSSL_sk_find(OPENSSL_STACK *st, const void *data); -int OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data); -int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data); -int OPENSSL_sk_unshift(OPENSSL_STACK *st, const void *data); -void *OPENSSL_sk_shift(OPENSSL_STACK *st); -void *OPENSSL_sk_pop(OPENSSL_STACK *st); -void OPENSSL_sk_zero(OPENSSL_STACK *st); -OPENSSL_sk_compfunc OPENSSL_sk_set_cmp_func(OPENSSL_STACK *sk, - OPENSSL_sk_compfunc cmp); -OPENSSL_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *st); -void OPENSSL_sk_sort(OPENSSL_STACK *st); -int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define _STACK OPENSSL_STACK -# define sk_num OPENSSL_sk_num -# define sk_value OPENSSL_sk_value -# define sk_set OPENSSL_sk_set -# define sk_new OPENSSL_sk_new -# define sk_new_null OPENSSL_sk_new_null -# define sk_free OPENSSL_sk_free -# define sk_pop_free OPENSSL_sk_pop_free -# define sk_deep_copy OPENSSL_sk_deep_copy -# define sk_insert OPENSSL_sk_insert -# define sk_delete OPENSSL_sk_delete -# define sk_delete_ptr OPENSSL_sk_delete_ptr -# define sk_find OPENSSL_sk_find -# define sk_find_ex OPENSSL_sk_find_ex -# define sk_push OPENSSL_sk_push -# define sk_unshift OPENSSL_sk_unshift -# define sk_shift OPENSSL_sk_shift -# define sk_pop OPENSSL_sk_pop -# define sk_zero OPENSSL_sk_zero -# define sk_set_cmp_func OPENSSL_sk_set_cmp_func -# define sk_dup OPENSSL_sk_dup -# define sk_sort OPENSSL_sk_sort -# define sk_is_sorted OPENSSL_sk_is_sorted -# endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/store.h b/submodules/MtProtoKit/openssl/openssl/store.h deleted file mode 100644 index a40a7339e6..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/store.h +++ /dev/null @@ -1,266 +0,0 @@ -/* - * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_OSSL_STORE_H -# define HEADER_OSSL_STORE_H - -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -/*- - * The main OSSL_STORE functions. - * ------------------------------ - * - * These allow applications to open a channel to a resource with supported - * data (keys, certs, crls, ...), read the data a piece at a time and decide - * what to do with it, and finally close. - */ - -typedef struct ossl_store_ctx_st OSSL_STORE_CTX; - -/* - * Typedef for the OSSL_STORE_INFO post processing callback. This can be used - * to massage the given OSSL_STORE_INFO, or to drop it entirely (by returning - * NULL). - */ -typedef OSSL_STORE_INFO *(*OSSL_STORE_post_process_info_fn)(OSSL_STORE_INFO *, - void *); - -/* - * Open a channel given a URI. The given UI method will be used any time the - * loader needs extra input, for example when a password or pin is needed, and - * will be passed the same user data every time it's needed in this context. - * - * Returns a context reference which represents the channel to communicate - * through. - */ -OSSL_STORE_CTX *OSSL_STORE_open(const char *uri, const UI_METHOD *ui_method, - void *ui_data, - OSSL_STORE_post_process_info_fn post_process, - void *post_process_data); - -/* - * Control / fine tune the OSSL_STORE channel. |cmd| determines what is to be - * done, and depends on the underlying loader (use OSSL_STORE_get0_scheme to - * determine which loader is used), except for common commands (see below). - * Each command takes different arguments. - */ -int OSSL_STORE_ctrl(OSSL_STORE_CTX *ctx, int cmd, ... /* args */); -int OSSL_STORE_vctrl(OSSL_STORE_CTX *ctx, int cmd, va_list args); - -/* - * Common ctrl commands that different loaders may choose to support. - */ -/* int on = 0 or 1; STORE_ctrl(ctx, STORE_C_USE_SECMEM, &on); */ -# define OSSL_STORE_C_USE_SECMEM 1 -/* Where custom commands start */ -# define OSSL_STORE_C_CUSTOM_START 100 - -/* - * Read one data item (a key, a cert, a CRL) that is supported by the OSSL_STORE - * functionality, given a context. - * Returns a OSSL_STORE_INFO pointer, from which OpenSSL typed data can be - * extracted with OSSL_STORE_INFO_get0_PKEY(), OSSL_STORE_INFO_get0_CERT(), ... - * NULL is returned on error, which may include that the data found at the URI - * can't be figured out for certain or is ambiguous. - */ -OSSL_STORE_INFO *OSSL_STORE_load(OSSL_STORE_CTX *ctx); - -/* - * Check if end of data (end of file) is reached - * Returns 1 on end, 0 otherwise. - */ -int OSSL_STORE_eof(OSSL_STORE_CTX *ctx); - -/* - * Check if an error occurred - * Returns 1 if it did, 0 otherwise. - */ -int OSSL_STORE_error(OSSL_STORE_CTX *ctx); - -/* - * Close the channel - * Returns 1 on success, 0 on error. - */ -int OSSL_STORE_close(OSSL_STORE_CTX *ctx); - - -/*- - * Extracting OpenSSL types from and creating new OSSL_STORE_INFOs - * --------------------------------------------------------------- - */ - -/* - * Types of data that can be ossl_stored in a OSSL_STORE_INFO. - * OSSL_STORE_INFO_NAME is typically found when getting a listing of - * available "files" / "tokens" / what have you. - */ -# define OSSL_STORE_INFO_NAME 1 /* char * */ -# define OSSL_STORE_INFO_PARAMS 2 /* EVP_PKEY * */ -# define OSSL_STORE_INFO_PKEY 3 /* EVP_PKEY * */ -# define OSSL_STORE_INFO_CERT 4 /* X509 * */ -# define OSSL_STORE_INFO_CRL 5 /* X509_CRL * */ - -/* - * Functions to generate OSSL_STORE_INFOs, one function for each type we - * support having in them, as well as a generic constructor. - * - * In all cases, ownership of the object is transferred to the OSSL_STORE_INFO - * and will therefore be freed when the OSSL_STORE_INFO is freed. - */ -OSSL_STORE_INFO *OSSL_STORE_INFO_new_NAME(char *name); -int OSSL_STORE_INFO_set0_NAME_description(OSSL_STORE_INFO *info, char *desc); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_PARAMS(EVP_PKEY *params); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_PKEY(EVP_PKEY *pkey); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_CERT(X509 *x509); -OSSL_STORE_INFO *OSSL_STORE_INFO_new_CRL(X509_CRL *crl); - -/* - * Functions to try to extract data from a OSSL_STORE_INFO. - */ -int OSSL_STORE_INFO_get_type(const OSSL_STORE_INFO *info); -const char *OSSL_STORE_INFO_get0_NAME(const OSSL_STORE_INFO *info); -char *OSSL_STORE_INFO_get1_NAME(const OSSL_STORE_INFO *info); -const char *OSSL_STORE_INFO_get0_NAME_description(const OSSL_STORE_INFO *info); -char *OSSL_STORE_INFO_get1_NAME_description(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get0_PARAMS(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get1_PARAMS(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get0_PKEY(const OSSL_STORE_INFO *info); -EVP_PKEY *OSSL_STORE_INFO_get1_PKEY(const OSSL_STORE_INFO *info); -X509 *OSSL_STORE_INFO_get0_CERT(const OSSL_STORE_INFO *info); -X509 *OSSL_STORE_INFO_get1_CERT(const OSSL_STORE_INFO *info); -X509_CRL *OSSL_STORE_INFO_get0_CRL(const OSSL_STORE_INFO *info); -X509_CRL *OSSL_STORE_INFO_get1_CRL(const OSSL_STORE_INFO *info); - -const char *OSSL_STORE_INFO_type_string(int type); - -/* - * Free the OSSL_STORE_INFO - */ -void OSSL_STORE_INFO_free(OSSL_STORE_INFO *info); - - -/*- - * Functions to construct a search URI from a base URI and search criteria - * ----------------------------------------------------------------------- - */ - -/* OSSL_STORE search types */ -# define OSSL_STORE_SEARCH_BY_NAME 1 /* subject in certs, issuer in CRLs */ -# define OSSL_STORE_SEARCH_BY_ISSUER_SERIAL 2 -# define OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT 3 -# define OSSL_STORE_SEARCH_BY_ALIAS 4 - -/* To check what search types the scheme handler supports */ -int OSSL_STORE_supports_search(OSSL_STORE_CTX *ctx, int search_type); - -/* Search term constructors */ -/* - * The input is considered to be owned by the caller, and must therefore - * remain present throughout the lifetime of the returned OSSL_STORE_SEARCH - */ -OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_name(X509_NAME *name); -OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_issuer_serial(X509_NAME *name, - const ASN1_INTEGER - *serial); -OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_key_fingerprint(const EVP_MD *digest, - const unsigned char - *bytes, size_t len); -OSSL_STORE_SEARCH *OSSL_STORE_SEARCH_by_alias(const char *alias); - -/* Search term destructor */ -void OSSL_STORE_SEARCH_free(OSSL_STORE_SEARCH *search); - -/* Search term accessors */ -int OSSL_STORE_SEARCH_get_type(const OSSL_STORE_SEARCH *criterion); -X509_NAME *OSSL_STORE_SEARCH_get0_name(OSSL_STORE_SEARCH *criterion); -const ASN1_INTEGER *OSSL_STORE_SEARCH_get0_serial(const OSSL_STORE_SEARCH - *criterion); -const unsigned char *OSSL_STORE_SEARCH_get0_bytes(const OSSL_STORE_SEARCH - *criterion, size_t *length); -const char *OSSL_STORE_SEARCH_get0_string(const OSSL_STORE_SEARCH *criterion); -const EVP_MD *OSSL_STORE_SEARCH_get0_digest(const OSSL_STORE_SEARCH *criterion); - -/* - * Add search criterion and expected return type (which can be unspecified) - * to the loading channel. This MUST happen before the first OSSL_STORE_load(). - */ -int OSSL_STORE_expect(OSSL_STORE_CTX *ctx, int expected_type); -int OSSL_STORE_find(OSSL_STORE_CTX *ctx, OSSL_STORE_SEARCH *search); - - -/*- - * Function to register a loader for the given URI scheme. - * ------------------------------------------------------- - * - * The loader receives all the main components of an URI except for the - * scheme. - */ - -typedef struct ossl_store_loader_st OSSL_STORE_LOADER; -OSSL_STORE_LOADER *OSSL_STORE_LOADER_new(ENGINE *e, const char *scheme); -const ENGINE *OSSL_STORE_LOADER_get0_engine(const OSSL_STORE_LOADER *loader); -const char *OSSL_STORE_LOADER_get0_scheme(const OSSL_STORE_LOADER *loader); -/* struct ossl_store_loader_ctx_st is defined differently by each loader */ -typedef struct ossl_store_loader_ctx_st OSSL_STORE_LOADER_CTX; -typedef OSSL_STORE_LOADER_CTX *(*OSSL_STORE_open_fn)(const OSSL_STORE_LOADER - *loader, - const char *uri, - const UI_METHOD *ui_method, - void *ui_data); -int OSSL_STORE_LOADER_set_open(OSSL_STORE_LOADER *loader, - OSSL_STORE_open_fn open_function); -typedef int (*OSSL_STORE_ctrl_fn)(OSSL_STORE_LOADER_CTX *ctx, int cmd, - va_list args); -int OSSL_STORE_LOADER_set_ctrl(OSSL_STORE_LOADER *loader, - OSSL_STORE_ctrl_fn ctrl_function); -typedef int (*OSSL_STORE_expect_fn)(OSSL_STORE_LOADER_CTX *ctx, int expected); -int OSSL_STORE_LOADER_set_expect(OSSL_STORE_LOADER *loader, - OSSL_STORE_expect_fn expect_function); -typedef int (*OSSL_STORE_find_fn)(OSSL_STORE_LOADER_CTX *ctx, - OSSL_STORE_SEARCH *criteria); -int OSSL_STORE_LOADER_set_find(OSSL_STORE_LOADER *loader, - OSSL_STORE_find_fn find_function); -typedef OSSL_STORE_INFO *(*OSSL_STORE_load_fn)(OSSL_STORE_LOADER_CTX *ctx, - const UI_METHOD *ui_method, - void *ui_data); -int OSSL_STORE_LOADER_set_load(OSSL_STORE_LOADER *loader, - OSSL_STORE_load_fn load_function); -typedef int (*OSSL_STORE_eof_fn)(OSSL_STORE_LOADER_CTX *ctx); -int OSSL_STORE_LOADER_set_eof(OSSL_STORE_LOADER *loader, - OSSL_STORE_eof_fn eof_function); -typedef int (*OSSL_STORE_error_fn)(OSSL_STORE_LOADER_CTX *ctx); -int OSSL_STORE_LOADER_set_error(OSSL_STORE_LOADER *loader, - OSSL_STORE_error_fn error_function); -typedef int (*OSSL_STORE_close_fn)(OSSL_STORE_LOADER_CTX *ctx); -int OSSL_STORE_LOADER_set_close(OSSL_STORE_LOADER *loader, - OSSL_STORE_close_fn close_function); -void OSSL_STORE_LOADER_free(OSSL_STORE_LOADER *loader); - -int OSSL_STORE_register_loader(OSSL_STORE_LOADER *loader); -OSSL_STORE_LOADER *OSSL_STORE_unregister_loader(const char *scheme); - -/*- - * Functions to list STORE loaders - * ------------------------------- - */ -int OSSL_STORE_do_all_loaders(void (*do_function) (const OSSL_STORE_LOADER - *loader, void *do_arg), - void *do_arg); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/storeerr.h b/submodules/MtProtoKit/openssl/openssl/storeerr.h deleted file mode 100644 index 190eab07fb..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/storeerr.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_OSSL_STOREERR_H -# define HEADER_OSSL_STOREERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_OSSL_STORE_strings(void); - -/* - * OSSL_STORE function codes. - */ -# define OSSL_STORE_F_FILE_CTRL 129 -# define OSSL_STORE_F_FILE_FIND 138 -# define OSSL_STORE_F_FILE_GET_PASS 118 -# define OSSL_STORE_F_FILE_LOAD 119 -# define OSSL_STORE_F_FILE_LOAD_TRY_DECODE 124 -# define OSSL_STORE_F_FILE_NAME_TO_URI 126 -# define OSSL_STORE_F_FILE_OPEN 120 -# define OSSL_STORE_F_OSSL_STORE_ATTACH_PEM_BIO 127 -# define OSSL_STORE_F_OSSL_STORE_EXPECT 130 -# define OSSL_STORE_F_OSSL_STORE_FILE_ATTACH_PEM_BIO_INT 128 -# define OSSL_STORE_F_OSSL_STORE_FIND 131 -# define OSSL_STORE_F_OSSL_STORE_GET0_LOADER_INT 100 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_CERT 101 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_CRL 102 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_NAME 103 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_NAME_DESCRIPTION 135 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_PARAMS 104 -# define OSSL_STORE_F_OSSL_STORE_INFO_GET1_PKEY 105 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_CERT 106 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_CRL 107 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_EMBEDDED 123 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_NAME 109 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_PARAMS 110 -# define OSSL_STORE_F_OSSL_STORE_INFO_NEW_PKEY 111 -# define OSSL_STORE_F_OSSL_STORE_INFO_SET0_NAME_DESCRIPTION 134 -# define OSSL_STORE_F_OSSL_STORE_INIT_ONCE 112 -# define OSSL_STORE_F_OSSL_STORE_LOADER_NEW 113 -# define OSSL_STORE_F_OSSL_STORE_OPEN 114 -# define OSSL_STORE_F_OSSL_STORE_OPEN_INT 115 -# define OSSL_STORE_F_OSSL_STORE_REGISTER_LOADER_INT 117 -# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_ALIAS 132 -# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_ISSUER_SERIAL 133 -# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_KEY_FINGERPRINT 136 -# define OSSL_STORE_F_OSSL_STORE_SEARCH_BY_NAME 137 -# define OSSL_STORE_F_OSSL_STORE_UNREGISTER_LOADER_INT 116 -# define OSSL_STORE_F_TRY_DECODE_PARAMS 121 -# define OSSL_STORE_F_TRY_DECODE_PKCS12 122 -# define OSSL_STORE_F_TRY_DECODE_PKCS8ENCRYPTED 125 - -/* - * OSSL_STORE reason codes. - */ -# define OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE 107 -# define OSSL_STORE_R_BAD_PASSWORD_READ 115 -# define OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC 113 -# define OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST 121 -# define OSSL_STORE_R_INVALID_SCHEME 106 -# define OSSL_STORE_R_IS_NOT_A 112 -# define OSSL_STORE_R_LOADER_INCOMPLETE 116 -# define OSSL_STORE_R_LOADING_STARTED 117 -# define OSSL_STORE_R_NOT_A_CERTIFICATE 100 -# define OSSL_STORE_R_NOT_A_CRL 101 -# define OSSL_STORE_R_NOT_A_KEY 102 -# define OSSL_STORE_R_NOT_A_NAME 103 -# define OSSL_STORE_R_NOT_PARAMETERS 104 -# define OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR 114 -# define OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE 108 -# define OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES 119 -# define OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED 109 -# define OSSL_STORE_R_UNREGISTERED_SCHEME 105 -# define OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE 110 -# define OSSL_STORE_R_UNSUPPORTED_OPERATION 118 -# define OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE 120 -# define OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED 111 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/symhacks.h b/submodules/MtProtoKit/openssl/openssl/symhacks.h deleted file mode 100644 index 156ea6e4ee..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/symhacks.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 1999-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SYMHACKS_H -# define HEADER_SYMHACKS_H - -# include - -/* Case insensitive linking causes problems.... */ -# if defined(OPENSSL_SYS_VMS) -# undef ERR_load_CRYPTO_strings -# define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings -# undef OCSP_crlID_new -# define OCSP_crlID_new OCSP_crlID2_new - -# undef d2i_ECPARAMETERS -# define d2i_ECPARAMETERS d2i_UC_ECPARAMETERS -# undef i2d_ECPARAMETERS -# define i2d_ECPARAMETERS i2d_UC_ECPARAMETERS -# undef d2i_ECPKPARAMETERS -# define d2i_ECPKPARAMETERS d2i_UC_ECPKPARAMETERS -# undef i2d_ECPKPARAMETERS -# define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS - -/* This one clashes with CMS_data_create */ -# undef cms_Data_create -# define cms_Data_create priv_cms_Data_create - -# endif - -#endif /* ! defined HEADER_VMS_IDHACKS_H */ diff --git a/submodules/MtProtoKit/openssl/openssl/tls1.h b/submodules/MtProtoKit/openssl/openssl/tls1.h deleted file mode 100644 index 76d9fda46e..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/tls1.h +++ /dev/null @@ -1,1237 +0,0 @@ -/* - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * Copyright 2005 Nokia. All rights reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_TLS1_H -# define HEADER_TLS1_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Default security level if not overridden at config time */ -# ifndef OPENSSL_TLS_SECURITY_LEVEL -# define OPENSSL_TLS_SECURITY_LEVEL 1 -# endif - -# define TLS1_VERSION 0x0301 -# define TLS1_1_VERSION 0x0302 -# define TLS1_2_VERSION 0x0303 -# define TLS1_3_VERSION 0x0304 -# define TLS_MAX_VERSION TLS1_3_VERSION - -/* Special value for method supporting multiple versions */ -# define TLS_ANY_VERSION 0x10000 - -# define TLS1_VERSION_MAJOR 0x03 -# define TLS1_VERSION_MINOR 0x01 - -# define TLS1_1_VERSION_MAJOR 0x03 -# define TLS1_1_VERSION_MINOR 0x02 - -# define TLS1_2_VERSION_MAJOR 0x03 -# define TLS1_2_VERSION_MINOR 0x03 - -# define TLS1_get_version(s) \ - ((SSL_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_version(s) : 0) - -# define TLS1_get_client_version(s) \ - ((SSL_client_version(s) >> 8) == TLS1_VERSION_MAJOR ? SSL_client_version(s) : 0) - -# define TLS1_AD_DECRYPTION_FAILED 21 -# define TLS1_AD_RECORD_OVERFLOW 22 -# define TLS1_AD_UNKNOWN_CA 48/* fatal */ -# define TLS1_AD_ACCESS_DENIED 49/* fatal */ -# define TLS1_AD_DECODE_ERROR 50/* fatal */ -# define TLS1_AD_DECRYPT_ERROR 51 -# define TLS1_AD_EXPORT_RESTRICTION 60/* fatal */ -# define TLS1_AD_PROTOCOL_VERSION 70/* fatal */ -# define TLS1_AD_INSUFFICIENT_SECURITY 71/* fatal */ -# define TLS1_AD_INTERNAL_ERROR 80/* fatal */ -# define TLS1_AD_INAPPROPRIATE_FALLBACK 86/* fatal */ -# define TLS1_AD_USER_CANCELLED 90 -# define TLS1_AD_NO_RENEGOTIATION 100 -/* TLSv1.3 alerts */ -# define TLS13_AD_MISSING_EXTENSION 109 /* fatal */ -# define TLS13_AD_CERTIFICATE_REQUIRED 116 /* fatal */ -/* codes 110-114 are from RFC3546 */ -# define TLS1_AD_UNSUPPORTED_EXTENSION 110 -# define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111 -# define TLS1_AD_UNRECOGNIZED_NAME 112 -# define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113 -# define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114 -# define TLS1_AD_UNKNOWN_PSK_IDENTITY 115/* fatal */ -# define TLS1_AD_NO_APPLICATION_PROTOCOL 120 /* fatal */ - -/* ExtensionType values from RFC3546 / RFC4366 / RFC6066 */ -# define TLSEXT_TYPE_server_name 0 -# define TLSEXT_TYPE_max_fragment_length 1 -# define TLSEXT_TYPE_client_certificate_url 2 -# define TLSEXT_TYPE_trusted_ca_keys 3 -# define TLSEXT_TYPE_truncated_hmac 4 -# define TLSEXT_TYPE_status_request 5 -/* ExtensionType values from RFC4681 */ -# define TLSEXT_TYPE_user_mapping 6 -/* ExtensionType values from RFC5878 */ -# define TLSEXT_TYPE_client_authz 7 -# define TLSEXT_TYPE_server_authz 8 -/* ExtensionType values from RFC6091 */ -# define TLSEXT_TYPE_cert_type 9 - -/* ExtensionType values from RFC4492 */ -/* - * Prior to TLSv1.3 the supported_groups extension was known as - * elliptic_curves - */ -# define TLSEXT_TYPE_supported_groups 10 -# define TLSEXT_TYPE_elliptic_curves TLSEXT_TYPE_supported_groups -# define TLSEXT_TYPE_ec_point_formats 11 - - -/* ExtensionType value from RFC5054 */ -# define TLSEXT_TYPE_srp 12 - -/* ExtensionType values from RFC5246 */ -# define TLSEXT_TYPE_signature_algorithms 13 - -/* ExtensionType value from RFC5764 */ -# define TLSEXT_TYPE_use_srtp 14 - -/* ExtensionType value from RFC5620 */ -# define TLSEXT_TYPE_heartbeat 15 - -/* ExtensionType value from RFC7301 */ -# define TLSEXT_TYPE_application_layer_protocol_negotiation 16 - -/* - * Extension type for Certificate Transparency - * https://tools.ietf.org/html/rfc6962#section-3.3.1 - */ -# define TLSEXT_TYPE_signed_certificate_timestamp 18 - -/* - * ExtensionType value for TLS padding extension. - * http://tools.ietf.org/html/draft-agl-tls-padding - */ -# define TLSEXT_TYPE_padding 21 - -/* ExtensionType value from RFC7366 */ -# define TLSEXT_TYPE_encrypt_then_mac 22 - -/* ExtensionType value from RFC7627 */ -# define TLSEXT_TYPE_extended_master_secret 23 - -/* ExtensionType value from RFC4507 */ -# define TLSEXT_TYPE_session_ticket 35 - -/* As defined for TLS1.3 */ -# define TLSEXT_TYPE_psk 41 -# define TLSEXT_TYPE_early_data 42 -# define TLSEXT_TYPE_supported_versions 43 -# define TLSEXT_TYPE_cookie 44 -# define TLSEXT_TYPE_psk_kex_modes 45 -# define TLSEXT_TYPE_certificate_authorities 47 -# define TLSEXT_TYPE_post_handshake_auth 49 -# define TLSEXT_TYPE_signature_algorithms_cert 50 -# define TLSEXT_TYPE_key_share 51 - -/* Temporary extension type */ -# define TLSEXT_TYPE_renegotiate 0xff01 - -# ifndef OPENSSL_NO_NEXTPROTONEG -/* This is not an IANA defined extension number */ -# define TLSEXT_TYPE_next_proto_neg 13172 -# endif - -/* NameType value from RFC3546 */ -# define TLSEXT_NAMETYPE_host_name 0 -/* status request value from RFC3546 */ -# define TLSEXT_STATUSTYPE_ocsp 1 - -/* ECPointFormat values from RFC4492 */ -# define TLSEXT_ECPOINTFORMAT_first 0 -# define TLSEXT_ECPOINTFORMAT_uncompressed 0 -# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1 -# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2 -# define TLSEXT_ECPOINTFORMAT_last 2 - -/* Signature and hash algorithms from RFC5246 */ -# define TLSEXT_signature_anonymous 0 -# define TLSEXT_signature_rsa 1 -# define TLSEXT_signature_dsa 2 -# define TLSEXT_signature_ecdsa 3 -# define TLSEXT_signature_gostr34102001 237 -# define TLSEXT_signature_gostr34102012_256 238 -# define TLSEXT_signature_gostr34102012_512 239 - -/* Total number of different signature algorithms */ -# define TLSEXT_signature_num 7 - -# define TLSEXT_hash_none 0 -# define TLSEXT_hash_md5 1 -# define TLSEXT_hash_sha1 2 -# define TLSEXT_hash_sha224 3 -# define TLSEXT_hash_sha256 4 -# define TLSEXT_hash_sha384 5 -# define TLSEXT_hash_sha512 6 -# define TLSEXT_hash_gostr3411 237 -# define TLSEXT_hash_gostr34112012_256 238 -# define TLSEXT_hash_gostr34112012_512 239 - -/* Total number of different digest algorithms */ - -# define TLSEXT_hash_num 10 - -/* Flag set for unrecognised algorithms */ -# define TLSEXT_nid_unknown 0x1000000 - -/* ECC curves */ - -# define TLSEXT_curve_P_256 23 -# define TLSEXT_curve_P_384 24 - -/* OpenSSL value to disable maximum fragment length extension */ -# define TLSEXT_max_fragment_length_DISABLED 0 -/* Allowed values for max fragment length extension */ -# define TLSEXT_max_fragment_length_512 1 -# define TLSEXT_max_fragment_length_1024 2 -# define TLSEXT_max_fragment_length_2048 3 -# define TLSEXT_max_fragment_length_4096 4 - -int SSL_CTX_set_tlsext_max_fragment_length(SSL_CTX *ctx, uint8_t mode); -int SSL_set_tlsext_max_fragment_length(SSL *ssl, uint8_t mode); - -# define TLSEXT_MAXLEN_host_name 255 - -__owur const char *SSL_get_servername(const SSL *s, const int type); -__owur int SSL_get_servername_type(const SSL *s); -/* - * SSL_export_keying_material exports a value derived from the master secret, - * as specified in RFC 5705. It writes |olen| bytes to |out| given a label and - * optional context. (Since a zero length context is allowed, the |use_context| - * flag controls whether a context is included.) It returns 1 on success and - * 0 or -1 otherwise. - */ -__owur int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, - const char *label, size_t llen, - const unsigned char *context, - size_t contextlen, int use_context); - -/* - * SSL_export_keying_material_early exports a value derived from the - * early exporter master secret, as specified in - * https://tools.ietf.org/html/draft-ietf-tls-tls13-23. It writes - * |olen| bytes to |out| given a label and optional context. It - * returns 1 on success and 0 otherwise. - */ -__owur int SSL_export_keying_material_early(SSL *s, unsigned char *out, - size_t olen, const char *label, - size_t llen, - const unsigned char *context, - size_t contextlen); - -int SSL_get_peer_signature_type_nid(const SSL *s, int *pnid); -int SSL_get_signature_type_nid(const SSL *s, int *pnid); - -int SSL_get_sigalgs(SSL *s, int idx, - int *psign, int *phash, int *psignandhash, - unsigned char *rsig, unsigned char *rhash); - -int SSL_get_shared_sigalgs(SSL *s, int idx, - int *psign, int *phash, int *psignandhash, - unsigned char *rsig, unsigned char *rhash); - -__owur int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain); - -# define SSL_set_tlsext_host_name(s,name) \ - SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,\ - (void *)name) - -# define SSL_set_tlsext_debug_callback(ssl, cb) \ - SSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,\ - (void (*)(void))cb) - -# define SSL_set_tlsext_debug_arg(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_ARG,0,arg) - -# define SSL_get_tlsext_status_type(ssl) \ - SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE,0,NULL) - -# define SSL_set_tlsext_status_type(ssl, type) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type,NULL) - -# define SSL_get_tlsext_status_exts(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS,0,arg) - -# define SSL_set_tlsext_status_exts(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0,arg) - -# define SSL_get_tlsext_status_ids(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0,arg) - -# define SSL_set_tlsext_status_ids(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0,arg) - -# define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0,arg) - -# define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen,arg) - -# define SSL_CTX_set_tlsext_servername_callback(ctx, cb) \ - SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_CB,\ - (void (*)(void))cb) - -# define SSL_TLSEXT_ERR_OK 0 -# define SSL_TLSEXT_ERR_ALERT_WARNING 1 -# define SSL_TLSEXT_ERR_ALERT_FATAL 2 -# define SSL_TLSEXT_ERR_NOACK 3 - -# define SSL_CTX_set_tlsext_servername_arg(ctx, arg) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0,arg) - -# define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_TLSEXT_TICKET_KEYS,keylen,keys) -# define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_TICKET_KEYS,keylen,keys) - -# define SSL_CTX_get_tlsext_status_cb(ssl, cb) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB,0,(void *)cb) -# define SSL_CTX_set_tlsext_status_cb(ssl, cb) \ - SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,\ - (void (*)(void))cb) - -# define SSL_CTX_get_tlsext_status_arg(ssl, arg) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB_ARG,0,arg) -# define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0,arg) - -# define SSL_CTX_set_tlsext_status_type(ssl, type) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type,NULL) - -# define SSL_CTX_get_tlsext_status_type(ssl) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE,0,NULL) - -# define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \ - SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,\ - (void (*)(void))cb) - -# ifndef OPENSSL_NO_HEARTBEATS -# define SSL_DTLSEXT_HB_ENABLED 0x01 -# define SSL_DTLSEXT_HB_DONT_SEND_REQUESTS 0x02 -# define SSL_DTLSEXT_HB_DONT_RECV_REQUESTS 0x04 -# define SSL_get_dtlsext_heartbeat_pending(ssl) \ - SSL_ctrl(ssl,SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING,0,NULL) -# define SSL_set_dtlsext_heartbeat_no_requests(ssl, arg) \ - SSL_ctrl(ssl,SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS,arg,NULL) - -# if OPENSSL_API_COMPAT < 0x10100000L -# define SSL_CTRL_TLS_EXT_SEND_HEARTBEAT \ - SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT -# define SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING \ - SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING -# define SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS \ - SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS -# define SSL_TLSEXT_HB_ENABLED \ - SSL_DTLSEXT_HB_ENABLED -# define SSL_TLSEXT_HB_DONT_SEND_REQUESTS \ - SSL_DTLSEXT_HB_DONT_SEND_REQUESTS -# define SSL_TLSEXT_HB_DONT_RECV_REQUESTS \ - SSL_DTLSEXT_HB_DONT_RECV_REQUESTS -# define SSL_get_tlsext_heartbeat_pending(ssl) \ - SSL_get_dtlsext_heartbeat_pending(ssl) -# define SSL_set_tlsext_heartbeat_no_requests(ssl, arg) \ - SSL_set_dtlsext_heartbeat_no_requests(ssl,arg) -# endif -# endif - -/* PSK ciphersuites from 4279 */ -# define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A -# define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008B -# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA 0x0300008C -# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA 0x0300008D -# define TLS1_CK_DHE_PSK_WITH_RC4_128_SHA 0x0300008E -# define TLS1_CK_DHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008F -# define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA 0x03000090 -# define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA 0x03000091 -# define TLS1_CK_RSA_PSK_WITH_RC4_128_SHA 0x03000092 -# define TLS1_CK_RSA_PSK_WITH_3DES_EDE_CBC_SHA 0x03000093 -# define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA 0x03000094 -# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA 0x03000095 - -/* PSK ciphersuites from 5487 */ -# define TLS1_CK_PSK_WITH_AES_128_GCM_SHA256 0x030000A8 -# define TLS1_CK_PSK_WITH_AES_256_GCM_SHA384 0x030000A9 -# define TLS1_CK_DHE_PSK_WITH_AES_128_GCM_SHA256 0x030000AA -# define TLS1_CK_DHE_PSK_WITH_AES_256_GCM_SHA384 0x030000AB -# define TLS1_CK_RSA_PSK_WITH_AES_128_GCM_SHA256 0x030000AC -# define TLS1_CK_RSA_PSK_WITH_AES_256_GCM_SHA384 0x030000AD -# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA256 0x030000AE -# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA384 0x030000AF -# define TLS1_CK_PSK_WITH_NULL_SHA256 0x030000B0 -# define TLS1_CK_PSK_WITH_NULL_SHA384 0x030000B1 -# define TLS1_CK_DHE_PSK_WITH_AES_128_CBC_SHA256 0x030000B2 -# define TLS1_CK_DHE_PSK_WITH_AES_256_CBC_SHA384 0x030000B3 -# define TLS1_CK_DHE_PSK_WITH_NULL_SHA256 0x030000B4 -# define TLS1_CK_DHE_PSK_WITH_NULL_SHA384 0x030000B5 -# define TLS1_CK_RSA_PSK_WITH_AES_128_CBC_SHA256 0x030000B6 -# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA384 0x030000B7 -# define TLS1_CK_RSA_PSK_WITH_NULL_SHA256 0x030000B8 -# define TLS1_CK_RSA_PSK_WITH_NULL_SHA384 0x030000B9 - -/* NULL PSK ciphersuites from RFC4785 */ -# define TLS1_CK_PSK_WITH_NULL_SHA 0x0300002C -# define TLS1_CK_DHE_PSK_WITH_NULL_SHA 0x0300002D -# define TLS1_CK_RSA_PSK_WITH_NULL_SHA 0x0300002E - -/* AES ciphersuites from RFC3268 */ -# define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F -# define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030 -# define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031 -# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA 0x03000032 -# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA 0x03000033 -# define TLS1_CK_ADH_WITH_AES_128_SHA 0x03000034 -# define TLS1_CK_RSA_WITH_AES_256_SHA 0x03000035 -# define TLS1_CK_DH_DSS_WITH_AES_256_SHA 0x03000036 -# define TLS1_CK_DH_RSA_WITH_AES_256_SHA 0x03000037 -# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038 -# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039 -# define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A - -/* TLS v1.2 ciphersuites */ -# define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B -# define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C -# define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D -# define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E -# define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F -# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040 - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045 -# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046 - -/* TLS v1.2 ciphersuites */ -# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067 -# define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068 -# define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069 -# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A -# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B -# define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C -# define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088 -# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089 - -/* SEED ciphersuites from RFC4162 */ -# define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096 -# define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097 -# define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098 -# define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099 -# define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A -# define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -# define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C -# define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D -# define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E -# define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F -# define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0 -# define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1 -# define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2 -# define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3 -# define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4 -# define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5 -# define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6 -# define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7 - -/* CCM ciphersuites from RFC6655 */ -# define TLS1_CK_RSA_WITH_AES_128_CCM 0x0300C09C -# define TLS1_CK_RSA_WITH_AES_256_CCM 0x0300C09D -# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM 0x0300C09E -# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM 0x0300C09F -# define TLS1_CK_RSA_WITH_AES_128_CCM_8 0x0300C0A0 -# define TLS1_CK_RSA_WITH_AES_256_CCM_8 0x0300C0A1 -# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM_8 0x0300C0A2 -# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM_8 0x0300C0A3 -# define TLS1_CK_PSK_WITH_AES_128_CCM 0x0300C0A4 -# define TLS1_CK_PSK_WITH_AES_256_CCM 0x0300C0A5 -# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM 0x0300C0A6 -# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM 0x0300C0A7 -# define TLS1_CK_PSK_WITH_AES_128_CCM_8 0x0300C0A8 -# define TLS1_CK_PSK_WITH_AES_256_CCM_8 0x0300C0A9 -# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM_8 0x0300C0AA -# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM_8 0x0300C0AB - -/* CCM ciphersuites from RFC7251 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM 0x0300C0AC -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM 0x0300C0AD -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM_8 0x0300C0AE -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM_8 0x0300C0AF - -/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BA -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BB -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BC -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BD -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BE -# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA256 0x030000BF - -# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C0 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C1 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C2 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C3 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C4 -# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256 0x030000C5 - -/* ECC ciphersuites from RFC4492 */ -# define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001 -# define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002 -# define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005 - -# define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006 -# define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007 -# define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A - -# define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B -# define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C -# define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D -# define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E -# define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F - -# define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010 -# define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011 -# define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012 -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013 -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014 - -# define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015 -# define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016 -# define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017 -# define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018 -# define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019 - -/* SRP ciphersuites from RFC 5054 */ -# define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A -# define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B -# define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C -# define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D -# define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E -# define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F -# define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020 -# define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021 -# define TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0x0300C022 - -/* ECDH HMAC based ciphersuites from RFC5289 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 0x0300C023 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 0x0300C024 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 0x0300C025 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026 -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027 -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028 -# define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029 -# define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A - -/* ECDH GCM based ciphersuites from RFC5289 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030 -# define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031 -# define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032 - -/* ECDHE PSK ciphersuites from RFC5489 */ -# define TLS1_CK_ECDHE_PSK_WITH_RC4_128_SHA 0x0300C033 -# define TLS1_CK_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300C034 -# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA 0x0300C035 -# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA 0x0300C036 - -# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA256 0x0300C037 -# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA384 0x0300C038 - -/* NULL PSK ciphersuites from RFC4785 */ -# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA 0x0300C039 -# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA256 0x0300C03A -# define TLS1_CK_ECDHE_PSK_WITH_NULL_SHA384 0x0300C03B - -/* Camellia-CBC ciphersuites from RFC6367 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C072 -# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C073 -# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C074 -# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C075 -# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C076 -# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C077 -# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C078 -# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C079 - -# define TLS1_CK_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C094 -# define TLS1_CK_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C095 -# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C096 -# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C097 -# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C098 -# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C099 -# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C09A -# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C09B - -/* draft-ietf-tls-chacha20-poly1305-03 */ -# define TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCA8 -# define TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 0x0300CCA9 -# define TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCAA -# define TLS1_CK_PSK_WITH_CHACHA20_POLY1305 0x0300CCAB -# define TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAC -# define TLS1_CK_DHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAD -# define TLS1_CK_RSA_PSK_WITH_CHACHA20_POLY1305 0x0300CCAE - -/* TLS v1.3 ciphersuites */ -# define TLS1_3_CK_AES_128_GCM_SHA256 0x03001301 -# define TLS1_3_CK_AES_256_GCM_SHA384 0x03001302 -# define TLS1_3_CK_CHACHA20_POLY1305_SHA256 0x03001303 -# define TLS1_3_CK_AES_128_CCM_SHA256 0x03001304 -# define TLS1_3_CK_AES_128_CCM_8_SHA256 0x03001305 - -/* Aria ciphersuites from RFC6209 */ -# define TLS1_CK_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C050 -# define TLS1_CK_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C051 -# define TLS1_CK_DHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C052 -# define TLS1_CK_DHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C053 -# define TLS1_CK_DH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C054 -# define TLS1_CK_DH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C055 -# define TLS1_CK_DHE_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C056 -# define TLS1_CK_DHE_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C057 -# define TLS1_CK_DH_DSS_WITH_ARIA_128_GCM_SHA256 0x0300C058 -# define TLS1_CK_DH_DSS_WITH_ARIA_256_GCM_SHA384 0x0300C059 -# define TLS1_CK_DH_anon_WITH_ARIA_128_GCM_SHA256 0x0300C05A -# define TLS1_CK_DH_anon_WITH_ARIA_256_GCM_SHA384 0x0300C05B -# define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05C -# define TLS1_CK_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05D -# define TLS1_CK_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 0x0300C05E -# define TLS1_CK_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 0x0300C05F -# define TLS1_CK_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C060 -# define TLS1_CK_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C061 -# define TLS1_CK_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 0x0300C062 -# define TLS1_CK_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 0x0300C063 -# define TLS1_CK_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06A -# define TLS1_CK_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06B -# define TLS1_CK_DHE_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06C -# define TLS1_CK_DHE_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06D -# define TLS1_CK_RSA_PSK_WITH_ARIA_128_GCM_SHA256 0x0300C06E -# define TLS1_CK_RSA_PSK_WITH_ARIA_256_GCM_SHA384 0x0300C06F - -/* a bundle of RFC standard cipher names, generated from ssl3_ciphers[] */ -# define TLS1_RFC_RSA_WITH_AES_128_SHA "TLS_RSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA "TLS_DHE_DSS_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ADH_WITH_AES_128_SHA "TLS_DH_anon_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_RSA_WITH_AES_256_SHA "TLS_RSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA "TLS_DHE_DSS_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ADH_WITH_AES_256_SHA "TLS_DH_anon_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_RSA_WITH_NULL_SHA256 "TLS_RSA_WITH_NULL_SHA256" -# define TLS1_RFC_RSA_WITH_AES_128_SHA256 "TLS_RSA_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_RSA_WITH_AES_256_SHA256 "TLS_RSA_WITH_AES_256_CBC_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_AES_128_SHA256 "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_SHA256 "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_AES_256_SHA256 "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_SHA256 "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256" -# define TLS1_RFC_ADH_WITH_AES_128_SHA256 "TLS_DH_anon_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_ADH_WITH_AES_256_SHA256 "TLS_DH_anon_WITH_AES_256_CBC_SHA256" -# define TLS1_RFC_RSA_WITH_AES_128_GCM_SHA256 "TLS_RSA_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_RSA_WITH_AES_256_GCM_SHA384 "TLS_RSA_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_DHE_DSS_WITH_AES_128_GCM_SHA256 "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_AES_256_GCM_SHA384 "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_ADH_WITH_AES_128_GCM_SHA256 "TLS_DH_anon_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_ADH_WITH_AES_256_GCM_SHA384 "TLS_DH_anon_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_RSA_WITH_AES_128_CCM "TLS_RSA_WITH_AES_128_CCM" -# define TLS1_RFC_RSA_WITH_AES_256_CCM "TLS_RSA_WITH_AES_256_CCM" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM "TLS_DHE_RSA_WITH_AES_128_CCM" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM "TLS_DHE_RSA_WITH_AES_256_CCM" -# define TLS1_RFC_RSA_WITH_AES_128_CCM_8 "TLS_RSA_WITH_AES_128_CCM_8" -# define TLS1_RFC_RSA_WITH_AES_256_CCM_8 "TLS_RSA_WITH_AES_256_CCM_8" -# define TLS1_RFC_DHE_RSA_WITH_AES_128_CCM_8 "TLS_DHE_RSA_WITH_AES_128_CCM_8" -# define TLS1_RFC_DHE_RSA_WITH_AES_256_CCM_8 "TLS_DHE_RSA_WITH_AES_256_CCM_8" -# define TLS1_RFC_PSK_WITH_AES_128_CCM "TLS_PSK_WITH_AES_128_CCM" -# define TLS1_RFC_PSK_WITH_AES_256_CCM "TLS_PSK_WITH_AES_256_CCM" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM "TLS_DHE_PSK_WITH_AES_128_CCM" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM "TLS_DHE_PSK_WITH_AES_256_CCM" -# define TLS1_RFC_PSK_WITH_AES_128_CCM_8 "TLS_PSK_WITH_AES_128_CCM_8" -# define TLS1_RFC_PSK_WITH_AES_256_CCM_8 "TLS_PSK_WITH_AES_256_CCM_8" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_CCM_8 "TLS_PSK_DHE_WITH_AES_128_CCM_8" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_CCM_8 "TLS_PSK_DHE_WITH_AES_256_CCM_8" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM "TLS_ECDHE_ECDSA_WITH_AES_128_CCM" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM "TLS_ECDHE_ECDSA_WITH_AES_256_CCM" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CCM_8 "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8" -# define TLS1_3_RFC_AES_128_GCM_SHA256 "TLS_AES_128_GCM_SHA256" -# define TLS1_3_RFC_AES_256_GCM_SHA384 "TLS_AES_256_GCM_SHA384" -# define TLS1_3_RFC_CHACHA20_POLY1305_SHA256 "TLS_CHACHA20_POLY1305_SHA256" -# define TLS1_3_RFC_AES_128_CCM_SHA256 "TLS_AES_128_CCM_SHA256" -# define TLS1_3_RFC_AES_128_CCM_8_SHA256 "TLS_AES_128_CCM_8_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_NULL_SHA "TLS_ECDHE_ECDSA_WITH_NULL_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_NULL_SHA "TLS_ECDHE_RSA_WITH_NULL_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_DES_192_CBC3_SHA "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_CBC_SHA "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ECDH_anon_WITH_NULL_SHA "TLS_ECDH_anon_WITH_NULL_SHA" -# define TLS1_RFC_ECDH_anon_WITH_DES_192_CBC3_SHA "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_ECDH_anon_WITH_AES_128_CBC_SHA "TLS_ECDH_anon_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ECDH_anon_WITH_AES_256_CBC_SHA "TLS_ECDH_anon_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_PSK_WITH_NULL_SHA "TLS_PSK_WITH_NULL_SHA" -# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA "TLS_DHE_PSK_WITH_NULL_SHA" -# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA "TLS_RSA_PSK_WITH_NULL_SHA" -# define TLS1_RFC_PSK_WITH_3DES_EDE_CBC_SHA "TLS_PSK_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA "TLS_PSK_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA "TLS_PSK_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_DHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA "TLS_DHE_PSK_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA "TLS_DHE_PSK_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_RSA_PSK_WITH_3DES_EDE_CBC_SHA "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA "TLS_RSA_PSK_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA "TLS_RSA_PSK_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_PSK_WITH_AES_128_GCM_SHA256 "TLS_PSK_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_PSK_WITH_AES_256_GCM_SHA384 "TLS_PSK_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_GCM_SHA256 "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_GCM_SHA384 "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_AES_128_GCM_SHA256 "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_AES_256_GCM_SHA384 "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384" -# define TLS1_RFC_PSK_WITH_AES_128_CBC_SHA256 "TLS_PSK_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_PSK_WITH_AES_256_CBC_SHA384 "TLS_PSK_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_PSK_WITH_NULL_SHA256 "TLS_PSK_WITH_NULL_SHA256" -# define TLS1_RFC_PSK_WITH_NULL_SHA384 "TLS_PSK_WITH_NULL_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA256 "TLS_DHE_PSK_WITH_NULL_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_NULL_SHA384 "TLS_DHE_PSK_WITH_NULL_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_AES_128_CBC_SHA256 "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_AES_256_CBC_SHA384 "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA256 "TLS_RSA_PSK_WITH_NULL_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_NULL_SHA384 "TLS_RSA_PSK_WITH_NULL_SHA384" -# define TLS1_RFC_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA "TLS_ECDHE_PSK_WITH_NULL_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA256 "TLS_ECDHE_PSK_WITH_NULL_SHA256" -# define TLS1_RFC_ECDHE_PSK_WITH_NULL_SHA384 "TLS_ECDHE_PSK_WITH_NULL_SHA384" -# define TLS1_RFC_SRP_SHA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA" -# define TLS1_RFC_SRP_SHA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA" -# define TLS1_RFC_SRP_SHA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_CHACHA20_POLY1305 "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_PSK_WITH_CHACHA20_POLY1305 "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_ECDHE_PSK_WITH_CHACHA20_POLY1305 "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_CHACHA20_POLY1305 "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_CHACHA20_POLY1305 "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256" -# define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256" -# define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA256 "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256" -# define TLS1_RFC_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA" -# define TLS1_RFC_ADH_WITH_CAMELLIA_256_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA" -# define TLS1_RFC_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA" -# define TLS1_RFC_ADH_WITH_CAMELLIA_128_CBC_SHA "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256" -# define TLS1_RFC_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384" -# define TLS1_RFC_RSA_WITH_SEED_SHA "TLS_RSA_WITH_SEED_CBC_SHA" -# define TLS1_RFC_DHE_DSS_WITH_SEED_SHA "TLS_DHE_DSS_WITH_SEED_CBC_SHA" -# define TLS1_RFC_DHE_RSA_WITH_SEED_SHA "TLS_DHE_RSA_WITH_SEED_CBC_SHA" -# define TLS1_RFC_ADH_WITH_SEED_SHA "TLS_DH_anon_WITH_SEED_CBC_SHA" -# define TLS1_RFC_ECDHE_PSK_WITH_RC4_128_SHA "TLS_ECDHE_PSK_WITH_RC4_128_SHA" -# define TLS1_RFC_ECDH_anon_WITH_RC4_128_SHA "TLS_ECDH_anon_WITH_RC4_128_SHA" -# define TLS1_RFC_ECDHE_ECDSA_WITH_RC4_128_SHA "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA" -# define TLS1_RFC_ECDHE_RSA_WITH_RC4_128_SHA "TLS_ECDHE_RSA_WITH_RC4_128_SHA" -# define TLS1_RFC_PSK_WITH_RC4_128_SHA "TLS_PSK_WITH_RC4_128_SHA" -# define TLS1_RFC_RSA_PSK_WITH_RC4_128_SHA "TLS_RSA_PSK_WITH_RC4_128_SHA" -# define TLS1_RFC_DHE_PSK_WITH_RC4_128_SHA "TLS_DHE_PSK_WITH_RC4_128_SHA" -# define TLS1_RFC_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DH_DSS_WITH_ARIA_128_GCM_SHA256 "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DH_DSS_WITH_ARIA_256_GCM_SHA384 "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DH_anon_WITH_ARIA_128_GCM_SHA256 "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DH_anon_WITH_ARIA_256_GCM_SHA384 "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_PSK_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_PSK_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384" -# define TLS1_RFC_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256" -# define TLS1_RFC_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384" - - -/* - * XXX Backward compatibility alert: Older versions of OpenSSL gave some DHE - * ciphers names with "EDH" instead of "DHE". Going forward, we should be - * using DHE everywhere, though we may indefinitely maintain aliases for - * users or configurations that used "EDH" - */ -# define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA" - -# define TLS1_TXT_PSK_WITH_NULL_SHA "PSK-NULL-SHA" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA "DHE-PSK-NULL-SHA" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA "RSA-PSK-NULL-SHA" - -/* AES ciphersuites from RFC3268 */ -# define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA" -# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA" -# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA" -# define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA" - -# define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA" -# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA" -# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA" -# define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA" - -/* ECC ciphersuites from RFC4492 */ -# define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA" - -# define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA" - -# define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA" - -# define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA" - -# define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA" -# define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA" -# define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA" -# define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA" - -/* PSK ciphersuites from RFC 4279 */ -# define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA" -# define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA" -# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA" - -# define TLS1_TXT_DHE_PSK_WITH_RC4_128_SHA "DHE-PSK-RC4-SHA" -# define TLS1_TXT_DHE_PSK_WITH_3DES_EDE_CBC_SHA "DHE-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA "DHE-PSK-AES128-CBC-SHA" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA "DHE-PSK-AES256-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_RC4_128_SHA "RSA-PSK-RC4-SHA" -# define TLS1_TXT_RSA_PSK_WITH_3DES_EDE_CBC_SHA "RSA-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA "RSA-PSK-AES128-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA "RSA-PSK-AES256-CBC-SHA" - -/* PSK ciphersuites from RFC 5487 */ -# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_GCM_SHA256 "DHE-PSK-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_GCM_SHA384 "DHE-PSK-AES256-GCM-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_AES_128_GCM_SHA256 "RSA-PSK-AES128-GCM-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_GCM_SHA384 "RSA-PSK-AES256-GCM-SHA384" - -# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA256 "PSK-AES128-CBC-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA384 "PSK-AES256-CBC-SHA384" -# define TLS1_TXT_PSK_WITH_NULL_SHA256 "PSK-NULL-SHA256" -# define TLS1_TXT_PSK_WITH_NULL_SHA384 "PSK-NULL-SHA384" - -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA256 "DHE-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA384 "DHE-PSK-AES256-CBC-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA256 "DHE-PSK-NULL-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA384 "DHE-PSK-NULL-SHA384" - -# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA256 "RSA-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA384 "RSA-PSK-AES256-CBC-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA256 "RSA-PSK-NULL-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA384 "RSA-PSK-NULL-SHA384" - -/* SRP ciphersuite from RFC 5054 */ -# define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA" - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA" -# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA" - -# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA" -# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA" - -/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ -# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA256 "CAMELLIA128-SHA256" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DH-DSS-CAMELLIA128-SHA256" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DH-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DHE-DSS-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DHE-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA256 "ADH-CAMELLIA128-SHA256" - -# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA256 "CAMELLIA256-SHA256" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DH-DSS-CAMELLIA256-SHA256" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DH-RSA-CAMELLIA256-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DHE-DSS-CAMELLIA256-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DHE-RSA-CAMELLIA256-SHA256" -# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA256 "ADH-CAMELLIA256-SHA256" - -# define TLS1_TXT_PSK_WITH_CAMELLIA_128_CBC_SHA256 "PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_PSK_WITH_CAMELLIA_256_CBC_SHA384 "PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "DHE-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "DHE-PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "RSA-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "RSA-PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-PSK-CAMELLIA256-SHA384" - -/* SEED ciphersuites from RFC4162 */ -# define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA" -# define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA" -# define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA" -# define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA" -# define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA" -# define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA" - -/* TLS v1.2 ciphersuites */ -# define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256" -# define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256" -# define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256" -# define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256" -# define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256" - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -# define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256" -# define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384" -# define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384" -# define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256" -# define TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 "ADH-AES256-GCM-SHA384" - -/* CCM ciphersuites from RFC6655 */ -# define TLS1_TXT_RSA_WITH_AES_128_CCM "AES128-CCM" -# define TLS1_TXT_RSA_WITH_AES_256_CCM "AES256-CCM" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM "DHE-RSA-AES128-CCM" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM "DHE-RSA-AES256-CCM" - -# define TLS1_TXT_RSA_WITH_AES_128_CCM_8 "AES128-CCM8" -# define TLS1_TXT_RSA_WITH_AES_256_CCM_8 "AES256-CCM8" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM_8 "DHE-RSA-AES128-CCM8" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM_8 "DHE-RSA-AES256-CCM8" - -# define TLS1_TXT_PSK_WITH_AES_128_CCM "PSK-AES128-CCM" -# define TLS1_TXT_PSK_WITH_AES_256_CCM "PSK-AES256-CCM" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM "DHE-PSK-AES128-CCM" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM "DHE-PSK-AES256-CCM" - -# define TLS1_TXT_PSK_WITH_AES_128_CCM_8 "PSK-AES128-CCM8" -# define TLS1_TXT_PSK_WITH_AES_256_CCM_8 "PSK-AES256-CCM8" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM_8 "DHE-PSK-AES128-CCM8" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM_8 "DHE-PSK-AES256-CCM8" - -/* CCM ciphersuites from RFC7251 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM "ECDHE-ECDSA-AES128-CCM" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM "ECDHE-ECDSA-AES256-CCM" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CCM_8 "ECDHE-ECDSA-AES128-CCM8" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CCM_8 "ECDHE-ECDSA-AES256-CCM8" - -/* ECDH HMAC based ciphersuites from RFC5289 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 "ECDHE-ECDSA-AES256-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 "ECDH-ECDSA-AES128-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384" - -/* ECDH GCM based ciphersuites from RFC5289 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "ECDHE-ECDSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "ECDHE-ECDSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 "ECDH-ECDSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 "ECDH-ECDSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384" - -/* TLS v1.2 PSK GCM ciphersuites from RFC5487 */ -# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" - -/* ECDHE PSK ciphersuites from RFC 5489 */ -# define TLS1_TXT_ECDHE_PSK_WITH_RC4_128_SHA "ECDHE-PSK-RC4-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "ECDHE-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA "ECDHE-PSK-AES128-CBC-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA "ECDHE-PSK-AES256-CBC-SHA" - -# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "ECDHE-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "ECDHE-PSK-AES256-CBC-SHA384" - -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA "ECDHE-PSK-NULL-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA256 "ECDHE-PSK-NULL-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA384 "ECDHE-PSK-NULL-SHA384" - -/* Camellia-CBC ciphersuites from RFC6367 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-ECDSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-ECDSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-ECDSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-ECDSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-RSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-RSA-CAMELLIA256-SHA384" - -/* draft-ietf-tls-chacha20-poly1305-03 */ -# define TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305 "ECDHE-RSA-CHACHA20-POLY1305" -# define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "ECDHE-ECDSA-CHACHA20-POLY1305" -# define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 "DHE-RSA-CHACHA20-POLY1305" -# define TLS1_TXT_PSK_WITH_CHACHA20_POLY1305 "PSK-CHACHA20-POLY1305" -# define TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305 "ECDHE-PSK-CHACHA20-POLY1305" -# define TLS1_TXT_DHE_PSK_WITH_CHACHA20_POLY1305 "DHE-PSK-CHACHA20-POLY1305" -# define TLS1_TXT_RSA_PSK_WITH_CHACHA20_POLY1305 "RSA-PSK-CHACHA20-POLY1305" - -/* Aria ciphersuites from RFC6209 */ -# define TLS1_TXT_RSA_WITH_ARIA_128_GCM_SHA256 "ARIA128-GCM-SHA256" -# define TLS1_TXT_RSA_WITH_ARIA_256_GCM_SHA384 "ARIA256-GCM-SHA384" -# define TLS1_TXT_DHE_RSA_WITH_ARIA_128_GCM_SHA256 "DHE-RSA-ARIA128-GCM-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_ARIA_256_GCM_SHA384 "DHE-RSA-ARIA256-GCM-SHA384" -# define TLS1_TXT_DH_RSA_WITH_ARIA_128_GCM_SHA256 "DH-RSA-ARIA128-GCM-SHA256" -# define TLS1_TXT_DH_RSA_WITH_ARIA_256_GCM_SHA384 "DH-RSA-ARIA256-GCM-SHA384" -# define TLS1_TXT_DHE_DSS_WITH_ARIA_128_GCM_SHA256 "DHE-DSS-ARIA128-GCM-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_ARIA_256_GCM_SHA384 "DHE-DSS-ARIA256-GCM-SHA384" -# define TLS1_TXT_DH_DSS_WITH_ARIA_128_GCM_SHA256 "DH-DSS-ARIA128-GCM-SHA256" -# define TLS1_TXT_DH_DSS_WITH_ARIA_256_GCM_SHA384 "DH-DSS-ARIA256-GCM-SHA384" -# define TLS1_TXT_DH_anon_WITH_ARIA_128_GCM_SHA256 "ADH-ARIA128-GCM-SHA256" -# define TLS1_TXT_DH_anon_WITH_ARIA_256_GCM_SHA384 "ADH-ARIA256-GCM-SHA384" -# define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ECDSA-ARIA128-GCM-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ECDSA-ARIA256-GCM-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ECDSA-ARIA128-GCM-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ECDSA-ARIA256-GCM-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 "ECDHE-ARIA128-GCM-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 "ECDHE-ARIA256-GCM-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 "ECDH-ARIA128-GCM-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 "ECDH-ARIA256-GCM-SHA384" -# define TLS1_TXT_PSK_WITH_ARIA_128_GCM_SHA256 "PSK-ARIA128-GCM-SHA256" -# define TLS1_TXT_PSK_WITH_ARIA_256_GCM_SHA384 "PSK-ARIA256-GCM-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_ARIA_128_GCM_SHA256 "DHE-PSK-ARIA128-GCM-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_ARIA_256_GCM_SHA384 "DHE-PSK-ARIA256-GCM-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_ARIA_128_GCM_SHA256 "RSA-PSK-ARIA128-GCM-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_ARIA_256_GCM_SHA384 "RSA-PSK-ARIA256-GCM-SHA384" - -# define TLS_CT_RSA_SIGN 1 -# define TLS_CT_DSS_SIGN 2 -# define TLS_CT_RSA_FIXED_DH 3 -# define TLS_CT_DSS_FIXED_DH 4 -# define TLS_CT_ECDSA_SIGN 64 -# define TLS_CT_RSA_FIXED_ECDH 65 -# define TLS_CT_ECDSA_FIXED_ECDH 66 -# define TLS_CT_GOST01_SIGN 22 -# define TLS_CT_GOST12_SIGN 238 -# define TLS_CT_GOST12_512_SIGN 239 - -/* - * when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see - * comment there) - */ -# define TLS_CT_NUMBER 10 - -# if defined(SSL3_CT_NUMBER) -# if TLS_CT_NUMBER != SSL3_CT_NUMBER -# error "SSL/TLS CT_NUMBER values do not match" -# endif -# endif - -# define TLS1_FINISH_MAC_LENGTH 12 - -# define TLS_MD_MAX_CONST_SIZE 22 -# define TLS_MD_CLIENT_FINISH_CONST "client finished" -# define TLS_MD_CLIENT_FINISH_CONST_SIZE 15 -# define TLS_MD_SERVER_FINISH_CONST "server finished" -# define TLS_MD_SERVER_FINISH_CONST_SIZE 15 -# define TLS_MD_KEY_EXPANSION_CONST "key expansion" -# define TLS_MD_KEY_EXPANSION_CONST_SIZE 13 -# define TLS_MD_CLIENT_WRITE_KEY_CONST "client write key" -# define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE 16 -# define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" -# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 -# define TLS_MD_IV_BLOCK_CONST "IV block" -# define TLS_MD_IV_BLOCK_CONST_SIZE 8 -# define TLS_MD_MASTER_SECRET_CONST "master secret" -# define TLS_MD_MASTER_SECRET_CONST_SIZE 13 -# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "extended master secret" -# define TLS_MD_EXTENDED_MASTER_SECRET_CONST_SIZE 22 - -# ifdef CHARSET_EBCDIC -# undef TLS_MD_CLIENT_FINISH_CONST -/* - * client finished - */ -# define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64" - -# undef TLS_MD_SERVER_FINISH_CONST -/* - * server finished - */ -# define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64" - -# undef TLS_MD_SERVER_WRITE_KEY_CONST -/* - * server write key - */ -# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" - -# undef TLS_MD_KEY_EXPANSION_CONST -/* - * key expansion - */ -# define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e" - -# undef TLS_MD_CLIENT_WRITE_KEY_CONST -/* - * client write key - */ -# define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" - -# undef TLS_MD_SERVER_WRITE_KEY_CONST -/* - * server write key - */ -# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" - -# undef TLS_MD_IV_BLOCK_CONST -/* - * IV block - */ -# define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b" - -# undef TLS_MD_MASTER_SECRET_CONST -/* - * master secret - */ -# define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" -# undef TLS_MD_EXTENDED_MASTER_SECRET_CONST -/* - * extended master secret - */ -# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "\x65\x78\x74\x65\x6e\x64\x65\x64\x20\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" -# endif - -/* TLS Session Ticket extension struct */ -struct tls_session_ticket_ext_st { - unsigned short length; - void *data; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ts.h b/submodules/MtProtoKit/openssl/openssl/ts.h deleted file mode 100644 index 3b58aa527e..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ts.h +++ /dev/null @@ -1,559 +0,0 @@ -/* - * Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_TS_H -# define HEADER_TS_H - -# include - -# ifndef OPENSSL_NO_TS -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# include -# include - -typedef struct TS_msg_imprint_st TS_MSG_IMPRINT; -typedef struct TS_req_st TS_REQ; -typedef struct TS_accuracy_st TS_ACCURACY; -typedef struct TS_tst_info_st TS_TST_INFO; - -/* Possible values for status. */ -# define TS_STATUS_GRANTED 0 -# define TS_STATUS_GRANTED_WITH_MODS 1 -# define TS_STATUS_REJECTION 2 -# define TS_STATUS_WAITING 3 -# define TS_STATUS_REVOCATION_WARNING 4 -# define TS_STATUS_REVOCATION_NOTIFICATION 5 - -/* Possible values for failure_info. */ -# define TS_INFO_BAD_ALG 0 -# define TS_INFO_BAD_REQUEST 2 -# define TS_INFO_BAD_DATA_FORMAT 5 -# define TS_INFO_TIME_NOT_AVAILABLE 14 -# define TS_INFO_UNACCEPTED_POLICY 15 -# define TS_INFO_UNACCEPTED_EXTENSION 16 -# define TS_INFO_ADD_INFO_NOT_AVAILABLE 17 -# define TS_INFO_SYSTEM_FAILURE 25 - - -typedef struct TS_status_info_st TS_STATUS_INFO; -typedef struct ESS_issuer_serial ESS_ISSUER_SERIAL; -typedef struct ESS_cert_id ESS_CERT_ID; -typedef struct ESS_signing_cert ESS_SIGNING_CERT; - -DEFINE_STACK_OF(ESS_CERT_ID) - -typedef struct ESS_cert_id_v2_st ESS_CERT_ID_V2; -typedef struct ESS_signing_cert_v2_st ESS_SIGNING_CERT_V2; - -DEFINE_STACK_OF(ESS_CERT_ID_V2) - -typedef struct TS_resp_st TS_RESP; - -TS_REQ *TS_REQ_new(void); -void TS_REQ_free(TS_REQ *a); -int i2d_TS_REQ(const TS_REQ *a, unsigned char **pp); -TS_REQ *d2i_TS_REQ(TS_REQ **a, const unsigned char **pp, long length); - -TS_REQ *TS_REQ_dup(TS_REQ *a); - -#ifndef OPENSSL_NO_STDIO -TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a); -int i2d_TS_REQ_fp(FILE *fp, TS_REQ *a); -#endif -TS_REQ *d2i_TS_REQ_bio(BIO *fp, TS_REQ **a); -int i2d_TS_REQ_bio(BIO *fp, TS_REQ *a); - -TS_MSG_IMPRINT *TS_MSG_IMPRINT_new(void); -void TS_MSG_IMPRINT_free(TS_MSG_IMPRINT *a); -int i2d_TS_MSG_IMPRINT(const TS_MSG_IMPRINT *a, unsigned char **pp); -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT(TS_MSG_IMPRINT **a, - const unsigned char **pp, long length); - -TS_MSG_IMPRINT *TS_MSG_IMPRINT_dup(TS_MSG_IMPRINT *a); - -#ifndef OPENSSL_NO_STDIO -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a); -int i2d_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT *a); -#endif -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *bio, TS_MSG_IMPRINT **a); -int i2d_TS_MSG_IMPRINT_bio(BIO *bio, TS_MSG_IMPRINT *a); - -TS_RESP *TS_RESP_new(void); -void TS_RESP_free(TS_RESP *a); -int i2d_TS_RESP(const TS_RESP *a, unsigned char **pp); -TS_RESP *d2i_TS_RESP(TS_RESP **a, const unsigned char **pp, long length); -TS_TST_INFO *PKCS7_to_TS_TST_INFO(PKCS7 *token); -TS_RESP *TS_RESP_dup(TS_RESP *a); - -#ifndef OPENSSL_NO_STDIO -TS_RESP *d2i_TS_RESP_fp(FILE *fp, TS_RESP **a); -int i2d_TS_RESP_fp(FILE *fp, TS_RESP *a); -#endif -TS_RESP *d2i_TS_RESP_bio(BIO *bio, TS_RESP **a); -int i2d_TS_RESP_bio(BIO *bio, TS_RESP *a); - -TS_STATUS_INFO *TS_STATUS_INFO_new(void); -void TS_STATUS_INFO_free(TS_STATUS_INFO *a); -int i2d_TS_STATUS_INFO(const TS_STATUS_INFO *a, unsigned char **pp); -TS_STATUS_INFO *d2i_TS_STATUS_INFO(TS_STATUS_INFO **a, - const unsigned char **pp, long length); -TS_STATUS_INFO *TS_STATUS_INFO_dup(TS_STATUS_INFO *a); - -TS_TST_INFO *TS_TST_INFO_new(void); -void TS_TST_INFO_free(TS_TST_INFO *a); -int i2d_TS_TST_INFO(const TS_TST_INFO *a, unsigned char **pp); -TS_TST_INFO *d2i_TS_TST_INFO(TS_TST_INFO **a, const unsigned char **pp, - long length); -TS_TST_INFO *TS_TST_INFO_dup(TS_TST_INFO *a); - -#ifndef OPENSSL_NO_STDIO -TS_TST_INFO *d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a); -int i2d_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO *a); -#endif -TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *bio, TS_TST_INFO **a); -int i2d_TS_TST_INFO_bio(BIO *bio, TS_TST_INFO *a); - -TS_ACCURACY *TS_ACCURACY_new(void); -void TS_ACCURACY_free(TS_ACCURACY *a); -int i2d_TS_ACCURACY(const TS_ACCURACY *a, unsigned char **pp); -TS_ACCURACY *d2i_TS_ACCURACY(TS_ACCURACY **a, const unsigned char **pp, - long length); -TS_ACCURACY *TS_ACCURACY_dup(TS_ACCURACY *a); - -ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_new(void); -void ESS_ISSUER_SERIAL_free(ESS_ISSUER_SERIAL *a); -int i2d_ESS_ISSUER_SERIAL(const ESS_ISSUER_SERIAL *a, unsigned char **pp); -ESS_ISSUER_SERIAL *d2i_ESS_ISSUER_SERIAL(ESS_ISSUER_SERIAL **a, - const unsigned char **pp, - long length); -ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_dup(ESS_ISSUER_SERIAL *a); - -ESS_CERT_ID *ESS_CERT_ID_new(void); -void ESS_CERT_ID_free(ESS_CERT_ID *a); -int i2d_ESS_CERT_ID(const ESS_CERT_ID *a, unsigned char **pp); -ESS_CERT_ID *d2i_ESS_CERT_ID(ESS_CERT_ID **a, const unsigned char **pp, - long length); -ESS_CERT_ID *ESS_CERT_ID_dup(ESS_CERT_ID *a); - -ESS_SIGNING_CERT *ESS_SIGNING_CERT_new(void); -void ESS_SIGNING_CERT_free(ESS_SIGNING_CERT *a); -int i2d_ESS_SIGNING_CERT(const ESS_SIGNING_CERT *a, unsigned char **pp); -ESS_SIGNING_CERT *d2i_ESS_SIGNING_CERT(ESS_SIGNING_CERT **a, - const unsigned char **pp, long length); -ESS_SIGNING_CERT *ESS_SIGNING_CERT_dup(ESS_SIGNING_CERT *a); - -ESS_CERT_ID_V2 *ESS_CERT_ID_V2_new(void); -void ESS_CERT_ID_V2_free(ESS_CERT_ID_V2 *a); -int i2d_ESS_CERT_ID_V2(const ESS_CERT_ID_V2 *a, unsigned char **pp); -ESS_CERT_ID_V2 *d2i_ESS_CERT_ID_V2(ESS_CERT_ID_V2 **a, - const unsigned char **pp, long length); -ESS_CERT_ID_V2 *ESS_CERT_ID_V2_dup(ESS_CERT_ID_V2 *a); - -ESS_SIGNING_CERT_V2 *ESS_SIGNING_CERT_V2_new(void); -void ESS_SIGNING_CERT_V2_free(ESS_SIGNING_CERT_V2 *a); -int i2d_ESS_SIGNING_CERT_V2(const ESS_SIGNING_CERT_V2 *a, unsigned char **pp); -ESS_SIGNING_CERT_V2 *d2i_ESS_SIGNING_CERT_V2(ESS_SIGNING_CERT_V2 **a, - const unsigned char **pp, - long length); -ESS_SIGNING_CERT_V2 *ESS_SIGNING_CERT_V2_dup(ESS_SIGNING_CERT_V2 *a); - -int TS_REQ_set_version(TS_REQ *a, long version); -long TS_REQ_get_version(const TS_REQ *a); - -int TS_STATUS_INFO_set_status(TS_STATUS_INFO *a, int i); -const ASN1_INTEGER *TS_STATUS_INFO_get0_status(const TS_STATUS_INFO *a); - -const STACK_OF(ASN1_UTF8STRING) * -TS_STATUS_INFO_get0_text(const TS_STATUS_INFO *a); - -const ASN1_BIT_STRING * -TS_STATUS_INFO_get0_failure_info(const TS_STATUS_INFO *a); - -int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a); - -int TS_MSG_IMPRINT_set_algo(TS_MSG_IMPRINT *a, X509_ALGOR *alg); -X509_ALGOR *TS_MSG_IMPRINT_get_algo(TS_MSG_IMPRINT *a); - -int TS_MSG_IMPRINT_set_msg(TS_MSG_IMPRINT *a, unsigned char *d, int len); -ASN1_OCTET_STRING *TS_MSG_IMPRINT_get_msg(TS_MSG_IMPRINT *a); - -int TS_REQ_set_policy_id(TS_REQ *a, const ASN1_OBJECT *policy); -ASN1_OBJECT *TS_REQ_get_policy_id(TS_REQ *a); - -int TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_REQ_get_nonce(const TS_REQ *a); - -int TS_REQ_set_cert_req(TS_REQ *a, int cert_req); -int TS_REQ_get_cert_req(const TS_REQ *a); - -STACK_OF(X509_EXTENSION) *TS_REQ_get_exts(TS_REQ *a); -void TS_REQ_ext_free(TS_REQ *a); -int TS_REQ_get_ext_count(TS_REQ *a); -int TS_REQ_get_ext_by_NID(TS_REQ *a, int nid, int lastpos); -int TS_REQ_get_ext_by_OBJ(TS_REQ *a, const ASN1_OBJECT *obj, int lastpos); -int TS_REQ_get_ext_by_critical(TS_REQ *a, int crit, int lastpos); -X509_EXTENSION *TS_REQ_get_ext(TS_REQ *a, int loc); -X509_EXTENSION *TS_REQ_delete_ext(TS_REQ *a, int loc); -int TS_REQ_add_ext(TS_REQ *a, X509_EXTENSION *ex, int loc); -void *TS_REQ_get_ext_d2i(TS_REQ *a, int nid, int *crit, int *idx); - -/* Function declarations for TS_REQ defined in ts/ts_req_print.c */ - -int TS_REQ_print_bio(BIO *bio, TS_REQ *a); - -/* Function declarations for TS_RESP defined in ts/ts_resp_utils.c */ - -int TS_RESP_set_status_info(TS_RESP *a, TS_STATUS_INFO *info); -TS_STATUS_INFO *TS_RESP_get_status_info(TS_RESP *a); - -/* Caller loses ownership of PKCS7 and TS_TST_INFO objects. */ -void TS_RESP_set_tst_info(TS_RESP *a, PKCS7 *p7, TS_TST_INFO *tst_info); -PKCS7 *TS_RESP_get_token(TS_RESP *a); -TS_TST_INFO *TS_RESP_get_tst_info(TS_RESP *a); - -int TS_TST_INFO_set_version(TS_TST_INFO *a, long version); -long TS_TST_INFO_get_version(const TS_TST_INFO *a); - -int TS_TST_INFO_set_policy_id(TS_TST_INFO *a, ASN1_OBJECT *policy_id); -ASN1_OBJECT *TS_TST_INFO_get_policy_id(TS_TST_INFO *a); - -int TS_TST_INFO_set_msg_imprint(TS_TST_INFO *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_TST_INFO_get_msg_imprint(TS_TST_INFO *a); - -int TS_TST_INFO_set_serial(TS_TST_INFO *a, const ASN1_INTEGER *serial); -const ASN1_INTEGER *TS_TST_INFO_get_serial(const TS_TST_INFO *a); - -int TS_TST_INFO_set_time(TS_TST_INFO *a, const ASN1_GENERALIZEDTIME *gtime); -const ASN1_GENERALIZEDTIME *TS_TST_INFO_get_time(const TS_TST_INFO *a); - -int TS_TST_INFO_set_accuracy(TS_TST_INFO *a, TS_ACCURACY *accuracy); -TS_ACCURACY *TS_TST_INFO_get_accuracy(TS_TST_INFO *a); - -int TS_ACCURACY_set_seconds(TS_ACCURACY *a, const ASN1_INTEGER *seconds); -const ASN1_INTEGER *TS_ACCURACY_get_seconds(const TS_ACCURACY *a); - -int TS_ACCURACY_set_millis(TS_ACCURACY *a, const ASN1_INTEGER *millis); -const ASN1_INTEGER *TS_ACCURACY_get_millis(const TS_ACCURACY *a); - -int TS_ACCURACY_set_micros(TS_ACCURACY *a, const ASN1_INTEGER *micros); -const ASN1_INTEGER *TS_ACCURACY_get_micros(const TS_ACCURACY *a); - -int TS_TST_INFO_set_ordering(TS_TST_INFO *a, int ordering); -int TS_TST_INFO_get_ordering(const TS_TST_INFO *a); - -int TS_TST_INFO_set_nonce(TS_TST_INFO *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_TST_INFO_get_nonce(const TS_TST_INFO *a); - -int TS_TST_INFO_set_tsa(TS_TST_INFO *a, GENERAL_NAME *tsa); -GENERAL_NAME *TS_TST_INFO_get_tsa(TS_TST_INFO *a); - -STACK_OF(X509_EXTENSION) *TS_TST_INFO_get_exts(TS_TST_INFO *a); -void TS_TST_INFO_ext_free(TS_TST_INFO *a); -int TS_TST_INFO_get_ext_count(TS_TST_INFO *a); -int TS_TST_INFO_get_ext_by_NID(TS_TST_INFO *a, int nid, int lastpos); -int TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, const ASN1_OBJECT *obj, - int lastpos); -int TS_TST_INFO_get_ext_by_critical(TS_TST_INFO *a, int crit, int lastpos); -X509_EXTENSION *TS_TST_INFO_get_ext(TS_TST_INFO *a, int loc); -X509_EXTENSION *TS_TST_INFO_delete_ext(TS_TST_INFO *a, int loc); -int TS_TST_INFO_add_ext(TS_TST_INFO *a, X509_EXTENSION *ex, int loc); -void *TS_TST_INFO_get_ext_d2i(TS_TST_INFO *a, int nid, int *crit, int *idx); - -/* - * Declarations related to response generation, defined in ts/ts_resp_sign.c. - */ - -/* Optional flags for response generation. */ - -/* Don't include the TSA name in response. */ -# define TS_TSA_NAME 0x01 - -/* Set ordering to true in response. */ -# define TS_ORDERING 0x02 - -/* - * Include the signer certificate and the other specified certificates in - * the ESS signing certificate attribute beside the PKCS7 signed data. - * Only the signer certificates is included by default. - */ -# define TS_ESS_CERT_ID_CHAIN 0x04 - -/* Forward declaration. */ -struct TS_resp_ctx; - -/* This must return a unique number less than 160 bits long. */ -typedef ASN1_INTEGER *(*TS_serial_cb) (struct TS_resp_ctx *, void *); - -/* - * This must return the seconds and microseconds since Jan 1, 1970 in the sec - * and usec variables allocated by the caller. Return non-zero for success - * and zero for failure. - */ -typedef int (*TS_time_cb) (struct TS_resp_ctx *, void *, long *sec, - long *usec); - -/* - * This must process the given extension. It can modify the TS_TST_INFO - * object of the context. Return values: !0 (processed), 0 (error, it must - * set the status info/failure info of the response). - */ -typedef int (*TS_extension_cb) (struct TS_resp_ctx *, X509_EXTENSION *, - void *); - -typedef struct TS_resp_ctx TS_RESP_CTX; - -DEFINE_STACK_OF_CONST(EVP_MD) - -/* Creates a response context that can be used for generating responses. */ -TS_RESP_CTX *TS_RESP_CTX_new(void); -void TS_RESP_CTX_free(TS_RESP_CTX *ctx); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key); - -int TS_RESP_CTX_set_signer_digest(TS_RESP_CTX *ctx, - const EVP_MD *signer_digest); -int TS_RESP_CTX_set_ess_cert_id_digest(TS_RESP_CTX *ctx, const EVP_MD *md); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *def_policy); - -/* No additional certs are included in the response by default. */ -int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, STACK_OF(X509) *certs); - -/* - * Adds a new acceptable policy, only the default policy is accepted by - * default. - */ -int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *policy); - -/* - * Adds a new acceptable message digest. Note that no message digests are - * accepted by default. The md argument is shared with the caller. - */ -int TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md); - -/* Accuracy is not included by default. */ -int TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx, - int secs, int millis, int micros); - -/* - * Clock precision digits, i.e. the number of decimal digits: '0' means sec, - * '3' msec, '6' usec, and so on. Default is 0. - */ -int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx, - unsigned clock_precision_digits); -/* At most we accept usec precision. */ -# define TS_MAX_CLOCK_PRECISION_DIGITS 6 - -/* Maximum status message length */ -# define TS_MAX_STATUS_LENGTH (1024 * 1024) - -/* No flags are set by default. */ -void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags); - -/* Default callback always returns a constant. */ -void TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void *data); - -/* Default callback uses the gettimeofday() and gmtime() system calls. */ -void TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void *data); - -/* - * Default callback rejects all extensions. The extension callback is called - * when the TS_TST_INFO object is already set up and not signed yet. - */ -/* FIXME: extension handling is not tested yet. */ -void TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx, - TS_extension_cb cb, void *data); - -/* The following methods can be used in the callbacks. */ -int TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx, - int status, const char *text); - -/* Sets the status info only if it is still TS_STATUS_GRANTED. */ -int TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx, - int status, const char *text); - -int TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure); - -/* The get methods below can be used in the extension callback. */ -TS_REQ *TS_RESP_CTX_get_request(TS_RESP_CTX *ctx); - -TS_TST_INFO *TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx); - -/* - * Creates the signed TS_TST_INFO and puts it in TS_RESP. - * In case of errors it sets the status info properly. - * Returns NULL only in case of memory allocation/fatal error. - */ -TS_RESP *TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio); - -/* - * Declarations related to response verification, - * they are defined in ts/ts_resp_verify.c. - */ - -int TS_RESP_verify_signature(PKCS7 *token, STACK_OF(X509) *certs, - X509_STORE *store, X509 **signer_out); - -/* Context structure for the generic verify method. */ - -/* Verify the signer's certificate and the signature of the response. */ -# define TS_VFY_SIGNATURE (1u << 0) -/* Verify the version number of the response. */ -# define TS_VFY_VERSION (1u << 1) -/* Verify if the policy supplied by the user matches the policy of the TSA. */ -# define TS_VFY_POLICY (1u << 2) -/* - * Verify the message imprint provided by the user. This flag should not be - * specified with TS_VFY_DATA. - */ -# define TS_VFY_IMPRINT (1u << 3) -/* - * Verify the message imprint computed by the verify method from the user - * provided data and the MD algorithm of the response. This flag should not - * be specified with TS_VFY_IMPRINT. - */ -# define TS_VFY_DATA (1u << 4) -/* Verify the nonce value. */ -# define TS_VFY_NONCE (1u << 5) -/* Verify if the TSA name field matches the signer certificate. */ -# define TS_VFY_SIGNER (1u << 6) -/* Verify if the TSA name field equals to the user provided name. */ -# define TS_VFY_TSA_NAME (1u << 7) - -/* You can use the following convenience constants. */ -# define TS_VFY_ALL_IMPRINT (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_IMPRINT \ - | TS_VFY_NONCE \ - | TS_VFY_SIGNER \ - | TS_VFY_TSA_NAME) -# define TS_VFY_ALL_DATA (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_DATA \ - | TS_VFY_NONCE \ - | TS_VFY_SIGNER \ - | TS_VFY_TSA_NAME) - -typedef struct TS_verify_ctx TS_VERIFY_CTX; - -int TS_RESP_verify_response(TS_VERIFY_CTX *ctx, TS_RESP *response); -int TS_RESP_verify_token(TS_VERIFY_CTX *ctx, PKCS7 *token); - -/* - * Declarations related to response verification context, - */ -TS_VERIFY_CTX *TS_VERIFY_CTX_new(void); -void TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx); -void TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx); -void TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx); -int TS_VERIFY_CTX_set_flags(TS_VERIFY_CTX *ctx, int f); -int TS_VERIFY_CTX_add_flags(TS_VERIFY_CTX *ctx, int f); -BIO *TS_VERIFY_CTX_set_data(TS_VERIFY_CTX *ctx, BIO *b); -unsigned char *TS_VERIFY_CTX_set_imprint(TS_VERIFY_CTX *ctx, - unsigned char *hexstr, long len); -X509_STORE *TS_VERIFY_CTX_set_store(TS_VERIFY_CTX *ctx, X509_STORE *s); -STACK_OF(X509) *TS_VERIFY_CTS_set_certs(TS_VERIFY_CTX *ctx, STACK_OF(X509) *certs); - -/*- - * If ctx is NULL, it allocates and returns a new object, otherwise - * it returns ctx. It initialises all the members as follows: - * flags = TS_VFY_ALL_IMPRINT & ~(TS_VFY_TSA_NAME | TS_VFY_SIGNATURE) - * certs = NULL - * store = NULL - * policy = policy from the request or NULL if absent (in this case - * TS_VFY_POLICY is cleared from flags as well) - * md_alg = MD algorithm from request - * imprint, imprint_len = imprint from request - * data = NULL - * nonce, nonce_len = nonce from the request or NULL if absent (in this case - * TS_VFY_NONCE is cleared from flags as well) - * tsa_name = NULL - * Important: after calling this method TS_VFY_SIGNATURE should be added! - */ -TS_VERIFY_CTX *TS_REQ_to_TS_VERIFY_CTX(TS_REQ *req, TS_VERIFY_CTX *ctx); - -/* Function declarations for TS_RESP defined in ts/ts_resp_print.c */ - -int TS_RESP_print_bio(BIO *bio, TS_RESP *a); -int TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a); -int TS_TST_INFO_print_bio(BIO *bio, TS_TST_INFO *a); - -/* Common utility functions defined in ts/ts_lib.c */ - -int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num); -int TS_OBJ_print_bio(BIO *bio, const ASN1_OBJECT *obj); -int TS_ext_print_bio(BIO *bio, const STACK_OF(X509_EXTENSION) *extensions); -int TS_X509_ALGOR_print_bio(BIO *bio, const X509_ALGOR *alg); -int TS_MSG_IMPRINT_print_bio(BIO *bio, TS_MSG_IMPRINT *msg); - -/* - * Function declarations for handling configuration options, defined in - * ts/ts_conf.c - */ - -X509 *TS_CONF_load_cert(const char *file); -STACK_OF(X509) *TS_CONF_load_certs(const char *file); -EVP_PKEY *TS_CONF_load_key(const char *file, const char *pass); -const char *TS_CONF_get_tsa_section(CONF *conf, const char *section); -int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb, - TS_RESP_CTX *ctx); -#ifndef OPENSSL_NO_ENGINE -int TS_CONF_set_crypto_device(CONF *conf, const char *section, - const char *device); -int TS_CONF_set_default_engine(const char *name); -#endif -int TS_CONF_set_signer_cert(CONF *conf, const char *section, - const char *cert, TS_RESP_CTX *ctx); -int TS_CONF_set_certs(CONF *conf, const char *section, const char *certs, - TS_RESP_CTX *ctx); -int TS_CONF_set_signer_key(CONF *conf, const char *section, - const char *key, const char *pass, - TS_RESP_CTX *ctx); -int TS_CONF_set_signer_digest(CONF *conf, const char *section, - const char *md, TS_RESP_CTX *ctx); -int TS_CONF_set_def_policy(CONF *conf, const char *section, - const char *policy, TS_RESP_CTX *ctx); -int TS_CONF_set_policies(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_digests(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_accuracy(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_clock_precision_digits(CONF *conf, const char *section, - TS_RESP_CTX *ctx); -int TS_CONF_set_ordering(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_tsa_name(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_ess_cert_id_chain(CONF *conf, const char *section, - TS_RESP_CTX *ctx); -int TS_CONF_set_ess_cert_id_digest(CONF *conf, const char *section, - TS_RESP_CTX *ctx); - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/tserr.h b/submodules/MtProtoKit/openssl/openssl/tserr.h deleted file mode 100644 index 07f23339c8..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/tserr.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_TSERR_H -# define HEADER_TSERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# include - -# ifndef OPENSSL_NO_TS - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_TS_strings(void); - -/* - * TS function codes. - */ -# define TS_F_DEF_SERIAL_CB 110 -# define TS_F_DEF_TIME_CB 111 -# define TS_F_ESS_ADD_SIGNING_CERT 112 -# define TS_F_ESS_ADD_SIGNING_CERT_V2 147 -# define TS_F_ESS_CERT_ID_NEW_INIT 113 -# define TS_F_ESS_CERT_ID_V2_NEW_INIT 156 -# define TS_F_ESS_SIGNING_CERT_NEW_INIT 114 -# define TS_F_ESS_SIGNING_CERT_V2_NEW_INIT 157 -# define TS_F_INT_TS_RESP_VERIFY_TOKEN 149 -# define TS_F_PKCS7_TO_TS_TST_INFO 148 -# define TS_F_TS_ACCURACY_SET_MICROS 115 -# define TS_F_TS_ACCURACY_SET_MILLIS 116 -# define TS_F_TS_ACCURACY_SET_SECONDS 117 -# define TS_F_TS_CHECK_IMPRINTS 100 -# define TS_F_TS_CHECK_NONCES 101 -# define TS_F_TS_CHECK_POLICY 102 -# define TS_F_TS_CHECK_SIGNING_CERTS 103 -# define TS_F_TS_CHECK_STATUS_INFO 104 -# define TS_F_TS_COMPUTE_IMPRINT 145 -# define TS_F_TS_CONF_INVALID 151 -# define TS_F_TS_CONF_LOAD_CERT 153 -# define TS_F_TS_CONF_LOAD_CERTS 154 -# define TS_F_TS_CONF_LOAD_KEY 155 -# define TS_F_TS_CONF_LOOKUP_FAIL 152 -# define TS_F_TS_CONF_SET_DEFAULT_ENGINE 146 -# define TS_F_TS_GET_STATUS_TEXT 105 -# define TS_F_TS_MSG_IMPRINT_SET_ALGO 118 -# define TS_F_TS_REQ_SET_MSG_IMPRINT 119 -# define TS_F_TS_REQ_SET_NONCE 120 -# define TS_F_TS_REQ_SET_POLICY_ID 121 -# define TS_F_TS_RESP_CREATE_RESPONSE 122 -# define TS_F_TS_RESP_CREATE_TST_INFO 123 -# define TS_F_TS_RESP_CTX_ADD_FAILURE_INFO 124 -# define TS_F_TS_RESP_CTX_ADD_MD 125 -# define TS_F_TS_RESP_CTX_ADD_POLICY 126 -# define TS_F_TS_RESP_CTX_NEW 127 -# define TS_F_TS_RESP_CTX_SET_ACCURACY 128 -# define TS_F_TS_RESP_CTX_SET_CERTS 129 -# define TS_F_TS_RESP_CTX_SET_DEF_POLICY 130 -# define TS_F_TS_RESP_CTX_SET_SIGNER_CERT 131 -# define TS_F_TS_RESP_CTX_SET_STATUS_INFO 132 -# define TS_F_TS_RESP_GET_POLICY 133 -# define TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION 134 -# define TS_F_TS_RESP_SET_STATUS_INFO 135 -# define TS_F_TS_RESP_SET_TST_INFO 150 -# define TS_F_TS_RESP_SIGN 136 -# define TS_F_TS_RESP_VERIFY_SIGNATURE 106 -# define TS_F_TS_TST_INFO_SET_ACCURACY 137 -# define TS_F_TS_TST_INFO_SET_MSG_IMPRINT 138 -# define TS_F_TS_TST_INFO_SET_NONCE 139 -# define TS_F_TS_TST_INFO_SET_POLICY_ID 140 -# define TS_F_TS_TST_INFO_SET_SERIAL 141 -# define TS_F_TS_TST_INFO_SET_TIME 142 -# define TS_F_TS_TST_INFO_SET_TSA 143 -# define TS_F_TS_VERIFY 108 -# define TS_F_TS_VERIFY_CERT 109 -# define TS_F_TS_VERIFY_CTX_NEW 144 - -/* - * TS reason codes. - */ -# define TS_R_BAD_PKCS7_TYPE 132 -# define TS_R_BAD_TYPE 133 -# define TS_R_CANNOT_LOAD_CERT 137 -# define TS_R_CANNOT_LOAD_KEY 138 -# define TS_R_CERTIFICATE_VERIFY_ERROR 100 -# define TS_R_COULD_NOT_SET_ENGINE 127 -# define TS_R_COULD_NOT_SET_TIME 115 -# define TS_R_DETACHED_CONTENT 134 -# define TS_R_ESS_ADD_SIGNING_CERT_ERROR 116 -# define TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR 139 -# define TS_R_ESS_SIGNING_CERTIFICATE_ERROR 101 -# define TS_R_INVALID_NULL_POINTER 102 -# define TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE 117 -# define TS_R_MESSAGE_IMPRINT_MISMATCH 103 -# define TS_R_NONCE_MISMATCH 104 -# define TS_R_NONCE_NOT_RETURNED 105 -# define TS_R_NO_CONTENT 106 -# define TS_R_NO_TIME_STAMP_TOKEN 107 -# define TS_R_PKCS7_ADD_SIGNATURE_ERROR 118 -# define TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR 119 -# define TS_R_PKCS7_TO_TS_TST_INFO_FAILED 129 -# define TS_R_POLICY_MISMATCH 108 -# define TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 120 -# define TS_R_RESPONSE_SETUP_ERROR 121 -# define TS_R_SIGNATURE_FAILURE 109 -# define TS_R_THERE_MUST_BE_ONE_SIGNER 110 -# define TS_R_TIME_SYSCALL_ERROR 122 -# define TS_R_TOKEN_NOT_PRESENT 130 -# define TS_R_TOKEN_PRESENT 131 -# define TS_R_TSA_NAME_MISMATCH 111 -# define TS_R_TSA_UNTRUSTED 112 -# define TS_R_TST_INFO_SETUP_ERROR 123 -# define TS_R_TS_DATASIGN 124 -# define TS_R_UNACCEPTABLE_POLICY 125 -# define TS_R_UNSUPPORTED_MD_ALGORITHM 126 -# define TS_R_UNSUPPORTED_VERSION 113 -# define TS_R_VAR_BAD_VALUE 135 -# define TS_R_VAR_LOOKUP_FAILURE 136 -# define TS_R_WRONG_CONTENT_TYPE 114 - -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/txt_db.h b/submodules/MtProtoKit/openssl/openssl/txt_db.h deleted file mode 100644 index ec981a439f..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/txt_db.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_TXT_DB_H -# define HEADER_TXT_DB_H - -# include -# include -# include -# include - -# define DB_ERROR_OK 0 -# define DB_ERROR_MALLOC 1 -# define DB_ERROR_INDEX_CLASH 2 -# define DB_ERROR_INDEX_OUT_OF_RANGE 3 -# define DB_ERROR_NO_INDEX 4 -# define DB_ERROR_INSERT_INDEX_CLASH 5 -# define DB_ERROR_WRONG_NUM_FIELDS 6 - -#ifdef __cplusplus -extern "C" { -#endif - -typedef OPENSSL_STRING *OPENSSL_PSTRING; -DEFINE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) - -typedef struct txt_db_st { - int num_fields; - STACK_OF(OPENSSL_PSTRING) *data; - LHASH_OF(OPENSSL_STRING) **index; - int (**qual) (OPENSSL_STRING *); - long error; - long arg1; - long arg2; - OPENSSL_STRING *arg_row; -} TXT_DB; - -TXT_DB *TXT_DB_read(BIO *in, int num); -long TXT_DB_write(BIO *out, TXT_DB *db); -int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *), - OPENSSL_LH_HASHFUNC hash, OPENSSL_LH_COMPFUNC cmp); -void TXT_DB_free(TXT_DB *db); -OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, - OPENSSL_STRING *value); -int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *value); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ui.h b/submodules/MtProtoKit/openssl/openssl/ui.h deleted file mode 100644 index 7c721ec818..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ui.h +++ /dev/null @@ -1,368 +0,0 @@ -/* - * Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_UI_H -# define HEADER_UI_H - -# include - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include -# include -# include -# include - -/* For compatibility reasons, the macro OPENSSL_NO_UI is currently retained */ -# if OPENSSL_API_COMPAT < 0x10200000L -# ifdef OPENSSL_NO_UI_CONSOLE -# define OPENSSL_NO_UI -# endif -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * All the following functions return -1 or NULL on error and in some cases - * (UI_process()) -2 if interrupted or in some other way cancelled. When - * everything is fine, they return 0, a positive value or a non-NULL pointer, - * all depending on their purpose. - */ - -/* Creators and destructor. */ -UI *UI_new(void); -UI *UI_new_method(const UI_METHOD *method); -void UI_free(UI *ui); - -/*- - The following functions are used to add strings to be printed and prompt - strings to prompt for data. The names are UI_{add,dup}__string - and UI_{add,dup}_input_boolean. - - UI_{add,dup}__string have the following meanings: - add add a text or prompt string. The pointers given to these - functions are used verbatim, no copying is done. - dup make a copy of the text or prompt string, then add the copy - to the collection of strings in the user interface. - - The function is a name for the functionality that the given - string shall be used for. It can be one of: - input use the string as data prompt. - verify use the string as verification prompt. This - is used to verify a previous input. - info use the string for informational output. - error use the string for error output. - Honestly, there's currently no difference between info and error for the - moment. - - UI_{add,dup}_input_boolean have the same semantics for "add" and "dup", - and are typically used when one wants to prompt for a yes/no response. - - All of the functions in this group take a UI and a prompt string. - The string input and verify addition functions also take a flag argument, - a buffer for the result to end up with, a minimum input size and a maximum - input size (the result buffer MUST be large enough to be able to contain - the maximum number of characters). Additionally, the verify addition - functions takes another buffer to compare the result against. - The boolean input functions take an action description string (which should - be safe to ignore if the expected user action is obvious, for example with - a dialog box with an OK button and a Cancel button), a string of acceptable - characters to mean OK and to mean Cancel. The two last strings are checked - to make sure they don't have common characters. Additionally, the same - flag argument as for the string input is taken, as well as a result buffer. - The result buffer is required to be at least one byte long. Depending on - the answer, the first character from the OK or the Cancel character strings - will be stored in the first byte of the result buffer. No NUL will be - added, so the result is *not* a string. - - On success, the all return an index of the added information. That index - is useful when retrieving results with UI_get0_result(). */ -int UI_add_input_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize); -int UI_dup_input_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize); -int UI_add_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, - const char *test_buf); -int UI_dup_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, - const char *test_buf); -int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_add_info_string(UI *ui, const char *text); -int UI_dup_info_string(UI *ui, const char *text); -int UI_add_error_string(UI *ui, const char *text); -int UI_dup_error_string(UI *ui, const char *text); - -/* These are the possible flags. They can be or'ed together. */ -/* Use to have echoing of input */ -# define UI_INPUT_FLAG_ECHO 0x01 -/* - * Use a default password. Where that password is found is completely up to - * the application, it might for example be in the user data set with - * UI_add_user_data(). It is not recommended to have more than one input in - * each UI being marked with this flag, or the application might get - * confused. - */ -# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 - -/*- - * The user of these routines may want to define flags of their own. The core - * UI won't look at those, but will pass them on to the method routines. They - * must use higher bits so they don't get confused with the UI bits above. - * UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good - * example of use is this: - * - * #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) - * -*/ -# define UI_INPUT_FLAG_USER_BASE 16 - -/*- - * The following function helps construct a prompt. object_desc is a - * textual short description of the object, for example "pass phrase", - * and object_name is the name of the object (might be a card name or - * a file name. - * The returned string shall always be allocated on the heap with - * OPENSSL_malloc(), and need to be free'd with OPENSSL_free(). - * - * If the ui_method doesn't contain a pointer to a user-defined prompt - * constructor, a default string is built, looking like this: - * - * "Enter {object_desc} for {object_name}:" - * - * So, if object_desc has the value "pass phrase" and object_name has - * the value "foo.key", the resulting string is: - * - * "Enter pass phrase for foo.key:" -*/ -char *UI_construct_prompt(UI *ui_method, - const char *object_desc, const char *object_name); - -/* - * The following function is used to store a pointer to user-specific data. - * Any previous such pointer will be returned and replaced. - * - * For callback purposes, this function makes a lot more sense than using - * ex_data, since the latter requires that different parts of OpenSSL or - * applications share the same ex_data index. - * - * Note that the UI_OpenSSL() method completely ignores the user data. Other - * methods may not, however. - */ -void *UI_add_user_data(UI *ui, void *user_data); -/* - * Alternatively, this function is used to duplicate the user data. - * This uses the duplicator method function. The destroy function will - * be used to free the user data in this case. - */ -int UI_dup_user_data(UI *ui, void *user_data); -/* We need a user data retrieving function as well. */ -void *UI_get0_user_data(UI *ui); - -/* Return the result associated with a prompt given with the index i. */ -const char *UI_get0_result(UI *ui, int i); -int UI_get_result_length(UI *ui, int i); - -/* When all strings have been added, process the whole thing. */ -int UI_process(UI *ui); - -/* - * Give a user interface parameterised control commands. This can be used to - * send down an integer, a data pointer or a function pointer, as well as be - * used to get information from a UI. - */ -int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); - -/* The commands */ -/* - * Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the - * OpenSSL error stack before printing any info or added error messages and - * before any prompting. - */ -# define UI_CTRL_PRINT_ERRORS 1 -/* - * Check if a UI_process() is possible to do again with the same instance of - * a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0 - * if not. - */ -# define UI_CTRL_IS_REDOABLE 2 - -/* Some methods may use extra data */ -# define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg) -# define UI_get_app_data(s) UI_get_ex_data(s,0) - -# define UI_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_UI, l, p, newf, dupf, freef) -int UI_set_ex_data(UI *r, int idx, void *arg); -void *UI_get_ex_data(UI *r, int idx); - -/* Use specific methods instead of the built-in one */ -void UI_set_default_method(const UI_METHOD *meth); -const UI_METHOD *UI_get_default_method(void); -const UI_METHOD *UI_get_method(UI *ui); -const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); - -# ifndef OPENSSL_NO_UI_CONSOLE - -/* The method with all the built-in thingies */ -UI_METHOD *UI_OpenSSL(void); - -# endif - -/* - * NULL method. Literally does nothing, but may serve as a placeholder - * to avoid internal default. - */ -const UI_METHOD *UI_null(void); - -/* ---------- For method writers ---------- */ -/*- - A method contains a number of functions that implement the low level - of the User Interface. The functions are: - - an opener This function starts a session, maybe by opening - a channel to a tty, or by opening a window. - a writer This function is called to write a given string, - maybe to the tty, maybe as a field label in a - window. - a flusher This function is called to flush everything that - has been output so far. It can be used to actually - display a dialog box after it has been built. - a reader This function is called to read a given prompt, - maybe from the tty, maybe from a field in a - window. Note that it's called with all string - structures, not only the prompt ones, so it must - check such things itself. - a closer This function closes the session, maybe by closing - the channel to the tty, or closing the window. - - All these functions are expected to return: - - 0 on error. - 1 on success. - -1 on out-of-band events, for example if some prompting has - been canceled (by pressing Ctrl-C, for example). This is - only checked when returned by the flusher or the reader. - - The way this is used, the opener is first called, then the writer for all - strings, then the flusher, then the reader for all strings and finally the - closer. Note that if you want to prompt from a terminal or other command - line interface, the best is to have the reader also write the prompts - instead of having the writer do it. If you want to prompt from a dialog - box, the writer can be used to build up the contents of the box, and the - flusher to actually display the box and run the event loop until all data - has been given, after which the reader only grabs the given data and puts - them back into the UI strings. - - All method functions take a UI as argument. Additionally, the writer and - the reader take a UI_STRING. -*/ - -/* - * The UI_STRING type is the data structure that contains all the needed info - * about a string or a prompt, including test data for a verification prompt. - */ -typedef struct ui_string_st UI_STRING; -DEFINE_STACK_OF(UI_STRING) - -/* - * The different types of strings that are currently supported. This is only - * needed by method authors. - */ -enum UI_string_types { - UIT_NONE = 0, - UIT_PROMPT, /* Prompt for a string */ - UIT_VERIFY, /* Prompt for a string and verify */ - UIT_BOOLEAN, /* Prompt for a yes/no response */ - UIT_INFO, /* Send info to the user */ - UIT_ERROR /* Send an error message to the user */ -}; - -/* Create and manipulate methods */ -UI_METHOD *UI_create_method(const char *name); -void UI_destroy_method(UI_METHOD *ui_method); -int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui)); -int UI_method_set_writer(UI_METHOD *method, - int (*writer) (UI *ui, UI_STRING *uis)); -int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui)); -int UI_method_set_reader(UI_METHOD *method, - int (*reader) (UI *ui, UI_STRING *uis)); -int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui)); -int UI_method_set_data_duplicator(UI_METHOD *method, - void *(*duplicator) (UI *ui, void *ui_data), - void (*destructor)(UI *ui, void *ui_data)); -int UI_method_set_prompt_constructor(UI_METHOD *method, - char *(*prompt_constructor) (UI *ui, - const char - *object_desc, - const char - *object_name)); -int UI_method_set_ex_data(UI_METHOD *method, int idx, void *data); -int (*UI_method_get_opener(const UI_METHOD *method)) (UI *); -int (*UI_method_get_writer(const UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_flusher(const UI_METHOD *method)) (UI *); -int (*UI_method_get_reader(const UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_closer(const UI_METHOD *method)) (UI *); -char *(*UI_method_get_prompt_constructor(const UI_METHOD *method)) - (UI *, const char *, const char *); -void *(*UI_method_get_data_duplicator(const UI_METHOD *method)) (UI *, void *); -void (*UI_method_get_data_destructor(const UI_METHOD *method)) (UI *, void *); -const void *UI_method_get_ex_data(const UI_METHOD *method, int idx); - -/* - * The following functions are helpers for method writers to access relevant - * data from a UI_STRING. - */ - -/* Return type of the UI_STRING */ -enum UI_string_types UI_get_string_type(UI_STRING *uis); -/* Return input flags of the UI_STRING */ -int UI_get_input_flags(UI_STRING *uis); -/* Return the actual string to output (the prompt, info or error) */ -const char *UI_get0_output_string(UI_STRING *uis); -/* - * Return the optional action string to output (the boolean prompt - * instruction) - */ -const char *UI_get0_action_string(UI_STRING *uis); -/* Return the result of a prompt */ -const char *UI_get0_result_string(UI_STRING *uis); -int UI_get_result_string_length(UI_STRING *uis); -/* - * Return the string to test the result against. Only useful with verifies. - */ -const char *UI_get0_test_string(UI_STRING *uis); -/* Return the required minimum size of the result */ -int UI_get_result_minsize(UI_STRING *uis); -/* Return the required maximum size of the result */ -int UI_get_result_maxsize(UI_STRING *uis); -/* Set the result of a UI_STRING. */ -int UI_set_result(UI *ui, UI_STRING *uis, const char *result); -int UI_set_result_ex(UI *ui, UI_STRING *uis, const char *result, int len); - -/* A couple of popular utility functions */ -int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, - int verify); -int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt, - int verify); -UI_METHOD *UI_UTIL_wrap_read_pem_callback(pem_password_cb *cb, int rwflag); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/ui_compat.h b/submodules/MtProtoKit/openssl/openssl/ui_compat.h deleted file mode 100644 index bf541542c0..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/ui_compat.h +++ /dev/null @@ -1,88 +0,0 @@ -/* crypto/ui/ui.h */ -/* - * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project - * 2001. - */ -/* ==================================================================== - * Copyright (c) 2001 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_UI_COMPAT_H -# define HEADER_UI_COMPAT_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following functions were previously part of the DES section, and are - * provided here for backward compatibility reasons. - */ - -# define des_read_pw_string(b,l,p,v) \ - _ossl_old_des_read_pw_string((b),(l),(p),(v)) -# define des_read_pw(b,bf,s,p,v) \ - _ossl_old_des_read_pw((b),(bf),(s),(p),(v)) - -int _ossl_old_des_read_pw_string(char *buf, int length, const char *prompt, - int verify); -int _ossl_old_des_read_pw(char *buf, char *buff, int size, const char *prompt, - int verify); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/uierr.h b/submodules/MtProtoKit/openssl/openssl/uierr.h deleted file mode 100644 index bd68864d0d..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/uierr.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_UIERR_H -# define HEADER_UIERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_UI_strings(void); - -/* - * UI function codes. - */ -# define UI_F_CLOSE_CONSOLE 115 -# define UI_F_ECHO_CONSOLE 116 -# define UI_F_GENERAL_ALLOCATE_BOOLEAN 108 -# define UI_F_GENERAL_ALLOCATE_PROMPT 109 -# define UI_F_NOECHO_CONSOLE 117 -# define UI_F_OPEN_CONSOLE 114 -# define UI_F_UI_CONSTRUCT_PROMPT 121 -# define UI_F_UI_CREATE_METHOD 112 -# define UI_F_UI_CTRL 111 -# define UI_F_UI_DUP_ERROR_STRING 101 -# define UI_F_UI_DUP_INFO_STRING 102 -# define UI_F_UI_DUP_INPUT_BOOLEAN 110 -# define UI_F_UI_DUP_INPUT_STRING 103 -# define UI_F_UI_DUP_USER_DATA 118 -# define UI_F_UI_DUP_VERIFY_STRING 106 -# define UI_F_UI_GET0_RESULT 107 -# define UI_F_UI_GET_RESULT_LENGTH 119 -# define UI_F_UI_NEW_METHOD 104 -# define UI_F_UI_PROCESS 113 -# define UI_F_UI_SET_RESULT 105 -# define UI_F_UI_SET_RESULT_EX 120 - -/* - * UI reason codes. - */ -# define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 -# define UI_R_INDEX_TOO_LARGE 102 -# define UI_R_INDEX_TOO_SMALL 103 -# define UI_R_NO_RESULT_BUFFER 105 -# define UI_R_PROCESSING_ERROR 107 -# define UI_R_RESULT_TOO_LARGE 100 -# define UI_R_RESULT_TOO_SMALL 101 -# define UI_R_SYSASSIGN_ERROR 109 -# define UI_R_SYSDASSGN_ERROR 110 -# define UI_R_SYSQIOW_ERROR 111 -# define UI_R_UNKNOWN_CONTROL_COMMAND 106 -# define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108 -# define UI_R_USER_DATA_DUPLICATION_UNSUPPORTED 112 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/whrlpool.h b/submodules/MtProtoKit/openssl/openssl/whrlpool.h deleted file mode 100644 index 20ea3503b7..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/whrlpool.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2005-2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_WHRLPOOL_H -# define HEADER_WHRLPOOL_H - -#include - -# ifndef OPENSSL_NO_WHIRLPOOL -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define WHIRLPOOL_DIGEST_LENGTH (512/8) -# define WHIRLPOOL_BBLOCK 512 -# define WHIRLPOOL_COUNTER (256/8) - -typedef struct { - union { - unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; - /* double q is here to ensure 64-bit alignment */ - double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; - } H; - unsigned char data[WHIRLPOOL_BBLOCK / 8]; - unsigned int bitoff; - size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; -} WHIRLPOOL_CTX; - -int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); -int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *inp, size_t bytes); -void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *inp, size_t bits); -int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); -unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/x509.h b/submodules/MtProtoKit/openssl/openssl/x509.h deleted file mode 100644 index 39ca0ba575..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/x509.h +++ /dev/null @@ -1,1047 +0,0 @@ -/* - * Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. - * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_X509_H -# define HEADER_X509_H - -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# endif - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* Flags for X509_get_signature_info() */ -/* Signature info is valid */ -# define X509_SIG_INFO_VALID 0x1 -/* Signature is suitable for TLS use */ -# define X509_SIG_INFO_TLS 0x2 - -# define X509_FILETYPE_PEM 1 -# define X509_FILETYPE_ASN1 2 -# define X509_FILETYPE_DEFAULT 3 - -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff - -struct X509_algor_st { - ASN1_OBJECT *algorithm; - ASN1_TYPE *parameter; -} /* X509_ALGOR */ ; - -typedef STACK_OF(X509_ALGOR) X509_ALGORS; - -typedef struct X509_val_st { - ASN1_TIME *notBefore; - ASN1_TIME *notAfter; -} X509_VAL; - -typedef struct X509_sig_st X509_SIG; - -typedef struct X509_name_entry_st X509_NAME_ENTRY; - -DEFINE_STACK_OF(X509_NAME_ENTRY) - -DEFINE_STACK_OF(X509_NAME) - -# define X509_EX_V_NETSCAPE_HACK 0x8000 -# define X509_EX_V_INIT 0x0001 -typedef struct X509_extension_st X509_EXTENSION; - -typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS; - -DEFINE_STACK_OF(X509_EXTENSION) - -typedef struct x509_attributes_st X509_ATTRIBUTE; - -DEFINE_STACK_OF(X509_ATTRIBUTE) - -typedef struct X509_req_info_st X509_REQ_INFO; - -typedef struct X509_req_st X509_REQ; - -typedef struct x509_cert_aux_st X509_CERT_AUX; - -typedef struct x509_cinf_st X509_CINF; - -DEFINE_STACK_OF(X509) - -/* This is used for a table of trust checking functions */ - -typedef struct x509_trust_st { - int trust; - int flags; - int (*check_trust) (struct x509_trust_st *, X509 *, int); - char *name; - int arg1; - void *arg2; -} X509_TRUST; - -DEFINE_STACK_OF(X509_TRUST) - -/* standard trust ids */ - -# define X509_TRUST_DEFAULT 0 /* Only valid in purpose settings */ - -# define X509_TRUST_COMPAT 1 -# define X509_TRUST_SSL_CLIENT 2 -# define X509_TRUST_SSL_SERVER 3 -# define X509_TRUST_EMAIL 4 -# define X509_TRUST_OBJECT_SIGN 5 -# define X509_TRUST_OCSP_SIGN 6 -# define X509_TRUST_OCSP_REQUEST 7 -# define X509_TRUST_TSA 8 - -/* Keep these up to date! */ -# define X509_TRUST_MIN 1 -# define X509_TRUST_MAX 8 - -/* trust_flags values */ -# define X509_TRUST_DYNAMIC (1U << 0) -# define X509_TRUST_DYNAMIC_NAME (1U << 1) -/* No compat trust if self-signed, preempts "DO_SS" */ -# define X509_TRUST_NO_SS_COMPAT (1U << 2) -/* Compat trust if no explicit accepted trust EKUs */ -# define X509_TRUST_DO_SS_COMPAT (1U << 3) -/* Accept "anyEKU" as a wildcard trust OID */ -# define X509_TRUST_OK_ANY_EKU (1U << 4) - -/* check_trust return codes */ - -# define X509_TRUST_TRUSTED 1 -# define X509_TRUST_REJECTED 2 -# define X509_TRUST_UNTRUSTED 3 - -/* Flags for X509_print_ex() */ - -# define X509_FLAG_COMPAT 0 -# define X509_FLAG_NO_HEADER 1L -# define X509_FLAG_NO_VERSION (1L << 1) -# define X509_FLAG_NO_SERIAL (1L << 2) -# define X509_FLAG_NO_SIGNAME (1L << 3) -# define X509_FLAG_NO_ISSUER (1L << 4) -# define X509_FLAG_NO_VALIDITY (1L << 5) -# define X509_FLAG_NO_SUBJECT (1L << 6) -# define X509_FLAG_NO_PUBKEY (1L << 7) -# define X509_FLAG_NO_EXTENSIONS (1L << 8) -# define X509_FLAG_NO_SIGDUMP (1L << 9) -# define X509_FLAG_NO_AUX (1L << 10) -# define X509_FLAG_NO_ATTRIBUTES (1L << 11) -# define X509_FLAG_NO_IDS (1L << 12) - -/* Flags specific to X509_NAME_print_ex() */ - -/* The field separator information */ - -# define XN_FLAG_SEP_MASK (0xf << 16) - -# define XN_FLAG_COMPAT 0/* Traditional; use old X509_NAME_print */ -# define XN_FLAG_SEP_COMMA_PLUS (1 << 16)/* RFC2253 ,+ */ -# define XN_FLAG_SEP_CPLUS_SPC (2 << 16)/* ,+ spaced: more readable */ -# define XN_FLAG_SEP_SPLUS_SPC (3 << 16)/* ;+ spaced */ -# define XN_FLAG_SEP_MULTILINE (4 << 16)/* One line per field */ - -# define XN_FLAG_DN_REV (1 << 20)/* Reverse DN order */ - -/* How the field name is shown */ - -# define XN_FLAG_FN_MASK (0x3 << 21) - -# define XN_FLAG_FN_SN 0/* Object short name */ -# define XN_FLAG_FN_LN (1 << 21)/* Object long name */ -# define XN_FLAG_FN_OID (2 << 21)/* Always use OIDs */ -# define XN_FLAG_FN_NONE (3 << 21)/* No field names */ - -# define XN_FLAG_SPC_EQ (1 << 23)/* Put spaces round '=' */ - -/* - * This determines if we dump fields we don't recognise: RFC2253 requires - * this. - */ - -# define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24) - -# define XN_FLAG_FN_ALIGN (1 << 25)/* Align field names to 20 - * characters */ - -/* Complete set of RFC2253 flags */ - -# define XN_FLAG_RFC2253 (ASN1_STRFLGS_RFC2253 | \ - XN_FLAG_SEP_COMMA_PLUS | \ - XN_FLAG_DN_REV | \ - XN_FLAG_FN_SN | \ - XN_FLAG_DUMP_UNKNOWN_FIELDS) - -/* readable oneline form */ - -# define XN_FLAG_ONELINE (ASN1_STRFLGS_RFC2253 | \ - ASN1_STRFLGS_ESC_QUOTE | \ - XN_FLAG_SEP_CPLUS_SPC | \ - XN_FLAG_SPC_EQ | \ - XN_FLAG_FN_SN) - -/* readable multiline form */ - -# define XN_FLAG_MULTILINE (ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - XN_FLAG_SEP_MULTILINE | \ - XN_FLAG_SPC_EQ | \ - XN_FLAG_FN_LN | \ - XN_FLAG_FN_ALIGN) - -DEFINE_STACK_OF(X509_REVOKED) - -typedef struct X509_crl_info_st X509_CRL_INFO; - -DEFINE_STACK_OF(X509_CRL) - -typedef struct private_key_st { - int version; - /* The PKCS#8 data types */ - X509_ALGOR *enc_algor; - ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ - /* When decrypted, the following will not be NULL */ - EVP_PKEY *dec_pkey; - /* used to encrypt and decrypt */ - int key_length; - char *key_data; - int key_free; /* true if we should auto free key_data */ - /* expanded version of 'enc_algor' */ - EVP_CIPHER_INFO cipher; -} X509_PKEY; - -typedef struct X509_info_st { - X509 *x509; - X509_CRL *crl; - X509_PKEY *x_pkey; - EVP_CIPHER_INFO enc_cipher; - int enc_len; - char *enc_data; -} X509_INFO; - -DEFINE_STACK_OF(X509_INFO) - -/* - * The next 2 structures and their 8 routines are used to manipulate Netscape's - * spki structures - useful if you are writing a CA web page - */ -typedef struct Netscape_spkac_st { - X509_PUBKEY *pubkey; - ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ -} NETSCAPE_SPKAC; - -typedef struct Netscape_spki_st { - NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ - X509_ALGOR sig_algor; - ASN1_BIT_STRING *signature; -} NETSCAPE_SPKI; - -/* Netscape certificate sequence structure */ -typedef struct Netscape_certificate_sequence { - ASN1_OBJECT *type; - STACK_OF(X509) *certs; -} NETSCAPE_CERT_SEQUENCE; - -/*- Unused (and iv length is wrong) -typedef struct CBCParameter_st - { - unsigned char iv[8]; - } CBC_PARAM; -*/ - -/* Password based encryption structure */ - -typedef struct PBEPARAM_st { - ASN1_OCTET_STRING *salt; - ASN1_INTEGER *iter; -} PBEPARAM; - -/* Password based encryption V2 structures */ - -typedef struct PBE2PARAM_st { - X509_ALGOR *keyfunc; - X509_ALGOR *encryption; -} PBE2PARAM; - -typedef struct PBKDF2PARAM_st { -/* Usually OCTET STRING but could be anything */ - ASN1_TYPE *salt; - ASN1_INTEGER *iter; - ASN1_INTEGER *keylength; - X509_ALGOR *prf; -} PBKDF2PARAM; - -#ifndef OPENSSL_NO_SCRYPT -typedef struct SCRYPT_PARAMS_st { - ASN1_OCTET_STRING *salt; - ASN1_INTEGER *costParameter; - ASN1_INTEGER *blockSize; - ASN1_INTEGER *parallelizationParameter; - ASN1_INTEGER *keyLength; -} SCRYPT_PARAMS; -#endif - -#ifdef __cplusplus -} -#endif - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define X509_EXT_PACK_UNKNOWN 1 -# define X509_EXT_PACK_STRING 2 - -# define X509_extract_key(x) X509_get_pubkey(x)/*****/ -# define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a) -# define X509_name_cmp(a,b) X509_NAME_cmp((a),(b)) - -void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); -X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), - int (*crl_free) (X509_CRL *crl), - int (*crl_lookup) (X509_CRL *crl, - X509_REVOKED **ret, - ASN1_INTEGER *ser, - X509_NAME *issuer), - int (*crl_verify) (X509_CRL *crl, - EVP_PKEY *pk)); -void X509_CRL_METHOD_free(X509_CRL_METHOD *m); - -void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); -void *X509_CRL_get_meth_data(X509_CRL *crl); - -const char *X509_verify_cert_error_string(long n); - -int X509_verify(X509 *a, EVP_PKEY *r); - -int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); -int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); -int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); - -NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); -char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); -EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); -int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); - -int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); - -int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); -int X509_signature_print(BIO *bp, const X509_ALGOR *alg, - const ASN1_STRING *sig); - -int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); -# ifndef OPENSSL_NO_OCSP -int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); -# endif -int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); -int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); -# ifndef OPENSSL_NO_OCSP -int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); -# endif -int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); - -int X509_pubkey_digest(const X509 *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_digest(const X509 *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); - -# ifndef OPENSSL_NO_STDIO -X509 *d2i_X509_fp(FILE *fp, X509 **x509); -int i2d_X509_fp(FILE *fp, X509 *x509); -X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); -int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl); -X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); -int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req); -# ifndef OPENSSL_NO_RSA -RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); -int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa); -RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); -int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa); -RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); -int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa); -# endif -# ifndef OPENSSL_NO_DSA -DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); -int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); -DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); -int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); -# endif -# ifndef OPENSSL_NO_EC -EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); -int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey); -EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); -int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey); -# endif -X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); -int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key); -int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); -int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); -# endif - -X509 *d2i_X509_bio(BIO *bp, X509 **x509); -int i2d_X509_bio(BIO *bp, X509 *x509); -X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); -int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl); -X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); -int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req); -# ifndef OPENSSL_NO_RSA -RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); -int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa); -RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); -int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa); -RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); -int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa); -# endif -# ifndef OPENSSL_NO_DSA -DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); -int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); -DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); -int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); -# endif -# ifndef OPENSSL_NO_EC -EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); -int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey); -EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); -int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey); -# endif -X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); -int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key); -int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); -int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); - -X509 *X509_dup(X509 *x509); -X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); -X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); -X509_CRL *X509_CRL_dup(X509_CRL *crl); -X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev); -X509_REQ *X509_REQ_dup(X509_REQ *req); -X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); -int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, - void *pval); -void X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype, - const void **ppval, const X509_ALGOR *algor); -void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); -int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); - -X509_NAME *X509_NAME_dup(X509_NAME *xn); -X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); - -int X509_cmp_time(const ASN1_TIME *s, time_t *t); -int X509_cmp_current_time(const ASN1_TIME *s); -ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); -ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, - int offset_day, long offset_sec, time_t *t); -ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); - -const char *X509_get_default_cert_area(void); -const char *X509_get_default_cert_dir(void); -const char *X509_get_default_cert_file(void); -const char *X509_get_default_cert_dir_env(void); -const char *X509_get_default_cert_file_env(void); -const char *X509_get_default_private_dir(void); - -X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); - -DECLARE_ASN1_FUNCTIONS(X509_ALGOR) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS) -DECLARE_ASN1_FUNCTIONS(X509_VAL) - -DECLARE_ASN1_FUNCTIONS(X509_PUBKEY) - -int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); -EVP_PKEY *X509_PUBKEY_get0(X509_PUBKEY *key); -EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key); -int X509_get_pubkey_parameters(EVP_PKEY *pkey, STACK_OF(X509) *chain); -long X509_get_pathlen(X509 *x); -int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp); -EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length); -# ifndef OPENSSL_NO_RSA -int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); -RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length); -# endif -# ifndef OPENSSL_NO_DSA -int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp); -DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length); -# endif -# ifndef OPENSSL_NO_EC -int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp); -EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length); -# endif - -DECLARE_ASN1_FUNCTIONS(X509_SIG) -void X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg, - const ASN1_OCTET_STRING **pdigest); -void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **palg, - ASN1_OCTET_STRING **pdigest); - -DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO) -DECLARE_ASN1_FUNCTIONS(X509_REQ) - -DECLARE_ASN1_FUNCTIONS(X509_ATTRIBUTE) -X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); - -DECLARE_ASN1_FUNCTIONS(X509_EXTENSION) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS) - -DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY) - -DECLARE_ASN1_FUNCTIONS(X509_NAME) - -int X509_NAME_set(X509_NAME **xn, X509_NAME *name); - -DECLARE_ASN1_FUNCTIONS(X509_CINF) - -DECLARE_ASN1_FUNCTIONS(X509) -DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX) - -#define X509_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509, l, p, newf, dupf, freef) -int X509_set_ex_data(X509 *r, int idx, void *arg); -void *X509_get_ex_data(X509 *r, int idx); -int i2d_X509_AUX(X509 *a, unsigned char **pp); -X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length); - -int i2d_re_X509_tbs(X509 *x, unsigned char **pp); - -int X509_SIG_INFO_get(const X509_SIG_INFO *siginf, int *mdnid, int *pknid, - int *secbits, uint32_t *flags); -void X509_SIG_INFO_set(X509_SIG_INFO *siginf, int mdnid, int pknid, - int secbits, uint32_t flags); - -int X509_get_signature_info(X509 *x, int *mdnid, int *pknid, int *secbits, - uint32_t *flags); - -void X509_get0_signature(const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg, const X509 *x); -int X509_get_signature_nid(const X509 *x); - -int X509_trusted(const X509 *x); -int X509_alias_set1(X509 *x, const unsigned char *name, int len); -int X509_keyid_set1(X509 *x, const unsigned char *id, int len); -unsigned char *X509_alias_get0(X509 *x, int *len); -unsigned char *X509_keyid_get0(X509 *x, int *len); -int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, - int); -int X509_TRUST_set(int *t, int trust); -int X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj); -int X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj); -void X509_trust_clear(X509 *x); -void X509_reject_clear(X509 *x); - -STACK_OF(ASN1_OBJECT) *X509_get0_trust_objects(X509 *x); -STACK_OF(ASN1_OBJECT) *X509_get0_reject_objects(X509 *x); - -DECLARE_ASN1_FUNCTIONS(X509_REVOKED) -DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO) -DECLARE_ASN1_FUNCTIONS(X509_CRL) - -int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); -int X509_CRL_get0_by_serial(X509_CRL *crl, - X509_REVOKED **ret, ASN1_INTEGER *serial); -int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); - -X509_PKEY *X509_PKEY_new(void); -void X509_PKEY_free(X509_PKEY *a); - -DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI) -DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKAC) -DECLARE_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) - -X509_INFO *X509_INFO_new(void); -void X509_INFO_free(X509_INFO *a); -char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size); - -int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, - ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); - -int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, - unsigned char *md, unsigned int *len); - -int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, - char *data, EVP_PKEY *pkey, const EVP_MD *type); - -int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, - unsigned char *md, unsigned int *len); - -int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1, - ASN1_BIT_STRING *signature, void *data, EVP_PKEY *pkey); - -int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, void *data, - EVP_PKEY *pkey, const EVP_MD *type); -int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, - void *asn, EVP_MD_CTX *ctx); - -long X509_get_version(const X509 *x); -int X509_set_version(X509 *x, long version); -int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); -ASN1_INTEGER *X509_get_serialNumber(X509 *x); -const ASN1_INTEGER *X509_get0_serialNumber(const X509 *x); -int X509_set_issuer_name(X509 *x, X509_NAME *name); -X509_NAME *X509_get_issuer_name(const X509 *a); -int X509_set_subject_name(X509 *x, X509_NAME *name); -X509_NAME *X509_get_subject_name(const X509 *a); -const ASN1_TIME * X509_get0_notBefore(const X509 *x); -ASN1_TIME *X509_getm_notBefore(const X509 *x); -int X509_set1_notBefore(X509 *x, const ASN1_TIME *tm); -const ASN1_TIME *X509_get0_notAfter(const X509 *x); -ASN1_TIME *X509_getm_notAfter(const X509 *x); -int X509_set1_notAfter(X509 *x, const ASN1_TIME *tm); -int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); -int X509_up_ref(X509 *x); -int X509_get_signature_type(const X509 *x); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define X509_get_notBefore X509_getm_notBefore -# define X509_get_notAfter X509_getm_notAfter -# define X509_set_notBefore X509_set1_notBefore -# define X509_set_notAfter X509_set1_notAfter -#endif - - -/* - * This one is only used so that a binary form can output, as in - * i2d_X509_PUBKEY(X509_get_X509_PUBKEY(x), &buf) - */ -X509_PUBKEY *X509_get_X509_PUBKEY(const X509 *x); -const STACK_OF(X509_EXTENSION) *X509_get0_extensions(const X509 *x); -void X509_get0_uids(const X509 *x, const ASN1_BIT_STRING **piuid, - const ASN1_BIT_STRING **psuid); -const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x); - -EVP_PKEY *X509_get0_pubkey(const X509 *x); -EVP_PKEY *X509_get_pubkey(X509 *x); -ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); -int X509_certificate_type(const X509 *x, const EVP_PKEY *pubkey); - -long X509_REQ_get_version(const X509_REQ *req); -int X509_REQ_set_version(X509_REQ *x, long version); -X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req); -int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name); -void X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg); -int X509_REQ_get_signature_nid(const X509_REQ *req); -int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); -int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); -EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); -X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); -int X509_REQ_extension_nid(int nid); -int *X509_REQ_get_extension_nids(void); -void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); -int X509_REQ_add_extensions_nid(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts, - int nid); -int X509_REQ_add_extensions(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts); -int X509_REQ_get_attr_count(const X509_REQ *req); -int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); -int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); -X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); -int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); -int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_NID(X509_REQ *req, - int nid, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_txt(X509_REQ *req, - const char *attrname, int type, - const unsigned char *bytes, int len); - -int X509_CRL_set_version(X509_CRL *x, long version); -int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); -int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); -int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); -int X509_CRL_sort(X509_CRL *crl); -int X509_CRL_up_ref(X509_CRL *crl); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define X509_CRL_set_lastUpdate X509_CRL_set1_lastUpdate -# define X509_CRL_set_nextUpdate X509_CRL_set1_nextUpdate -#endif - -long X509_CRL_get_version(const X509_CRL *crl); -const ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl); -const ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl); -DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl)) -DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl)) -X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl); -const STACK_OF(X509_EXTENSION) *X509_CRL_get0_extensions(const X509_CRL *crl); -STACK_OF(X509_REVOKED) *X509_CRL_get_REVOKED(X509_CRL *crl); -void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg); -int X509_CRL_get_signature_nid(const X509_CRL *crl); -int i2d_re_X509_CRL_tbs(X509_CRL *req, unsigned char **pp); - -const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x); -int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); -const ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x); -int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); -const STACK_OF(X509_EXTENSION) * -X509_REVOKED_get0_extensions(const X509_REVOKED *r); - -X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, - EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); - -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); - -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); -int X509_chain_check_suiteb(int *perror_depth, - X509 *x, STACK_OF(X509) *chain, - unsigned long flags); -int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); -STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); - -int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_and_serial_hash(X509 *a); - -int X509_issuer_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_name_hash(X509 *a); - -int X509_subject_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_subject_name_hash(X509 *x); - -# ifndef OPENSSL_NO_MD5 -unsigned long X509_issuer_name_hash_old(X509 *a); -unsigned long X509_subject_name_hash_old(X509 *x); -# endif - -int X509_cmp(const X509 *a, const X509 *b); -int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); -unsigned long X509_NAME_hash(X509_NAME *x); -unsigned long X509_NAME_hash_old(X509_NAME *x); - -int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); -int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); -int X509_aux_print(BIO *out, X509 *x, int indent); -# ifndef OPENSSL_NO_STDIO -int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, - unsigned long cflag); -int X509_print_fp(FILE *bp, X509 *x); -int X509_CRL_print_fp(FILE *bp, X509_CRL *x); -int X509_REQ_print_fp(FILE *bp, X509_REQ *req); -int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent, - unsigned long flags); -# endif - -int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase); -int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent, - unsigned long flags); -int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, - unsigned long cflag); -int X509_print(BIO *bp, X509 *x); -int X509_ocspid_print(BIO *bp, X509 *x); -int X509_CRL_print_ex(BIO *out, X509_CRL *x, unsigned long nmflag); -int X509_CRL_print(BIO *bp, X509_CRL *x); -int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, - unsigned long cflag); -int X509_REQ_print(BIO *bp, X509_REQ *req); - -int X509_NAME_entry_count(const X509_NAME *name); -int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len); -int X509_NAME_get_text_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, - char *buf, int len); - -/* - * NOTE: you should be passing -1, not 0 as lastpos. The functions that use - * lastpos, search after that position on. - */ -int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos); -int X509_NAME_get_index_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, - int lastpos); -X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name, int loc); -X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); -int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne, - int loc, int set); -int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len, int loc, - int set); -int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, - const unsigned char *bytes, int len, int loc, - int set); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, - const char *field, int type, - const unsigned char *bytes, - int len); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, - int type, - const unsigned char *bytes, - int len); -int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, - const unsigned char *bytes, int len, int loc, - int set); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, - int len); -int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, const ASN1_OBJECT *obj); -int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, - const unsigned char *bytes, int len); -ASN1_OBJECT *X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne); -ASN1_STRING * X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne); -int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne); - -int X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder, - size_t *pderlen); - -int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x); -int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, - int nid, int lastpos); -int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x, - const ASN1_OBJECT *obj, int lastpos); -int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x, - int crit, int lastpos); -X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); -X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); -STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, - X509_EXTENSION *ex, int loc); - -int X509_get_ext_count(const X509 *x); -int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); -int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int lastpos); -int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos); -X509_EXTENSION *X509_get_ext(const X509 *x, int loc); -X509_EXTENSION *X509_delete_ext(X509 *x, int loc); -int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); -void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx); -int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, - unsigned long flags); - -int X509_CRL_get_ext_count(const X509_CRL *x); -int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos); -int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj, - int lastpos); -int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos); -X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc); -X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); -int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); -void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx); -int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, - unsigned long flags); - -int X509_REVOKED_get_ext_count(const X509_REVOKED *x); -int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int lastpos); -int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT *obj, - int lastpos); -int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit, - int lastpos); -X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc); -X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); -int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); -void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int *crit, - int *idx); -int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, - unsigned long flags); - -X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, - int nid, int crit, - ASN1_OCTET_STRING *data); -X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, - const ASN1_OBJECT *obj, int crit, - ASN1_OCTET_STRING *data); -int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT *obj); -int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); -int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); -ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); -ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); -int X509_EXTENSION_get_critical(const X509_EXTENSION *ex); - -int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x); -int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int nid, - int lastpos); -int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk, - const ASN1_OBJECT *obj, int lastpos); -X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x, int loc); -X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x, int loc); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, - X509_ATTRIBUTE *attr); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(STACK_OF(X509_ATTRIBUTE) - **x, const ASN1_OBJECT *obj, - int type, - const unsigned char *bytes, - int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(STACK_OF(X509_ATTRIBUTE) - **x, int nid, int type, - const unsigned char *bytes, - int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) - **x, const char *attrname, - int type, - const unsigned char *bytes, - int len); -void *X509at_get0_data_by_OBJ(STACK_OF(X509_ATTRIBUTE) *x, - const ASN1_OBJECT *obj, int lastpos, int type); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, - int atrtype, const void *data, - int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, - const ASN1_OBJECT *obj, - int atrtype, const void *data, - int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, - const char *atrname, int type, - const unsigned char *bytes, - int len); -int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); -int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, - const void *data, int len); -void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, - void *data); -int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr); -ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); -ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); - -int EVP_PKEY_get_attr_count(const EVP_PKEY *key); -int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); -int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); -X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); -int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); -int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, - int nid, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, - const char *attrname, int type, - const unsigned char *bytes, int len); - -int X509_verify_cert(X509_STORE_CTX *ctx); - -/* lookup a cert from a X509 STACK */ -X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk, X509_NAME *name, - ASN1_INTEGER *serial); -X509 *X509_find_by_subject(STACK_OF(X509) *sk, X509_NAME *name); - -DECLARE_ASN1_FUNCTIONS(PBEPARAM) -DECLARE_ASN1_FUNCTIONS(PBE2PARAM) -DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) -#ifndef OPENSSL_NO_SCRYPT -DECLARE_ASN1_FUNCTIONS(SCRYPT_PARAMS) -#endif - -int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, - const unsigned char *salt, int saltlen); - -X509_ALGOR *PKCS5_pbe_set(int alg, int iter, - const unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen, - unsigned char *aiv, int prf_nid); - -#ifndef OPENSSL_NO_SCRYPT -X509_ALGOR *PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher, - const unsigned char *salt, int saltlen, - unsigned char *aiv, uint64_t N, uint64_t r, - uint64_t p); -#endif - -X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, - int prf_nid, int keylen); - -/* PKCS#8 utilities */ - -DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) - -EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8); -PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); - -int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, - int version, int ptype, void *pval, - unsigned char *penc, int penclen); -int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg, - const unsigned char **pk, int *ppklen, - const X509_ALGOR **pa, const PKCS8_PRIV_KEY_INFO *p8); - -const STACK_OF(X509_ATTRIBUTE) * -PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8); -int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int type, - const unsigned char *bytes, int len); - -int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, - int ptype, void *pval, - unsigned char *penc, int penclen); -int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, - const unsigned char **pk, int *ppklen, - X509_ALGOR **pa, X509_PUBKEY *pub); - -int X509_check_trust(X509 *x, int id, int flags); -int X509_TRUST_get_count(void); -X509_TRUST *X509_TRUST_get0(int idx); -int X509_TRUST_get_by_id(int id); -int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), - const char *name, int arg1, void *arg2); -void X509_TRUST_cleanup(void); -int X509_TRUST_get_flags(const X509_TRUST *xp); -char *X509_TRUST_get0_name(const X509_TRUST *xp); -int X509_TRUST_get_trust(const X509_TRUST *xp); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/x509_vfy.h b/submodules/MtProtoKit/openssl/openssl/x509_vfy.h deleted file mode 100644 index adb8bce7cb..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/x509_vfy.h +++ /dev/null @@ -1,628 +0,0 @@ -/* - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_X509_VFY_H -# define HEADER_X509_VFY_H - -/* - * Protect against recursion, x509.h and x509_vfy.h each include the other. - */ -# ifndef HEADER_X509_H -# include -# endif - -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/*- -SSL_CTX -> X509_STORE - -> X509_LOOKUP - ->X509_LOOKUP_METHOD - -> X509_LOOKUP - ->X509_LOOKUP_METHOD - -SSL -> X509_STORE_CTX - ->X509_STORE - -The X509_STORE holds the tables etc for verification stuff. -A X509_STORE_CTX is used while validating a single certificate. -The X509_STORE has X509_LOOKUPs for looking up certs. -The X509_STORE then calls a function to actually verify the -certificate chain. -*/ - -typedef enum { - X509_LU_NONE = 0, - X509_LU_X509, X509_LU_CRL -} X509_LOOKUP_TYPE; - -#if OPENSSL_API_COMPAT < 0x10100000L -#define X509_LU_RETRY -1 -#define X509_LU_FAIL 0 -#endif - -DEFINE_STACK_OF(X509_LOOKUP) -DEFINE_STACK_OF(X509_OBJECT) -DEFINE_STACK_OF(X509_VERIFY_PARAM) - -int X509_STORE_set_depth(X509_STORE *store, int depth); - -typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *); -typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *); -typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, - X509_STORE_CTX *ctx, X509 *x); -typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, - X509 *x, X509 *issuer); -typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); -typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, - X509_CRL **crl, X509 *x); -typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl); -typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, - X509_CRL *crl, X509 *x); -typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx); -typedef STACK_OF(X509) *(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx, - X509_NAME *nm); -typedef STACK_OF(X509_CRL) *(*X509_STORE_CTX_lookup_crls_fn)(X509_STORE_CTX *ctx, - X509_NAME *nm); -typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx); - - -void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); - -# define X509_STORE_CTX_set_app_data(ctx,data) \ - X509_STORE_CTX_set_ex_data(ctx,0,data) -# define X509_STORE_CTX_get_app_data(ctx) \ - X509_STORE_CTX_get_ex_data(ctx,0) - -# define X509_L_FILE_LOAD 1 -# define X509_L_ADD_DIR 2 - -# define X509_LOOKUP_load_file(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) - -# define X509_LOOKUP_add_dir(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) - -# define X509_V_OK 0 -# define X509_V_ERR_UNSPECIFIED 1 -# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 -# define X509_V_ERR_UNABLE_TO_GET_CRL 3 -# define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4 -# define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5 -# define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6 -# define X509_V_ERR_CERT_SIGNATURE_FAILURE 7 -# define X509_V_ERR_CRL_SIGNATURE_FAILURE 8 -# define X509_V_ERR_CERT_NOT_YET_VALID 9 -# define X509_V_ERR_CERT_HAS_EXPIRED 10 -# define X509_V_ERR_CRL_NOT_YET_VALID 11 -# define X509_V_ERR_CRL_HAS_EXPIRED 12 -# define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13 -# define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14 -# define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15 -# define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16 -# define X509_V_ERR_OUT_OF_MEM 17 -# define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18 -# define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19 -# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20 -# define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21 -# define X509_V_ERR_CERT_CHAIN_TOO_LONG 22 -# define X509_V_ERR_CERT_REVOKED 23 -# define X509_V_ERR_INVALID_CA 24 -# define X509_V_ERR_PATH_LENGTH_EXCEEDED 25 -# define X509_V_ERR_INVALID_PURPOSE 26 -# define X509_V_ERR_CERT_UNTRUSTED 27 -# define X509_V_ERR_CERT_REJECTED 28 -/* These are 'informational' when looking for issuer cert */ -# define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29 -# define X509_V_ERR_AKID_SKID_MISMATCH 30 -# define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31 -# define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32 -# define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33 -# define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34 -# define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35 -# define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36 -# define X509_V_ERR_INVALID_NON_CA 37 -# define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38 -# define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39 -# define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40 -# define X509_V_ERR_INVALID_EXTENSION 41 -# define X509_V_ERR_INVALID_POLICY_EXTENSION 42 -# define X509_V_ERR_NO_EXPLICIT_POLICY 43 -# define X509_V_ERR_DIFFERENT_CRL_SCOPE 44 -# define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45 -# define X509_V_ERR_UNNESTED_RESOURCE 46 -# define X509_V_ERR_PERMITTED_VIOLATION 47 -# define X509_V_ERR_EXCLUDED_VIOLATION 48 -# define X509_V_ERR_SUBTREE_MINMAX 49 -/* The application is not happy */ -# define X509_V_ERR_APPLICATION_VERIFICATION 50 -# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51 -# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52 -# define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53 -# define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54 -/* Another issuer check debug option */ -# define X509_V_ERR_PATH_LOOP 55 -/* Suite B mode algorithm violation */ -# define X509_V_ERR_SUITE_B_INVALID_VERSION 56 -# define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57 -# define X509_V_ERR_SUITE_B_INVALID_CURVE 58 -# define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59 -# define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60 -# define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61 -/* Host, email and IP check errors */ -# define X509_V_ERR_HOSTNAME_MISMATCH 62 -# define X509_V_ERR_EMAIL_MISMATCH 63 -# define X509_V_ERR_IP_ADDRESS_MISMATCH 64 -/* DANE TLSA errors */ -# define X509_V_ERR_DANE_NO_MATCH 65 -/* security level errors */ -# define X509_V_ERR_EE_KEY_TOO_SMALL 66 -# define X509_V_ERR_CA_KEY_TOO_SMALL 67 -# define X509_V_ERR_CA_MD_TOO_WEAK 68 -/* Caller error */ -# define X509_V_ERR_INVALID_CALL 69 -/* Issuer lookup error */ -# define X509_V_ERR_STORE_LOOKUP 70 -/* Certificate transparency */ -# define X509_V_ERR_NO_VALID_SCTS 71 - -# define X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION 72 -/* OCSP status errors */ -# define X509_V_ERR_OCSP_VERIFY_NEEDED 73 /* Need OCSP verification */ -# define X509_V_ERR_OCSP_VERIFY_FAILED 74 /* Couldn't verify cert through OCSP */ -# define X509_V_ERR_OCSP_CERT_UNKNOWN 75 /* Certificate wasn't recognized by the OCSP responder */ - -/* Certificate verify flags */ - -# if OPENSSL_API_COMPAT < 0x10100000L -# define X509_V_FLAG_CB_ISSUER_CHECK 0x0 /* Deprecated */ -# endif -/* Use check time instead of current time */ -# define X509_V_FLAG_USE_CHECK_TIME 0x2 -/* Lookup CRLs */ -# define X509_V_FLAG_CRL_CHECK 0x4 -/* Lookup CRLs for whole chain */ -# define X509_V_FLAG_CRL_CHECK_ALL 0x8 -/* Ignore unhandled critical extensions */ -# define X509_V_FLAG_IGNORE_CRITICAL 0x10 -/* Disable workarounds for broken certificates */ -# define X509_V_FLAG_X509_STRICT 0x20 -/* Enable proxy certificate validation */ -# define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40 -/* Enable policy checking */ -# define X509_V_FLAG_POLICY_CHECK 0x80 -/* Policy variable require-explicit-policy */ -# define X509_V_FLAG_EXPLICIT_POLICY 0x100 -/* Policy variable inhibit-any-policy */ -# define X509_V_FLAG_INHIBIT_ANY 0x200 -/* Policy variable inhibit-policy-mapping */ -# define X509_V_FLAG_INHIBIT_MAP 0x400 -/* Notify callback that policy is OK */ -# define X509_V_FLAG_NOTIFY_POLICY 0x800 -/* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ -# define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000 -/* Delta CRL support */ -# define X509_V_FLAG_USE_DELTAS 0x2000 -/* Check self-signed CA signature */ -# define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000 -/* Use trusted store first */ -# define X509_V_FLAG_TRUSTED_FIRST 0x8000 -/* Suite B 128 bit only mode: not normally used */ -# define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000 -/* Suite B 192 bit only mode */ -# define X509_V_FLAG_SUITEB_192_LOS 0x20000 -/* Suite B 128 bit mode allowing 192 bit algorithms */ -# define X509_V_FLAG_SUITEB_128_LOS 0x30000 -/* Allow partial chains if at least one certificate is in trusted store */ -# define X509_V_FLAG_PARTIAL_CHAIN 0x80000 -/* - * If the initial chain is not trusted, do not attempt to build an alternative - * chain. Alternate chain checking was introduced in 1.1.0. Setting this flag - * will force the behaviour to match that of previous versions. - */ -# define X509_V_FLAG_NO_ALT_CHAINS 0x100000 -/* Do not check certificate/CRL validity against current time */ -# define X509_V_FLAG_NO_CHECK_TIME 0x200000 - -# define X509_VP_FLAG_DEFAULT 0x1 -# define X509_VP_FLAG_OVERWRITE 0x2 -# define X509_VP_FLAG_RESET_FLAGS 0x4 -# define X509_VP_FLAG_LOCKED 0x8 -# define X509_VP_FLAG_ONCE 0x10 - -/* Internal use: mask of policy related options */ -# define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \ - | X509_V_FLAG_EXPLICIT_POLICY \ - | X509_V_FLAG_INHIBIT_ANY \ - | X509_V_FLAG_INHIBIT_MAP) - -int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type, - X509_NAME *name); -X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, - X509_LOOKUP_TYPE type, - X509_NAME *name); -X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, - X509_OBJECT *x); -int X509_OBJECT_up_ref_count(X509_OBJECT *a); -X509_OBJECT *X509_OBJECT_new(void); -void X509_OBJECT_free(X509_OBJECT *a); -X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a); -X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a); -int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); -X509_CRL *X509_OBJECT_get0_X509_CRL(X509_OBJECT *a); -int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); -X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(X509_STORE *v); - -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, X509_NAME *nm); -STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(X509_STORE_CTX *st, X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *ctx); - -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); -#define X509_STORE_set_verify_func(ctx, func) \ - X509_STORE_set_verify((ctx),(func)) -void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, - X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, - X509_STORE_CTX_verify_cb verify_cb); -# define X509_STORE_set_verify_cb_func(ctx,func) \ - X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, - X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, - X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, - X509_STORE_CTX_check_revocation_fn check_revocation); -X509_STORE_CTX_check_revocation_fn X509_STORE_get_check_revocation(X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, - X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, - X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, - X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, - X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, - X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, - X509_STORE_CTX_lookup_crls_fn lookup_crls); -#define X509_STORE_set_lookup_crls_cb(ctx, func) \ - X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, - X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(X509_STORE *ctx); - -#define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(X509_STORE *ctx, int idx); - -X509_STORE_CTX *X509_STORE_CTX_new(void); - -int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); - -void X509_STORE_CTX_free(X509_STORE_CTX *ctx); -int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, - X509 *x509, STACK_OF(X509) *chain); -void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); -void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); - -X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx); -X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx); -STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); -void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, - X509_STORE_CTX_verify_cb verify); -X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(X509_STORE_CTX *ctx); -X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(X509_STORE_CTX *ctx); -X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(X509_STORE_CTX *ctx); -X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(X509_STORE_CTX *ctx); -X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(X509_STORE_CTX *ctx); -X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(X509_STORE_CTX *ctx); -X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(X509_STORE_CTX *ctx); -X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(X509_STORE_CTX *ctx); -X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(X509_STORE_CTX *ctx); -X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(X509_STORE_CTX *ctx); -X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(X509_STORE_CTX *ctx); -X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(X509_STORE_CTX *ctx); - -#if OPENSSL_API_COMPAT < 0x10100000L -# define X509_STORE_CTX_get_chain X509_STORE_CTX_get0_chain -# define X509_STORE_CTX_set_chain X509_STORE_CTX_set0_untrusted -# define X509_STORE_CTX_trusted_stack X509_STORE_CTX_set0_trusted_stack -# define X509_STORE_get_by_subject X509_STORE_CTX_get_by_subject -# define X509_STORE_get1_certs X509_STORE_CTX_get1_certs -# define X509_STORE_get1_crls X509_STORE_CTX_get1_crls -/* the following macro is misspelled; use X509_STORE_get1_certs instead */ -# define X509_STORE_get1_cert X509_STORE_CTX_get1_certs -/* the following macro is misspelled; use X509_STORE_get1_crls instead */ -# define X509_STORE_get1_crl X509_STORE_CTX_get1_crls -#endif - -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); -X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); -X509_LOOKUP_METHOD *X509_LOOKUP_file(void); - -typedef int (*X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc, - long argl, char **ret); -typedef int (*X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - X509_NAME *name, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - X509_NAME *name, - ASN1_INTEGER *serial, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const unsigned char* bytes, - int len, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const char *str, - int len, - X509_OBJECT *ret); - -X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name); -void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method, - int (*new_item) (X509_LOOKUP *ctx)); -int (*X509_LOOKUP_meth_get_new_item(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_free(X509_LOOKUP_METHOD *method, - void (*free_fn) (X509_LOOKUP *ctx)); -void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method, - int (*init) (X509_LOOKUP *ctx)); -int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method, - int (*shutdown) (X509_LOOKUP *ctx)); -int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method, - X509_LOOKUP_ctrl_fn ctrl_fn); -X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_subject_fn fn); -X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_issuer_serial_fn fn); -X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_fingerprint_fn fn); -X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_alias_fn fn); -X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( - const X509_LOOKUP_METHOD *method); - - -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); - -int X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, - X509_NAME *name, X509_OBJECT *ret); -X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, - X509_LOOKUP_TYPE type, - X509_NAME *name); - -int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, - long argl, char **ret); - -int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); - -X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); -void X509_LOOKUP_free(X509_LOOKUP *ctx); -int X509_LOOKUP_init(X509_LOOKUP *ctx); -int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - X509_NAME *name, X509_OBJECT *ret); -int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - X509_NAME *name, ASN1_INTEGER *serial, - X509_OBJECT *ret); -int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const unsigned char *bytes, int len, - X509_OBJECT *ret); -int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const char *str, int len, X509_OBJECT *ret); -int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data); -void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); -X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); -int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); - -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); - -#define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) -int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); -void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx); -int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); -int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth); -X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x); -X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx); -X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx); -X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x); -void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); -void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, STACK_OF(X509_CRL) *sk); -int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); -int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); -int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, - int purpose, int trust); -void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); -void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, - time_t t); - -X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); -int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); -int X509_STORE_CTX_get_num_untrusted(X509_STORE_CTX *ctx); - -X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); -int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); - -/* - * Bridge opacity barrier between libcrypt and libssl, also needed to support - * offline testing in test/danetest.c - */ -void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane); -#define DANE_FLAG_NO_DANE_EE_NAMECHECKS (1L << 0) - -/* X509_VERIFY_PARAM functions */ - -X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); -void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); -int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, - unsigned long flags); -int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, - unsigned long flags); -unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); -int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); -void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); -void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); -time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param); -void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); -int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, - ASN1_OBJECT *policy); -int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, - STACK_OF(ASN1_OBJECT) *policies); - -int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, - uint32_t flags); -uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param); - -int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, - const char *name, size_t namelen); -int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, - const char *name, size_t namelen); -void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, - unsigned int flags); -unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param); -char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); -void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *, X509_VERIFY_PARAM *); -int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, - const char *email, size_t emaillen); -int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, - const unsigned char *ip, size_t iplen); -int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, - const char *ipasc); - -int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param); -const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); - -int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_get_count(void); -const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); -const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); -void X509_VERIFY_PARAM_table_cleanup(void); - -/* Non positive return values are errors */ -#define X509_PCY_TREE_FAILURE -2 /* Failure to satisfy explicit policy */ -#define X509_PCY_TREE_INVALID -1 /* Inconsistent or invalid extensions */ -#define X509_PCY_TREE_INTERNAL 0 /* Internal error, most likely malloc */ - -/* - * Positive return values form a bit mask, all but the first are internal to - * the library and don't appear in results from X509_policy_check(). - */ -#define X509_PCY_TREE_VALID 1 /* The policy tree is valid */ -#define X509_PCY_TREE_EMPTY 2 /* The policy tree is empty */ -#define X509_PCY_TREE_EXPLICIT 4 /* Explicit policy required */ - -int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, - STACK_OF(X509) *certs, - STACK_OF(ASN1_OBJECT) *policy_oids, unsigned int flags); - -void X509_policy_tree_free(X509_POLICY_TREE *tree); - -int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); -X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, - int i); - -STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_policies(const - X509_POLICY_TREE - *tree); - -STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_user_policies(const - X509_POLICY_TREE - *tree); - -int X509_policy_level_node_count(X509_POLICY_LEVEL *level); - -X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level, - int i); - -const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); - -STACK_OF(POLICYQUALINFO) *X509_policy_node_get0_qualifiers(const - X509_POLICY_NODE - *node); -const X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE - *node); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/x509err.h b/submodules/MtProtoKit/openssl/openssl/x509err.h deleted file mode 100644 index 0273853172..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/x509err.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_X509ERR_H -# define HEADER_X509ERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_X509_strings(void); - -/* - * X509 function codes. - */ -# define X509_F_ADD_CERT_DIR 100 -# define X509_F_BUILD_CHAIN 106 -# define X509_F_BY_FILE_CTRL 101 -# define X509_F_CHECK_NAME_CONSTRAINTS 149 -# define X509_F_CHECK_POLICY 145 -# define X509_F_DANE_I2D 107 -# define X509_F_DIR_CTRL 102 -# define X509_F_GET_CERT_BY_SUBJECT 103 -# define X509_F_I2D_X509_AUX 151 -# define X509_F_LOOKUP_CERTS_SK 152 -# define X509_F_NETSCAPE_SPKI_B64_DECODE 129 -# define X509_F_NETSCAPE_SPKI_B64_ENCODE 130 -# define X509_F_NEW_DIR 153 -# define X509_F_X509AT_ADD1_ATTR 135 -# define X509_F_X509V3_ADD_EXT 104 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 136 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 137 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 140 -# define X509_F_X509_ATTRIBUTE_GET0_DATA 139 -# define X509_F_X509_ATTRIBUTE_SET1_DATA 138 -# define X509_F_X509_CHECK_PRIVATE_KEY 128 -# define X509_F_X509_CRL_DIFF 105 -# define X509_F_X509_CRL_METHOD_NEW 154 -# define X509_F_X509_CRL_PRINT_FP 147 -# define X509_F_X509_EXTENSION_CREATE_BY_NID 108 -# define X509_F_X509_EXTENSION_CREATE_BY_OBJ 109 -# define X509_F_X509_GET_PUBKEY_PARAMETERS 110 -# define X509_F_X509_LOAD_CERT_CRL_FILE 132 -# define X509_F_X509_LOAD_CERT_FILE 111 -# define X509_F_X509_LOAD_CRL_FILE 112 -# define X509_F_X509_LOOKUP_METH_NEW 160 -# define X509_F_X509_LOOKUP_NEW 155 -# define X509_F_X509_NAME_ADD_ENTRY 113 -# define X509_F_X509_NAME_CANON 156 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 114 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 131 -# define X509_F_X509_NAME_ENTRY_SET_OBJECT 115 -# define X509_F_X509_NAME_ONELINE 116 -# define X509_F_X509_NAME_PRINT 117 -# define X509_F_X509_OBJECT_NEW 150 -# define X509_F_X509_PRINT_EX_FP 118 -# define X509_F_X509_PUBKEY_DECODE 148 -# define X509_F_X509_PUBKEY_GET0 119 -# define X509_F_X509_PUBKEY_SET 120 -# define X509_F_X509_REQ_CHECK_PRIVATE_KEY 144 -# define X509_F_X509_REQ_PRINT_EX 121 -# define X509_F_X509_REQ_PRINT_FP 122 -# define X509_F_X509_REQ_TO_X509 123 -# define X509_F_X509_STORE_ADD_CERT 124 -# define X509_F_X509_STORE_ADD_CRL 125 -# define X509_F_X509_STORE_ADD_LOOKUP 157 -# define X509_F_X509_STORE_CTX_GET1_ISSUER 146 -# define X509_F_X509_STORE_CTX_INIT 143 -# define X509_F_X509_STORE_CTX_NEW 142 -# define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 134 -# define X509_F_X509_STORE_NEW 158 -# define X509_F_X509_TO_X509_REQ 126 -# define X509_F_X509_TRUST_ADD 133 -# define X509_F_X509_TRUST_SET 141 -# define X509_F_X509_VERIFY_CERT 127 -# define X509_F_X509_VERIFY_PARAM_NEW 159 - -/* - * X509 reason codes. - */ -# define X509_R_AKID_MISMATCH 110 -# define X509_R_BAD_SELECTOR 133 -# define X509_R_BAD_X509_FILETYPE 100 -# define X509_R_BASE64_DECODE_ERROR 118 -# define X509_R_CANT_CHECK_DH_KEY 114 -# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 -# define X509_R_CRL_ALREADY_DELTA 127 -# define X509_R_CRL_VERIFY_FAILURE 131 -# define X509_R_IDP_MISMATCH 128 -# define X509_R_INVALID_ATTRIBUTES 138 -# define X509_R_INVALID_DIRECTORY 113 -# define X509_R_INVALID_FIELD_NAME 119 -# define X509_R_INVALID_TRUST 123 -# define X509_R_ISSUER_MISMATCH 129 -# define X509_R_KEY_TYPE_MISMATCH 115 -# define X509_R_KEY_VALUES_MISMATCH 116 -# define X509_R_LOADING_CERT_DIR 103 -# define X509_R_LOADING_DEFAULTS 104 -# define X509_R_METHOD_NOT_SUPPORTED 124 -# define X509_R_NAME_TOO_LONG 134 -# define X509_R_NEWER_CRL_NOT_NEWER 132 -# define X509_R_NO_CERTIFICATE_FOUND 135 -# define X509_R_NO_CERTIFICATE_OR_CRL_FOUND 136 -# define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 -# define X509_R_NO_CRL_FOUND 137 -# define X509_R_NO_CRL_NUMBER 130 -# define X509_R_PUBLIC_KEY_DECODE_ERROR 125 -# define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 -# define X509_R_SHOULD_RETRY 106 -# define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 -# define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 -# define X509_R_UNKNOWN_KEY_TYPE 117 -# define X509_R_UNKNOWN_NID 109 -# define X509_R_UNKNOWN_PURPOSE_ID 121 -# define X509_R_UNKNOWN_TRUST_ID 120 -# define X509_R_UNSUPPORTED_ALGORITHM 111 -# define X509_R_WRONG_LOOKUP_TYPE 112 -# define X509_R_WRONG_TYPE 122 - -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/x509v3.h b/submodules/MtProtoKit/openssl/openssl/x509v3.h deleted file mode 100644 index 6c6eca38a5..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/x509v3.h +++ /dev/null @@ -1,937 +0,0 @@ -/* - * Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_X509V3_H -# define HEADER_X509V3_H - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward reference */ -struct v3_ext_method; -struct v3_ext_ctx; - -/* Useful typedefs */ - -typedef void *(*X509V3_EXT_NEW)(void); -typedef void (*X509V3_EXT_FREE) (void *); -typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long); -typedef int (*X509V3_EXT_I2D) (void *, unsigned char **); -typedef STACK_OF(CONF_VALUE) * - (*X509V3_EXT_I2V) (const struct v3_ext_method *method, void *ext, - STACK_OF(CONF_VALUE) *extlist); -typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, - STACK_OF(CONF_VALUE) *values); -typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, - void *ext); -typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); -typedef int (*X509V3_EXT_I2R) (const struct v3_ext_method *method, void *ext, - BIO *out, int indent); -typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); - -/* V3 extension structure */ - -struct v3_ext_method { - int ext_nid; - int ext_flags; -/* If this is set the following four fields are ignored */ - ASN1_ITEM_EXP *it; -/* Old style ASN1 calls */ - X509V3_EXT_NEW ext_new; - X509V3_EXT_FREE ext_free; - X509V3_EXT_D2I d2i; - X509V3_EXT_I2D i2d; -/* The following pair is used for string extensions */ - X509V3_EXT_I2S i2s; - X509V3_EXT_S2I s2i; -/* The following pair is used for multi-valued extensions */ - X509V3_EXT_I2V i2v; - X509V3_EXT_V2I v2i; -/* The following are used for raw extensions */ - X509V3_EXT_I2R i2r; - X509V3_EXT_R2I r2i; - void *usr_data; /* Any extension specific data */ -}; - -typedef struct X509V3_CONF_METHOD_st { - char *(*get_string) (void *db, const char *section, const char *value); - STACK_OF(CONF_VALUE) *(*get_section) (void *db, const char *section); - void (*free_string) (void *db, char *string); - void (*free_section) (void *db, STACK_OF(CONF_VALUE) *section); -} X509V3_CONF_METHOD; - -/* Context specific info */ -struct v3_ext_ctx { -# define CTX_TEST 0x1 -# define X509V3_CTX_REPLACE 0x2 - int flags; - X509 *issuer_cert; - X509 *subject_cert; - X509_REQ *subject_req; - X509_CRL *crl; - X509V3_CONF_METHOD *db_meth; - void *db; -/* Maybe more here */ -}; - -typedef struct v3_ext_method X509V3_EXT_METHOD; - -DEFINE_STACK_OF(X509V3_EXT_METHOD) - -/* ext_flags values */ -# define X509V3_EXT_DYNAMIC 0x1 -# define X509V3_EXT_CTX_DEP 0x2 -# define X509V3_EXT_MULTILINE 0x4 - -typedef BIT_STRING_BITNAME ENUMERATED_NAMES; - -typedef struct BASIC_CONSTRAINTS_st { - int ca; - ASN1_INTEGER *pathlen; -} BASIC_CONSTRAINTS; - -typedef struct PKEY_USAGE_PERIOD_st { - ASN1_GENERALIZEDTIME *notBefore; - ASN1_GENERALIZEDTIME *notAfter; -} PKEY_USAGE_PERIOD; - -typedef struct otherName_st { - ASN1_OBJECT *type_id; - ASN1_TYPE *value; -} OTHERNAME; - -typedef struct EDIPartyName_st { - ASN1_STRING *nameAssigner; - ASN1_STRING *partyName; -} EDIPARTYNAME; - -typedef struct GENERAL_NAME_st { -# define GEN_OTHERNAME 0 -# define GEN_EMAIL 1 -# define GEN_DNS 2 -# define GEN_X400 3 -# define GEN_DIRNAME 4 -# define GEN_EDIPARTY 5 -# define GEN_URI 6 -# define GEN_IPADD 7 -# define GEN_RID 8 - int type; - union { - char *ptr; - OTHERNAME *otherName; /* otherName */ - ASN1_IA5STRING *rfc822Name; - ASN1_IA5STRING *dNSName; - ASN1_TYPE *x400Address; - X509_NAME *directoryName; - EDIPARTYNAME *ediPartyName; - ASN1_IA5STRING *uniformResourceIdentifier; - ASN1_OCTET_STRING *iPAddress; - ASN1_OBJECT *registeredID; - /* Old names */ - ASN1_OCTET_STRING *ip; /* iPAddress */ - X509_NAME *dirn; /* dirn */ - ASN1_IA5STRING *ia5; /* rfc822Name, dNSName, - * uniformResourceIdentifier */ - ASN1_OBJECT *rid; /* registeredID */ - ASN1_TYPE *other; /* x400Address */ - } d; -} GENERAL_NAME; - -typedef struct ACCESS_DESCRIPTION_st { - ASN1_OBJECT *method; - GENERAL_NAME *location; -} ACCESS_DESCRIPTION; - -typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; - -typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE; - -typedef STACK_OF(ASN1_INTEGER) TLS_FEATURE; - -DEFINE_STACK_OF(GENERAL_NAME) -typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; -DEFINE_STACK_OF(GENERAL_NAMES) - -DEFINE_STACK_OF(ACCESS_DESCRIPTION) - -typedef struct DIST_POINT_NAME_st { - int type; - union { - GENERAL_NAMES *fullname; - STACK_OF(X509_NAME_ENTRY) *relativename; - } name; -/* If relativename then this contains the full distribution point name */ - X509_NAME *dpname; -} DIST_POINT_NAME; -/* All existing reasons */ -# define CRLDP_ALL_REASONS 0x807f - -# define CRL_REASON_NONE -1 -# define CRL_REASON_UNSPECIFIED 0 -# define CRL_REASON_KEY_COMPROMISE 1 -# define CRL_REASON_CA_COMPROMISE 2 -# define CRL_REASON_AFFILIATION_CHANGED 3 -# define CRL_REASON_SUPERSEDED 4 -# define CRL_REASON_CESSATION_OF_OPERATION 5 -# define CRL_REASON_CERTIFICATE_HOLD 6 -# define CRL_REASON_REMOVE_FROM_CRL 8 -# define CRL_REASON_PRIVILEGE_WITHDRAWN 9 -# define CRL_REASON_AA_COMPROMISE 10 - -struct DIST_POINT_st { - DIST_POINT_NAME *distpoint; - ASN1_BIT_STRING *reasons; - GENERAL_NAMES *CRLissuer; - int dp_reasons; -}; - -typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; - -DEFINE_STACK_OF(DIST_POINT) - -struct AUTHORITY_KEYID_st { - ASN1_OCTET_STRING *keyid; - GENERAL_NAMES *issuer; - ASN1_INTEGER *serial; -}; - -/* Strong extranet structures */ - -typedef struct SXNET_ID_st { - ASN1_INTEGER *zone; - ASN1_OCTET_STRING *user; -} SXNETID; - -DEFINE_STACK_OF(SXNETID) - -typedef struct SXNET_st { - ASN1_INTEGER *version; - STACK_OF(SXNETID) *ids; -} SXNET; - -typedef struct NOTICEREF_st { - ASN1_STRING *organization; - STACK_OF(ASN1_INTEGER) *noticenos; -} NOTICEREF; - -typedef struct USERNOTICE_st { - NOTICEREF *noticeref; - ASN1_STRING *exptext; -} USERNOTICE; - -typedef struct POLICYQUALINFO_st { - ASN1_OBJECT *pqualid; - union { - ASN1_IA5STRING *cpsuri; - USERNOTICE *usernotice; - ASN1_TYPE *other; - } d; -} POLICYQUALINFO; - -DEFINE_STACK_OF(POLICYQUALINFO) - -typedef struct POLICYINFO_st { - ASN1_OBJECT *policyid; - STACK_OF(POLICYQUALINFO) *qualifiers; -} POLICYINFO; - -typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; - -DEFINE_STACK_OF(POLICYINFO) - -typedef struct POLICY_MAPPING_st { - ASN1_OBJECT *issuerDomainPolicy; - ASN1_OBJECT *subjectDomainPolicy; -} POLICY_MAPPING; - -DEFINE_STACK_OF(POLICY_MAPPING) - -typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; - -typedef struct GENERAL_SUBTREE_st { - GENERAL_NAME *base; - ASN1_INTEGER *minimum; - ASN1_INTEGER *maximum; -} GENERAL_SUBTREE; - -DEFINE_STACK_OF(GENERAL_SUBTREE) - -struct NAME_CONSTRAINTS_st { - STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; - STACK_OF(GENERAL_SUBTREE) *excludedSubtrees; -}; - -typedef struct POLICY_CONSTRAINTS_st { - ASN1_INTEGER *requireExplicitPolicy; - ASN1_INTEGER *inhibitPolicyMapping; -} POLICY_CONSTRAINTS; - -/* Proxy certificate structures, see RFC 3820 */ -typedef struct PROXY_POLICY_st { - ASN1_OBJECT *policyLanguage; - ASN1_OCTET_STRING *policy; -} PROXY_POLICY; - -typedef struct PROXY_CERT_INFO_EXTENSION_st { - ASN1_INTEGER *pcPathLengthConstraint; - PROXY_POLICY *proxyPolicy; -} PROXY_CERT_INFO_EXTENSION; - -DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) -DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) - -struct ISSUING_DIST_POINT_st { - DIST_POINT_NAME *distpoint; - int onlyuser; - int onlyCA; - ASN1_BIT_STRING *onlysomereasons; - int indirectCRL; - int onlyattr; -}; - -/* Values in idp_flags field */ -/* IDP present */ -# define IDP_PRESENT 0x1 -/* IDP values inconsistent */ -# define IDP_INVALID 0x2 -/* onlyuser true */ -# define IDP_ONLYUSER 0x4 -/* onlyCA true */ -# define IDP_ONLYCA 0x8 -/* onlyattr true */ -# define IDP_ONLYATTR 0x10 -/* indirectCRL true */ -# define IDP_INDIRECT 0x20 -/* onlysomereasons present */ -# define IDP_REASONS 0x40 - -# define X509V3_conf_err(val) ERR_add_error_data(6, \ - "section:", (val)->section, \ - ",name:", (val)->name, ",value:", (val)->value) - -# define X509V3_set_ctx_test(ctx) \ - X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST) -# define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL; - -# define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \ - 0,0,0,0, \ - 0,0, \ - (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \ - (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \ - NULL, NULL, \ - table} - -# define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \ - 0,0,0,0, \ - (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \ - (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \ - 0,0,0,0, \ - NULL} - -# define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} - -/* X509_PURPOSE stuff */ - -# define EXFLAG_BCONS 0x1 -# define EXFLAG_KUSAGE 0x2 -# define EXFLAG_XKUSAGE 0x4 -# define EXFLAG_NSCERT 0x8 - -# define EXFLAG_CA 0x10 -/* Really self issued not necessarily self signed */ -# define EXFLAG_SI 0x20 -# define EXFLAG_V1 0x40 -# define EXFLAG_INVALID 0x80 -/* EXFLAG_SET is set to indicate that some values have been precomputed */ -# define EXFLAG_SET 0x100 -# define EXFLAG_CRITICAL 0x200 -# define EXFLAG_PROXY 0x400 - -# define EXFLAG_INVALID_POLICY 0x800 -# define EXFLAG_FRESHEST 0x1000 -/* Self signed */ -# define EXFLAG_SS 0x2000 - -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 - -# define NS_SSL_CLIENT 0x80 -# define NS_SSL_SERVER 0x40 -# define NS_SMIME 0x20 -# define NS_OBJSIGN 0x10 -# define NS_SSL_CA 0x04 -# define NS_SMIME_CA 0x02 -# define NS_OBJSIGN_CA 0x01 -# define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA) - -# define XKU_SSL_SERVER 0x1 -# define XKU_SSL_CLIENT 0x2 -# define XKU_SMIME 0x4 -# define XKU_CODE_SIGN 0x8 -# define XKU_SGC 0x10 -# define XKU_OCSP_SIGN 0x20 -# define XKU_TIMESTAMP 0x40 -# define XKU_DVCS 0x80 -# define XKU_ANYEKU 0x100 - -# define X509_PURPOSE_DYNAMIC 0x1 -# define X509_PURPOSE_DYNAMIC_NAME 0x2 - -typedef struct x509_purpose_st { - int purpose; - int trust; /* Default trust ID */ - int flags; - int (*check_purpose) (const struct x509_purpose_st *, const X509 *, int); - char *name; - char *sname; - void *usr_data; -} X509_PURPOSE; - -# define X509_PURPOSE_SSL_CLIENT 1 -# define X509_PURPOSE_SSL_SERVER 2 -# define X509_PURPOSE_NS_SSL_SERVER 3 -# define X509_PURPOSE_SMIME_SIGN 4 -# define X509_PURPOSE_SMIME_ENCRYPT 5 -# define X509_PURPOSE_CRL_SIGN 6 -# define X509_PURPOSE_ANY 7 -# define X509_PURPOSE_OCSP_HELPER 8 -# define X509_PURPOSE_TIMESTAMP_SIGN 9 - -# define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 - -/* Flags for X509V3_EXT_print() */ - -# define X509V3_EXT_UNKNOWN_MASK (0xfL << 16) -/* Return error for unknown extensions */ -# define X509V3_EXT_DEFAULT 0 -/* Print error for unknown extensions */ -# define X509V3_EXT_ERROR_UNKNOWN (1L << 16) -/* ASN1 parse unknown extensions */ -# define X509V3_EXT_PARSE_UNKNOWN (2L << 16) -/* BIO_dump unknown extensions */ -# define X509V3_EXT_DUMP_UNKNOWN (3L << 16) - -/* Flags for X509V3_add1_i2d */ - -# define X509V3_ADD_OP_MASK 0xfL -# define X509V3_ADD_DEFAULT 0L -# define X509V3_ADD_APPEND 1L -# define X509V3_ADD_REPLACE 2L -# define X509V3_ADD_REPLACE_EXISTING 3L -# define X509V3_ADD_KEEP_EXISTING 4L -# define X509V3_ADD_DELETE 5L -# define X509V3_ADD_SILENT 0x10 - -DEFINE_STACK_OF(X509_PURPOSE) - -DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) - -DECLARE_ASN1_FUNCTIONS(SXNET) -DECLARE_ASN1_FUNCTIONS(SXNETID) - -int SXNET_add_id_asc(SXNET **psx, const char *zone, const char *user, int userlen); -int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, const char *user, - int userlen); -int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, const char *user, - int userlen); - -ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, const char *zone); -ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); -ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); - -DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) - -DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) -GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a); -int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); - -ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, - STACK_OF(CONF_VALUE) *nval); -STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - ASN1_BIT_STRING *bits, - STACK_OF(CONF_VALUE) *extlist); -char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5); -ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, const char *str); - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, - GENERAL_NAME *gen, - STACK_OF(CONF_VALUE) *ret); -int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, - GENERAL_NAMES *gen, - STACK_OF(CONF_VALUE) *extlist); -GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); - -DECLARE_ASN1_FUNCTIONS(OTHERNAME) -DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME) -int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b); -void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value); -void *GENERAL_NAME_get0_value(const GENERAL_NAME *a, int *ptype); -int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, - ASN1_OBJECT *oid, ASN1_TYPE *value); -int GENERAL_NAME_get0_otherName(const GENERAL_NAME *gen, - ASN1_OBJECT **poid, ASN1_TYPE **pvalue); - -char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - const ASN1_OCTET_STRING *ia5); -ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, const char *str); - -DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) -int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a); - -DECLARE_ASN1_ALLOC_FUNCTIONS(TLS_FEATURE) - -DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) -DECLARE_ASN1_FUNCTIONS(POLICYINFO) -DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) -DECLARE_ASN1_FUNCTIONS(USERNOTICE) -DECLARE_ASN1_FUNCTIONS(NOTICEREF) - -DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) -DECLARE_ASN1_FUNCTIONS(DIST_POINT) -DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) -DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) - -int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname); - -int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); -int NAME_CONSTRAINTS_check_CN(X509 *x, NAME_CONSTRAINTS *nc); - -DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) -DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) - -DECLARE_ASN1_ITEM(POLICY_MAPPING) -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) -DECLARE_ASN1_ITEM(POLICY_MAPPINGS) - -DECLARE_ASN1_ITEM(GENERAL_SUBTREE) -DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) - -DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) -DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) - -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) -DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) - -GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, - const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, int gen_type, - const char *value, int is_nc); - -# ifdef HEADER_CONF_H -GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, CONF_VALUE *cnf); -GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, - const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, CONF_VALUE *cnf, - int is_nc); -void X509V3_conf_free(CONF_VALUE *val); - -X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, - const char *value); -X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name, - const char *value); -int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char *section, - STACK_OF(X509_EXTENSION) **sk); -int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509 *cert); -int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509_REQ *req); -int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509_CRL *crl); - -X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, - X509V3_CTX *ctx, int ext_nid, - const char *value); -X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *name, const char *value); -int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509 *cert); -int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509_REQ *req); -int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509_CRL *crl); - -int X509V3_add_value_bool_nf(const char *name, int asn1_bool, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool); -int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint); -void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); -void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH_OF(CONF_VALUE) *lhash); -# endif - -char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section); -STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section); -void X509V3_string_free(X509V3_CTX *ctx, char *str); -void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section); -void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, - X509_REQ *req, X509_CRL *crl, int flags); - -int X509V3_add_value(const char *name, const char *value, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_uchar(const char *name, const unsigned char *value, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_bool(const char *name, int asn1_bool, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint, - STACK_OF(CONF_VALUE) **extlist); -char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint); -ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value); -char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint); -char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, - const ASN1_ENUMERATED *aint); -int X509V3_EXT_add(X509V3_EXT_METHOD *ext); -int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); -int X509V3_EXT_add_alias(int nid_to, int nid_from); -void X509V3_EXT_cleanup(void); - -const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); -const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); -int X509V3_add_standard_extensions(void); -STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); -void *X509V3_EXT_d2i(X509_EXTENSION *ext); -void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int *crit, - int *idx); - -X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); -int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, - int crit, unsigned long flags); - -#if OPENSSL_API_COMPAT < 0x10100000L -/* The new declarations are in crypto.h, but the old ones were here. */ -# define hex_to_string OPENSSL_buf2hexstr -# define string_to_hex OPENSSL_hexstr2buf -#endif - -void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, - int ml); -int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, - int indent); -#ifndef OPENSSL_NO_STDIO -int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); -#endif -int X509V3_extensions_print(BIO *out, const char *title, - const STACK_OF(X509_EXTENSION) *exts, - unsigned long flag, int indent); - -int X509_check_ca(X509 *x); -int X509_check_purpose(X509 *x, int id, int ca); -int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); -int X509_check_issued(X509 *issuer, X509 *subject); -int X509_check_akid(X509 *issuer, AUTHORITY_KEYID *akid); -void X509_set_proxy_flag(X509 *x); -void X509_set_proxy_pathlen(X509 *x, long l); -long X509_get_proxy_pathlen(X509 *x); - -uint32_t X509_get_extension_flags(X509 *x); -uint32_t X509_get_key_usage(X509 *x); -uint32_t X509_get_extended_key_usage(X509 *x); -const ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x); -const ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x); -const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); -const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); - -int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); -int X509_PURPOSE_get_by_sname(const char *sname); -int X509_PURPOSE_get_by_id(int id); -int X509_PURPOSE_add(int id, int trust, int flags, - int (*ck) (const X509_PURPOSE *, const X509 *, int), - const char *name, const char *sname, void *arg); -char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); -char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); -int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); - -STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); -STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); -void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); -STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); -/* Flags for X509_check_* functions */ - -/* - * Always check subject name for host match even if subject alt names present - */ -# define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0x1 -/* Disable wildcard matching for dnsName fields and common name. */ -# define X509_CHECK_FLAG_NO_WILDCARDS 0x2 -/* Wildcards must not match a partial label. */ -# define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4 -/* Allow (non-partial) wildcards to match multiple labels. */ -# define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 -/* Constraint verifier subdomain patterns to match a single labels. */ -# define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 -/* Never check the subject CN */ -# define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20 -/* - * Match reference identifiers starting with "." to any sub-domain. - * This is a non-public flag, turned on implicitly when the subject - * reference identity is a DNS name. - */ -# define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000 - -int X509_check_host(X509 *x, const char *chk, size_t chklen, - unsigned int flags, char **peername); -int X509_check_email(X509 *x, const char *chk, size_t chklen, - unsigned int flags); -int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, - unsigned int flags); -int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); - -ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); -ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); -int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, - unsigned long chtype); - -void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); -DEFINE_STACK_OF(X509_POLICY_NODE) - -#ifndef OPENSSL_NO_RFC3779 -typedef struct ASRange_st { - ASN1_INTEGER *min, *max; -} ASRange; - -# define ASIdOrRange_id 0 -# define ASIdOrRange_range 1 - -typedef struct ASIdOrRange_st { - int type; - union { - ASN1_INTEGER *id; - ASRange *range; - } u; -} ASIdOrRange; - -typedef STACK_OF(ASIdOrRange) ASIdOrRanges; -DEFINE_STACK_OF(ASIdOrRange) - -# define ASIdentifierChoice_inherit 0 -# define ASIdentifierChoice_asIdsOrRanges 1 - -typedef struct ASIdentifierChoice_st { - int type; - union { - ASN1_NULL *inherit; - ASIdOrRanges *asIdsOrRanges; - } u; -} ASIdentifierChoice; - -typedef struct ASIdentifiers_st { - ASIdentifierChoice *asnum, *rdi; -} ASIdentifiers; - -DECLARE_ASN1_FUNCTIONS(ASRange) -DECLARE_ASN1_FUNCTIONS(ASIdOrRange) -DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice) -DECLARE_ASN1_FUNCTIONS(ASIdentifiers) - -typedef struct IPAddressRange_st { - ASN1_BIT_STRING *min, *max; -} IPAddressRange; - -# define IPAddressOrRange_addressPrefix 0 -# define IPAddressOrRange_addressRange 1 - -typedef struct IPAddressOrRange_st { - int type; - union { - ASN1_BIT_STRING *addressPrefix; - IPAddressRange *addressRange; - } u; -} IPAddressOrRange; - -typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; -DEFINE_STACK_OF(IPAddressOrRange) - -# define IPAddressChoice_inherit 0 -# define IPAddressChoice_addressesOrRanges 1 - -typedef struct IPAddressChoice_st { - int type; - union { - ASN1_NULL *inherit; - IPAddressOrRanges *addressesOrRanges; - } u; -} IPAddressChoice; - -typedef struct IPAddressFamily_st { - ASN1_OCTET_STRING *addressFamily; - IPAddressChoice *ipAddressChoice; -} IPAddressFamily; - -typedef STACK_OF(IPAddressFamily) IPAddrBlocks; -DEFINE_STACK_OF(IPAddressFamily) - -DECLARE_ASN1_FUNCTIONS(IPAddressRange) -DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) -DECLARE_ASN1_FUNCTIONS(IPAddressChoice) -DECLARE_ASN1_FUNCTIONS(IPAddressFamily) - -/* - * API tag for elements of the ASIdentifer SEQUENCE. - */ -# define V3_ASID_ASNUM 0 -# define V3_ASID_RDI 1 - -/* - * AFI values, assigned by IANA. It'd be nice to make the AFI - * handling code totally generic, but there are too many little things - * that would need to be defined for other address families for it to - * be worth the trouble. - */ -# define IANA_AFI_IPV4 1 -# define IANA_AFI_IPV6 2 - -/* - * Utilities to construct and extract values from RFC3779 extensions, - * since some of the encodings (particularly for IP address prefixes - * and ranges) are a bit tedious to work with directly. - */ -int X509v3_asid_add_inherit(ASIdentifiers *asid, int which); -int X509v3_asid_add_id_or_range(ASIdentifiers *asid, int which, - ASN1_INTEGER *min, ASN1_INTEGER *max); -int X509v3_addr_add_inherit(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi); -int X509v3_addr_add_prefix(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *a, const int prefixlen); -int X509v3_addr_add_range(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *min, unsigned char *max); -unsigned X509v3_addr_get_afi(const IPAddressFamily *f); -int X509v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, - unsigned char *min, unsigned char *max, - const int length); - -/* - * Canonical forms. - */ -int X509v3_asid_is_canonical(ASIdentifiers *asid); -int X509v3_addr_is_canonical(IPAddrBlocks *addr); -int X509v3_asid_canonize(ASIdentifiers *asid); -int X509v3_addr_canonize(IPAddrBlocks *addr); - -/* - * Tests for inheritance and containment. - */ -int X509v3_asid_inherits(ASIdentifiers *asid); -int X509v3_addr_inherits(IPAddrBlocks *addr); -int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); -int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); - -/* - * Check whether RFC 3779 extensions nest properly in chains. - */ -int X509v3_asid_validate_path(X509_STORE_CTX *); -int X509v3_addr_validate_path(X509_STORE_CTX *); -int X509v3_asid_validate_resource_set(STACK_OF(X509) *chain, - ASIdentifiers *ext, - int allow_inheritance); -int X509v3_addr_validate_resource_set(STACK_OF(X509) *chain, - IPAddrBlocks *ext, int allow_inheritance); - -#endif /* OPENSSL_NO_RFC3779 */ - -DEFINE_STACK_OF(ASN1_STRING) - -/* - * Admission Syntax - */ -typedef struct NamingAuthority_st NAMING_AUTHORITY; -typedef struct ProfessionInfo_st PROFESSION_INFO; -typedef struct Admissions_st ADMISSIONS; -typedef struct AdmissionSyntax_st ADMISSION_SYNTAX; -DECLARE_ASN1_FUNCTIONS(NAMING_AUTHORITY) -DECLARE_ASN1_FUNCTIONS(PROFESSION_INFO) -DECLARE_ASN1_FUNCTIONS(ADMISSIONS) -DECLARE_ASN1_FUNCTIONS(ADMISSION_SYNTAX) -DEFINE_STACK_OF(ADMISSIONS) -DEFINE_STACK_OF(PROFESSION_INFO) -typedef STACK_OF(PROFESSION_INFO) PROFESSION_INFOS; - -const ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId( - const NAMING_AUTHORITY *n); -const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL( - const NAMING_AUTHORITY *n); -const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText( - const NAMING_AUTHORITY *n); -void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n, - ASN1_OBJECT* namingAuthorityId); -void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n, - ASN1_IA5STRING* namingAuthorityUrl); -void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n, - ASN1_STRING* namingAuthorityText); - -const GENERAL_NAME *ADMISSION_SYNTAX_get0_admissionAuthority( - const ADMISSION_SYNTAX *as); -void ADMISSION_SYNTAX_set0_admissionAuthority( - ADMISSION_SYNTAX *as, GENERAL_NAME *aa); -const STACK_OF(ADMISSIONS) *ADMISSION_SYNTAX_get0_contentsOfAdmissions( - const ADMISSION_SYNTAX *as); -void ADMISSION_SYNTAX_set0_contentsOfAdmissions( - ADMISSION_SYNTAX *as, STACK_OF(ADMISSIONS) *a); -const GENERAL_NAME *ADMISSIONS_get0_admissionAuthority(const ADMISSIONS *a); -void ADMISSIONS_set0_admissionAuthority(ADMISSIONS *a, GENERAL_NAME *aa); -const NAMING_AUTHORITY *ADMISSIONS_get0_namingAuthority(const ADMISSIONS *a); -void ADMISSIONS_set0_namingAuthority(ADMISSIONS *a, NAMING_AUTHORITY *na); -const PROFESSION_INFOS *ADMISSIONS_get0_professionInfos(const ADMISSIONS *a); -void ADMISSIONS_set0_professionInfos(ADMISSIONS *a, PROFESSION_INFOS *pi); -const ASN1_OCTET_STRING *PROFESSION_INFO_get0_addProfessionInfo( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_addProfessionInfo( - PROFESSION_INFO *pi, ASN1_OCTET_STRING *aos); -const NAMING_AUTHORITY *PROFESSION_INFO_get0_namingAuthority( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_namingAuthority( - PROFESSION_INFO *pi, NAMING_AUTHORITY *na); -const STACK_OF(ASN1_STRING) *PROFESSION_INFO_get0_professionItems( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_professionItems( - PROFESSION_INFO *pi, STACK_OF(ASN1_STRING) *as); -const STACK_OF(ASN1_OBJECT) *PROFESSION_INFO_get0_professionOIDs( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_professionOIDs( - PROFESSION_INFO *pi, STACK_OF(ASN1_OBJECT) *po); -const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber( - const PROFESSION_INFO *pi); -void PROFESSION_INFO_set0_registrationNumber( - PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/submodules/MtProtoKit/openssl/openssl/x509v3err.h b/submodules/MtProtoKit/openssl/openssl/x509v3err.h deleted file mode 100644 index 5f25442f12..0000000000 --- a/submodules/MtProtoKit/openssl/openssl/x509v3err.h +++ /dev/null @@ -1,162 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_X509V3ERR_H -# define HEADER_X509V3ERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_X509V3_strings(void); - -/* - * X509V3 function codes. - */ -# define X509V3_F_A2I_GENERAL_NAME 164 -# define X509V3_F_ADDR_VALIDATE_PATH_INTERNAL 166 -# define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 161 -# define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 162 -# define X509V3_F_BIGNUM_TO_STRING 167 -# define X509V3_F_COPY_EMAIL 122 -# define X509V3_F_COPY_ISSUER 123 -# define X509V3_F_DO_DIRNAME 144 -# define X509V3_F_DO_EXT_I2D 135 -# define X509V3_F_DO_EXT_NCONF 151 -# define X509V3_F_GNAMES_FROM_SECTNAME 156 -# define X509V3_F_I2S_ASN1_ENUMERATED 121 -# define X509V3_F_I2S_ASN1_IA5STRING 149 -# define X509V3_F_I2S_ASN1_INTEGER 120 -# define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138 -# define X509V3_F_LEVEL_ADD_NODE 168 -# define X509V3_F_NOTICE_SECTION 132 -# define X509V3_F_NREF_NOS 133 -# define X509V3_F_POLICY_CACHE_CREATE 169 -# define X509V3_F_POLICY_CACHE_NEW 170 -# define X509V3_F_POLICY_DATA_NEW 171 -# define X509V3_F_POLICY_SECTION 131 -# define X509V3_F_PROCESS_PCI_VALUE 150 -# define X509V3_F_R2I_CERTPOL 130 -# define X509V3_F_R2I_PCI 155 -# define X509V3_F_S2I_ASN1_IA5STRING 100 -# define X509V3_F_S2I_ASN1_INTEGER 108 -# define X509V3_F_S2I_ASN1_OCTET_STRING 112 -# define X509V3_F_S2I_SKEY_ID 115 -# define X509V3_F_SET_DIST_POINT_NAME 158 -# define X509V3_F_SXNET_ADD_ID_ASC 125 -# define X509V3_F_SXNET_ADD_ID_INTEGER 126 -# define X509V3_F_SXNET_ADD_ID_ULONG 127 -# define X509V3_F_SXNET_GET_ID_ASC 128 -# define X509V3_F_SXNET_GET_ID_ULONG 129 -# define X509V3_F_TREE_INIT 172 -# define X509V3_F_V2I_ASIDENTIFIERS 163 -# define X509V3_F_V2I_ASN1_BIT_STRING 101 -# define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 139 -# define X509V3_F_V2I_AUTHORITY_KEYID 119 -# define X509V3_F_V2I_BASIC_CONSTRAINTS 102 -# define X509V3_F_V2I_CRLD 134 -# define X509V3_F_V2I_EXTENDED_KEY_USAGE 103 -# define X509V3_F_V2I_GENERAL_NAMES 118 -# define X509V3_F_V2I_GENERAL_NAME_EX 117 -# define X509V3_F_V2I_IDP 157 -# define X509V3_F_V2I_IPADDRBLOCKS 159 -# define X509V3_F_V2I_ISSUER_ALT 153 -# define X509V3_F_V2I_NAME_CONSTRAINTS 147 -# define X509V3_F_V2I_POLICY_CONSTRAINTS 146 -# define X509V3_F_V2I_POLICY_MAPPINGS 145 -# define X509V3_F_V2I_SUBJECT_ALT 154 -# define X509V3_F_V2I_TLS_FEATURE 165 -# define X509V3_F_V3_GENERIC_EXTENSION 116 -# define X509V3_F_X509V3_ADD1_I2D 140 -# define X509V3_F_X509V3_ADD_VALUE 105 -# define X509V3_F_X509V3_EXT_ADD 104 -# define X509V3_F_X509V3_EXT_ADD_ALIAS 106 -# define X509V3_F_X509V3_EXT_I2D 136 -# define X509V3_F_X509V3_EXT_NCONF 152 -# define X509V3_F_X509V3_GET_SECTION 142 -# define X509V3_F_X509V3_GET_STRING 143 -# define X509V3_F_X509V3_GET_VALUE_BOOL 110 -# define X509V3_F_X509V3_PARSE_LIST 109 -# define X509V3_F_X509_PURPOSE_ADD 137 -# define X509V3_F_X509_PURPOSE_SET 141 - -/* - * X509V3 reason codes. - */ -# define X509V3_R_BAD_IP_ADDRESS 118 -# define X509V3_R_BAD_OBJECT 119 -# define X509V3_R_BN_DEC2BN_ERROR 100 -# define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 -# define X509V3_R_DIRNAME_ERROR 149 -# define X509V3_R_DISTPOINT_ALREADY_SET 160 -# define X509V3_R_DUPLICATE_ZONE_ID 133 -# define X509V3_R_ERROR_CONVERTING_ZONE 131 -# define X509V3_R_ERROR_CREATING_EXTENSION 144 -# define X509V3_R_ERROR_IN_EXTENSION 128 -# define X509V3_R_EXPECTED_A_SECTION_NAME 137 -# define X509V3_R_EXTENSION_EXISTS 145 -# define X509V3_R_EXTENSION_NAME_ERROR 115 -# define X509V3_R_EXTENSION_NOT_FOUND 102 -# define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 -# define X509V3_R_EXTENSION_VALUE_ERROR 116 -# define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 -# define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 -# define X509V3_R_INVALID_ASNUMBER 162 -# define X509V3_R_INVALID_ASRANGE 163 -# define X509V3_R_INVALID_BOOLEAN_STRING 104 -# define X509V3_R_INVALID_EXTENSION_STRING 105 -# define X509V3_R_INVALID_INHERITANCE 165 -# define X509V3_R_INVALID_IPADDRESS 166 -# define X509V3_R_INVALID_MULTIPLE_RDNS 161 -# define X509V3_R_INVALID_NAME 106 -# define X509V3_R_INVALID_NULL_ARGUMENT 107 -# define X509V3_R_INVALID_NULL_NAME 108 -# define X509V3_R_INVALID_NULL_VALUE 109 -# define X509V3_R_INVALID_NUMBER 140 -# define X509V3_R_INVALID_NUMBERS 141 -# define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 -# define X509V3_R_INVALID_OPTION 138 -# define X509V3_R_INVALID_POLICY_IDENTIFIER 134 -# define X509V3_R_INVALID_PROXY_POLICY_SETTING 153 -# define X509V3_R_INVALID_PURPOSE 146 -# define X509V3_R_INVALID_SAFI 164 -# define X509V3_R_INVALID_SECTION 135 -# define X509V3_R_INVALID_SYNTAX 143 -# define X509V3_R_ISSUER_DECODE_ERROR 126 -# define X509V3_R_MISSING_VALUE 124 -# define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142 -# define X509V3_R_NO_CONFIG_DATABASE 136 -# define X509V3_R_NO_ISSUER_CERTIFICATE 121 -# define X509V3_R_NO_ISSUER_DETAILS 127 -# define X509V3_R_NO_POLICY_IDENTIFIER 139 -# define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154 -# define X509V3_R_NO_PUBLIC_KEY 114 -# define X509V3_R_NO_SUBJECT_DETAILS 125 -# define X509V3_R_OPERATION_NOT_DEFINED 148 -# define X509V3_R_OTHERNAME_ERROR 147 -# define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155 -# define X509V3_R_POLICY_PATH_LENGTH 156 -# define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157 -# define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159 -# define X509V3_R_SECTION_NOT_FOUND 150 -# define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 -# define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 -# define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 -# define X509V3_R_UNKNOWN_EXTENSION 129 -# define X509V3_R_UNKNOWN_EXTENSION_NAME 130 -# define X509V3_R_UNKNOWN_OPTION 120 -# define X509V3_R_UNSUPPORTED_OPTION 117 -# define X509V3_R_UNSUPPORTED_TYPE 167 -# define X509V3_R_USER_TOO_LONG 132 - -#endif diff --git a/submodules/MtProtoKit/thirdparty/AFNetworking/AFHTTPRequestOperation.h b/submodules/MtProtoKit/thirdparty/AFNetworking/AFHTTPRequestOperation.h index 8c74d2c002..6859124d1a 100644 --- a/submodules/MtProtoKit/thirdparty/AFNetworking/AFHTTPRequestOperation.h +++ b/submodules/MtProtoKit/thirdparty/AFNetworking/AFHTTPRequestOperation.h @@ -24,13 +24,8 @@ #import -#if defined(MtProtoKitDynamicFramework) -# import -#elif defined(MtProtoKitMacFramework) -# import -#else -# import -#endif +#import + /** `AFHTTPRequestOperation` is a subclass of `AFURLConnectionOperation` for requests using the HTTP or HTTPS protocols. It encapsulates the concept of acceptable status codes and content types, which determine the success or failure of a request. diff --git a/submodules/OpenSSLEncryptionProvider/Sources/OpenSSLEncryptionProvider.m b/submodules/OpenSSLEncryptionProvider/Sources/OpenSSLEncryptionProvider.m index c66d102ff4..1acb5c69fa 100644 --- a/submodules/OpenSSLEncryptionProvider/Sources/OpenSSLEncryptionProvider.m +++ b/submodules/OpenSSLEncryptionProvider/Sources/OpenSSLEncryptionProvider.m @@ -370,6 +370,35 @@ NS_ASSUME_NONNULL_BEGIN return [[MTRsaPublicKeyImpl alloc] initWithValue:rsaKey]; } +-(NSData *)macosRSAEncrypt:(NSString *) publicKey data: (NSData *)data { + BIO *keyBio = BIO_new(BIO_s_mem()); + const char *keyData = [publicKey UTF8String]; + BIO_write(keyBio, keyData, (int)publicKey.length); + RSA *rsaKey = PEM_read_bio_RSAPublicKey(keyBio, NULL, NULL, NULL); + BIO_free(keyBio); + + BN_CTX *ctx = BN_CTX_new(); + BIGNUM *a = BN_bin2bn(data.bytes, (int)data.length, NULL); + BIGNUM *r = BN_new(); + + + + BN_mod_exp(r, a, RSA_get0_e(rsaKey), RSA_get0_n(rsaKey), ctx); + + unsigned char *res = malloc((size_t)BN_num_bytes(r)); + int resLen = BN_bn2bin(r, res); + + BN_CTX_free(ctx); + BN_free(a); + BN_free(r); + + RSA_free(rsaKey); + + NSData *result = [[NSData alloc] initWithBytesNoCopy:res length:(NSUInteger)resLen freeWhenDone:true]; + + return result; +} + @end NS_ASSUME_NONNULL_END diff --git a/submodules/Postbox/BUCK b/submodules/Postbox/BUCK index 95eeb14cea..5cee7bc9c0 100644 --- a/submodules/Postbox/BUCK +++ b/submodules/Postbox/BUCK @@ -3,14 +3,14 @@ load("//Config:buck_rule_macros.bzl", "framework") framework( name = "Postbox", srcs = glob([ - "Postbox/*.swift", - "Postbox/*.m", + "Sources/*.swift", + "Sources/*.m", ]), headers = [ - "Postbox/MurMurHash32.h", + "Sources/MurMurHash32.h", ], exported_headers = [ - "Postbox/MurMurHash32.h", + "Sources/MurMurHash32.h", ], deps = [ "//submodules/Crc32:Crc32", diff --git a/submodules/Postbox/Postbox/Info.plist b/submodules/Postbox/Postbox/Info.plist deleted file mode 100644 index d3de8eefb6..0000000000 --- a/submodules/Postbox/Postbox/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/submodules/Postbox/Postbox/module.private-mac.modulemap b/submodules/Postbox/Postbox/module.private-mac.modulemap deleted file mode 100644 index de77d1735e..0000000000 --- a/submodules/Postbox/Postbox/module.private-mac.modulemap +++ /dev/null @@ -1,3 +0,0 @@ -module PostboxMac.PostboxPrivate { - export * -} diff --git a/submodules/Postbox/PostboxMac/Info.plist b/submodules/Postbox/PostboxMac/Info.plist deleted file mode 100644 index ab41b55afe..0000000000 --- a/submodules/Postbox/PostboxMac/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSHumanReadableCopyright - Copyright © 2016 Telegram. All rights reserved. - NSPrincipalClass - - - diff --git a/submodules/Postbox/PostboxMac/PostboxMac.h b/submodules/Postbox/PostboxMac/PostboxMac.h deleted file mode 100644 index 1ac4979d37..0000000000 --- a/submodules/Postbox/PostboxMac/PostboxMac.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// PostboxMac.h -// PostboxMac -// -// Created by Peter on 9/5/16. -// Copyright © 2016 Telegram. All rights reserved. -// - -#import - -//! Project version number for PostboxMac. -FOUNDATION_EXPORT double PostboxMacVersionNumber; - -//! Project version string for PostboxMac. -FOUNDATION_EXPORT const unsigned char PostboxMacVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - -#import diff --git a/submodules/Postbox/PostboxTests/ChatListTableTests.swift b/submodules/Postbox/PostboxTests/ChatListTableTests.swift deleted file mode 100644 index 01c5549207..0000000000 --- a/submodules/Postbox/PostboxTests/ChatListTableTests.swift +++ /dev/null @@ -1,573 +0,0 @@ -import Foundation - -import UIKit -import XCTest - -import Postbox -@testable import Postbox - -import SwiftSignalKit - -private let namespace: Int32 = 1 - -private let authorPeerId = PeerId(namespace: 2, id: 3) - -private enum Entry: Equatable, CustomStringConvertible { - case Message(Int32, Int32, Int32, Bool) - case Hole(Int32, Int32, Int32) - case GroupReference(PeerGroupId, Int32, Int32, Int32) - - var description: String { - switch self { - case let .Message(peerId, id, timestamp, exists): - return "Message(\(peerId), \(id), \(timestamp), \(exists))" - case let .Hole(peerId, id, timestamp): - return "Hole(\(peerId), \(id), \(timestamp))" - case let .GroupReference(groupId, peerId, id, timestamp): - return "GroupReference(\(groupId), \(peerId), \(id), \(timestamp))" - } - } -} - -private func ==(lhs: Entry, rhs: Entry) -> Bool { - switch lhs { - case let .Message(lhsPeerId, lhsId, lhsTimestamp, lhsExists): - switch rhs { - case let .Message(rhsPeerId, rhsId, rhsTimestamp, rhsExists): - return lhsPeerId == rhsPeerId && lhsId == rhsId && lhsTimestamp == rhsTimestamp && lhsExists == rhsExists - case .Hole, .GroupReference: - return false - } - case let .Hole(lhsPeerId, lhsId, lhsTimestamp): - switch rhs { - case .Message, .GroupReference: - return false - case let .Hole(rhsPeerId, rhsId, rhsTimestamp): - return lhsPeerId == rhsPeerId && lhsId == rhsId && lhsTimestamp == rhsTimestamp - } - case let .GroupReference(lhsGroupId, lhsPeerId, lhsId, lhsTimestamp): - switch rhs { - case .GroupReference(lhsGroupId, lhsPeerId, lhsId, lhsTimestamp): - return true - default: - return false - } - } -} - -class ChatListTableTests: XCTestCase { - var valueBox: ValueBox? - var path: String? - - var globalMessageIdsTable: GlobalMessageIdsTable? - var indexTable: MessageHistoryIndexTable? - var mediaTable: MessageMediaTable? - var historyTable: MessageHistoryTable? - var chatListIndexTable: ChatListIndexTable? - var chatListTable: ChatListTable? - var historyMetadataTable: MessageHistoryMetadataTable? - var unsentTable: MessageHistoryUnsentTable? - var tagsTable: MessageHistoryTagsTable? - var readStateTable: MessageHistoryReadStateTable? - var synchronizeReadStateTable: MessageHistorySynchronizeReadStateTable? - var peerChatInterfaceStateTable: PeerChatInterfaceStateTable? - var peerTable: PeerTable? - var peerNameTokenIndexTable: ReverseIndexReferenceTable? - var peerNameIndexTable: PeerNameIndexTable? - var notificationSettingsTable: PeerNotificationSettingsTable? - var globallyUniqueMessageIdsTable: MessageGloballyUniqueIdTable? - var globalTagsTable: GlobalMessageHistoryTagsTable? - var localTagsTable: LocalMessageHistoryTagsTable? - var reverseAssociatedTable: ReverseAssociatedPeerTable? - var textIndexTable: MessageHistoryTextIndexTable? - var messageHistoryTagsSummaryTable: MessageHistoryTagsSummaryTable? - var invalidatedMessageHistoryTagsSummaryTable: InvalidatedMessageHistoryTagsSummaryTable? - var pendingMessageActionsTable: PendingMessageActionsTable? - var pendingMessageActionsMetadataTable: PendingMessageActionsMetadataTable? - var pendingPeerNotificationSettingsIndexTable: PendingPeerNotificationSettingsIndexTable? - - override class func setUp() { - super.setUp() - } - - override func setUp() { - super.setUp() - - var randomId: Int64 = 0 - arc4random_buf(&randomId, 8) - path = NSTemporaryDirectory() + "\(randomId)" - self.valueBox = SqliteValueBox(basePath: path!, queue: Queue.mainQueue()) - - let seedConfiguration = SeedConfiguration(initializeChatListWithHole: (topLevel: nil, groups: nil), initializeMessageNamespacesWithHoles: [], existingMessageTags: [], messageTagsWithSummary: [], existingGlobalMessageTags: [], peerNamespacesRequiringMessageTextIndex: [], peerSummaryCounterTags: { _ in PeerSummaryCounterTags(rawValue: 0) }, additionalChatListIndexNamespace: nil, chatMessagesNamespaces: Set()) - - self.globalMessageIdsTable = GlobalMessageIdsTable(valueBox: self.valueBox!, table: GlobalMessageIdsTable.tableSpec(7), namespace: namespace) - self.historyMetadataTable = MessageHistoryMetadataTable(valueBox: self.valueBox!, table: MessageHistoryMetadataTable.tableSpec(8)) - self.unsentTable = MessageHistoryUnsentTable(valueBox: self.valueBox!, table: MessageHistoryUnsentTable.tableSpec(9)) - self.invalidatedMessageHistoryTagsSummaryTable = InvalidatedMessageHistoryTagsSummaryTable(valueBox: self.valueBox!, table: MessageHistoryTagsSummaryTable.tableSpec(31)) - self.messageHistoryTagsSummaryTable = MessageHistoryTagsSummaryTable(valueBox: self.valueBox!, table: MessageHistoryTagsSummaryTable.tableSpec(28), invalidateTable: self.invalidatedMessageHistoryTagsSummaryTable!) - self.pendingMessageActionsMetadataTable = PendingMessageActionsMetadataTable(valueBox: self.valueBox!, table: PendingMessageActionsMetadataTable.tableSpec(29)) - self.pendingMessageActionsTable = PendingMessageActionsTable(valueBox: self.valueBox!, table: PendingMessageActionsTable.tableSpec(30), metadataTable: self.pendingMessageActionsMetadataTable!) - self.tagsTable = MessageHistoryTagsTable(valueBox: self.valueBox!, table: MessageHistoryTagsTable.tableSpec(10), seedConfiguration: seedConfiguration, summaryTable: self.messageHistoryTagsSummaryTable!) - self.indexTable = MessageHistoryIndexTable(valueBox: self.valueBox!, table: MessageHistoryIndexTable.tableSpec(1), globalMessageIdsTable: self.globalMessageIdsTable!, metadataTable: self.historyMetadataTable!, seedConfiguration: seedConfiguration) - self.mediaTable = MessageMediaTable(valueBox: self.valueBox!, table: MessageMediaTable.tableSpec(2)) - self.readStateTable = MessageHistoryReadStateTable(valueBox: self.valueBox!, table: MessageHistoryReadStateTable.tableSpec(11)) - self.synchronizeReadStateTable = MessageHistorySynchronizeReadStateTable(valueBox: self.valueBox!, table: MessageHistorySynchronizeReadStateTable.tableSpec(12)) - self.globallyUniqueMessageIdsTable = MessageGloballyUniqueIdTable(valueBox: self.valueBox!, table: MessageGloballyUniqueIdTable.tableSpec(24)) - self.globalTagsTable = GlobalMessageHistoryTagsTable(valueBox: self.valueBox!, table: GlobalMessageHistoryTagsTable.tableSpec(25)) - self.localTagsTable = LocalMessageHistoryTagsTable(valueBox: self.valueBox!, table: GlobalMessageHistoryTagsTable.tableSpec(35)) - self.textIndexTable = MessageHistoryTextIndexTable(valueBox: self.valueBox!, table: MessageHistoryTextIndexTable.tableSpec(27)) - self.historyTable = MessageHistoryTable(valueBox: self.valueBox!, table: MessageHistoryTable.tableSpec(4), messageHistoryIndexTable: self.indexTable!, messageMediaTable: self.mediaTable!, historyMetadataTable: self.historyMetadataTable!, globallyUniqueMessageIdsTable: self.globallyUniqueMessageIdsTable!, unsentTable: self.unsentTable!, tagsTable: self.tagsTable!, globalTagsTable: self.globalTagsTable!, localTagsTable: self.localTagsTable!, readStateTable: self.readStateTable!, synchronizeReadStateTable: self.synchronizeReadStateTable!, textIndexTable: self.textIndexTable!, summaryTable: self.messageHistoryTagsSummaryTable!, pendingActionsTable: self.pendingMessageActionsTable!) - self.reverseAssociatedTable = ReverseAssociatedPeerTable(valueBox: self.valueBox!, table: ReverseAssociatedPeerTable.tableSpec(26)) - self.peerTable = PeerTable(valueBox: self.valueBox!, table: PeerTable.tableSpec(20), reverseAssociatedTable: self.reverseAssociatedTable!) - self.peerNameTokenIndexTable = ReverseIndexReferenceTable(valueBox: self.valueBox!, table: ReverseIndexReferenceTable.tableSpec(21)) - self.peerNameIndexTable = PeerNameIndexTable(valueBox: self.valueBox!, table: PeerNameIndexTable.tableSpec(22), peerTable: self.peerTable!, peerNameTokenIndexTable: self.peerNameTokenIndexTable!) - self.pendingPeerNotificationSettingsIndexTable = PendingPeerNotificationSettingsIndexTable(valueBox: self.valueBox!, table: PeerNotificationSettingsTable.tableSpec(32)) - self.notificationSettingsTable = PeerNotificationSettingsTable(valueBox: self.valueBox!, table: PeerNotificationSettingsTable.tableSpec(23), pendingIndexTable: self.pendingPeerNotificationSettingsIndexTable!) - self.chatListIndexTable = ChatListIndexTable(valueBox: self.valueBox!, table: ChatListIndexTable.tableSpec(5), peerNameIndexTable: self.peerNameIndexTable!, metadataTable: self.historyMetadataTable!, readStateTable: self.readStateTable!, notificationSettingsTable: self.notificationSettingsTable!) - self.chatListTable = ChatListTable(valueBox: self.valueBox!, table: ChatListTable.tableSpec(6), indexTable: self.chatListIndexTable!, metadataTable: self.historyMetadataTable!, seedConfiguration: seedConfiguration) - self.peerChatInterfaceStateTable = PeerChatInterfaceStateTable(valueBox: self.valueBox!, table: PeerChatInterfaceStateTable.tableSpec(20)) - } - - override func tearDown() { - super.tearDown() - - self.historyTable = nil - self.indexTable = nil - self.mediaTable = nil - self.chatListIndexTable = nil - self.chatListTable = nil - - self.valueBox = nil - let _ = try? FileManager.default.removeItem(atPath: path!) - self.path = nil - } - - private func addMessage(_ peerId: Int32, _ id: Int32, _ timestamp: Int32, _ text: String = "", _ media: [Media] = [], _ groupingKey: Int64? = nil) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - let updatedPeerChatListEmbeddedStates: [PeerId: PeerChatListEmbeddedInterfaceState?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - let initialPeerGroupIdsBeforeUpdate: [PeerId: WrappedPeerGroupId] = [:] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - let updatedChatListGroupInclusions: [PeerGroupId: GroupChatListInclusion] = [:] - var updatedMedia: [MediaId : Media?] = [:] - - let _ = self.historyTable!.addMessages(messages: [StoreMessage(id: MessageId(peerId: PeerId(namespace: namespace, id: peerId), namespace: namespace, id: id), globallyUniqueId: nil, groupingKey: groupingKey, timestamp: timestamp, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, authorId: authorPeerId, text: text, attributes: [], media: media)], location: .Random, operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, localTagsOperations: &localTagsOperations, processMessages: nil) - var operations: [WrappedPeerGroupId: [ChatListOperation]] = [:] - self.chatListTable!.replay(historyOperationsByPeerId: operationsByPeerId, updatedPeerChatListEmbeddedStates: updatedPeerChatListEmbeddedStates, updatedChatListInclusions: [:], updatedChatListGroupInclusions: updatedChatListGroupInclusions, initialPeerGroupIdsBeforeUpdate: initialPeerGroupIdsBeforeUpdate, messageHistoryTable: self.historyTable!, peerChatInterfaceStateTable: self.peerChatInterfaceStateTable!, operations: &operations) - var updatedTotalUnreadState: ChatListTotalUnreadState? - self.chatListIndexTable?.commitWithTransaction(postbox: postbox, alteredInitialPeerCombinedReadStates: [:], updatedPeers: [], transactionParticipationInTotalUnreadCountUpdates: (added: Set(), removed: Set()), updatedTotalUnreadState: &updatedTotalUnreadState) - self.chatListIndexTable?.clearMemoryCache() - } - - private func updateInclusion(_ peerId: Int32, f: (PeerChatListInclusion) -> PeerChatListInclusion) { - var updatedChatListInclusions: [PeerId: PeerChatListInclusion] = [:] - self.chatListTable!.updateInclusion(peerId: PeerId(namespace: namespace, id: peerId), updatedChatListInclusions: &updatedChatListInclusions, f) - - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - let updatedPeerChatListEmbeddedStates: [PeerId: PeerChatListEmbeddedInterfaceState?] = [:] - let initialPeerGroupIdsBeforeUpdate: [PeerId: WrappedPeerGroupId] = [:] - let updatedChatListGroupInclusions: [PeerGroupId: GroupChatListInclusion] = [:] - - var operations: [WrappedPeerGroupId: [ChatListOperation]] = [:] - - self.chatListTable!.replay(historyOperationsByPeerId: [:], updatedPeerChatListEmbeddedStates: [:], updatedChatListInclusions: updatedChatListInclusions, updatedChatListGroupInclusions: updatedChatListGroupInclusions, initialPeerGroupIdsBeforeUpdate: initialPeerGroupIdsBeforeUpdate, messageHistoryTable: self.historyTable!, peerChatInterfaceStateTable: self.peerChatInterfaceStateTable!, operations: &operations) - var updatedTotalUnreadState: ChatListTotalUnreadState? - self.chatListIndexTable?.commitWithTransaction(alteredInitialPeerCombinedReadStates: [:], transactionParticipationInTotalUnreadCountUpdates: (added: Set(), removed: Set()), getCombinedPeerReadState: { peerId -> CombinedPeerReadState? in - self.readStateTable?.getCombinedState(peerId) - }, getPeer: { _ in - return nil - }, updatedTotalUnreadState: &updatedTotalUnreadState) - self.chatListIndexTable?.clearMemoryCache() - } - - private func updatePeerGroup(_ peerId: Int32, _ groupId: PeerGroupId?) { - var initialPeerGroupIdsBeforeUpdate: [PeerId: WrappedPeerGroupId] = [:] - self.groupAssociationTable!.set(peerId: PeerId(namespace: namespace, id: peerId), groupId: groupId, initialPeerGroupIdsBeforeUpdate: &initialPeerGroupIdsBeforeUpdate) - - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - let updatedPeerChatListEmbeddedStates: [PeerId: PeerChatListEmbeddedInterfaceState?] = [:] - let updatedChatListGroupInclusions: [PeerGroupId: GroupChatListInclusion] = [:] - - var operations: [WrappedPeerGroupId: [ChatListOperation]] = [:] - - self.chatListTable!.replay(historyOperationsByPeerId: [:], updatedPeerChatListEmbeddedStates: [:], updatedChatListInclusions: [:], updatedChatListGroupInclusions: updatedChatListGroupInclusions, initialPeerGroupIdsBeforeUpdate: initialPeerGroupIdsBeforeUpdate, messageHistoryTable: self.historyTable!, peerChatInterfaceStateTable: self.peerChatInterfaceStateTable!, operations: &operations) - var updatedTotalUnreadState: ChatListTotalUnreadState? - self.chatListIndexTable?.commitWithTransaction(alteredInitialPeerCombinedReadStates: [:], transactionParticipationInTotalUnreadCountUpdates: (added: Set(), removed: Set()), getCombinedPeerReadState: { peerId -> CombinedPeerReadState? in - self.readStateTable?.getCombinedState(peerId) - }, getPeer: { _ in - return nil - }, updatedTotalUnreadState: &updatedTotalUnreadState) - self.chatListIndexTable?.clearMemoryCache() - } - - private func addHole(_ peerId: Int32, _ id: Int32) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - let updatedPeerChatListEmbeddedStates: [PeerId: PeerChatListEmbeddedInterfaceState?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - let initialPeerGroupIdsBeforeUpdate: [PeerId: WrappedPeerGroupId] = [:] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - let updatedChatListGroupInclusions: [PeerGroupId: GroupChatListInclusion] = [:] - var updatedMedia: [MediaId : Media?] = [:] - - self.historyTable!.addHoles([MessageId(peerId: PeerId(namespace: namespace, id: peerId), namespace: namespace, id: id)], operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, localTagsOperations: &localTagsOperations) - var operations: [WrappedPeerGroupId: [ChatListOperation]] = [:] - self.chatListTable!.replay(historyOperationsByPeerId: operationsByPeerId, updatedPeerChatListEmbeddedStates: updatedPeerChatListEmbeddedStates, updatedChatListInclusions: [:], updatedChatListGroupInclusions: updatedChatListGroupInclusions, initialPeerGroupIdsBeforeUpdate: initialPeerGroupIdsBeforeUpdate, messageHistoryTable: self.historyTable!, peerChatInterfaceStateTable: self.peerChatInterfaceStateTable!, operations: &operations) - } - - private func addChatListHole(groupId: PeerGroupId?, peerId: Int32, id: Int32, timestamp: Int32) { - var operations: [WrappedPeerGroupId: [ChatListOperation]] = [:] - self.chatListTable!.addHole(groupId: groupId, hole: ChatListHole(index: MessageIndex(id: MessageId(peerId: PeerId(namespace: namespace, id: peerId), namespace: namespace, id: id), timestamp: timestamp)), operations: &operations) - } - - private func replaceChatListHole(groupId: PeerGroupId?, peerId: Int32, id: Int32, timestamp: Int32, otherPeerId: Int32, otherId: Int32, otherTimestamp: Int32) { - var operations: [WrappedPeerGroupId: [ChatListOperation]] = [:] - self.chatListTable!.replaceHole(groupId: groupId, index: MessageIndex(id: MessageId(peerId: PeerId(namespace: namespace, id: peerId), namespace: namespace, id: id), timestamp: timestamp), hole: ChatListHole(index: MessageIndex(id: MessageId(peerId: PeerId(namespace: namespace, id: otherPeerId), namespace: namespace, id: otherId), timestamp: otherTimestamp)), operations: &operations) - } - - private func removeChatListHole(groupId: PeerGroupId?, peerId: Int32, id: Int32, timestamp: Int32) { - var operations: [WrappedPeerGroupId: [ChatListOperation]] = [:] - self.chatListTable!.replaceHole(groupId: groupId, index: MessageIndex(id: MessageId(peerId: PeerId(namespace: namespace, id: peerId), namespace: namespace, id: id), timestamp: timestamp), hole: nil, operations: &operations) - } - - private func removeMessages(_ peerId: Int32, _ ids: [Int32]) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - let updatedPeerChatListEmbeddedStates: [PeerId: PeerChatListEmbeddedInterfaceState?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - let initialPeerGroupIdsBeforeUpdate: [PeerId: WrappedPeerGroupId] = [:] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - let updatedChatListGroupInclusions: [PeerGroupId: GroupChatListInclusion] = [:] - var updatedMedia: [MediaId : Media?] = [:] - - self.historyTable!.removeMessages(ids.map({ MessageId(peerId: PeerId(namespace: namespace, id: peerId), namespace: namespace, id: $0) }), operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, localTagsOperations: &localTagsOperations) - var operations: [WrappedPeerGroupId: [ChatListOperation]] = [:] - self.chatListTable!.replay(historyOperationsByPeerId: operationsByPeerId, updatedPeerChatListEmbeddedStates: updatedPeerChatListEmbeddedStates, updatedChatListInclusions: [:], updatedChatListGroupInclusions: updatedChatListGroupInclusions, initialPeerGroupIdsBeforeUpdate: initialPeerGroupIdsBeforeUpdate, messageHistoryTable: self.historyTable!, peerChatInterfaceStateTable: self.peerChatInterfaceStateTable!, operations: &operations) - } - - private func fillHole(_ peerId: Int32, _ id: Int32, _ fillType: HoleFill, _ messages: [(Int32, Int32, String, [Media], Int64?)]) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - let updatedPeerChatListEmbeddedStates: [PeerId: PeerChatListEmbeddedInterfaceState?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - let initialPeerGroupIdsBeforeUpdate: [PeerId: WrappedPeerGroupId] = [:] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - let updatedChatListGroupInclusions: [PeerGroupId: GroupChatListInclusion] = [:] - var updatedMedia: [MediaId : Media?] = [:] - - self.historyTable!.fillHole(MessageId(peerId: PeerId(namespace: namespace, id: peerId), namespace: namespace, id: id), fillType: fillType, tagMask: nil, messages: messages.map({ StoreMessage(id: MessageId(peerId: PeerId(namespace: namespace, id: peerId), namespace: namespace, id: $0.0), globallyUniqueId: nil, groupingKey: $0.4, timestamp: $0.1, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, authorId: authorPeerId, text: $0.2, attributes: [], media: $0.3) }), operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, localTagsOperations: &localTagsOperations) - var operations: [WrappedPeerGroupId: [ChatListOperation]] = [:] - self.chatListTable!.replay(historyOperationsByPeerId: operationsByPeerId, updatedPeerChatListEmbeddedStates: updatedPeerChatListEmbeddedStates, updatedChatListInclusions: [:], updatedChatListGroupInclusions: updatedChatListGroupInclusions, initialPeerGroupIdsBeforeUpdate: initialPeerGroupIdsBeforeUpdate, messageHistoryTable: self.historyTable!, peerChatInterfaceStateTable: self.peerChatInterfaceStateTable!, operations: &operations) - } - - private func expectEntries(groupId: PeerGroupId?, entries: [Entry]) { - let actualEntries = self.chatListTable!.debugList(groupId: groupId, messageHistoryTable: self.historyTable!, peerChatInterfaceStateTable: self.peerChatInterfaceStateTable!).map({ entry -> Entry in - switch entry { - case let .message(index, message, _): - if let message = message, message.authorId != authorPeerId { - XCTFail("Expected authorId \(authorPeerId), actual \(String(describing: message.authorId))") - } - return .Message(index.messageIndex.id.peerId.id, index.messageIndex.id.id, index.messageIndex.timestamp, message != nil) - case let .hole(hole): - return .Hole(hole.index.id.peerId.id, hole.index.id.id, hole.index.timestamp) - case let .groupReference(groupId, index): - return .GroupReference(groupId, index.messageIndex.id.peerId.id, index.messageIndex.id.id, index.messageIndex.timestamp) - } - }) - if entries != actualEntries { - XCTFail("Expected\n\(entries)\nActual\n\(actualEntries)") - } - } - - func testEmpty() { - expectEntries(groupId: nil, entries: []) - } - - func testAddSingleMessage() { - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - - addMessage(1, 100, 100) - expectEntries(groupId: nil, entries: [.Message(1, 100, 100, true)]) - } - - func testInsertLaterMessage() { - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - - addMessage(1, 100, 100) - addMessage(1, 200, 200) - expectEntries(groupId: nil, entries: [.Message(1, 200, 200, true)]) - } - - func testInsertEarlierMessage() { - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - - addMessage(1, 100, 100) - addMessage(1, 10, 20) - expectEntries(groupId: nil, entries: [.Message(1, 100, 100, true)]) - } - - func testInsertTwoChatMessages() { - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - updateInclusion(2, f: { _ in - return .ifHasMessages - }) - - addMessage(1, 100, 100) - addMessage(2, 10, 20) - expectEntries(groupId: nil, entries: [.Message(2, 10, 20, true), .Message(1, 100, 100, true)]) - } - - func testMoveChatUpper() { - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - updateInclusion(2, f: { _ in - return .ifHasMessages - }) - - addMessage(1, 100, 100) - addMessage(2, 10, 20) - addMessage(2, 120, 120) - expectEntries(groupId: nil, entries: [.Message(1, 100, 100, true), .Message(2, 120, 120, true)]) - } - - func testRemoveSingleMessageInclusionIfHasMessages() { - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - addMessage(1, 100, 100) - removeMessages(1, [100]) - expectEntries(groupId: nil, entries: []) - } - - func testAddSingleMessageInclusionNever() { - addMessage(1, 100, 100) - expectEntries(groupId: nil, entries: []) - } - - func testEmptyWithInclusionMinIndex() { - updateInclusion(1, f: { _ in - return .ifHasMessagesOrOneOf(pinningIndex: nil, minTimestamp: 50) - }) - expectEntries(groupId: nil, entries: [.Message(1, 0, 50, false)]) - addMessage(1, 20, 20) - expectEntries(groupId: nil, entries: [.Message(1, 0, 50, true)]) - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - expectEntries(groupId: nil, entries: [.Message(1, 20, 20, true)]) - } - - func testEmptyWithInclusionPinningIndex() { - updateInclusion(1, f: { _ in - return .ifHasMessagesOrOneOf(pinningIndex: 0, minTimestamp: nil) - }) - expectEntries(groupId: nil, entries: [.Message(1, 0, 0, false)]) - } - - func testRemoveSingleMessageInclusionWithMinIndexUpdate() { - updateInclusion(1, f: { _ in - return .ifHasMessagesOrOneOf(pinningIndex: nil, minTimestamp: 50) - }) - addMessage(1, 100, 100) - removeMessages(1, [100]) - expectEntries(groupId: nil, entries: [.Message(1, 0, 50, false)]) - updateInclusion(1, f: { _ in - return .ifHasMessagesOrOneOf(pinningIndex: nil, minTimestamp: 200) - }) - expectEntries(groupId: nil, entries: [.Message(1, 0, 200, false)]) - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - expectEntries(groupId: nil, entries: []) - addMessage(1, 200, 200) - expectEntries(groupId: nil, entries: [.Message(1, 200, 200, true)]) - } - - func testOverrideNothing() { - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - - addMessage(1, 100, 100) - removeMessages(1, [100]) - addMessage(1, 100, 100) - expectEntries(groupId: nil, entries: [.Message(1, 100, 100, true)]) - } - - func testInsertHoleIntoEmpty() { - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - - addChatListHole(groupId: nil, peerId: 1, id: 10, timestamp: 10) - expectEntries(groupId: nil, entries: [.Hole(1, 10, 10)]) - } - - func testInsertHoleLower() { - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - - addMessage(1, 100, 100) - addChatListHole(groupId: nil, peerId: 1, id: 10, timestamp: 10) - expectEntries(groupId: nil, entries: [.Hole(1, 10, 10), .Message(1, 100, 100, true)]) - } - - func testInsertHoleUpper() { - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - - addMessage(1, 100, 100) - addChatListHole(groupId: nil, peerId: 1, id: 200, timestamp: 200) - expectEntries(groupId: nil, entries: [.Message(1, 100, 100, true), .Hole(1, 200, 200)]) - } - - func testIgnoreRemoveHole() { - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - - addChatListHole(groupId: nil, peerId: 1, id: 100, timestamp: 100) - removeMessages(1, [100]) - expectEntries(groupId: nil, entries: [.Hole(1, 100, 100)]) - - addMessage(1, 100, 100) - expectEntries(groupId: nil, entries: [.Message(1, 100, 100, true), .Hole(1, 100, 100)]) - - removeMessages(1, [100]) - expectEntries(groupId: nil, entries: [.Hole(1, 100, 100)]) - - updateInclusion(1, f: { _ in - return .ifHasMessagesOrOneOf(pinningIndex: nil, minTimestamp: 100) - }) - expectEntries(groupId: nil, entries: [.Message(1, 0, 100, false), .Hole(1, 100, 100)]) - } - - func testReplaceHoleWithHole() { - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - updateInclusion(2, f: { _ in - return .ifHasMessages - }) - - addChatListHole(groupId: nil, peerId: 1, id: 100, timestamp: 100) - replaceChatListHole(groupId: nil, peerId: 1, id: 100, timestamp: 100, otherPeerId: 2, otherId: 200, otherTimestamp: 200) - expectEntries(groupId: nil, entries: [.Hole(2, 200, 200)]) - } - - func testReplaceHoleWithNone() { - addChatListHole(groupId: nil, peerId: 1, id: 100, timestamp: 100) - removeChatListHole(groupId: nil, peerId: 1, id: 100, timestamp: 100) - expectEntries(groupId: nil, entries: []) - } - - func testInclusionUpdate() { - addMessage(1, 100, 100) - addMessage(1, 200, 200) - updateInclusion(1, f: { _ in - return .ifHasMessagesOrOneOf(pinningIndex: nil, minTimestamp: 1) - }) - addMessage(1, 300, 300) - expectEntries(groupId: nil, entries: [.Message(1, 300, 300, true)]) - } - - func testGroup1() { - updateInclusion(1, f: { _ in - return .ifHasMessages - }) - updateInclusion(2, f: { _ in - return .ifHasMessages - }) - updateInclusion(3, f: { _ in - return .ifHasMessages - }) - - updatePeerGroup(1, PeerGroupId(rawValue: 1)) - updatePeerGroup(2, PeerGroupId(rawValue: 2)) - addMessage(1, 100, 100) - addMessage(1, 200, 200) - addMessage(2, 110, 100) - addMessage(3, 220, 200) - expectEntries(groupId: PeerGroupId(rawValue: 1), entries: [ - .Message(1, 200, 200, true) - ]) - expectEntries(groupId: PeerGroupId(rawValue: 2), entries: [ - .Message(2, 110, 100, true) - ]) - expectEntries(groupId: nil, entries: [ - .GroupReference(PeerGroupId(rawValue: 2), 2, 110, 100), - .GroupReference(PeerGroupId(rawValue: 1), 1, 200, 200), - .Message(3, 220, 200, true) - ]) - removeMessages(1, [200]) - expectEntries(groupId: PeerGroupId(rawValue: 1), entries: [ - .Message(1, 100, 100, true) - ]) - expectEntries(groupId: PeerGroupId(rawValue: 2), entries: [ - .Message(2, 110, 100, true) - ]) - expectEntries(groupId: nil, entries: [ - .GroupReference(PeerGroupId(rawValue: 1), 1, 100, 100), - .GroupReference(PeerGroupId(rawValue: 2), 2, 110, 100), - .Message(3, 220, 200, true) - ]) - - updatePeerGroup(1, nil) - expectEntries(groupId: PeerGroupId(rawValue: 1), entries: []) - expectEntries(groupId: PeerGroupId(rawValue: 2), entries: [ - .Message(2, 110, 100, true) - ]) - expectEntries(groupId: nil, entries: [ - .Message(1, 100, 100, true), - .GroupReference(PeerGroupId(rawValue: 2), 2, 110, 100), - .Message(3, 220, 200, true) - ]) - removeMessages(2, [110]) - expectEntries(groupId: nil, entries: [ - .Message(1, 100, 100, true), - .Message(3, 220, 200, true) - ]) - addMessage(2, 110, 100) - expectEntries(groupId: nil, entries: [ - .Message(1, 100, 100, true), - .GroupReference(PeerGroupId(rawValue: 2), 2, 110, 100), - .Message(3, 220, 200, true) - ]) - } -} diff --git a/submodules/Postbox/PostboxTests/CodingTests.swift b/submodules/Postbox/PostboxTests/CodingTests.swift deleted file mode 100644 index e6e6b1f50c..0000000000 --- a/submodules/Postbox/PostboxTests/CodingTests.swift +++ /dev/null @@ -1,222 +0,0 @@ -import UIKit -import XCTest - -import Postbox - -class TestParent: PostboxCoding, Equatable { - var parentInt32: Int32 - - required init(decoder: PostboxDecoder) { - self.parentInt32 = decoder.decodeInt32ForKey("parentInt32", orElse: 0) - } - - init(parentInt32: Int32) { - self.parentInt32 = parentInt32 - } - - func encode(_ encoder: PostboxEncoder) { - encoder.encodeInt32(self.parentInt32, forKey: "parentInt32") - } -} - -class TestObject: TestParent { - var int32: Int32 - var int64: Int64 - var double: Double - var string: String - var int32Array: [Int32] - var int64Array: [Int64] - - required init(decoder: PostboxDecoder) { - self.int32 = decoder.decodeInt32ForKey("int32", orElse: 0) - self.int64 = decoder.decodeInt64ForKey("int64", orElse: 0) - self.double = decoder.decodeDoubleForKey("double", orElse: 0.0) - self.string = decoder.decodeStringForKey("string", orElse: "") - self.int32Array = decoder.decodeInt32ArrayForKey("int32Array") - self.int64Array = decoder.decodeInt64ArrayForKey("int64Array") - super.init(decoder: decoder) - } - - init(parentInt32: Int32, int32: Int32, int64: Int64, double: Double, string: String, int32Array: [Int32], int64Array: [Int64]) { - self.int32 = int32 - self.int64 = int64 - self.double = double - self.string = string - self.int32Array = int32Array - self.int64Array = int64Array - super.init(parentInt32: parentInt32) - } - - override func encode(_ encoder: PostboxEncoder) { - encoder.encodeInt32(self.int32, forKey: "int32") - encoder.encodeInt64(self.int64, forKey: "int64") - encoder.encodeDouble(self.double, forKey: "double") - encoder.encodeString(self.string, forKey: "string") - encoder.encodeInt32Array(self.int32Array, forKey: "int32Array") - encoder.encodeInt64Array(self.int64Array, forKey: "int64Array") - super.encode(encoder) - } -} - -class TestKey: PostboxCoding, Hashable { - let value: Int - required init(decoder: PostboxDecoder) { - self.value = Int(decoder.decodeInt32ForKey("value", orElse: 0)) - } - - init(value: Int) { - self.value = value - } - - func encode(_ encoder: PostboxEncoder) { - encoder.encodeInt32(Int32(self.value), forKey: "value") - } - - var hashValue: Int { - get { - return self.value - } - } -} - -func ==(lhs: TestObject, rhs: TestObject) -> Bool { - return lhs.int32 == rhs.int32 && - lhs.int64 == rhs.int64 && - lhs.double == rhs.double && - lhs.string == rhs.string && - lhs.int32Array == rhs.int32Array && - lhs.int64Array == rhs.int64Array && - lhs.parentInt32 == rhs.parentInt32 -} - -func ==(lhs: TestParent, rhs: TestParent) -> Bool { - return lhs.parentInt32 == rhs.parentInt32 -} - -func ==(lhs: TestKey, rhs: TestKey) -> Bool { - return lhs.value == rhs.value -} - -class EmptyState: PostboxCoding { - required init(decoder: PostboxDecoder) { - } - - func encode(_ encoder: PostboxEncoder) { - } -} - -class SerializationTests: XCTestCase { - override func setUp() { - super.setUp() - } - - override func tearDown() { - super.tearDown() - } - - func testExample() { - declareEncodable(TestParent.self, f: { TestParent(decoder: $0) }) - declareEncodable(TestObject.self, f: { TestObject(decoder: $0) }) - declareEncodable(TestKey.self, f: { TestKey(decoder: $0) }) - - let encoder = PostboxEncoder() - encoder.encodeInt32(12345, forKey: "a") - encoder.encodeInt64(Int64(12345), forKey: "b") - encoder.encodeBool(true, forKey: "c") - encoder.encodeString("test", forKey: "d") - - let before = TestObject(parentInt32: 100, int32: 12345, int64: 67890, double: 1.23456, string: "test", int32Array: [1, 2, 3, 4, 5], int64Array: [6, 7, 8, 9, 0]) - encoder.encodeObject(before, forKey: "e") - - encoder.encodeInt32Array([1, 2, 3, 4], forKey: "f") - encoder.encodeInt64Array([1, 2, 3, 4], forKey: "g") - - let beforeArray: [TestParent] = [TestObject(parentInt32: 1000, int32: 12345, int64: 67890, double: 1.23456, string: "test", int32Array: [1, 2, 3, 4, 5], int64Array: [6, 7, 8, 9, 0]), TestParent(parentInt32: 2000)] - - encoder.encodeObjectArray(beforeArray, forKey: "h") - - let beforeDictionary: [TestKey : TestParent] = [ - TestKey(value: 1): TestObject(parentInt32: 1000, int32: 12345, int64: 67890, double: 1.23456, string: "test", int32Array: [1, 2, 3, 4, 5], int64Array: [6, 7, 8, 9, 0]), - TestKey(value: 2): TestParent(parentInt32: 2000) - ] - - encoder.encodeObjectDictionary(beforeDictionary, forKey: "i") - - let decoder = PostboxDecoder(buffer: encoder.makeReadBufferAndReset()) - - let afterDictionary = decoder.decodeObjectDictionaryForKey("i") as [TestKey : TestParent] - XCTAssert(afterDictionary == beforeDictionary, "object dictionary failed") - - let afterArray = decoder.decodeObjectArrayForKey("h") as [TestParent] - XCTAssert(afterArray == beforeArray, "object array failed") - - XCTAssert(decoder.decodeInt64ArrayForKey("g") == [1, 2, 3, 4], "int64 array failed") - XCTAssert(decoder.decodeInt32ArrayForKey("f") == [1, 2, 3, 4], "int32 array failed") - - if let after = decoder.decodeObjectForKey("e") as? TestObject { - XCTAssert(after == before, "object failed") - } else { - XCTFail("object failed") - } - - XCTAssert(decoder.decodeStringForKey("d", orElse: "") == "test", "string failed") - XCTAssert(decoder.decodeBoolForKey("c", orElse: false), "bool failed") - XCTAssert(decoder.decodeInt64ForKey("b", orElse: 0) == Int64(12345), "int64 failed") - XCTAssert(decoder.decodeInt32ForKey("a", orElse: 0) == 12345, "int32 failed") - } - - func testKeys() { - let key1 = ValueBoxKey(length: 8) - let key2 = ValueBoxKey(length: 8) - - key1.setInt32(0, value: 1) - key1.setInt32(4, value: 2) - - key2.setInt32(0, value: 1) - key2.setInt32(4, value: 3) - - let lowerBound = ValueBoxKey(length: 4) - lowerBound.setInt32(0, value: 0) - let upperBound = ValueBoxKey(length: 4) - upperBound.setInt32(0, value: 2) - - XCTAssert(key1 > lowerBound, "key1 <= lowerBound") - XCTAssert(key1 < upperBound, "key1 >= upperBound") - XCTAssert(key2 > lowerBound, "key2 <= lowerBound") - XCTAssert(key2 < upperBound, "key2 >= upperBound") - - XCTAssert(key1 < key2, "key1 >= key2") - XCTAssert(key1.successor == key2, "key1.next != key2") - XCTAssert(key2.predecessor == key1, "key2.previous != key1") - } - - func testKeyValue() { - /*let basePath = "/tmp/postboxtest" - do { - try NSFileManager.defaultManager().removeItemAtPath(basePath) - } catch _ { } - - let box = SqliteValueBox(basePath: basePath) - box.transaction { transaction in - let key = ValueBoxKey(length: 4) - let value = WriteBuffer() - for i in 1 ... 100 { - key.setInt32(0, value: Int32(i)) - transaction.set("test", key: key, value: value) - } - } - - do { - box.transaction { transaction in - let lowerBound = ValueBoxKey(length: 4) - lowerBound.setInt32(0, value: 2) - let upperBound = ValueBoxKey(length: 4) - upperBound.setInt32(0, value: 99) - transaction.range("test", start: upperBound, end: lowerBound, values: { key, value in - print("\(key.getInt32(0))") - return true - }, limit: 10) - } - }*/ - } -} diff --git a/submodules/Postbox/PostboxTests/HoleOperationsVector1.json b/submodules/Postbox/PostboxTests/HoleOperationsVector1.json deleted file mode 100644 index 47bf326dde..0000000000 --- a/submodules/Postbox/PostboxTests/HoleOperationsVector1.json +++ /dev/null @@ -1 +0,0 @@ -[{"a":false,"l":256,"u":864},{"a":true,"l":144,"u":237},{"a":true,"l":23,"u":363},{"a":true,"l":258,"u":936},{"a":false,"l":227,"u":877},{"a":false,"l":29,"u":713},{"a":false,"l":306,"u":460},{"a":false,"l":21,"u":761},{"a":false,"l":367,"u":795},{"a":false,"l":534,"u":838},{"a":true,"l":185,"u":636},{"a":false,"l":426,"u":606},{"a":true,"l":77,"u":677},{"a":true,"l":332,"u":431},{"a":true,"l":34,"u":951},{"a":true,"l":205,"u":230},{"a":false,"l":298,"u":600},{"a":true,"l":197,"u":346},{"a":true,"l":125,"u":498},{"a":true,"l":336,"u":734},{"a":false,"l":380,"u":857},{"a":false,"l":201,"u":410},{"a":true,"l":609,"u":618},{"a":true,"l":380,"u":497},{"a":false,"l":408,"u":750},{"a":false,"l":135,"u":424},{"a":true,"l":165,"u":999},{"a":false,"l":159,"u":485},{"a":true,"l":735,"u":781},{"a":true,"l":318,"u":530},{"a":true,"l":512,"u":609},{"a":false,"l":331,"u":347},{"a":false,"l":777,"u":843},{"a":true,"l":635,"u":874},{"a":true,"l":177,"u":212},{"a":false,"l":337,"u":460},{"a":true,"l":119,"u":511},{"a":false,"l":727,"u":781},{"a":true,"l":64,"u":213},{"a":false,"l":44,"u":284},{"a":true,"l":56,"u":721},{"a":false,"l":22,"u":210},{"a":true,"l":592,"u":974},{"a":true,"l":520,"u":689},{"a":true,"l":313,"u":928},{"a":false,"l":359,"u":412},{"a":false,"l":644,"u":928},{"a":false,"l":656,"u":688},{"a":false,"l":23,"u":830},{"a":false,"l":724,"u":743},{"a":false,"l":263,"u":717},{"a":false,"l":279,"u":379},{"a":true,"l":104,"u":129},{"a":true,"l":554,"u":765},{"a":true,"l":200,"u":651},{"a":true,"l":19,"u":791},{"a":false,"l":448,"u":455},{"a":false,"l":90,"u":702},{"a":true,"l":188,"u":702},{"a":true,"l":616,"u":817},{"a":true,"l":828,"u":997},{"a":true,"l":155,"u":200},{"a":false,"l":594,"u":674},{"a":true,"l":20,"u":790},{"a":true,"l":328,"u":331},{"a":true,"l":192,"u":629},{"a":false,"l":118,"u":241},{"a":false,"l":865,"u":883},{"a":false,"l":599,"u":939},{"a":false,"l":585,"u":591},{"a":false,"l":72,"u":384},{"a":true,"l":657,"u":899},{"a":false,"l":85,"u":131},{"a":false,"l":496,"u":728},{"a":false,"l":706,"u":903},{"a":false,"l":207,"u":731},{"a":true,"l":31,"u":289},{"a":false,"l":579,"u":593},{"a":true,"l":269,"u":991},{"a":true,"l":197,"u":725},{"a":true,"l":115,"u":801},{"a":false,"l":294,"u":366},{"a":true,"l":147,"u":236},{"a":false,"l":966,"u":994},{"a":true,"l":288,"u":523},{"a":false,"l":366,"u":703},{"a":false,"l":20,"u":60},{"a":false,"l":118,"u":867},{"a":false,"l":144,"u":665},{"a":false,"l":25,"u":937},{"a":true,"l":567,"u":918},{"a":false,"l":197,"u":597},{"a":false,"l":27,"u":204},{"a":false,"l":597,"u":777},{"a":true,"l":638,"u":983},{"a":false,"l":59,"u":589},{"a":false,"l":144,"u":150},{"a":false,"l":463,"u":874},{"a":true,"l":279,"u":979},{"a":true,"l":202,"u":247},{"a":true,"l":78,"u":308},{"a":true,"l":228,"u":906},{"a":true,"l":73,"u":639},{"a":true,"l":382,"u":999},{"a":false,"l":240,"u":490},{"a":false,"l":124,"u":509},{"a":true,"l":482,"u":990},{"a":true,"l":137,"u":398},{"a":true,"l":837,"u":871},{"a":true,"l":63,"u":760},{"a":true,"l":144,"u":854},{"a":true,"l":180,"u":261},{"a":false,"l":167,"u":171},{"a":true,"l":534,"u":762},{"a":true,"l":461,"u":792},{"a":true,"l":21,"u":977},{"a":true,"l":718,"u":960},{"a":true,"l":311,"u":999},{"a":true,"l":184,"u":953},{"a":true,"l":191,"u":427},{"a":true,"l":543,"u":981},{"a":true,"l":108,"u":846},{"a":true,"l":167,"u":410},{"a":false,"l":181,"u":521},{"a":false,"l":204,"u":916},{"a":false,"l":221,"u":992},{"a":true,"l":51,"u":527},{"a":false,"l":159,"u":670},{"a":true,"l":357,"u":759},{"a":true,"l":135,"u":631},{"a":false,"l":20,"u":369},{"a":false,"l":183,"u":211},{"a":true,"l":459,"u":879},{"a":false,"l":478,"u":876},{"a":false,"l":314,"u":900},{"a":true,"l":121,"u":863},{"a":false,"l":336,"u":350},{"a":true,"l":278,"u":415},{"a":false,"l":884,"u":982},{"a":false,"l":221,"u":880},{"a":false,"l":5,"u":620},{"a":true,"l":353,"u":949},{"a":true,"l":310,"u":813},{"a":false,"l":399,"u":717},{"a":false,"l":264,"u":783},{"a":false,"l":506,"u":882},{"a":true,"l":215,"u":937},{"a":false,"l":114,"u":747},{"a":false,"l":61,"u":523},{"a":true,"l":387,"u":961},{"a":true,"l":408,"u":451},{"a":false,"l":247,"u":334},{"a":true,"l":153,"u":726},{"a":false,"l":209,"u":276},{"a":false,"l":338,"u":963},{"a":true,"l":234,"u":580},{"a":true,"l":686,"u":701},{"a":false,"l":47,"u":258},{"a":false,"l":137,"u":857},{"a":true,"l":809,"u":984},{"a":true,"l":254,"u":447},{"a":false,"l":208,"u":942},{"a":false,"l":676,"u":949},{"a":false,"l":438,"u":768},{"a":false,"l":79,"u":747},{"a":true,"l":109,"u":855},{"a":false,"l":239,"u":836},{"a":true,"l":430,"u":687},{"a":true,"l":180,"u":399},{"a":true,"l":93,"u":529},{"a":false,"l":754,"u":920},{"a":false,"l":285,"u":651},{"a":true,"l":38,"u":851},{"a":false,"l":118,"u":940},{"a":false,"l":603,"u":981},{"a":false,"l":186,"u":902},{"a":false,"l":721,"u":980},{"a":true,"l":200,"u":323},{"a":true,"l":715,"u":732},{"a":false,"l":12,"u":313},{"a":false,"l":317,"u":886},{"a":true,"l":390,"u":393},{"a":false,"l":18,"u":368},{"a":true,"l":33,"u":627},{"a":true,"l":436,"u":647},{"a":true,"l":394,"u":678},{"a":true,"l":143,"u":548},{"a":true,"l":482,"u":771},{"a":true,"l":535,"u":597},{"a":false,"l":36,"u":87},{"a":true,"l":328,"u":547},{"a":true,"l":250,"u":668},{"a":false,"l":1,"u":735},{"a":false,"l":50,"u":312},{"a":true,"l":379,"u":878},{"a":true,"l":118,"u":133},{"a":true,"l":494,"u":834},{"a":false,"l":193,"u":838},{"a":true,"l":36,"u":45},{"a":true,"l":41,"u":416},{"a":false,"l":673,"u":935},{"a":true,"l":170,"u":262},{"a":true,"l":725,"u":917},{"a":true,"l":453,"u":884},{"a":false,"l":416,"u":917},{"a":true,"l":468,"u":989},{"a":true,"l":777,"u":990},{"a":false,"l":112,"u":215},{"a":false,"l":602,"u":978},{"a":true,"l":635,"u":670},{"a":false,"l":683,"u":994},{"a":false,"l":213,"u":649},{"a":false,"l":101,"u":660},{"a":true,"l":413,"u":466},{"a":false,"l":35,"u":682},{"a":true,"l":67,"u":765},{"a":true,"l":58,"u":822},{"a":true,"l":103,"u":607},{"a":false,"l":303,"u":744},{"a":true,"l":438,"u":999},{"a":true,"l":149,"u":352},{"a":false,"l":172,"u":366},{"a":true,"l":392,"u":796},{"a":false,"l":680,"u":864},{"a":true,"l":248,"u":664},{"a":false,"l":547,"u":744},{"a":true,"l":504,"u":789},{"a":false,"l":143,"u":647},{"a":true,"l":448,"u":790},{"a":false,"l":195,"u":294},{"a":false,"l":129,"u":149},{"a":false,"l":664,"u":774},{"a":false,"l":328,"u":693},{"a":false,"l":231,"u":380},{"a":true,"l":370,"u":805},{"a":true,"l":95,"u":680},{"a":false,"l":660,"u":771},{"a":true,"l":608,"u":839},{"a":false,"l":265,"u":518},{"a":true,"l":364,"u":806},{"a":false,"l":633,"u":974},{"a":true,"l":272,"u":430},{"a":true,"l":435,"u":512},{"a":false,"l":438,"u":639},{"a":false,"l":306,"u":794},{"a":false,"l":296,"u":943},{"a":false,"l":304,"u":886},{"a":true,"l":18,"u":411},{"a":true,"l":540,"u":801},{"a":false,"l":15,"u":239},{"a":true,"l":137,"u":426},{"a":true,"l":658,"u":959},{"a":false,"l":476,"u":827},{"a":true,"l":671,"u":945},{"a":false,"l":307,"u":791},{"a":false,"l":159,"u":839},{"a":false,"l":704,"u":868},{"a":false,"l":43,"u":315},{"a":true,"l":132,"u":821},{"a":true,"l":200,"u":980},{"a":true,"l":360,"u":959},{"a":false,"l":67,"u":592},{"a":true,"l":275,"u":802},{"a":true,"l":344,"u":886},{"a":false,"l":87,"u":819},{"a":true,"l":191,"u":822},{"a":true,"l":86,"u":240},{"a":false,"l":341,"u":924},{"a":true,"l":160,"u":179},{"a":false,"l":236,"u":741},{"a":false,"l":884,"u":967},{"a":false,"l":69,"u":176},{"a":false,"l":293,"u":814},{"a":false,"l":272,"u":936},{"a":false,"l":164,"u":226},{"a":true,"l":619,"u":821},{"a":false,"l":800,"u":957},{"a":false,"l":298,"u":672},{"a":true,"l":138,"u":693},{"a":false,"l":211,"u":824},{"a":true,"l":643,"u":844},{"a":true,"l":271,"u":525},{"a":true,"l":161,"u":613},{"a":true,"l":43,"u":680},{"a":true,"l":575,"u":583},{"a":false,"l":3,"u":208},{"a":false,"l":243,"u":968},{"a":false,"l":342,"u":867},{"a":false,"l":806,"u":847},{"a":false,"l":177,"u":247},{"a":true,"l":825,"u":841},{"a":false,"l":445,"u":445},{"a":true,"l":252,"u":916},{"a":true,"l":502,"u":843},{"a":true,"l":255,"u":888},{"a":true,"l":25,"u":318},{"a":false,"l":78,"u":479},{"a":true,"l":521,"u":637},{"a":false,"l":214,"u":966},{"a":false,"l":211,"u":911},{"a":true,"l":27,"u":327},{"a":true,"l":295,"u":584},{"a":false,"l":701,"u":921},{"a":true,"l":452,"u":804},{"a":true,"l":191,"u":843},{"a":true,"l":54,"u":451},{"a":true,"l":32,"u":934},{"a":true,"l":125,"u":302},{"a":false,"l":380,"u":897},{"a":false,"l":24,"u":984},{"a":true,"l":358,"u":542},{"a":false,"l":415,"u":418},{"a":true,"l":464,"u":479},{"a":true,"l":768,"u":960},{"a":false,"l":592,"u":775},{"a":false,"l":246,"u":759},{"a":false,"l":169,"u":704},{"a":true,"l":290,"u":308},{"a":true,"l":173,"u":692},{"a":true,"l":121,"u":866},{"a":true,"l":246,"u":307},{"a":true,"l":25,"u":263},{"a":true,"l":125,"u":577},{"a":true,"l":74,"u":324},{"a":true,"l":115,"u":433},{"a":true,"l":491,"u":969},{"a":true,"l":630,"u":885},{"a":false,"l":458,"u":736},{"a":true,"l":810,"u":982},{"a":true,"l":548,"u":776},{"a":false,"l":903,"u":967},{"a":false,"l":57,"u":888},{"a":true,"l":367,"u":467},{"a":true,"l":168,"u":816},{"a":false,"l":18,"u":694},{"a":true,"l":22,"u":136},{"a":false,"l":353,"u":694},{"a":true,"l":148,"u":966},{"a":false,"l":188,"u":369},{"a":false,"l":185,"u":824},{"a":true,"l":757,"u":936},{"a":true,"l":199,"u":231},{"a":true,"l":499,"u":731},{"a":true,"l":566,"u":893},{"a":false,"l":161,"u":266},{"a":false,"l":69,"u":508},{"a":false,"l":473,"u":817},{"a":false,"l":117,"u":179},{"a":true,"l":79,"u":917},{"a":true,"l":261,"u":457},{"a":true,"l":530,"u":967},{"a":true,"l":130,"u":168},{"a":true,"l":124,"u":999},{"a":true,"l":171,"u":832},{"a":false,"l":118,"u":319},{"a":false,"l":21,"u":31},{"a":false,"l":128,"u":511},{"a":false,"l":151,"u":782},{"a":false,"l":8,"u":50},{"a":false,"l":67,"u":884},{"a":true,"l":62,"u":660},{"a":false,"l":517,"u":857},{"a":false,"l":634,"u":703},{"a":true,"l":207,"u":409},{"a":true,"l":35,"u":269},{"a":false,"l":533,"u":860},{"a":true,"l":88,"u":212},{"a":true,"l":258,"u":484},{"a":false,"l":195,"u":809},{"a":false,"l":253,"u":517},{"a":true,"l":744,"u":794},{"a":true,"l":544,"u":588},{"a":true,"l":179,"u":431},{"a":true,"l":898,"u":932},{"a":true,"l":112,"u":719},{"a":false,"l":170,"u":474},{"a":false,"l":130,"u":866},{"a":true,"l":26,"u":505},{"a":true,"l":188,"u":414},{"a":false,"l":484,"u":756},{"a":true,"l":586,"u":885},{"a":false,"l":634,"u":751},{"a":false,"l":31,"u":206},{"a":true,"l":613,"u":889},{"a":false,"l":150,"u":719},{"a":false,"l":323,"u":580},{"a":false,"l":31,"u":815},{"a":false,"l":209,"u":884},{"a":true,"l":426,"u":911},{"a":false,"l":479,"u":690},{"a":false,"l":89,"u":445},{"a":true,"l":430,"u":436},{"a":false,"l":47,"u":442},{"a":true,"l":552,"u":652},{"a":false,"l":482,"u":920},{"a":false,"l":680,"u":942},{"a":true,"l":161,"u":168},{"a":false,"l":294,"u":415},{"a":true,"l":117,"u":428},{"a":true,"l":87,"u":359},{"a":false,"l":105,"u":447},{"a":true,"l":497,"u":618},{"a":true,"l":58,"u":436},{"a":true,"l":537,"u":676},{"a":true,"l":605,"u":667},{"a":false,"l":146,"u":293},{"a":false,"l":93,"u":388},{"a":true,"l":94,"u":794},{"a":true,"l":181,"u":301},{"a":false,"l":298,"u":883},{"a":true,"l":787,"u":817},{"a":true,"l":124,"u":899},{"a":true,"l":128,"u":311},{"a":true,"l":260,"u":373},{"a":false,"l":220,"u":260},{"a":true,"l":810,"u":958},{"a":true,"l":407,"u":873},{"a":false,"l":226,"u":653},{"a":true,"l":362,"u":764},{"a":false,"l":892,"u":978},{"a":false,"l":479,"u":510},{"a":false,"l":453,"u":915},{"a":false,"l":349,"u":629},{"a":false,"l":449,"u":641},{"a":true,"l":145,"u":624},{"a":false,"l":431,"u":989},{"a":false,"l":103,"u":819},{"a":false,"l":316,"u":688},{"a":true,"l":508,"u":959},{"a":true,"l":34,"u":92},{"a":false,"l":22,"u":723},{"a":true,"l":101,"u":106},{"a":false,"l":604,"u":752},{"a":false,"l":866,"u":901},{"a":false,"l":26,"u":502},{"a":true,"l":254,"u":554},{"a":false,"l":33,"u":454},{"a":false,"l":449,"u":956},{"a":false,"l":62,"u":394},{"a":true,"l":144,"u":784},{"a":true,"l":597,"u":782},{"a":true,"l":204,"u":554},{"a":false,"l":260,"u":914},{"a":false,"l":795,"u":803},{"a":false,"l":459,"u":738},{"a":true,"l":512,"u":914},{"a":false,"l":613,"u":931},{"a":true,"l":289,"u":576},{"a":true,"l":179,"u":448},{"a":true,"l":424,"u":900},{"a":true,"l":215,"u":397},{"a":true,"l":81,"u":589},{"a":false,"l":459,"u":558},{"a":false,"l":109,"u":384},{"a":false,"l":188,"u":798},{"a":true,"l":133,"u":240},{"a":true,"l":756,"u":951},{"a":false,"l":113,"u":503},{"a":true,"l":351,"u":692},{"a":false,"l":554,"u":749},{"a":true,"l":508,"u":826},{"a":true,"l":450,"u":758},{"a":false,"l":857,"u":996},{"a":true,"l":204,"u":298},{"a":false,"l":768,"u":830},{"a":false,"l":720,"u":754},{"a":true,"l":123,"u":915},{"a":true,"l":21,"u":314},{"a":true,"l":1,"u":296},{"a":false,"l":636,"u":961},{"a":false,"l":538,"u":963},{"a":true,"l":312,"u":706},{"a":false,"l":223,"u":810},{"a":true,"l":236,"u":627},{"a":true,"l":385,"u":990},{"a":false,"l":683,"u":801},{"a":true,"l":426,"u":996},{"a":false,"l":259,"u":322},{"a":true,"l":735,"u":858},{"a":false,"l":29,"u":337},{"a":true,"l":148,"u":890},{"a":false,"l":486,"u":491},{"a":false,"l":34,"u":436},{"a":false,"l":158,"u":610},{"a":true,"l":350,"u":709},{"a":true,"l":584,"u":915},{"a":false,"l":482,"u":704},{"a":true,"l":11,"u":991},{"a":true,"l":824,"u":840},{"a":true,"l":13,"u":578},{"a":false,"l":243,"u":976},{"a":false,"l":193,"u":419},{"a":false,"l":529,"u":824},{"a":true,"l":403,"u":702},{"a":true,"l":166,"u":646},{"a":false,"l":187,"u":516},{"a":false,"l":824,"u":965},{"a":false,"l":518,"u":522},{"a":false,"l":116,"u":694},{"a":true,"l":146,"u":243},{"a":true,"l":151,"u":841},{"a":true,"l":463,"u":532},{"a":true,"l":556,"u":882},{"a":false,"l":113,"u":218},{"a":true,"l":331,"u":959},{"a":false,"l":533,"u":928},{"a":true,"l":61,"u":933},{"a":true,"l":385,"u":508},{"a":true,"l":876,"u":890},{"a":false,"l":486,"u":571},{"a":true,"l":95,"u":136},{"a":true,"l":147,"u":704},{"a":true,"l":323,"u":910},{"a":false,"l":217,"u":450},{"a":false,"l":98,"u":316},{"a":false,"l":259,"u":370},{"a":false,"l":245,"u":390},{"a":true,"l":312,"u":652},{"a":true,"l":522,"u":822},{"a":true,"l":375,"u":560},{"a":false,"l":778,"u":972},{"a":false,"l":276,"u":455},{"a":false,"l":22,"u":646},{"a":true,"l":697,"u":839},{"a":true,"l":208,"u":802},{"a":false,"l":865,"u":882},{"a":false,"l":106,"u":356},{"a":true,"l":842,"u":983},{"a":false,"l":68,"u":720},{"a":false,"l":38,"u":63},{"a":true,"l":274,"u":839},{"a":true,"l":165,"u":577},{"a":false,"l":272,"u":462},{"a":true,"l":289,"u":873},{"a":false,"l":75,"u":482},{"a":false,"l":85,"u":465},{"a":true,"l":582,"u":969},{"a":false,"l":328,"u":391},{"a":true,"l":130,"u":430},{"a":false,"l":360,"u":772},{"a":false,"l":3,"u":880},{"a":true,"l":69,"u":751},{"a":true,"l":388,"u":767},{"a":true,"l":4,"u":164},{"a":true,"l":133,"u":304},{"a":false,"l":73,"u":921},{"a":true,"l":618,"u":929},{"a":true,"l":29,"u":921},{"a":false,"l":782,"u":930},{"a":true,"l":3,"u":517},{"a":true,"l":337,"u":736},{"a":true,"l":176,"u":609},{"a":false,"l":545,"u":624},{"a":false,"l":235,"u":837},{"a":false,"l":83,"u":423},{"a":true,"l":505,"u":641},{"a":true,"l":641,"u":949},{"a":true,"l":180,"u":481},{"a":true,"l":728,"u":870},{"a":false,"l":121,"u":894},{"a":true,"l":294,"u":603},{"a":false,"l":62,"u":570},{"a":false,"l":472,"u":510},{"a":false,"l":218,"u":698},{"a":true,"l":801,"u":838},{"a":false,"l":718,"u":787},{"a":true,"l":71,"u":341},{"a":true,"l":309,"u":646},{"a":false,"l":139,"u":635},{"a":true,"l":893,"u":941},{"a":false,"l":150,"u":984},{"a":false,"l":754,"u":851},{"a":false,"l":509,"u":672},{"a":false,"l":48,"u":478},{"a":true,"l":660,"u":771},{"a":true,"l":137,"u":478},{"a":true,"l":421,"u":729},{"a":true,"l":132,"u":560},{"a":true,"l":180,"u":778},{"a":true,"l":737,"u":790},{"a":true,"l":175,"u":801},{"a":true,"l":201,"u":344},{"a":false,"l":293,"u":731},{"a":false,"l":8,"u":226},{"a":false,"l":489,"u":785},{"a":false,"l":450,"u":973},{"a":false,"l":442,"u":787},{"a":true,"l":550,"u":717},{"a":false,"l":257,"u":829},{"a":true,"l":772,"u":897},{"a":true,"l":402,"u":634},{"a":true,"l":417,"u":541},{"a":false,"l":272,"u":807},{"a":true,"l":25,"u":280},{"a":false,"l":2,"u":867},{"a":true,"l":207,"u":730},{"a":true,"l":44,"u":855},{"a":false,"l":503,"u":988},{"a":false,"l":489,"u":689},{"a":true,"l":718,"u":799},{"a":false,"l":385,"u":891},{"a":false,"l":212,"u":736},{"a":false,"l":679,"u":933},{"a":true,"l":534,"u":938},{"a":false,"l":184,"u":310},{"a":false,"l":259,"u":467},{"a":true,"l":237,"u":933},{"a":true,"l":121,"u":553},{"a":true,"l":148,"u":153},{"a":false,"l":506,"u":872},{"a":true,"l":684,"u":850},{"a":true,"l":524,"u":921},{"a":true,"l":51,"u":326},{"a":false,"l":443,"u":543},{"a":true,"l":663,"u":991},{"a":true,"l":96,"u":238},{"a":false,"l":58,"u":717},{"a":false,"l":262,"u":424},{"a":false,"l":18,"u":492},{"a":false,"l":358,"u":655},{"a":true,"l":88,"u":815},{"a":true,"l":482,"u":713},{"a":false,"l":201,"u":650},{"a":true,"l":363,"u":906},{"a":true,"l":397,"u":451},{"a":false,"l":16,"u":486},{"a":true,"l":299,"u":790},{"a":false,"l":419,"u":620},{"a":false,"l":278,"u":288},{"a":true,"l":679,"u":980},{"a":false,"l":671,"u":734},{"a":true,"l":99,"u":869},{"a":false,"l":220,"u":794},{"a":true,"l":229,"u":438},{"a":true,"l":430,"u":989},{"a":true,"l":734,"u":766},{"a":false,"l":366,"u":419},{"a":false,"l":76,"u":163},{"a":true,"l":355,"u":869},{"a":false,"l":74,"u":461},{"a":true,"l":220,"u":895},{"a":true,"l":161,"u":459},{"a":false,"l":348,"u":812},{"a":false,"l":92,"u":161},{"a":false,"l":343,"u":688},{"a":true,"l":706,"u":710},{"a":false,"l":326,"u":512},{"a":true,"l":618,"u":940},{"a":false,"l":859,"u":965},{"a":true,"l":17,"u":240},{"a":true,"l":54,"u":868},{"a":true,"l":625,"u":675},{"a":true,"l":266,"u":303},{"a":true,"l":678,"u":736},{"a":true,"l":186,"u":936},{"a":false,"l":194,"u":670},{"a":true,"l":54,"u":118},{"a":false,"l":180,"u":594},{"a":true,"l":184,"u":575},{"a":false,"l":603,"u":825},{"a":false,"l":185,"u":220},{"a":false,"l":88,"u":736},{"a":false,"l":333,"u":386},{"a":false,"l":10,"u":640},{"a":false,"l":287,"u":751},{"a":true,"l":687,"u":889},{"a":false,"l":163,"u":643},{"a":false,"l":4,"u":28},{"a":true,"l":22,"u":954},{"a":true,"l":18,"u":563},{"a":false,"l":66,"u":237},{"a":false,"l":428,"u":892},{"a":true,"l":152,"u":576},{"a":false,"l":98,"u":730},{"a":true,"l":327,"u":857},{"a":false,"l":337,"u":685},{"a":false,"l":316,"u":693},{"a":false,"l":221,"u":458},{"a":true,"l":364,"u":740},{"a":false,"l":499,"u":840},{"a":false,"l":225,"u":295},{"a":false,"l":143,"u":681},{"a":true,"l":138,"u":454},{"a":true,"l":79,"u":229},{"a":true,"l":434,"u":865},{"a":false,"l":175,"u":820},{"a":false,"l":390,"u":765},{"a":false,"l":357,"u":860},{"a":false,"l":152,"u":600},{"a":false,"l":321,"u":371},{"a":true,"l":263,"u":942},{"a":false,"l":359,"u":895},{"a":true,"l":515,"u":924},{"a":true,"l":427,"u":773},{"a":false,"l":470,"u":973},{"a":true,"l":239,"u":255},{"a":false,"l":678,"u":705},{"a":false,"l":373,"u":673},{"a":false,"l":458,"u":749},{"a":false,"l":257,"u":791},{"a":true,"l":403,"u":936},{"a":false,"l":23,"u":961},{"a":true,"l":209,"u":582},{"a":true,"l":27,"u":126},{"a":false,"l":140,"u":193},{"a":true,"l":375,"u":554},{"a":false,"l":314,"u":584},{"a":false,"l":581,"u":802},{"a":false,"l":139,"u":771},{"a":true,"l":584,"u":790},{"a":true,"l":449,"u":624},{"a":false,"l":119,"u":249},{"a":false,"l":494,"u":998},{"a":true,"l":299,"u":432},{"a":true,"l":310,"u":338},{"a":false,"l":254,"u":719},{"a":true,"l":227,"u":735},{"a":false,"l":126,"u":598},{"a":false,"l":349,"u":375},{"a":false,"l":452,"u":652},{"a":false,"l":33,"u":732},{"a":true,"l":739,"u":813},{"a":true,"l":871,"u":890},{"a":true,"l":884,"u":931},{"a":false,"l":64,"u":221},{"a":false,"l":452,"u":522},{"a":true,"l":718,"u":908},{"a":true,"l":521,"u":861},{"a":true,"l":216,"u":225},{"a":false,"l":332,"u":443},{"a":false,"l":444,"u":742},{"a":true,"l":762,"u":916},{"a":true,"l":671,"u":871},{"a":true,"l":271,"u":542},{"a":true,"l":16,"u":354},{"a":false,"l":23,"u":742},{"a":true,"l":64,"u":112},{"a":true,"l":470,"u":581},{"a":true,"l":614,"u":677},{"a":false,"l":170,"u":671},{"a":true,"l":417,"u":822},{"a":false,"l":439,"u":890},{"a":true,"l":253,"u":487},{"a":false,"l":310,"u":376},{"a":false,"l":319,"u":744},{"a":false,"l":327,"u":515},{"a":true,"l":322,"u":725},{"a":true,"l":209,"u":936},{"a":false,"l":627,"u":887},{"a":false,"l":189,"u":238},{"a":false,"l":637,"u":956},{"a":true,"l":502,"u":521},{"a":false,"l":512,"u":941},{"a":true,"l":617,"u":634},{"a":true,"l":222,"u":577},{"a":true,"l":259,"u":397},{"a":true,"l":23,"u":125},{"a":true,"l":52,"u":494},{"a":true,"l":312,"u":730},{"a":false,"l":725,"u":845},{"a":false,"l":624,"u":673},{"a":true,"l":420,"u":621},{"a":true,"l":616,"u":819},{"a":true,"l":119,"u":820},{"a":true,"l":671,"u":761},{"a":false,"l":254,"u":811},{"a":true,"l":232,"u":511},{"a":false,"l":34,"u":911},{"a":false,"l":425,"u":636},{"a":true,"l":77,"u":710},{"a":false,"l":324,"u":529},{"a":true,"l":388,"u":888},{"a":true,"l":179,"u":432},{"a":false,"l":108,"u":684},{"a":false,"l":223,"u":821},{"a":true,"l":205,"u":504},{"a":true,"l":346,"u":702},{"a":true,"l":300,"u":878},{"a":true,"l":894,"u":944},{"a":false,"l":374,"u":518},{"a":true,"l":191,"u":299},{"a":true,"l":207,"u":386},{"a":false,"l":668,"u":950},{"a":true,"l":246,"u":757},{"a":false,"l":858,"u":875},{"a":true,"l":19,"u":287},{"a":true,"l":107,"u":592},{"a":false,"l":327,"u":999},{"a":false,"l":194,"u":282},{"a":true,"l":33,"u":624},{"a":true,"l":642,"u":756},{"a":false,"l":1,"u":600},{"a":false,"l":648,"u":836},{"a":true,"l":93,"u":532},{"a":true,"l":413,"u":849},{"a":false,"l":209,"u":218},{"a":true,"l":442,"u":901},{"a":false,"l":207,"u":831},{"a":true,"l":777,"u":992},{"a":true,"l":329,"u":723},{"a":true,"l":120,"u":482},{"a":true,"l":583,"u":905},{"a":false,"l":181,"u":588},{"a":true,"l":603,"u":974},{"a":true,"l":532,"u":740},{"a":true,"l":539,"u":810},{"a":true,"l":549,"u":923},{"a":false,"l":210,"u":453},{"a":true,"l":572,"u":972},{"a":false,"l":212,"u":882},{"a":false,"l":242,"u":646},{"a":false,"l":483,"u":752},{"a":true,"l":290,"u":750},{"a":false,"l":80,"u":824},{"a":false,"l":11,"u":17},{"a":false,"l":324,"u":503},{"a":false,"l":47,"u":930},{"a":true,"l":91,"u":708},{"a":false,"l":458,"u":978},{"a":false,"l":49,"u":633},{"a":false,"l":434,"u":834},{"a":true,"l":72,"u":161},{"a":false,"l":295,"u":493},{"a":false,"l":122,"u":140},{"a":true,"l":318,"u":907},{"a":false,"l":660,"u":896},{"a":false,"l":22,"u":241},{"a":false,"l":687,"u":714},{"a":false,"l":294,"u":527},{"a":true,"l":30,"u":125},{"a":true,"l":303,"u":629},{"a":true,"l":1,"u":697},{"a":true,"l":709,"u":856},{"a":true,"l":3,"u":758},{"a":true,"l":632,"u":841},{"a":true,"l":140,"u":511},{"a":true,"l":555,"u":897},{"a":true,"l":499,"u":523},{"a":true,"l":3,"u":825},{"a":false,"l":24,"u":892},{"a":true,"l":159,"u":417},{"a":true,"l":802,"u":823},{"a":false,"l":127,"u":355},{"a":false,"l":414,"u":871},{"a":true,"l":237,"u":297},{"a":false,"l":389,"u":765},{"a":false,"l":28,"u":173},{"a":false,"l":29,"u":498},{"a":true,"l":358,"u":571},{"a":true,"l":33,"u":117},{"a":true,"l":9,"u":583},{"a":false,"l":13,"u":659},{"a":false,"l":534,"u":577},{"a":false,"l":5,"u":478},{"a":false,"l":190,"u":854},{"a":true,"l":687,"u":772},{"a":false,"l":271,"u":477},{"a":true,"l":587,"u":635},{"a":true,"l":244,"u":869},{"a":false,"l":26,"u":880},{"a":true,"l":135,"u":662},{"a":true,"l":594,"u":903},{"a":true,"l":43,"u":184},{"a":true,"l":346,"u":832},{"a":false,"l":517,"u":923},{"a":true,"l":427,"u":487},{"a":false,"l":155,"u":318},{"a":true,"l":70,"u":293},{"a":false,"l":171,"u":489},{"a":true,"l":786,"u":990},{"a":true,"l":34,"u":140},{"a":true,"l":12,"u":137},{"a":false,"l":116,"u":757},{"a":false,"l":132,"u":370},{"a":true,"l":82,"u":881},{"a":false,"l":496,"u":854},{"a":false,"l":889,"u":995},{"a":false,"l":183,"u":607},{"a":true,"l":950,"u":956},{"a":true,"l":274,"u":876},{"a":false,"l":806,"u":950},{"a":false,"l":533,"u":557},{"a":false,"l":328,"u":825},{"a":false,"l":164,"u":295},{"a":true,"l":421,"u":645},{"a":true,"l":898,"u":935},{"a":false,"l":688,"u":787},{"a":false,"l":703,"u":760},{"a":true,"l":784,"u":879},{"a":false,"l":91,"u":678},{"a":true,"l":47,"u":695},{"a":true,"l":686,"u":788},{"a":true,"l":389,"u":578},{"a":false,"l":627,"u":784},{"a":false,"l":453,"u":886},{"a":true,"l":108,"u":948},{"a":true,"l":448,"u":890},{"a":true,"l":681,"u":766},{"a":false,"l":384,"u":997},{"a":false,"l":637,"u":652},{"a":false,"l":245,"u":338},{"a":false,"l":737,"u":740},{"a":false,"l":131,"u":631},{"a":true,"l":354,"u":925},{"a":true,"l":317,"u":517},{"a":false,"l":893,"u":999},{"a":false,"l":547,"u":806},{"a":true,"l":61,"u":304},{"a":false,"l":97,"u":100},{"a":true,"l":100,"u":116},{"a":true,"l":520,"u":543},{"a":false,"l":582,"u":589},{"a":true,"l":367,"u":632},{"a":true,"l":267,"u":373},{"a":true,"l":87,"u":586},{"a":true,"l":424,"u":682},{"a":true,"l":179,"u":835},{"a":true,"l":19,"u":644},{"a":false,"l":283,"u":964},{"a":false,"l":209,"u":595},{"a":false,"l":400,"u":524},{"a":false,"l":49,"u":528},{"a":false,"l":167,"u":436},{"a":false,"l":200,"u":800},{"a":false,"l":326,"u":495},{"a":false,"l":446,"u":549},{"a":false,"l":882,"u":946},{"a":true,"l":738,"u":999},{"a":true,"l":447,"u":885},{"a":false,"l":478,"u":802},{"a":false,"l":414,"u":849},{"a":true,"l":227,"u":235},{"a":false,"l":516,"u":805},{"a":false,"l":126,"u":746},{"a":false,"l":765,"u":930},{"a":true,"l":159,"u":338},{"a":false,"l":160,"u":586},{"a":true,"l":252,"u":866},{"a":true,"l":311,"u":743},{"a":true,"l":319,"u":375},{"a":true,"l":308,"u":484},{"a":true,"l":42,"u":489},{"a":true,"l":53,"u":295},{"a":false,"l":66,"u":263},{"a":true,"l":289,"u":569},{"a":false,"l":27,"u":683},{"a":false,"l":526,"u":951},{"a":true,"l":506,"u":569},{"a":false,"l":63,"u":455},{"a":false,"l":305,"u":445},{"a":true,"l":591,"u":654},{"a":false,"l":67,"u":870},{"a":false,"l":932,"u":985},{"a":false,"l":556,"u":915},{"a":true,"l":533,"u":759},{"a":false,"l":102,"u":948},{"a":false,"l":120,"u":661},{"a":true,"l":399,"u":403},{"a":false,"l":54,"u":776},{"a":false,"l":308,"u":849},{"a":true,"l":764,"u":892},{"a":false,"l":12,"u":916},{"a":false,"l":167,"u":292},{"a":true,"l":63,"u":450},{"a":false,"l":69,"u":699},{"a":true,"l":78,"u":285},{"a":true,"l":419,"u":894},{"a":true,"l":291,"u":447},{"a":true,"l":300,"u":506},{"a":true,"l":282,"u":969},{"a":false,"l":25,"u":837},{"a":false,"l":84,"u":587},{"a":true,"l":333,"u":775},{"a":true,"l":502,"u":520},{"a":true,"l":131,"u":440},{"a":true,"l":288,"u":829},{"a":false,"l":770,"u":826},{"a":false,"l":410,"u":670},{"a":true,"l":178,"u":379},{"a":true,"l":702,"u":964},{"a":true,"l":167,"u":377},{"a":false,"l":316,"u":974},{"a":false,"l":261,"u":557},{"a":true,"l":109,"u":303},{"a":false,"l":192,"u":773},{"a":true,"l":265,"u":558},{"a":false,"l":308,"u":342},{"a":true,"l":215,"u":386},{"a":true,"l":785,"u":812},{"a":false,"l":771,"u":915},{"a":false,"l":355,"u":621},{"a":false,"l":500,"u":973},{"a":true,"l":488,"u":849},{"a":true,"l":280,"u":492},{"a":false,"l":516,"u":747},{"a":true,"l":147,"u":602},{"a":true,"l":553,"u":856},{"a":false,"l":310,"u":653},{"a":true,"l":71,"u":828},{"a":true,"l":84,"u":822},{"a":false,"l":110,"u":569},{"a":false,"l":260,"u":420},{"a":true,"l":588,"u":835},{"a":true,"l":161,"u":855},{"a":false,"l":550,"u":968},{"a":false,"l":99,"u":493},{"a":false,"l":66,"u":525},{"a":true,"l":386,"u":850},{"a":true,"l":454,"u":585},{"a":true,"l":618,"u":822},{"a":false,"l":172,"u":881},{"a":true,"l":101,"u":619},{"a":true,"l":331,"u":600},{"a":true,"l":568,"u":723},{"a":false,"l":7,"u":901},{"a":true,"l":318,"u":607},{"a":false,"l":598,"u":682},{"a":true,"l":108,"u":239},{"a":true,"l":287,"u":889},{"a":false,"l":255,"u":743},{"a":false,"l":18,"u":737},{"a":false,"l":233,"u":666},{"a":true,"l":283,"u":672},{"a":false,"l":116,"u":611},{"a":false,"l":270,"u":492},{"a":false,"l":338,"u":600},{"a":false,"l":138,"u":326},{"a":true,"l":9,"u":644},{"a":false,"l":1,"u":473},{"a":true,"l":377,"u":527},{"a":true,"l":184,"u":761},{"a":true,"l":49,"u":983},{"a":false,"l":265,"u":925},{"a":true,"l":448,"u":862},{"a":false,"l":111,"u":835},{"a":false,"l":23,"u":904},{"a":false,"l":227,"u":689},{"a":false,"l":261,"u":362},{"a":true,"l":550,"u":928},{"a":true,"l":487,"u":689},{"a":true,"l":353,"u":971},{"a":false,"l":47,"u":331},{"a":true,"l":147,"u":192},{"a":true,"l":112,"u":787},{"a":true,"l":521,"u":805},{"a":false,"l":12,"u":92},{"a":false,"l":642,"u":994},{"a":true,"l":207,"u":417},{"a":false,"l":108,"u":369},{"a":false,"l":52,"u":193},{"a":true,"l":544,"u":901},{"a":true,"l":208,"u":986},{"a":true,"l":20,"u":167},{"a":true,"l":648,"u":972},{"a":true,"l":113,"u":358},{"a":false,"l":22,"u":433},{"a":true,"l":536,"u":669},{"a":true,"l":23,"u":823},{"a":true,"l":908,"u":923},{"a":true,"l":445,"u":473},{"a":true,"l":156,"u":370},{"a":true,"l":435,"u":924},{"a":false,"l":737,"u":780},{"a":true,"l":451,"u":942},{"a":false,"l":210,"u":923},{"a":true,"l":456,"u":835},{"a":true,"l":321,"u":497},{"a":false,"l":554,"u":976},{"a":false,"l":45,"u":726},{"a":false,"l":214,"u":720},{"a":true,"l":1,"u":273},{"a":false,"l":186,"u":324},{"a":false,"l":123,"u":444},{"a":true,"l":152,"u":998},{"a":true,"l":51,"u":467},{"a":true,"l":690,"u":872},{"a":true,"l":694,"u":971},{"a":true,"l":386,"u":616},{"a":false,"l":312,"u":349},{"a":false,"l":102,"u":218},{"a":false,"l":571,"u":872},{"a":true,"l":640,"u":942},{"a":true,"l":372,"u":516},{"a":true,"l":692,"u":717},{"a":false,"l":434,"u":671},{"a":true,"l":401,"u":624},{"a":false,"l":375,"u":427},{"a":false,"l":314,"u":935},{"a":true,"l":159,"u":874},{"a":false,"l":429,"u":854},{"a":false,"l":339,"u":964},{"a":false,"l":551,"u":847},{"a":true,"l":887,"u":950},{"a":false,"l":38,"u":677},{"a":false,"l":412,"u":874},{"a":false,"l":454,"u":534},{"a":false,"l":315,"u":634},{"a":false,"l":308,"u":762},{"a":false,"l":113,"u":496},{"a":false,"l":116,"u":776},{"a":true,"l":474,"u":834},{"a":false,"l":599,"u":618},{"a":true,"l":885,"u":947},{"a":true,"l":721,"u":918},{"a":false,"l":37,"u":425},{"a":true,"l":33,"u":392},{"a":false,"l":13,"u":736},{"a":true,"l":477,"u":847},{"a":false,"l":567,"u":927},{"a":false,"l":169,"u":299},{"a":true,"l":480,"u":502},{"a":false,"l":261,"u":888},{"a":true,"l":262,"u":831},{"a":false,"l":355,"u":709},{"a":true,"l":83,"u":349},{"a":false,"l":60,"u":952},{"a":false,"l":434,"u":473},{"a":false,"l":12,"u":149},{"a":false,"l":21,"u":376},{"a":true,"l":162,"u":381},{"a":false,"l":54,"u":646},{"a":true,"l":15,"u":157},{"a":false,"l":279,"u":421},{"a":false,"l":344,"u":632},{"a":true,"l":316,"u":971},{"a":true,"l":168,"u":182},{"a":true,"l":717,"u":762},{"a":true,"l":166,"u":271},{"a":true,"l":463,"u":814},{"a":true,"l":404,"u":924},{"a":true,"l":1,"u":967},{"a":false,"l":742,"u":936},{"a":true,"l":454,"u":604},{"a":true,"l":432,"u":585},{"a":false,"l":317,"u":983},{"a":true,"l":173,"u":928},{"a":true,"l":114,"u":854},{"a":true,"l":13,"u":431},{"a":false,"l":9,"u":980},{"a":false,"l":129,"u":309},{"a":false,"l":374,"u":803},{"a":true,"l":330,"u":756},{"a":true,"l":251,"u":551},{"a":false,"l":105,"u":940},{"a":true,"l":3,"u":622},{"a":false,"l":196,"u":730},{"a":true,"l":375,"u":712},{"a":false,"l":409,"u":418},{"a":true,"l":652,"u":774},{"a":false,"l":37,"u":43},{"a":false,"l":413,"u":451},{"a":true,"l":308,"u":604},{"a":true,"l":449,"u":995},{"a":false,"l":447,"u":528},{"a":false,"l":54,"u":122},{"a":false,"l":77,"u":277},{"a":false,"l":88,"u":303},{"a":false,"l":60,"u":662},{"a":true,"l":139,"u":285},{"a":true,"l":18,"u":614},{"a":false,"l":539,"u":758},{"a":false,"l":145,"u":467},{"a":true,"l":569,"u":902},{"a":true,"l":103,"u":738},{"a":true,"l":393,"u":660},{"a":true,"l":446,"u":779},{"a":true,"l":255,"u":934},{"a":true,"l":61,"u":306},{"a":false,"l":422,"u":780},{"a":true,"l":664,"u":821},{"a":true,"l":509,"u":953},{"a":true,"l":329,"u":777},{"a":false,"l":602,"u":643},{"a":false,"l":219,"u":287},{"a":true,"l":63,"u":387},{"a":true,"l":212,"u":324},{"a":true,"l":505,"u":789},{"a":false,"l":153,"u":549},{"a":true,"l":649,"u":750},{"a":false,"l":378,"u":754},{"a":false,"l":409,"u":866},{"a":true,"l":25,"u":476},{"a":true,"l":130,"u":512},{"a":true,"l":538,"u":685},{"a":true,"l":544,"u":811},{"a":false,"l":97,"u":195},{"a":true,"l":260,"u":327},{"a":false,"l":570,"u":999},{"a":false,"l":98,"u":157},{"a":false,"l":704,"u":892},{"a":true,"l":736,"u":855},{"a":false,"l":758,"u":917},{"a":false,"l":506,"u":804},{"a":true,"l":569,"u":759},{"a":true,"l":312,"u":568},{"a":true,"l":533,"u":829},{"a":true,"l":270,"u":938},{"a":true,"l":109,"u":242},{"a":true,"l":185,"u":370},{"a":false,"l":390,"u":801},{"a":false,"l":38,"u":669},{"a":true,"l":37,"u":67},{"a":true,"l":40,"u":781},{"a":false,"l":496,"u":507},{"a":false,"l":575,"u":650},{"a":true,"l":461,"u":946},{"a":true,"l":70,"u":79},{"a":true,"l":148,"u":742},{"a":true,"l":122,"u":440},{"a":false,"l":393,"u":935},{"a":false,"l":217,"u":746},{"a":false,"l":74,"u":100},{"a":true,"l":646,"u":816},{"a":false,"l":158,"u":663},{"a":true,"l":325,"u":694},{"a":false,"l":79,"u":610},{"a":false,"l":359,"u":877},{"a":true,"l":641,"u":644},{"a":true,"l":83,"u":828},{"a":true,"l":599,"u":964},{"a":true,"l":301,"u":853},{"a":false,"l":342,"u":627},{"a":false,"l":657,"u":669},{"a":true,"l":555,"u":980},{"a":false,"l":38,"u":631},{"a":true,"l":20,"u":449},{"a":false,"l":77,"u":723},{"a":true,"l":71,"u":457},{"a":false,"l":45,"u":262},{"a":true,"l":87,"u":981},{"a":false,"l":40,"u":852},{"a":false,"l":114,"u":315},{"a":true,"l":146,"u":711},{"a":true,"l":332,"u":671},{"a":true,"l":619,"u":935},{"a":false,"l":188,"u":319},{"a":false,"l":664,"u":918},{"a":false,"l":331,"u":579},{"a":true,"l":490,"u":553},{"a":true,"l":313,"u":888},{"a":false,"l":614,"u":854},{"a":true,"l":323,"u":367},{"a":false,"l":457,"u":611},{"a":true,"l":162,"u":290},{"a":false,"l":189,"u":921},{"a":false,"l":80,"u":480},{"a":true,"l":738,"u":960},{"a":false,"l":317,"u":356},{"a":false,"l":749,"u":820},{"a":false,"l":635,"u":753},{"a":false,"l":22,"u":572},{"a":true,"l":471,"u":620},{"a":false,"l":867,"u":878},{"a":true,"l":176,"u":980},{"a":false,"l":295,"u":407},{"a":true,"l":608,"u":921},{"a":true,"l":648,"u":931},{"a":false,"l":668,"u":713},{"a":true,"l":438,"u":925},{"a":true,"l":45,"u":738},{"a":false,"l":327,"u":403},{"a":false,"l":920,"u":972},{"a":false,"l":314,"u":510},{"a":false,"l":503,"u":993},{"a":true,"l":348,"u":725},{"a":false,"l":264,"u":969},{"a":true,"l":194,"u":677},{"a":false,"l":607,"u":646},{"a":true,"l":145,"u":616},{"a":false,"l":224,"u":769},{"a":true,"l":170,"u":405},{"a":true,"l":397,"u":722},{"a":false,"l":201,"u":937},{"a":false,"l":633,"u":644},{"a":false,"l":16,"u":336},{"a":false,"l":32,"u":281},{"a":true,"l":533,"u":971},{"a":true,"l":230,"u":301},{"a":false,"l":344,"u":648},{"a":true,"l":575,"u":853},{"a":false,"l":301,"u":902},{"a":false,"l":395,"u":690},{"a":true,"l":387,"u":845},{"a":true,"l":275,"u":665},{"a":false,"l":340,"u":355},{"a":false,"l":454,"u":957},{"a":true,"l":218,"u":628},{"a":true,"l":91,"u":641},{"a":true,"l":94,"u":478},{"a":false,"l":297,"u":489},{"a":true,"l":335,"u":926},{"a":false,"l":1,"u":412},{"a":true,"l":34,"u":301},{"a":true,"l":84,"u":841},{"a":false,"l":615,"u":962},{"a":false,"l":768,"u":854},{"a":false,"l":456,"u":961},{"a":false,"l":165,"u":864},{"a":true,"l":51,"u":843},{"a":true,"l":9,"u":265},{"a":true,"l":82,"u":476},{"a":false,"l":97,"u":200},{"a":false,"l":270,"u":370},{"a":false,"l":297,"u":481},{"a":false,"l":117,"u":740},{"a":true,"l":403,"u":618},{"a":false,"l":493,"u":717},{"a":false,"l":175,"u":830},{"a":true,"l":352,"u":449},{"a":true,"l":397,"u":992},{"a":true,"l":799,"u":867},{"a":true,"l":242,"u":716},{"a":false,"l":82,"u":433},{"a":true,"l":435,"u":954},{"a":true,"l":130,"u":146},{"a":false,"l":344,"u":672},{"a":true,"l":284,"u":842},{"a":true,"l":83,"u":754},{"a":false,"l":341,"u":815},{"a":true,"l":403,"u":550},{"a":true,"l":74,"u":927},{"a":true,"l":706,"u":737},{"a":false,"l":725,"u":797},{"a":false,"l":145,"u":177},{"a":false,"l":205,"u":539},{"a":false,"l":21,"u":448},{"a":true,"l":196,"u":542},{"a":true,"l":139,"u":455},{"a":false,"l":608,"u":827},{"a":false,"l":260,"u":894},{"a":false,"l":96,"u":496},{"a":false,"l":179,"u":514},{"a":false,"l":247,"u":903},{"a":false,"l":405,"u":906},{"a":false,"l":23,"u":333},{"a":true,"l":62,"u":883},{"a":true,"l":591,"u":819},{"a":false,"l":704,"u":968},{"a":true,"l":341,"u":344},{"a":false,"l":781,"u":876},{"a":false,"l":257,"u":294},{"a":false,"l":254,"u":630},{"a":true,"l":41,"u":320},{"a":false,"l":154,"u":377},{"a":false,"l":555,"u":613},{"a":false,"l":466,"u":570},{"a":true,"l":23,"u":658},{"a":false,"l":248,"u":431},{"a":false,"l":223,"u":543},{"a":true,"l":5,"u":432},{"a":false,"l":390,"u":895},{"a":false,"l":342,"u":643},{"a":false,"l":109,"u":583},{"a":false,"l":136,"u":617},{"a":true,"l":587,"u":599},{"a":true,"l":108,"u":504},{"a":true,"l":286,"u":518},{"a":false,"l":486,"u":730},{"a":true,"l":260,"u":481},{"a":true,"l":406,"u":577},{"a":false,"l":749,"u":834},{"a":true,"l":394,"u":767},{"a":false,"l":538,"u":981},{"a":true,"l":9,"u":44},{"a":true,"l":598,"u":705},{"a":false,"l":607,"u":854},{"a":true,"l":280,"u":816},{"a":true,"l":323,"u":718},{"a":false,"l":78,"u":936},{"a":true,"l":271,"u":752},{"a":true,"l":136,"u":151},{"a":false,"l":206,"u":423},{"a":true,"l":19,"u":134},{"a":false,"l":453,"u":516},{"a":false,"l":435,"u":648},{"a":true,"l":851,"u":853},{"a":false,"l":28,"u":586},{"a":true,"l":379,"u":546},{"a":true,"l":74,"u":157},{"a":false,"l":330,"u":819},{"a":false,"l":716,"u":895},{"a":false,"l":112,"u":343},{"a":true,"l":23,"u":921},{"a":false,"l":180,"u":779},{"a":false,"l":633,"u":706},{"a":true,"l":157,"u":268},{"a":true,"l":302,"u":705},{"a":false,"l":246,"u":458},{"a":true,"l":260,"u":573},{"a":false,"l":287,"u":822},{"a":true,"l":221,"u":702},{"a":false,"l":30,"u":326},{"a":true,"l":449,"u":986},{"a":true,"l":403,"u":512},{"a":true,"l":160,"u":824},{"a":true,"l":378,"u":485},{"a":false,"l":83,"u":367},{"a":true,"l":665,"u":836},{"a":false,"l":782,"u":965},{"a":false,"l":568,"u":848},{"a":true,"l":376,"u":626},{"a":true,"l":234,"u":241},{"a":true,"l":585,"u":934},{"a":true,"l":141,"u":902},{"a":true,"l":722,"u":939},{"a":true,"l":58,"u":208},{"a":false,"l":352,"u":983},{"a":true,"l":547,"u":757},{"a":false,"l":406,"u":877},{"a":false,"l":67,"u":781},{"a":true,"l":203,"u":256},{"a":true,"l":636,"u":735},{"a":true,"l":356,"u":903},{"a":true,"l":449,"u":911},{"a":false,"l":382,"u":468},{"a":true,"l":421,"u":843},{"a":false,"l":345,"u":457},{"a":true,"l":669,"u":879},{"a":true,"l":13,"u":583},{"a":false,"l":447,"u":591},{"a":false,"l":491,"u":971},{"a":false,"l":231,"u":779},{"a":false,"l":548,"u":871},{"a":false,"l":467,"u":642},{"a":false,"l":490,"u":961},{"a":true,"l":285,"u":330},{"a":false,"l":566,"u":752},{"a":false,"l":7,"u":534},{"a":false,"l":274,"u":790},{"a":false,"l":529,"u":938},{"a":false,"l":483,"u":727},{"a":false,"l":363,"u":822},{"a":true,"l":199,"u":263},{"a":false,"l":151,"u":919},{"a":true,"l":535,"u":544},{"a":true,"l":600,"u":624},{"a":true,"l":46,"u":919},{"a":true,"l":574,"u":946},{"a":false,"l":234,"u":387},{"a":false,"l":215,"u":558},{"a":true,"l":299,"u":863},{"a":false,"l":184,"u":825},{"a":false,"l":410,"u":430},{"a":false,"l":119,"u":752},{"a":true,"l":157,"u":860},{"a":true,"l":541,"u":767},{"a":false,"l":148,"u":291},{"a":false,"l":461,"u":865},{"a":true,"l":176,"u":664},{"a":false,"l":474,"u":536},{"a":false,"l":400,"u":807},{"a":true,"l":203,"u":480},{"a":true,"l":754,"u":760},{"a":false,"l":274,"u":654},{"a":true,"l":627,"u":979},{"a":false,"l":194,"u":731},{"a":true,"l":394,"u":764},{"a":true,"l":9,"u":519},{"a":false,"l":354,"u":986},{"a":true,"l":57,"u":421},{"a":true,"l":48,"u":297},{"a":false,"l":95,"u":374},{"a":false,"l":219,"u":493},{"a":true,"l":508,"u":808},{"a":false,"l":191,"u":410},{"a":false,"l":360,"u":573},{"a":true,"l":168,"u":679},{"a":false,"l":426,"u":726},{"a":false,"l":725,"u":753},{"a":false,"l":161,"u":512},{"a":false,"l":97,"u":284},{"a":false,"l":405,"u":567},{"a":false,"l":724,"u":744},{"a":true,"l":128,"u":333},{"a":false,"l":42,"u":84},{"a":false,"l":316,"u":435},{"a":true,"l":378,"u":772},{"a":true,"l":338,"u":459},{"a":false,"l":401,"u":689},{"a":false,"l":66,"u":478},{"a":false,"l":108,"u":277},{"a":false,"l":362,"u":377},{"a":false,"l":139,"u":202},{"a":true,"l":128,"u":301},{"a":true,"l":535,"u":646},{"a":false,"l":249,"u":427},{"a":false,"l":140,"u":636},{"a":false,"l":167,"u":686},{"a":false,"l":101,"u":909},{"a":false,"l":6,"u":454},{"a":true,"l":799,"u":951},{"a":false,"l":89,"u":277},{"a":true,"l":65,"u":534},{"a":false,"l":276,"u":410},{"a":false,"l":235,"u":827},{"a":true,"l":146,"u":733},{"a":true,"l":51,"u":831},{"a":false,"l":553,"u":907},{"a":false,"l":299,"u":386},{"a":true,"l":82,"u":883},{"a":false,"l":176,"u":181},{"a":false,"l":302,"u":511},{"a":true,"l":639,"u":716},{"a":true,"l":373,"u":554},{"a":false,"l":630,"u":830},{"a":true,"l":533,"u":592},{"a":true,"l":642,"u":751},{"a":true,"l":420,"u":630},{"a":false,"l":463,"u":814},{"a":false,"l":286,"u":795},{"a":false,"l":57,"u":115},{"a":false,"l":282,"u":347},{"a":true,"l":459,"u":896},{"a":true,"l":142,"u":863},{"a":true,"l":367,"u":910},{"a":false,"l":516,"u":545},{"a":false,"l":318,"u":684},{"a":true,"l":574,"u":818},{"a":false,"l":98,"u":120},{"a":false,"l":112,"u":514},{"a":false,"l":307,"u":987},{"a":true,"l":549,"u":849},{"a":true,"l":622,"u":933},{"a":false,"l":593,"u":955},{"a":true,"l":425,"u":513},{"a":false,"l":264,"u":377},{"a":true,"l":70,"u":879},{"a":false,"l":499,"u":790},{"a":true,"l":386,"u":783},{"a":true,"l":190,"u":491},{"a":false,"l":88,"u":918},{"a":false,"l":713,"u":821},{"a":true,"l":199,"u":618},{"a":false,"l":788,"u":986},{"a":false,"l":166,"u":522},{"a":true,"l":624,"u":983},{"a":true,"l":162,"u":212},{"a":false,"l":808,"u":913},{"a":true,"l":209,"u":464},{"a":true,"l":407,"u":601},{"a":false,"l":144,"u":893},{"a":true,"l":441,"u":674},{"a":true,"l":896,"u":961},{"a":true,"l":457,"u":804},{"a":false,"l":397,"u":900},{"a":false,"l":271,"u":470},{"a":true,"l":40,"u":745},{"a":true,"l":241,"u":345},{"a":false,"l":162,"u":873},{"a":true,"l":85,"u":691},{"a":true,"l":595,"u":793},{"a":true,"l":274,"u":646},{"a":true,"l":766,"u":836},{"a":true,"l":422,"u":811},{"a":false,"l":691,"u":708},{"a":false,"l":29,"u":127},{"a":false,"l":17,"u":287},{"a":true,"l":573,"u":917},{"a":false,"l":236,"u":753},{"a":true,"l":112,"u":765},{"a":false,"l":29,"u":99},{"a":false,"l":275,"u":970},{"a":true,"l":643,"u":744},{"a":true,"l":471,"u":658},{"a":true,"l":26,"u":870},{"a":false,"l":261,"u":985},{"a":false,"l":82,"u":755},{"a":true,"l":606,"u":682},{"a":false,"l":466,"u":747},{"a":false,"l":350,"u":787},{"a":false,"l":296,"u":522},{"a":true,"l":864,"u":899},{"a":false,"l":471,"u":769},{"a":false,"l":466,"u":790},{"a":false,"l":114,"u":338},{"a":true,"l":96,"u":226},{"a":false,"l":363,"u":900},{"a":true,"l":649,"u":685},{"a":false,"l":340,"u":657},{"a":false,"l":722,"u":756},{"a":true,"l":387,"u":851},{"a":false,"l":36,"u":759},{"a":false,"l":112,"u":760},{"a":true,"l":175,"u":711},{"a":true,"l":365,"u":759},{"a":false,"l":142,"u":853},{"a":true,"l":740,"u":762},{"a":true,"l":320,"u":749},{"a":true,"l":351,"u":579},{"a":false,"l":149,"u":426},{"a":false,"l":578,"u":938},{"a":false,"l":582,"u":669},{"a":true,"l":804,"u":818},{"a":false,"l":377,"u":696},{"a":true,"l":258,"u":733},{"a":true,"l":780,"u":880},{"a":false,"l":1,"u":658},{"a":true,"l":345,"u":831},{"a":true,"l":430,"u":559},{"a":false,"l":205,"u":711},{"a":false,"l":788,"u":919},{"a":true,"l":302,"u":713},{"a":false,"l":395,"u":842},{"a":false,"l":281,"u":627},{"a":true,"l":187,"u":955},{"a":true,"l":185,"u":612},{"a":true,"l":531,"u":894},{"a":true,"l":222,"u":434},{"a":true,"l":887,"u":976},{"a":false,"l":278,"u":395},{"a":true,"l":319,"u":936},{"a":false,"l":536,"u":661},{"a":true,"l":176,"u":828},{"a":false,"l":154,"u":724},{"a":false,"l":331,"u":861},{"a":false,"l":820,"u":898},{"a":true,"l":577,"u":976},{"a":true,"l":130,"u":312},{"a":false,"l":93,"u":258},{"a":true,"l":139,"u":260},{"a":false,"l":443,"u":882},{"a":false,"l":200,"u":811},{"a":true,"l":636,"u":713},{"a":true,"l":592,"u":850},{"a":true,"l":26,"u":59},{"a":false,"l":631,"u":716},{"a":false,"l":153,"u":868},{"a":true,"l":143,"u":298},{"a":false,"l":187,"u":993},{"a":false,"l":739,"u":874},{"a":false,"l":484,"u":844},{"a":false,"l":554,"u":826},{"a":true,"l":544,"u":852},{"a":false,"l":144,"u":644},{"a":false,"l":388,"u":933},{"a":false,"l":789,"u":824},{"a":true,"l":290,"u":345},{"a":true,"l":254,"u":496},{"a":false,"l":59,"u":564},{"a":true,"l":331,"u":482},{"a":false,"l":548,"u":610},{"a":true,"l":348,"u":720},{"a":true,"l":479,"u":637},{"a":true,"l":216,"u":851},{"a":true,"l":79,"u":928},{"a":false,"l":358,"u":364},{"a":false,"l":98,"u":146},{"a":false,"l":740,"u":839},{"a":true,"l":35,"u":407},{"a":true,"l":12,"u":813},{"a":true,"l":154,"u":732},{"a":false,"l":203,"u":309},{"a":false,"l":466,"u":774},{"a":true,"l":374,"u":505},{"a":true,"l":344,"u":890},{"a":true,"l":618,"u":965},{"a":false,"l":375,"u":439},{"a":false,"l":547,"u":780},{"a":false,"l":629,"u":826},{"a":true,"l":102,"u":694},{"a":false,"l":592,"u":874},{"a":true,"l":216,"u":309},{"a":true,"l":281,"u":506},{"a":true,"l":206,"u":912},{"a":false,"l":114,"u":478},{"a":true,"l":126,"u":574},{"a":true,"l":391,"u":854},{"a":false,"l":191,"u":240},{"a":false,"l":458,"u":563},{"a":false,"l":282,"u":708},{"a":true,"l":75,"u":106},{"a":true,"l":470,"u":869},{"a":false,"l":152,"u":759},{"a":true,"l":717,"u":871},{"a":false,"l":124,"u":979},{"a":false,"l":724,"u":859},{"a":true,"l":345,"u":941},{"a":false,"l":191,"u":212},{"a":false,"l":721,"u":949},{"a":false,"l":355,"u":507},{"a":true,"l":250,"u":882},{"a":true,"l":315,"u":363},{"a":false,"l":472,"u":762},{"a":false,"l":548,"u":637},{"a":true,"l":43,"u":410},{"a":false,"l":737,"u":894},{"a":false,"l":604,"u":895},{"a":true,"l":416,"u":774},{"a":true,"l":829,"u":889},{"a":true,"l":19,"u":406},{"a":true,"l":292,"u":984},{"a":false,"l":695,"u":850},{"a":true,"l":5,"u":108},{"a":false,"l":240,"u":871},{"a":false,"l":110,"u":551},{"a":false,"l":114,"u":849},{"a":false,"l":437,"u":863},{"a":false,"l":449,"u":546},{"a":true,"l":341,"u":923},{"a":false,"l":268,"u":785},{"a":false,"l":884,"u":965},{"a":true,"l":388,"u":727},{"a":false,"l":608,"u":899},{"a":false,"l":343,"u":367},{"a":false,"l":167,"u":921},{"a":false,"l":771,"u":934},{"a":true,"l":528,"u":624},{"a":true,"l":244,"u":428},{"a":true,"l":34,"u":897},{"a":true,"l":639,"u":864},{"a":false,"l":445,"u":752},{"a":false,"l":505,"u":529},{"a":false,"l":88,"u":751},{"a":true,"l":222,"u":966},{"a":true,"l":71,"u":102},{"a":true,"l":393,"u":772},{"a":true,"l":737,"u":799},{"a":true,"l":539,"u":594},{"a":false,"l":707,"u":709},{"a":true,"l":152,"u":350},{"a":false,"l":690,"u":981},{"a":true,"l":184,"u":272},{"a":true,"l":185,"u":698},{"a":false,"l":456,"u":792},{"a":false,"l":137,"u":253},{"a":true,"l":497,"u":542},{"a":true,"l":269,"u":588},{"a":false,"l":207,"u":319},{"a":false,"l":365,"u":752},{"a":false,"l":320,"u":675},{"a":false,"l":604,"u":804},{"a":false,"l":281,"u":351},{"a":true,"l":108,"u":873},{"a":true,"l":277,"u":505},{"a":false,"l":152,"u":706},{"a":false,"l":893,"u":928},{"a":true,"l":171,"u":770},{"a":true,"l":428,"u":552},{"a":true,"l":174,"u":841},{"a":true,"l":233,"u":476},{"a":true,"l":16,"u":243},{"a":true,"l":50,"u":885},{"a":true,"l":608,"u":944},{"a":true,"l":140,"u":580},{"a":false,"l":365,"u":745},{"a":true,"l":4,"u":433},{"a":false,"l":115,"u":483},{"a":true,"l":600,"u":913},{"a":true,"l":132,"u":335},{"a":true,"l":308,"u":657},{"a":true,"l":8,"u":914},{"a":false,"l":574,"u":906},{"a":false,"l":101,"u":272},{"a":false,"l":157,"u":867},{"a":true,"l":779,"u":890},{"a":true,"l":51,"u":941},{"a":false,"l":191,"u":942},{"a":false,"l":200,"u":401},{"a":false,"l":195,"u":432},{"a":true,"l":467,"u":660},{"a":true,"l":783,"u":805},{"a":false,"l":165,"u":809},{"a":true,"l":157,"u":315},{"a":true,"l":203,"u":727},{"a":true,"l":531,"u":790},{"a":true,"l":27,"u":296},{"a":false,"l":256,"u":382},{"a":true,"l":188,"u":735},{"a":true,"l":150,"u":458},{"a":true,"l":290,"u":405},{"a":false,"l":884,"u":893},{"a":false,"l":532,"u":970},{"a":true,"l":213,"u":333},{"a":true,"l":48,"u":194},{"a":true,"l":361,"u":980},{"a":false,"l":415,"u":596},{"a":false,"l":88,"u":231},{"a":true,"l":100,"u":960},{"a":false,"l":572,"u":612},{"a":false,"l":126,"u":940},{"a":false,"l":512,"u":672},{"a":true,"l":450,"u":589},{"a":true,"l":222,"u":550},{"a":true,"l":849,"u":933},{"a":false,"l":569,"u":968},{"a":false,"l":32,"u":649},{"a":true,"l":372,"u":953},{"a":false,"l":388,"u":604},{"a":false,"l":483,"u":687},{"a":false,"l":441,"u":455},{"a":false,"l":15,"u":914},{"a":false,"l":149,"u":481},{"a":false,"l":431,"u":654},{"a":true,"l":527,"u":850},{"a":false,"l":299,"u":535},{"a":true,"l":555,"u":866},{"a":true,"l":520,"u":968},{"a":false,"l":333,"u":809},{"a":false,"l":899,"u":981},{"a":true,"l":777,"u":782},{"a":true,"l":677,"u":935},{"a":true,"l":153,"u":927},{"a":true,"l":607,"u":676},{"a":false,"l":232,"u":674},{"a":false,"l":261,"u":811},{"a":false,"l":622,"u":664},{"a":true,"l":669,"u":766},{"a":true,"l":237,"u":835},{"a":true,"l":147,"u":993},{"a":true,"l":447,"u":514},{"a":true,"l":345,"u":713},{"a":true,"l":555,"u":727},{"a":false,"l":793,"u":965},{"a":false,"l":669,"u":955},{"a":true,"l":189,"u":608},{"a":false,"l":89,"u":113},{"a":false,"l":127,"u":765},{"a":true,"l":21,"u":725},{"a":true,"l":396,"u":488},{"a":true,"l":681,"u":910},{"a":false,"l":577,"u":806},{"a":true,"l":162,"u":546},{"a":false,"l":116,"u":839},{"a":true,"l":478,"u":913},{"a":false,"l":559,"u":926},{"a":false,"l":65,"u":80},{"a":true,"l":269,"u":414},{"a":false,"l":284,"u":574},{"a":false,"l":298,"u":343},{"a":true,"l":430,"u":498},{"a":false,"l":249,"u":630},{"a":true,"l":292,"u":752},{"a":false,"l":571,"u":575},{"a":true,"l":891,"u":978},{"a":true,"l":649,"u":675},{"a":true,"l":224,"u":851},{"a":true,"l":397,"u":573},{"a":true,"l":531,"u":846},{"a":false,"l":619,"u":966},{"a":true,"l":352,"u":356},{"a":true,"l":397,"u":489},{"a":false,"l":240,"u":348},{"a":true,"l":24,"u":925},{"a":true,"l":42,"u":952},{"a":true,"l":451,"u":887},{"a":true,"l":361,"u":499},{"a":true,"l":785,"u":916},{"a":true,"l":442,"u":774},{"a":true,"l":630,"u":940},{"a":true,"l":430,"u":482},{"a":false,"l":281,"u":764},{"a":true,"l":546,"u":903},{"a":true,"l":128,"u":396},{"a":false,"l":696,"u":843},{"a":false,"l":623,"u":958},{"a":true,"l":219,"u":735},{"a":true,"l":126,"u":768},{"a":false,"l":616,"u":927},{"a":true,"l":563,"u":697},{"a":true,"l":200,"u":470},{"a":false,"l":119,"u":872},{"a":true,"l":305,"u":384},{"a":true,"l":471,"u":478},{"a":false,"l":6,"u":603},{"a":true,"l":49,"u":265},{"a":false,"l":250,"u":528},{"a":true,"l":419,"u":607},{"a":true,"l":595,"u":803},{"a":false,"l":238,"u":323},{"a":false,"l":86,"u":517},{"a":true,"l":98,"u":946},{"a":true,"l":98,"u":478},{"a":true,"l":328,"u":844},{"a":true,"l":616,"u":992},{"a":false,"l":629,"u":701},{"a":false,"l":436,"u":590},{"a":true,"l":44,"u":229},{"a":false,"l":133,"u":819},{"a":true,"l":358,"u":773},{"a":false,"l":145,"u":165},{"a":true,"l":320,"u":585},{"a":true,"l":473,"u":696},{"a":true,"l":444,"u":837},{"a":true,"l":212,"u":897},{"a":false,"l":172,"u":398},{"a":false,"l":504,"u":890},{"a":false,"l":86,"u":583},{"a":false,"l":351,"u":369},{"a":false,"l":551,"u":880},{"a":true,"l":51,"u":704},{"a":true,"l":530,"u":599},{"a":false,"l":44,"u":279},{"a":false,"l":504,"u":572},{"a":true,"l":339,"u":637},{"a":false,"l":397,"u":554},{"a":true,"l":44,"u":783},{"a":false,"l":405,"u":616},{"a":true,"l":82,"u":700},{"a":false,"l":377,"u":548},{"a":true,"l":94,"u":287},{"a":false,"l":406,"u":672},{"a":true,"l":24,"u":381},{"a":true,"l":134,"u":547},{"a":false,"l":1,"u":368},{"a":false,"l":510,"u":559},{"a":true,"l":214,"u":777},{"a":true,"l":27,"u":921},{"a":false,"l":821,"u":964},{"a":false,"l":239,"u":968},{"a":true,"l":459,"u":707},{"a":true,"l":230,"u":494},{"a":false,"l":134,"u":350},{"a":false,"l":563,"u":790},{"a":true,"l":582,"u":794},{"a":false,"l":340,"u":599},{"a":true,"l":253,"u":741},{"a":false,"l":442,"u":486},{"a":true,"l":144,"u":915},{"a":false,"l":738,"u":929},{"a":false,"l":421,"u":888},{"a":true,"l":103,"u":672},{"a":false,"l":33,"u":519},{"a":false,"l":145,"u":751},{"a":false,"l":622,"u":690},{"a":true,"l":177,"u":801},{"a":false,"l":597,"u":887},{"a":false,"l":462,"u":505},{"a":true,"l":6,"u":766},{"a":true,"l":638,"u":839},{"a":true,"l":155,"u":852},{"a":false,"l":714,"u":776},{"a":false,"l":25,"u":309},{"a":true,"l":454,"u":837},{"a":true,"l":186,"u":429},{"a":false,"l":699,"u":752},{"a":false,"l":4,"u":228},{"a":true,"l":566,"u":872},{"a":false,"l":615,"u":974},{"a":true,"l":148,"u":301},{"a":false,"l":424,"u":743},{"a":true,"l":46,"u":476},{"a":false,"l":440,"u":819},{"a":false,"l":187,"u":719},{"a":false,"l":225,"u":387},{"a":false,"l":221,"u":785},{"a":true,"l":70,"u":469},{"a":false,"l":149,"u":181},{"a":false,"l":414,"u":939},{"a":false,"l":345,"u":797},{"a":false,"l":728,"u":961},{"a":false,"l":142,"u":861},{"a":false,"l":298,"u":376},{"a":false,"l":542,"u":954},{"a":false,"l":77,"u":663},{"a":true,"l":427,"u":550},{"a":true,"l":253,"u":341},{"a":false,"l":592,"u":757},{"a":true,"l":157,"u":297},{"a":false,"l":608,"u":834},{"a":true,"l":40,"u":255},{"a":false,"l":380,"u":732},{"a":true,"l":414,"u":512},{"a":false,"l":431,"u":887},{"a":false,"l":451,"u":966},{"a":false,"l":843,"u":914},{"a":true,"l":38,"u":827},{"a":true,"l":149,"u":944},{"a":true,"l":595,"u":789},{"a":false,"l":512,"u":761},{"a":true,"l":416,"u":709},{"a":true,"l":120,"u":296},{"a":true,"l":237,"u":810},{"a":true,"l":652,"u":937},{"a":true,"l":224,"u":959},{"a":false,"l":94,"u":541},{"a":true,"l":782,"u":844},{"a":true,"l":26,"u":872},{"a":false,"l":452,"u":870},{"a":true,"l":888,"u":981},{"a":false,"l":267,"u":876},{"a":false,"l":234,"u":272},{"a":false,"l":69,"u":493},{"a":true,"l":104,"u":993},{"a":false,"l":68,"u":888},{"a":false,"l":371,"u":656},{"a":false,"l":456,"u":659},{"a":true,"l":88,"u":639},{"a":true,"l":174,"u":468},{"a":true,"l":737,"u":771},{"a":false,"l":394,"u":457},{"a":false,"l":232,"u":518},{"a":false,"l":430,"u":688},{"a":false,"l":185,"u":386},{"a":true,"l":244,"u":857},{"a":true,"l":640,"u":931},{"a":false,"l":37,"u":505},{"a":true,"l":147,"u":382},{"a":false,"l":186,"u":517},{"a":false,"l":10,"u":620},{"a":false,"l":64,"u":432},{"a":true,"l":454,"u":515},{"a":true,"l":6,"u":268},{"a":true,"l":52,"u":771},{"a":true,"l":13,"u":602},{"a":false,"l":550,"u":560},{"a":false,"l":35,"u":195},{"a":false,"l":202,"u":842},{"a":true,"l":688,"u":900},{"a":false,"l":479,"u":956},{"a":false,"l":148,"u":714},{"a":false,"l":367,"u":887},{"a":true,"l":256,"u":850},{"a":false,"l":488,"u":993},{"a":true,"l":754,"u":798},{"a":false,"l":600,"u":786},{"a":true,"l":137,"u":256},{"a":false,"l":43,"u":147},{"a":true,"l":228,"u":393},{"a":false,"l":75,"u":275},{"a":false,"l":642,"u":913},{"a":false,"l":94,"u":993},{"a":false,"l":153,"u":960},{"a":true,"l":588,"u":829},{"a":false,"l":73,"u":766},{"a":false,"l":634,"u":642},{"a":false,"l":176,"u":911},{"a":false,"l":149,"u":833},{"a":true,"l":304,"u":870},{"a":true,"l":175,"u":289},{"a":true,"l":39,"u":68},{"a":false,"l":28,"u":537},{"a":false,"l":135,"u":692},{"a":true,"l":278,"u":693},{"a":false,"l":169,"u":388},{"a":true,"l":807,"u":942},{"a":true,"l":431,"u":656},{"a":false,"l":700,"u":723},{"a":true,"l":310,"u":658},{"a":true,"l":385,"u":423},{"a":true,"l":151,"u":810},{"a":false,"l":315,"u":782},{"a":false,"l":424,"u":773},{"a":false,"l":757,"u":974},{"a":false,"l":644,"u":884},{"a":false,"l":501,"u":740},{"a":false,"l":868,"u":973},{"a":false,"l":268,"u":293},{"a":false,"l":121,"u":951},{"a":true,"l":174,"u":942},{"a":true,"l":626,"u":754},{"a":false,"l":68,"u":948},{"a":true,"l":111,"u":179},{"a":true,"l":587,"u":948},{"a":true,"l":341,"u":469},{"a":true,"l":376,"u":949},{"a":true,"l":369,"u":881},{"a":false,"l":700,"u":851},{"a":true,"l":644,"u":654},{"a":false,"l":302,"u":831},{"a":true,"l":627,"u":833},{"a":true,"l":579,"u":983},{"a":true,"l":145,"u":771},{"a":true,"l":440,"u":773},{"a":true,"l":738,"u":765},{"a":false,"l":396,"u":564},{"a":true,"l":215,"u":441},{"a":true,"l":571,"u":846},{"a":false,"l":3,"u":331},{"a":false,"l":232,"u":674},{"a":true,"l":219,"u":635},{"a":true,"l":135,"u":942},{"a":false,"l":169,"u":745},{"a":false,"l":351,"u":820},{"a":false,"l":146,"u":602},{"a":false,"l":36,"u":289},{"a":false,"l":401,"u":785},{"a":true,"l":132,"u":548},{"a":true,"l":851,"u":977},{"a":true,"l":76,"u":598},{"a":true,"l":42,"u":358},{"a":false,"l":223,"u":665},{"a":false,"l":302,"u":935},{"a":false,"l":144,"u":202},{"a":false,"l":103,"u":764},{"a":true,"l":5,"u":850},{"a":true,"l":31,"u":909},{"a":false,"l":591,"u":594},{"a":true,"l":219,"u":556},{"a":false,"l":266,"u":479},{"a":true,"l":59,"u":874},{"a":false,"l":494,"u":763},{"a":false,"l":233,"u":290},{"a":true,"l":80,"u":533},{"a":true,"l":720,"u":959},{"a":false,"l":199,"u":268},{"a":true,"l":292,"u":811},{"a":false,"l":484,"u":533},{"a":true,"l":427,"u":750},{"a":true,"l":451,"u":991},{"a":true,"l":857,"u":868},{"a":true,"l":238,"u":582},{"a":false,"l":185,"u":479},{"a":false,"l":6,"u":462},{"a":false,"l":527,"u":777},{"a":true,"l":165,"u":534},{"a":true,"l":436,"u":613},{"a":true,"l":123,"u":606},{"a":false,"l":749,"u":789},{"a":false,"l":193,"u":515},{"a":true,"l":688,"u":822},{"a":false,"l":143,"u":517},{"a":false,"l":752,"u":783},{"a":false,"l":207,"u":791},{"a":true,"l":178,"u":354},{"a":true,"l":405,"u":986},{"a":true,"l":191,"u":778},{"a":true,"l":329,"u":994},{"a":false,"l":696,"u":997},{"a":false,"l":14,"u":607},{"a":true,"l":648,"u":743},{"a":true,"l":360,"u":367},{"a":false,"l":255,"u":630},{"a":false,"l":6,"u":300},{"a":false,"l":502,"u":733},{"a":false,"l":50,"u":624},{"a":false,"l":761,"u":898},{"a":true,"l":150,"u":537},{"a":false,"l":118,"u":510},{"a":false,"l":266,"u":343},{"a":false,"l":261,"u":946},{"a":true,"l":371,"u":856},{"a":true,"l":93,"u":974},{"a":true,"l":45,"u":664},{"a":true,"l":412,"u":852},{"a":true,"l":520,"u":951},{"a":true,"l":379,"u":661},{"a":true,"l":442,"u":493},{"a":false,"l":67,"u":185},{"a":false,"l":157,"u":961},{"a":false,"l":250,"u":305},{"a":true,"l":492,"u":822},{"a":false,"l":681,"u":682},{"a":true,"l":782,"u":915},{"a":false,"l":126,"u":225},{"a":false,"l":78,"u":476},{"a":true,"l":497,"u":891},{"a":false,"l":206,"u":523},{"a":true,"l":590,"u":745},{"a":true,"l":509,"u":687},{"a":false,"l":206,"u":810},{"a":true,"l":215,"u":996},{"a":false,"l":45,"u":55},{"a":true,"l":237,"u":645},{"a":true,"l":109,"u":752},{"a":true,"l":92,"u":954},{"a":false,"l":253,"u":455},{"a":false,"l":413,"u":700},{"a":true,"l":514,"u":765},{"a":false,"l":261,"u":726},{"a":true,"l":673,"u":790},{"a":true,"l":332,"u":604},{"a":true,"l":613,"u":693},{"a":true,"l":62,"u":714},{"a":false,"l":538,"u":561},{"a":true,"l":456,"u":863},{"a":false,"l":179,"u":322},{"a":false,"l":592,"u":622},{"a":true,"l":102,"u":573},{"a":false,"l":50,"u":773},{"a":true,"l":375,"u":855},{"a":true,"l":173,"u":393},{"a":false,"l":687,"u":989},{"a":false,"l":25,"u":766},{"a":true,"l":805,"u":998},{"a":false,"l":167,"u":851},{"a":true,"l":307,"u":760},{"a":false,"l":317,"u":386},{"a":false,"l":150,"u":179},{"a":false,"l":381,"u":864},{"a":true,"l":776,"u":839},{"a":false,"l":79,"u":348},{"a":false,"l":148,"u":287},{"a":true,"l":21,"u":83},{"a":true,"l":255,"u":809},{"a":true,"l":527,"u":562},{"a":false,"l":221,"u":628},{"a":false,"l":57,"u":963},{"a":true,"l":66,"u":583},{"a":true,"l":289,"u":520},{"a":true,"l":139,"u":847},{"a":false,"l":7,"u":629},{"a":true,"l":221,"u":308},{"a":true,"l":42,"u":671},{"a":false,"l":661,"u":714},{"a":true,"l":213,"u":270},{"a":true,"l":425,"u":901},{"a":true,"l":131,"u":361},{"a":false,"l":9,"u":469},{"a":true,"l":485,"u":797},{"a":false,"l":410,"u":590},{"a":true,"l":251,"u":673},{"a":true,"l":682,"u":739},{"a":true,"l":69,"u":213},{"a":true,"l":158,"u":551},{"a":false,"l":324,"u":434},{"a":true,"l":5,"u":277},{"a":true,"l":244,"u":679},{"a":true,"l":352,"u":368},{"a":true,"l":617,"u":767},{"a":false,"l":97,"u":664},{"a":false,"l":365,"u":451},{"a":true,"l":60,"u":974},{"a":false,"l":91,"u":969},{"a":false,"l":293,"u":570},{"a":true,"l":185,"u":584},{"a":true,"l":176,"u":682},{"a":true,"l":193,"u":816},{"a":false,"l":91,"u":573},{"a":false,"l":305,"u":562},{"a":false,"l":93,"u":542},{"a":true,"l":372,"u":531},{"a":false,"l":666,"u":730},{"a":false,"l":38,"u":630},{"a":false,"l":390,"u":977},{"a":true,"l":54,"u":171},{"a":false,"l":308,"u":467},{"a":false,"l":121,"u":847},{"a":false,"l":254,"u":940},{"a":false,"l":109,"u":542},{"a":false,"l":87,"u":695},{"a":false,"l":177,"u":982},{"a":false,"l":449,"u":745},{"a":false,"l":492,"u":662},{"a":false,"l":471,"u":494},{"a":false,"l":248,"u":686},{"a":false,"l":646,"u":708},{"a":false,"l":140,"u":166},{"a":true,"l":456,"u":787},{"a":false,"l":50,"u":803},{"a":false,"l":382,"u":487},{"a":true,"l":431,"u":931},{"a":true,"l":95,"u":967},{"a":true,"l":362,"u":408},{"a":true,"l":47,"u":834},{"a":false,"l":65,"u":568},{"a":false,"l":654,"u":890},{"a":false,"l":43,"u":394},{"a":true,"l":405,"u":737},{"a":true,"l":577,"u":828},{"a":true,"l":201,"u":985},{"a":true,"l":194,"u":443},{"a":true,"l":344,"u":414},{"a":false,"l":170,"u":472},{"a":true,"l":247,"u":356},{"a":false,"l":525,"u":749},{"a":false,"l":104,"u":782},{"a":false,"l":384,"u":636},{"a":true,"l":95,"u":705},{"a":true,"l":556,"u":599},{"a":true,"l":35,"u":723},{"a":true,"l":130,"u":385},{"a":false,"l":469,"u":592},{"a":true,"l":134,"u":719},{"a":false,"l":304,"u":623},{"a":true,"l":149,"u":762},{"a":false,"l":545,"u":712},{"a":true,"l":56,"u":901},{"a":false,"l":306,"u":934},{"a":true,"l":378,"u":385},{"a":false,"l":340,"u":819},{"a":true,"l":383,"u":558},{"a":false,"l":209,"u":938},{"a":false,"l":429,"u":705},{"a":true,"l":332,"u":722},{"a":false,"l":594,"u":760},{"a":false,"l":820,"u":911},{"a":false,"l":579,"u":835},{"a":true,"l":235,"u":289},{"a":false,"l":838,"u":848},{"a":false,"l":25,"u":169},{"a":true,"l":204,"u":851},{"a":true,"l":548,"u":645},{"a":true,"l":274,"u":861},{"a":false,"l":517,"u":541},{"a":false,"l":95,"u":237},{"a":true,"l":686,"u":854},{"a":true,"l":191,"u":418},{"a":true,"l":414,"u":924},{"a":true,"l":890,"u":962},{"a":false,"l":790,"u":858},{"a":false,"l":235,"u":786},{"a":true,"l":631,"u":941},{"a":true,"l":552,"u":598},{"a":true,"l":306,"u":621},{"a":true,"l":353,"u":461},{"a":true,"l":701,"u":735},{"a":true,"l":118,"u":628},{"a":false,"l":133,"u":680},{"a":false,"l":279,"u":680},{"a":true,"l":488,"u":699},{"a":true,"l":209,"u":240},{"a":true,"l":57,"u":99},{"a":false,"l":146,"u":907},{"a":false,"l":326,"u":680},{"a":false,"l":207,"u":496},{"a":false,"l":233,"u":721},{"a":true,"l":684,"u":751},{"a":false,"l":498,"u":712},{"a":true,"l":8,"u":743},{"a":false,"l":369,"u":968},{"a":false,"l":101,"u":375},{"a":true,"l":656,"u":671},{"a":true,"l":16,"u":378},{"a":false,"l":176,"u":443},{"a":false,"l":277,"u":676},{"a":true,"l":726,"u":811},{"a":false,"l":408,"u":490},{"a":true,"l":76,"u":803},{"a":true,"l":43,"u":607},{"a":false,"l":243,"u":565},{"a":true,"l":856,"u":949},{"a":true,"l":153,"u":547},{"a":true,"l":535,"u":954},{"a":true,"l":353,"u":785},{"a":false,"l":101,"u":461},{"a":false,"l":11,"u":66},{"a":false,"l":194,"u":917},{"a":true,"l":415,"u":898},{"a":true,"l":89,"u":465},{"a":true,"l":817,"u":959},{"a":true,"l":477,"u":604},{"a":true,"l":132,"u":392},{"a":true,"l":172,"u":450},{"a":true,"l":96,"u":542},{"a":false,"l":437,"u":993},{"a":true,"l":425,"u":608},{"a":true,"l":691,"u":748},{"a":false,"l":202,"u":659},{"a":false,"l":251,"u":303},{"a":false,"l":322,"u":690},{"a":false,"l":316,"u":845},{"a":false,"l":503,"u":796},{"a":false,"l":683,"u":952},{"a":true,"l":244,"u":865},{"a":true,"l":456,"u":556},{"a":false,"l":667,"u":811},{"a":false,"l":472,"u":843},{"a":false,"l":30,"u":141},{"a":true,"l":648,"u":709},{"a":true,"l":155,"u":627},{"a":true,"l":151,"u":595},{"a":true,"l":294,"u":899},{"a":true,"l":489,"u":616},{"a":false,"l":451,"u":904},{"a":false,"l":38,"u":349},{"a":false,"l":599,"u":813},{"a":true,"l":648,"u":705},{"a":false,"l":48,"u":208},{"a":false,"l":89,"u":948},{"a":true,"l":166,"u":570},{"a":false,"l":220,"u":600},{"a":false,"l":284,"u":362},{"a":true,"l":76,"u":688},{"a":false,"l":338,"u":985},{"a":true,"l":741,"u":806},{"a":true,"l":252,"u":355},{"a":true,"l":125,"u":895},{"a":false,"l":35,"u":921},{"a":true,"l":24,"u":179},{"a":false,"l":38,"u":792},{"a":false,"l":104,"u":473},{"a":true,"l":74,"u":951},{"a":false,"l":395,"u":431},{"a":false,"l":694,"u":980},{"a":true,"l":56,"u":777},{"a":false,"l":131,"u":781},{"a":true,"l":2,"u":849},{"a":true,"l":471,"u":822},{"a":true,"l":693,"u":970},{"a":false,"l":579,"u":683},{"a":true,"l":385,"u":974},{"a":true,"l":453,"u":793},{"a":false,"l":426,"u":784},{"a":false,"l":128,"u":912},{"a":false,"l":1,"u":239},{"a":true,"l":512,"u":826},{"a":false,"l":384,"u":758},{"a":true,"l":839,"u":949},{"a":false,"l":648,"u":880},{"a":true,"l":709,"u":943},{"a":true,"l":833,"u":953},{"a":true,"l":113,"u":515},{"a":false,"l":69,"u":394},{"a":false,"l":84,"u":125},{"a":true,"l":49,"u":364},{"a":false,"l":696,"u":874},{"a":true,"l":116,"u":562},{"a":false,"l":154,"u":636},{"a":true,"l":96,"u":535},{"a":true,"l":204,"u":923},{"a":true,"l":558,"u":907},{"a":true,"l":555,"u":766},{"a":true,"l":50,"u":778},{"a":true,"l":494,"u":685},{"a":true,"l":32,"u":740},{"a":false,"l":149,"u":331},{"a":true,"l":19,"u":548},{"a":false,"l":204,"u":683},{"a":false,"l":227,"u":720},{"a":false,"l":95,"u":353},{"a":true,"l":566,"u":601},{"a":false,"l":71,"u":639},{"a":false,"l":1,"u":687},{"a":false,"l":112,"u":272},{"a":true,"l":285,"u":498},{"a":true,"l":589,"u":985},{"a":true,"l":244,"u":313},{"a":false,"l":571,"u":722},{"a":true,"l":376,"u":827},{"a":true,"l":930,"u":977},{"a":true,"l":852,"u":968},{"a":true,"l":777,"u":985},{"a":true,"l":412,"u":956},{"a":true,"l":682,"u":873},{"a":true,"l":414,"u":709},{"a":false,"l":81,"u":225},{"a":false,"l":198,"u":318},{"a":false,"l":452,"u":552},{"a":false,"l":193,"u":338},{"a":false,"l":136,"u":259},{"a":true,"l":445,"u":611},{"a":true,"l":186,"u":596},{"a":false,"l":267,"u":612},{"a":false,"l":27,"u":916},{"a":true,"l":797,"u":986},{"a":true,"l":494,"u":984},{"a":false,"l":246,"u":658},{"a":true,"l":130,"u":860},{"a":true,"l":63,"u":813},{"a":false,"l":303,"u":922},{"a":true,"l":419,"u":500},{"a":false,"l":245,"u":983},{"a":false,"l":214,"u":898},{"a":false,"l":155,"u":695},{"a":true,"l":432,"u":599},{"a":true,"l":239,"u":323},{"a":false,"l":707,"u":990},{"a":false,"l":125,"u":151},{"a":true,"l":239,"u":546},{"a":true,"l":714,"u":938},{"a":true,"l":397,"u":399},{"a":false,"l":493,"u":677},{"a":true,"l":305,"u":329},{"a":true,"l":374,"u":760},{"a":true,"l":430,"u":853},{"a":true,"l":155,"u":492},{"a":true,"l":429,"u":980},{"a":false,"l":98,"u":761},{"a":false,"l":277,"u":977},{"a":true,"l":210,"u":293},{"a":false,"l":787,"u":936},{"a":false,"l":47,"u":537},{"a":true,"l":272,"u":801},{"a":true,"l":45,"u":793},{"a":true,"l":275,"u":310},{"a":true,"l":217,"u":384},{"a":true,"l":16,"u":754},{"a":false,"l":103,"u":381},{"a":true,"l":960,"u":983},{"a":false,"l":3,"u":666},{"a":false,"l":211,"u":301},{"a":true,"l":275,"u":592},{"a":true,"l":259,"u":742},{"a":true,"l":753,"u":906},{"a":true,"l":55,"u":688},{"a":false,"l":171,"u":716},{"a":false,"l":166,"u":677},{"a":true,"l":712,"u":958},{"a":false,"l":213,"u":475},{"a":true,"l":410,"u":702},{"a":false,"l":167,"u":506},{"a":true,"l":23,"u":267},{"a":true,"l":385,"u":554},{"a":true,"l":721,"u":937},{"a":false,"l":327,"u":605},{"a":false,"l":84,"u":954},{"a":true,"l":152,"u":167},{"a":false,"l":42,"u":302},{"a":false,"l":824,"u":875},{"a":false,"l":25,"u":911},{"a":true,"l":61,"u":909},{"a":false,"l":208,"u":590},{"a":true,"l":534,"u":829},{"a":true,"l":259,"u":691},{"a":false,"l":551,"u":905},{"a":true,"l":337,"u":673},{"a":true,"l":95,"u":544},{"a":true,"l":109,"u":737},{"a":false,"l":522,"u":833},{"a":true,"l":5,"u":365},{"a":true,"l":551,"u":998},{"a":true,"l":436,"u":597},{"a":false,"l":231,"u":805},{"a":true,"l":232,"u":335},{"a":true,"l":288,"u":974},{"a":false,"l":485,"u":678},{"a":true,"l":331,"u":447},{"a":false,"l":235,"u":702},{"a":true,"l":351,"u":547},{"a":false,"l":645,"u":818},{"a":false,"l":769,"u":955},{"a":true,"l":136,"u":848},{"a":true,"l":689,"u":997},{"a":false,"l":486,"u":752},{"a":false,"l":96,"u":560},{"a":false,"l":60,"u":370},{"a":false,"l":222,"u":744},{"a":false,"l":132,"u":737},{"a":false,"l":52,"u":788},{"a":true,"l":228,"u":591},{"a":false,"l":581,"u":945},{"a":true,"l":580,"u":817},{"a":true,"l":24,"u":322},{"a":false,"l":315,"u":983},{"a":true,"l":62,"u":284},{"a":false,"l":649,"u":662},{"a":false,"l":585,"u":743},{"a":true,"l":159,"u":572},{"a":false,"l":102,"u":333},{"a":false,"l":244,"u":534},{"a":false,"l":667,"u":906},{"a":false,"l":763,"u":851},{"a":false,"l":245,"u":741},{"a":false,"l":600,"u":606},{"a":false,"l":9,"u":856},{"a":false,"l":169,"u":873},{"a":false,"l":196,"u":898},{"a":false,"l":174,"u":498},{"a":false,"l":310,"u":822},{"a":false,"l":592,"u":653},{"a":true,"l":728,"u":766},{"a":false,"l":670,"u":744},{"a":true,"l":782,"u":989},{"a":false,"l":596,"u":956},{"a":true,"l":188,"u":967},{"a":true,"l":409,"u":662},{"a":true,"l":618,"u":968},{"a":true,"l":243,"u":912},{"a":false,"l":179,"u":244},{"a":true,"l":223,"u":323},{"a":false,"l":599,"u":868},{"a":true,"l":265,"u":656},{"a":true,"l":390,"u":567},{"a":false,"l":751,"u":904},{"a":false,"l":195,"u":920},{"a":true,"l":809,"u":970},{"a":true,"l":2,"u":935},{"a":false,"l":225,"u":923},{"a":true,"l":208,"u":988},{"a":true,"l":546,"u":762},{"a":false,"l":557,"u":754},{"a":true,"l":380,"u":675},{"a":true,"l":296,"u":629},{"a":false,"l":571,"u":872},{"a":false,"l":614,"u":974},{"a":true,"l":40,"u":714},{"a":true,"l":217,"u":453},{"a":true,"l":529,"u":553},{"a":false,"l":275,"u":433},{"a":true,"l":331,"u":586},{"a":false,"l":192,"u":615},{"a":false,"l":430,"u":892},{"a":true,"l":65,"u":87},{"a":true,"l":203,"u":225},{"a":false,"l":55,"u":740},{"a":true,"l":218,"u":274},{"a":false,"l":536,"u":808},{"a":false,"l":700,"u":957},{"a":false,"l":144,"u":627},{"a":true,"l":65,"u":565},{"a":false,"l":375,"u":998},{"a":true,"l":105,"u":198},{"a":false,"l":144,"u":744},{"a":true,"l":216,"u":926},{"a":true,"l":388,"u":561},{"a":true,"l":703,"u":884},{"a":true,"l":601,"u":872},{"a":true,"l":236,"u":961},{"a":false,"l":679,"u":995},{"a":false,"l":750,"u":895},{"a":true,"l":502,"u":982},{"a":false,"l":63,"u":812},{"a":false,"l":521,"u":780},{"a":true,"l":148,"u":760},{"a":false,"l":361,"u":875},{"a":true,"l":356,"u":525},{"a":false,"l":713,"u":831},{"a":true,"l":277,"u":508},{"a":false,"l":185,"u":283},{"a":false,"l":283,"u":519},{"a":false,"l":464,"u":555},{"a":false,"l":109,"u":138},{"a":false,"l":519,"u":748},{"a":false,"l":353,"u":804},{"a":false,"l":536,"u":744},{"a":false,"l":579,"u":886},{"a":true,"l":475,"u":562},{"a":true,"l":786,"u":827},{"a":true,"l":236,"u":483},{"a":true,"l":352,"u":521},{"a":false,"l":123,"u":849},{"a":true,"l":816,"u":861},{"a":true,"l":650,"u":785},{"a":false,"l":239,"u":907},{"a":false,"l":177,"u":686},{"a":false,"l":298,"u":958},{"a":false,"l":504,"u":822},{"a":true,"l":252,"u":986},{"a":false,"l":653,"u":908},{"a":false,"l":682,"u":805},{"a":true,"l":812,"u":824},{"a":true,"l":70,"u":405},{"a":true,"l":170,"u":810},{"a":true,"l":143,"u":270},{"a":true,"l":83,"u":969},{"a":true,"l":304,"u":781},{"a":false,"l":471,"u":766},{"a":true,"l":722,"u":802},{"a":true,"l":403,"u":871},{"a":true,"l":77,"u":172},{"a":true,"l":63,"u":140},{"a":false,"l":282,"u":676},{"a":false,"l":215,"u":862},{"a":true,"l":421,"u":802},{"a":false,"l":304,"u":666},{"a":true,"l":291,"u":724},{"a":false,"l":847,"u":978},{"a":true,"l":328,"u":989},{"a":false,"l":56,"u":313},{"a":false,"l":176,"u":756},{"a":true,"l":742,"u":744},{"a":false,"l":20,"u":560},{"a":false,"l":100,"u":475},{"a":true,"l":166,"u":735},{"a":true,"l":275,"u":714},{"a":false,"l":123,"u":540},{"a":false,"l":367,"u":871},{"a":false,"l":626,"u":656},{"a":false,"l":183,"u":350},{"a":true,"l":145,"u":940},{"a":true,"l":290,"u":645},{"a":false,"l":204,"u":626},{"a":true,"l":40,"u":177},{"a":true,"l":553,"u":634},{"a":false,"l":145,"u":292},{"a":true,"l":899,"u":957},{"a":true,"l":252,"u":853},{"a":false,"l":630,"u":652},{"a":false,"l":230,"u":270},{"a":false,"l":285,"u":948},{"a":true,"l":100,"u":295},{"a":false,"l":167,"u":472},{"a":false,"l":254,"u":547},{"a":false,"l":552,"u":630},{"a":true,"l":583,"u":603},{"a":false,"l":236,"u":677},{"a":true,"l":645,"u":766},{"a":false,"l":180,"u":888},{"a":true,"l":606,"u":732},{"a":false,"l":322,"u":444},{"a":false,"l":356,"u":622},{"a":false,"l":305,"u":448},{"a":true,"l":197,"u":982},{"a":true,"l":463,"u":939},{"a":true,"l":406,"u":640},{"a":false,"l":625,"u":938},{"a":false,"l":218,"u":943},{"a":true,"l":289,"u":981},{"a":true,"l":60,"u":334},{"a":true,"l":119,"u":122},{"a":false,"l":277,"u":464},{"a":false,"l":638,"u":732},{"a":false,"l":267,"u":887},{"a":true,"l":13,"u":449},{"a":true,"l":6,"u":726},{"a":false,"l":745,"u":804},{"a":true,"l":156,"u":664},{"a":false,"l":380,"u":507},{"a":false,"l":106,"u":428},{"a":true,"l":290,"u":676},{"a":false,"l":179,"u":528},{"a":false,"l":463,"u":828},{"a":false,"l":114,"u":740},{"a":false,"l":380,"u":520},{"a":false,"l":80,"u":791},{"a":false,"l":67,"u":183},{"a":true,"l":11,"u":22},{"a":false,"l":90,"u":334},{"a":true,"l":361,"u":609},{"a":false,"l":217,"u":228},{"a":true,"l":141,"u":430},{"a":true,"l":596,"u":723},{"a":true,"l":582,"u":859},{"a":false,"l":369,"u":391},{"a":true,"l":147,"u":293},{"a":false,"l":154,"u":568},{"a":false,"l":64,"u":203},{"a":true,"l":73,"u":693},{"a":false,"l":47,"u":999},{"a":true,"l":459,"u":688},{"a":false,"l":524,"u":788},{"a":true,"l":195,"u":317},{"a":true,"l":216,"u":550},{"a":false,"l":155,"u":244},{"a":false,"l":194,"u":618},{"a":true,"l":107,"u":754},{"a":false,"l":118,"u":716},{"a":false,"l":321,"u":534},{"a":false,"l":10,"u":659},{"a":true,"l":712,"u":777},{"a":false,"l":303,"u":361},{"a":true,"l":211,"u":312},{"a":true,"l":195,"u":357},{"a":false,"l":181,"u":487},{"a":true,"l":1,"u":531},{"a":true,"l":687,"u":780},{"a":true,"l":79,"u":314},{"a":false,"l":177,"u":607},{"a":false,"l":773,"u":838},{"a":false,"l":674,"u":920},{"a":true,"l":628,"u":686},{"a":true,"l":809,"u":993},{"a":true,"l":154,"u":735},{"a":false,"l":438,"u":996},{"a":false,"l":157,"u":672},{"a":false,"l":147,"u":529},{"a":true,"l":201,"u":782},{"a":false,"l":738,"u":821},{"a":false,"l":4,"u":162},{"a":true,"l":11,"u":193},{"a":true,"l":663,"u":933},{"a":true,"l":682,"u":738},{"a":true,"l":35,"u":531},{"a":true,"l":365,"u":863},{"a":false,"l":108,"u":772},{"a":false,"l":811,"u":871},{"a":true,"l":262,"u":717},{"a":true,"l":45,"u":230},{"a":false,"l":368,"u":706},{"a":true,"l":874,"u":910},{"a":false,"l":19,"u":216},{"a":true,"l":832,"u":917},{"a":false,"l":369,"u":882},{"a":false,"l":109,"u":126},{"a":true,"l":94,"u":851},{"a":false,"l":428,"u":580},{"a":false,"l":200,"u":888},{"a":false,"l":841,"u":991},{"a":true,"l":25,"u":617},{"a":true,"l":38,"u":275},{"a":false,"l":95,"u":635},{"a":false,"l":368,"u":906},{"a":true,"l":511,"u":752},{"a":true,"l":781,"u":825},{"a":false,"l":277,"u":807},{"a":true,"l":664,"u":851},{"a":false,"l":199,"u":556},{"a":true,"l":140,"u":173},{"a":false,"l":136,"u":946},{"a":true,"l":266,"u":724},{"a":true,"l":43,"u":767},{"a":false,"l":306,"u":778},{"a":true,"l":213,"u":289},{"a":false,"l":145,"u":731},{"a":true,"l":791,"u":964},{"a":false,"l":347,"u":701},{"a":false,"l":33,"u":500},{"a":false,"l":320,"u":658},{"a":true,"l":418,"u":455},{"a":false,"l":169,"u":461},{"a":true,"l":27,"u":161},{"a":false,"l":778,"u":902},{"a":false,"l":368,"u":669},{"a":false,"l":605,"u":799},{"a":true,"l":160,"u":485},{"a":false,"l":623,"u":746},{"a":false,"l":550,"u":992},{"a":true,"l":353,"u":707},{"a":true,"l":191,"u":996},{"a":true,"l":245,"u":689},{"a":true,"l":722,"u":836},{"a":true,"l":466,"u":937},{"a":false,"l":720,"u":838},{"a":true,"l":157,"u":204},{"a":false,"l":119,"u":220},{"a":false,"l":191,"u":377},{"a":false,"l":888,"u":930},{"a":false,"l":70,"u":869},{"a":false,"l":813,"u":944},{"a":true,"l":165,"u":883},{"a":true,"l":575,"u":689},{"a":true,"l":248,"u":267},{"a":true,"l":706,"u":760},{"a":false,"l":200,"u":901},{"a":false,"l":202,"u":901},{"a":false,"l":491,"u":838},{"a":true,"l":172,"u":451},{"a":true,"l":89,"u":932},{"a":true,"l":1,"u":536},{"a":false,"l":84,"u":740},{"a":false,"l":223,"u":288},{"a":false,"l":209,"u":661},{"a":false,"l":4,"u":206},{"a":true,"l":657,"u":872},{"a":false,"l":418,"u":886},{"a":true,"l":446,"u":569},{"a":false,"l":810,"u":846},{"a":false,"l":812,"u":855},{"a":false,"l":646,"u":967},{"a":true,"l":216,"u":849},{"a":true,"l":219,"u":785},{"a":false,"l":82,"u":548},{"a":true,"l":444,"u":990},{"a":true,"l":516,"u":554},{"a":false,"l":168,"u":275},{"a":false,"l":415,"u":899},{"a":true,"l":304,"u":965},{"a":false,"l":464,"u":478},{"a":true,"l":35,"u":646},{"a":false,"l":196,"u":293},{"a":false,"l":155,"u":589},{"a":true,"l":341,"u":776},{"a":true,"l":348,"u":798},{"a":false,"l":70,"u":859},{"a":false,"l":509,"u":723},{"a":true,"l":375,"u":529},{"a":false,"l":683,"u":968},{"a":false,"l":46,"u":244},{"a":false,"l":151,"u":973},{"a":false,"l":356,"u":379},{"a":true,"l":735,"u":990},{"a":true,"l":691,"u":884},{"a":true,"l":68,"u":607},{"a":false,"l":301,"u":930},{"a":false,"l":284,"u":769},{"a":true,"l":11,"u":790},{"a":false,"l":40,"u":154},{"a":false,"l":123,"u":358},{"a":false,"l":326,"u":700},{"a":true,"l":387,"u":565},{"a":true,"l":101,"u":948},{"a":false,"l":304,"u":384},{"a":true,"l":180,"u":676},{"a":false,"l":370,"u":429},{"a":false,"l":407,"u":487},{"a":false,"l":90,"u":100},{"a":false,"l":774,"u":868},{"a":true,"l":165,"u":192},{"a":false,"l":145,"u":227},{"a":true,"l":167,"u":762},{"a":false,"l":660,"u":854},{"a":false,"l":204,"u":338},{"a":false,"l":66,"u":244},{"a":true,"l":739,"u":835},{"a":false,"l":338,"u":489},{"a":false,"l":160,"u":892},{"a":false,"l":259,"u":640},{"a":true,"l":550,"u":812},{"a":true,"l":262,"u":586},{"a":true,"l":265,"u":553},{"a":true,"l":277,"u":657},{"a":false,"l":670,"u":794},{"a":true,"l":505,"u":630},{"a":true,"l":326,"u":899},{"a":true,"l":15,"u":285},{"a":true,"l":294,"u":779},{"a":true,"l":80,"u":632},{"a":true,"l":419,"u":652},{"a":false,"l":135,"u":908},{"a":true,"l":660,"u":942},{"a":true,"l":41,"u":594},{"a":false,"l":80,"u":448},{"a":false,"l":89,"u":872},{"a":false,"l":73,"u":298},{"a":false,"l":154,"u":992},{"a":false,"l":646,"u":796},{"a":true,"l":284,"u":330},{"a":true,"l":578,"u":649},{"a":false,"l":571,"u":762},{"a":true,"l":835,"u":845},{"a":false,"l":103,"u":777},{"a":true,"l":41,"u":156},{"a":false,"l":88,"u":976},{"a":true,"l":386,"u":682},{"a":true,"l":557,"u":885},{"a":false,"l":34,"u":544},{"a":true,"l":144,"u":591},{"a":true,"l":250,"u":568},{"a":false,"l":225,"u":523},{"a":false,"l":390,"u":814},{"a":false,"l":755,"u":923},{"a":true,"l":84,"u":888},{"a":true,"l":349,"u":715},{"a":false,"l":109,"u":825},{"a":false,"l":355,"u":457},{"a":false,"l":55,"u":59},{"a":true,"l":244,"u":361},{"a":true,"l":84,"u":682},{"a":true,"l":589,"u":646},{"a":false,"l":4,"u":118},{"a":true,"l":8,"u":340},{"a":false,"l":478,"u":592},{"a":true,"l":676,"u":934},{"a":true,"l":224,"u":710},{"a":true,"l":539,"u":992},{"a":false,"l":301,"u":643},{"a":false,"l":3,"u":954},{"a":true,"l":81,"u":991},{"a":true,"l":88,"u":416},{"a":false,"l":269,"u":981},{"a":true,"l":305,"u":619},{"a":true,"l":73,"u":755},{"a":false,"l":644,"u":701},{"a":true,"l":15,"u":432},{"a":false,"l":46,"u":607},{"a":true,"l":370,"u":816},{"a":true,"l":321,"u":437},{"a":false,"l":130,"u":731},{"a":false,"l":507,"u":892},{"a":false,"l":98,"u":856},{"a":false,"l":206,"u":712},{"a":true,"l":51,"u":380},{"a":true,"l":420,"u":448},{"a":true,"l":642,"u":737},{"a":false,"l":222,"u":311},{"a":true,"l":776,"u":907},{"a":true,"l":249,"u":740},{"a":true,"l":163,"u":330},{"a":false,"l":70,"u":749},{"a":false,"l":635,"u":666},{"a":false,"l":351,"u":820},{"a":true,"l":322,"u":820},{"a":true,"l":171,"u":366},{"a":true,"l":254,"u":573},{"a":true,"l":274,"u":582},{"a":false,"l":361,"u":936},{"a":false,"l":491,"u":998},{"a":true,"l":16,"u":511},{"a":true,"l":424,"u":820},{"a":true,"l":107,"u":657},{"a":false,"l":716,"u":800},{"a":false,"l":157,"u":806},{"a":false,"l":254,"u":703},{"a":false,"l":10,"u":698},{"a":true,"l":398,"u":821},{"a":true,"l":151,"u":478},{"a":true,"l":251,"u":685},{"a":true,"l":130,"u":231},{"a":false,"l":326,"u":940},{"a":false,"l":598,"u":868},{"a":true,"l":671,"u":682},{"a":true,"l":129,"u":769},{"a":true,"l":529,"u":782},{"a":true,"l":317,"u":510},{"a":false,"l":250,"u":913},{"a":true,"l":368,"u":738},{"a":true,"l":32,"u":525},{"a":false,"l":674,"u":920},{"a":false,"l":713,"u":791},{"a":false,"l":23,"u":175},{"a":false,"l":583,"u":768},{"a":false,"l":40,"u":151},{"a":true,"l":257,"u":982},{"a":false,"l":190,"u":261},{"a":false,"l":381,"u":922},{"a":false,"l":43,"u":888},{"a":false,"l":73,"u":277},{"a":false,"l":362,"u":773},{"a":true,"l":95,"u":222},{"a":false,"l":30,"u":575},{"a":true,"l":462,"u":789},{"a":false,"l":760,"u":929},{"a":false,"l":351,"u":353},{"a":true,"l":364,"u":673},{"a":true,"l":413,"u":558},{"a":true,"l":268,"u":829},{"a":false,"l":71,"u":376},{"a":true,"l":218,"u":652},{"a":true,"l":126,"u":176},{"a":false,"l":404,"u":601},{"a":false,"l":566,"u":746},{"a":true,"l":317,"u":355},{"a":true,"l":325,"u":443},{"a":true,"l":82,"u":129},{"a":false,"l":107,"u":175},{"a":true,"l":91,"u":796},{"a":false,"l":296,"u":845},{"a":true,"l":243,"u":711},{"a":true,"l":191,"u":620},{"a":false,"l":101,"u":297},{"a":true,"l":396,"u":913},{"a":false,"l":633,"u":724},{"a":true,"l":244,"u":666},{"a":true,"l":87,"u":118},{"a":true,"l":228,"u":606},{"a":true,"l":75,"u":675},{"a":false,"l":256,"u":859},{"a":false,"l":118,"u":659},{"a":true,"l":837,"u":872},{"a":true,"l":110,"u":451},{"a":true,"l":593,"u":928},{"a":true,"l":147,"u":298},{"a":true,"l":168,"u":343},{"a":false,"l":188,"u":453},{"a":true,"l":471,"u":608},{"a":false,"l":207,"u":506},{"a":true,"l":170,"u":399},{"a":true,"l":252,"u":305},{"a":true,"l":11,"u":856},{"a":false,"l":224,"u":318},{"a":true,"l":976,"u":976},{"a":false,"l":693,"u":750},{"a":false,"l":318,"u":713},{"a":true,"l":61,"u":100},{"a":false,"l":461,"u":757},{"a":false,"l":169,"u":915},{"a":false,"l":247,"u":498},{"a":false,"l":310,"u":965},{"a":true,"l":701,"u":767},{"a":false,"l":273,"u":638},{"a":true,"l":393,"u":913},{"a":true,"l":574,"u":591},{"a":false,"l":94,"u":519},{"a":true,"l":292,"u":313},{"a":false,"l":103,"u":439},{"a":true,"l":350,"u":358},{"a":false,"l":679,"u":867},{"a":false,"l":312,"u":566},{"a":true,"l":186,"u":396},{"a":false,"l":393,"u":561},{"a":true,"l":681,"u":728},{"a":false,"l":199,"u":858},{"a":true,"l":25,"u":452},{"a":true,"l":90,"u":263},{"a":false,"l":252,"u":268},{"a":true,"l":437,"u":693},{"a":false,"l":65,"u":119},{"a":true,"l":147,"u":213},{"a":true,"l":596,"u":953},{"a":true,"l":411,"u":846},{"a":false,"l":260,"u":898},{"a":false,"l":35,"u":573},{"a":false,"l":830,"u":984},{"a":false,"l":71,"u":768},{"a":true,"l":430,"u":495},{"a":false,"l":67,"u":187},{"a":false,"l":11,"u":315},{"a":false,"l":886,"u":953},{"a":true,"l":175,"u":217},{"a":false,"l":186,"u":848},{"a":true,"l":186,"u":905},{"a":false,"l":127,"u":657},{"a":true,"l":346,"u":768},{"a":true,"l":47,"u":547},{"a":true,"l":41,"u":482},{"a":false,"l":569,"u":928},{"a":false,"l":464,"u":874},{"a":true,"l":454,"u":854},{"a":true,"l":731,"u":872},{"a":true,"l":358,"u":909},{"a":false,"l":584,"u":604},{"a":false,"l":519,"u":776},{"a":true,"l":852,"u":860},{"a":false,"l":97,"u":301},{"a":true,"l":596,"u":599},{"a":true,"l":758,"u":985},{"a":false,"l":416,"u":434},{"a":true,"l":411,"u":696},{"a":true,"l":183,"u":673},{"a":false,"l":290,"u":845},{"a":true,"l":224,"u":306},{"a":false,"l":413,"u":773},{"a":true,"l":217,"u":502},{"a":true,"l":736,"u":970},{"a":true,"l":150,"u":499},{"a":false,"l":648,"u":906},{"a":true,"l":195,"u":711},{"a":true,"l":32,"u":383},{"a":true,"l":793,"u":964},{"a":false,"l":790,"u":858},{"a":true,"l":306,"u":326},{"a":false,"l":460,"u":675},{"a":true,"l":22,"u":77},{"a":false,"l":227,"u":758},{"a":true,"l":652,"u":677},{"a":true,"l":623,"u":938},{"a":true,"l":460,"u":625},{"a":false,"l":728,"u":879},{"a":false,"l":769,"u":842},{"a":true,"l":157,"u":819},{"a":false,"l":607,"u":931},{"a":true,"l":705,"u":795},{"a":false,"l":549,"u":774},{"a":false,"l":579,"u":972},{"a":false,"l":514,"u":763},{"a":false,"l":71,"u":703},{"a":true,"l":193,"u":547},{"a":true,"l":171,"u":605},{"a":true,"l":107,"u":380},{"a":true,"l":73,"u":296},{"a":false,"l":655,"u":933},{"a":false,"l":127,"u":878},{"a":true,"l":743,"u":998},{"a":true,"l":29,"u":375},{"a":true,"l":518,"u":698},{"a":true,"l":464,"u":730},{"a":false,"l":68,"u":686},{"a":false,"l":170,"u":334},{"a":false,"l":826,"u":913},{"a":true,"l":209,"u":686},{"a":false,"l":629,"u":764},{"a":false,"l":674,"u":918},{"a":true,"l":61,"u":605},{"a":false,"l":589,"u":785},{"a":false,"l":722,"u":796},{"a":false,"l":310,"u":808},{"a":true,"l":160,"u":575},{"a":true,"l":286,"u":362},{"a":false,"l":737,"u":934},{"a":true,"l":109,"u":569},{"a":false,"l":130,"u":200},{"a":true,"l":876,"u":958},{"a":false,"l":70,"u":272},{"a":false,"l":133,"u":533},{"a":false,"l":76,"u":78},{"a":false,"l":56,"u":442},{"a":true,"l":24,"u":936},{"a":false,"l":188,"u":354},{"a":false,"l":313,"u":700},{"a":false,"l":182,"u":198},{"a":true,"l":340,"u":881},{"a":false,"l":921,"u":943},{"a":true,"l":207,"u":873},{"a":true,"l":387,"u":764},{"a":false,"l":121,"u":222},{"a":false,"l":358,"u":523},{"a":true,"l":190,"u":449},{"a":false,"l":489,"u":954},{"a":true,"l":332,"u":632},{"a":true,"l":21,"u":905},{"a":true,"l":170,"u":400},{"a":true,"l":79,"u":744},{"a":true,"l":922,"u":995},{"a":false,"l":360,"u":879},{"a":true,"l":487,"u":804},{"a":true,"l":384,"u":979},{"a":false,"l":329,"u":541},{"a":true,"l":289,"u":901},{"a":false,"l":393,"u":781},{"a":false,"l":65,"u":191},{"a":false,"l":433,"u":550},{"a":true,"l":603,"u":998},{"a":true,"l":288,"u":909},{"a":true,"l":58,"u":543},{"a":false,"l":16,"u":174},{"a":true,"l":158,"u":230},{"a":true,"l":1,"u":312},{"a":true,"l":346,"u":746},{"a":true,"l":176,"u":710},{"a":false,"l":115,"u":660},{"a":false,"l":613,"u":817},{"a":true,"l":167,"u":258},{"a":false,"l":133,"u":619},{"a":true,"l":148,"u":781},{"a":true,"l":654,"u":895},{"a":false,"l":187,"u":424},{"a":true,"l":206,"u":779},{"a":false,"l":110,"u":670},{"a":true,"l":405,"u":500},{"a":false,"l":83,"u":899},{"a":false,"l":118,"u":713},{"a":false,"l":478,"u":991},{"a":false,"l":182,"u":798},{"a":false,"l":562,"u":567},{"a":false,"l":139,"u":811},{"a":true,"l":544,"u":764},{"a":false,"l":429,"u":828},{"a":true,"l":738,"u":779},{"a":true,"l":834,"u":943},{"a":false,"l":1,"u":298},{"a":false,"l":304,"u":566},{"a":false,"l":347,"u":706},{"a":false,"l":1,"u":986},{"a":false,"l":133,"u":214},{"a":false,"l":882,"u":991},{"a":true,"l":79,"u":157},{"a":false,"l":28,"u":568},{"a":false,"l":710,"u":865},{"a":false,"l":124,"u":725},{"a":false,"l":554,"u":865},{"a":false,"l":151,"u":204},{"a":false,"l":237,"u":871},{"a":false,"l":347,"u":687},{"a":true,"l":833,"u":861},{"a":false,"l":8,"u":474},{"a":false,"l":548,"u":904},{"a":true,"l":149,"u":500},{"a":false,"l":535,"u":920},{"a":true,"l":554,"u":616},{"a":false,"l":261,"u":531},{"a":true,"l":278,"u":669},{"a":true,"l":401,"u":693},{"a":false,"l":715,"u":809},{"a":false,"l":574,"u":624},{"a":false,"l":492,"u":628},{"a":true,"l":29,"u":667},{"a":true,"l":108,"u":827},{"a":false,"l":769,"u":902},{"a":false,"l":592,"u":972},{"a":true,"l":117,"u":449},{"a":false,"l":1,"u":963},{"a":false,"l":246,"u":836},{"a":true,"l":359,"u":615},{"a":true,"l":411,"u":740},{"a":false,"l":207,"u":772},{"a":false,"l":166,"u":878},{"a":false,"l":126,"u":745},{"a":false,"l":137,"u":844},{"a":true,"l":41,"u":338},{"a":true,"l":83,"u":780},{"a":false,"l":214,"u":236},{"a":true,"l":203,"u":849},{"a":true,"l":313,"u":722},{"a":false,"l":341,"u":708},{"a":false,"l":300,"u":970},{"a":false,"l":275,"u":380},{"a":true,"l":144,"u":403},{"a":false,"l":50,"u":733},{"a":false,"l":47,"u":930},{"a":true,"l":586,"u":764},{"a":false,"l":365,"u":578},{"a":true,"l":95,"u":438},{"a":false,"l":130,"u":622},{"a":false,"l":139,"u":744},{"a":false,"l":612,"u":632},{"a":false,"l":281,"u":546},{"a":false,"l":679,"u":864},{"a":false,"l":168,"u":253},{"a":true,"l":137,"u":447},{"a":false,"l":481,"u":810},{"a":false,"l":365,"u":695},{"a":true,"l":59,"u":706},{"a":false,"l":790,"u":911},{"a":true,"l":188,"u":868},{"a":false,"l":351,"u":422},{"a":true,"l":526,"u":632},{"a":true,"l":304,"u":473},{"a":false,"l":768,"u":770},{"a":false,"l":132,"u":819},{"a":false,"l":699,"u":974},{"a":true,"l":342,"u":540},{"a":true,"l":51,"u":910},{"a":true,"l":597,"u":999},{"a":false,"l":306,"u":879},{"a":false,"l":120,"u":181},{"a":false,"l":351,"u":700},{"a":true,"l":251,"u":538},{"a":true,"l":567,"u":697},{"a":true,"l":396,"u":474},{"a":true,"l":726,"u":781},{"a":true,"l":541,"u":549},{"a":true,"l":423,"u":937},{"a":true,"l":563,"u":849},{"a":false,"l":56,"u":279},{"a":false,"l":163,"u":780},{"a":true,"l":575,"u":745},{"a":true,"l":121,"u":998},{"a":true,"l":251,"u":257},{"a":false,"l":2,"u":921},{"a":true,"l":794,"u":949},{"a":false,"l":48,"u":498},{"a":true,"l":335,"u":754},{"a":true,"l":469,"u":959},{"a":false,"l":228,"u":986},{"a":false,"l":390,"u":765},{"a":false,"l":29,"u":277},{"a":true,"l":366,"u":917},{"a":true,"l":105,"u":950},{"a":false,"l":11,"u":763},{"a":true,"l":213,"u":415},{"a":false,"l":101,"u":453},{"a":true,"l":717,"u":974},{"a":false,"l":567,"u":933},{"a":false,"l":172,"u":287},{"a":true,"l":437,"u":575},{"a":false,"l":525,"u":783},{"a":false,"l":513,"u":774},{"a":false,"l":33,"u":300},{"a":false,"l":830,"u":965},{"a":true,"l":45,"u":773},{"a":true,"l":1,"u":757},{"a":true,"l":696,"u":940},{"a":true,"l":242,"u":645},{"a":true,"l":130,"u":189},{"a":false,"l":471,"u":790},{"a":false,"l":184,"u":786},{"a":false,"l":51,"u":674},{"a":false,"l":292,"u":962},{"a":true,"l":706,"u":844},{"a":false,"l":491,"u":661},{"a":true,"l":272,"u":338},{"a":false,"l":79,"u":723},{"a":false,"l":1,"u":947},{"a":true,"l":612,"u":741},{"a":true,"l":1,"u":110},{"a":true,"l":713,"u":865},{"a":false,"l":779,"u":925},{"a":false,"l":663,"u":945},{"a":false,"l":154,"u":315},{"a":true,"l":24,"u":181},{"a":true,"l":205,"u":876},{"a":true,"l":167,"u":523},{"a":false,"l":787,"u":935},{"a":false,"l":457,"u":556},{"a":false,"l":478,"u":711},{"a":true,"l":81,"u":932},{"a":true,"l":260,"u":275},{"a":false,"l":362,"u":538},{"a":true,"l":109,"u":455},{"a":true,"l":16,"u":946},{"a":false,"l":586,"u":971},{"a":false,"l":613,"u":676},{"a":false,"l":259,"u":549},{"a":true,"l":484,"u":829},{"a":false,"l":662,"u":797},{"a":true,"l":251,"u":358},{"a":false,"l":10,"u":166},{"a":true,"l":651,"u":736},{"a":false,"l":396,"u":936},{"a":true,"l":285,"u":723},{"a":false,"l":416,"u":880},{"a":false,"l":143,"u":695},{"a":true,"l":361,"u":424},{"a":false,"l":308,"u":895},{"a":false,"l":301,"u":865},{"a":true,"l":23,"u":364},{"a":true,"l":95,"u":571},{"a":true,"l":7,"u":135},{"a":true,"l":167,"u":826},{"a":true,"l":499,"u":847},{"a":true,"l":108,"u":944},{"a":true,"l":687,"u":946},{"a":false,"l":107,"u":481},{"a":false,"l":850,"u":925},{"a":false,"l":413,"u":993},{"a":true,"l":39,"u":420},{"a":true,"l":169,"u":703},{"a":false,"l":18,"u":812},{"a":false,"l":124,"u":464},{"a":true,"l":552,"u":641},{"a":false,"l":131,"u":159},{"a":true,"l":325,"u":984},{"a":false,"l":165,"u":401},{"a":true,"l":185,"u":708},{"a":false,"l":531,"u":552},{"a":true,"l":241,"u":822},{"a":true,"l":240,"u":976},{"a":true,"l":723,"u":745},{"a":false,"l":440,"u":499},{"a":true,"l":344,"u":668},{"a":false,"l":595,"u":842},{"a":true,"l":322,"u":589},{"a":false,"l":101,"u":978},{"a":true,"l":35,"u":823},{"a":false,"l":45,"u":844},{"a":false,"l":550,"u":860},{"a":false,"l":561,"u":677},{"a":false,"l":134,"u":317},{"a":false,"l":127,"u":742},{"a":false,"l":216,"u":567},{"a":true,"l":530,"u":832},{"a":true,"l":386,"u":710},{"a":false,"l":487,"u":943},{"a":false,"l":292,"u":595},{"a":true,"l":12,"u":327},{"a":true,"l":436,"u":982},{"a":false,"l":27,"u":852},{"a":true,"l":191,"u":940},{"a":false,"l":478,"u":684},{"a":false,"l":381,"u":445},{"a":false,"l":406,"u":900},{"a":false,"l":280,"u":283},{"a":false,"l":132,"u":747},{"a":true,"l":439,"u":666},{"a":false,"l":536,"u":990},{"a":false,"l":864,"u":869},{"a":false,"l":638,"u":769},{"a":false,"l":166,"u":563},{"a":false,"l":254,"u":327},{"a":false,"l":23,"u":160},{"a":true,"l":24,"u":650},{"a":false,"l":223,"u":428},{"a":true,"l":150,"u":499},{"a":true,"l":254,"u":545},{"a":false,"l":62,"u":913},{"a":false,"l":128,"u":182},{"a":false,"l":619,"u":728},{"a":true,"l":180,"u":326},{"a":false,"l":326,"u":512},{"a":false,"l":159,"u":453},{"a":true,"l":604,"u":778},{"a":true,"l":397,"u":850},{"a":false,"l":303,"u":908},{"a":true,"l":157,"u":253},{"a":false,"l":179,"u":599},{"a":false,"l":287,"u":801},{"a":true,"l":134,"u":841},{"a":true,"l":437,"u":449},{"a":true,"l":727,"u":773},{"a":true,"l":65,"u":974},{"a":false,"l":519,"u":886},{"a":true,"l":176,"u":523},{"a":true,"l":812,"u":896},{"a":false,"l":412,"u":772},{"a":true,"l":727,"u":848},{"a":true,"l":707,"u":883},{"a":false,"l":279,"u":755},{"a":false,"l":495,"u":528},{"a":true,"l":365,"u":560},{"a":false,"l":469,"u":848},{"a":true,"l":50,"u":421},{"a":false,"l":538,"u":925},{"a":false,"l":719,"u":787},{"a":false,"l":530,"u":651},{"a":false,"l":701,"u":826},{"a":true,"l":694,"u":859},{"a":true,"l":543,"u":986},{"a":true,"l":70,"u":135},{"a":true,"l":58,"u":178},{"a":true,"l":544,"u":672},{"a":true,"l":363,"u":900},{"a":true,"l":231,"u":403},{"a":true,"l":897,"u":917},{"a":true,"l":750,"u":753},{"a":false,"l":219,"u":632},{"a":false,"l":548,"u":575},{"a":true,"l":2,"u":731},{"a":false,"l":549,"u":873},{"a":true,"l":107,"u":391},{"a":false,"l":491,"u":600},{"a":true,"l":276,"u":802},{"a":false,"l":94,"u":892},{"a":false,"l":2,"u":168},{"a":false,"l":403,"u":727},{"a":false,"l":34,"u":128},{"a":false,"l":674,"u":682},{"a":false,"l":205,"u":869},{"a":false,"l":218,"u":510},{"a":false,"l":509,"u":574},{"a":false,"l":645,"u":938},{"a":false,"l":11,"u":389},{"a":true,"l":104,"u":499},{"a":false,"l":111,"u":850},{"a":false,"l":247,"u":937},{"a":false,"l":479,"u":625},{"a":false,"l":81,"u":710},{"a":false,"l":652,"u":974},{"a":true,"l":199,"u":389},{"a":true,"l":56,"u":975},{"a":true,"l":531,"u":938},{"a":true,"l":550,"u":999},{"a":true,"l":273,"u":471},{"a":true,"l":442,"u":504},{"a":false,"l":516,"u":838},{"a":true,"l":135,"u":686},{"a":true,"l":156,"u":957},{"a":false,"l":482,"u":523},{"a":false,"l":199,"u":331},{"a":false,"l":49,"u":364},{"a":false,"l":939,"u":988},{"a":false,"l":26,"u":375},{"a":true,"l":400,"u":689},{"a":true,"l":119,"u":519},{"a":true,"l":449,"u":512},{"a":true,"l":219,"u":341},{"a":false,"l":249,"u":750},{"a":true,"l":162,"u":955},{"a":true,"l":141,"u":660},{"a":true,"l":520,"u":617},{"a":false,"l":205,"u":943},{"a":false,"l":30,"u":351},{"a":true,"l":98,"u":274},{"a":false,"l":123,"u":507},{"a":false,"l":310,"u":740},{"a":true,"l":39,"u":564},{"a":false,"l":226,"u":577},{"a":true,"l":622,"u":935},{"a":true,"l":123,"u":127},{"a":true,"l":362,"u":569},{"a":false,"l":70,"u":922},{"a":false,"l":462,"u":778},{"a":true,"l":132,"u":509},{"a":true,"l":724,"u":955},{"a":true,"l":515,"u":820},{"a":true,"l":671,"u":814},{"a":false,"l":17,"u":818},{"a":true,"l":126,"u":279},{"a":false,"l":228,"u":469},{"a":false,"l":464,"u":503},{"a":true,"l":279,"u":688},{"a":true,"l":624,"u":834},{"a":true,"l":693,"u":849},{"a":false,"l":644,"u":836},{"a":false,"l":206,"u":524},{"a":false,"l":394,"u":719},{"a":true,"l":288,"u":693},{"a":false,"l":503,"u":604},{"a":true,"l":875,"u":922},{"a":true,"l":98,"u":812},{"a":false,"l":13,"u":571},{"a":true,"l":96,"u":829},{"a":true,"l":563,"u":766},{"a":true,"l":311,"u":718},{"a":true,"l":220,"u":901},{"a":true,"l":532,"u":976},{"a":false,"l":147,"u":235},{"a":false,"l":199,"u":654},{"a":true,"l":587,"u":900},{"a":true,"l":91,"u":786},{"a":true,"l":19,"u":757},{"a":true,"l":3,"u":100},{"a":false,"l":486,"u":645},{"a":false,"l":388,"u":826},{"a":true,"l":365,"u":473},{"a":true,"l":110,"u":663},{"a":false,"l":52,"u":935},{"a":false,"l":603,"u":701},{"a":true,"l":198,"u":889},{"a":true,"l":508,"u":679},{"a":false,"l":272,"u":320},{"a":true,"l":10,"u":427},{"a":false,"l":265,"u":908},{"a":false,"l":49,"u":942},{"a":false,"l":95,"u":169},{"a":false,"l":490,"u":892},{"a":false,"l":858,"u":879},{"a":true,"l":93,"u":661},{"a":true,"l":262,"u":520},{"a":true,"l":547,"u":777},{"a":true,"l":328,"u":406},{"a":true,"l":533,"u":986},{"a":false,"l":7,"u":170},{"a":false,"l":179,"u":460},{"a":false,"l":121,"u":292},{"a":false,"l":261,"u":644},{"a":false,"l":568,"u":699},{"a":false,"l":744,"u":905},{"a":true,"l":104,"u":277},{"a":true,"l":682,"u":946},{"a":true,"l":520,"u":602},{"a":false,"l":448,"u":888},{"a":true,"l":413,"u":525},{"a":true,"l":192,"u":415},{"a":true,"l":20,"u":506},{"a":false,"l":394,"u":471},{"a":false,"l":291,"u":348},{"a":true,"l":135,"u":263},{"a":true,"l":405,"u":891},{"a":true,"l":784,"u":989},{"a":false,"l":64,"u":352},{"a":true,"l":92,"u":318},{"a":true,"l":121,"u":152},{"a":false,"l":615,"u":717},{"a":false,"l":804,"u":828},{"a":false,"l":450,"u":548},{"a":true,"l":705,"u":925},{"a":true,"l":193,"u":544},{"a":false,"l":154,"u":237},{"a":false,"l":309,"u":728},{"a":false,"l":402,"u":467},{"a":false,"l":332,"u":729},{"a":true,"l":168,"u":618},{"a":false,"l":161,"u":352},{"a":true,"l":26,"u":552},{"a":false,"l":166,"u":550},{"a":false,"l":658,"u":886},{"a":true,"l":266,"u":787},{"a":true,"l":931,"u":997},{"a":true,"l":265,"u":590},{"a":true,"l":173,"u":658},{"a":false,"l":249,"u":605},{"a":true,"l":484,"u":741},{"a":false,"l":562,"u":897},{"a":true,"l":210,"u":425},{"a":true,"l":132,"u":981},{"a":false,"l":408,"u":887},{"a":true,"l":394,"u":715},{"a":true,"l":677,"u":681},{"a":true,"l":31,"u":994},{"a":true,"l":315,"u":812},{"a":true,"l":123,"u":161},{"a":true,"l":80,"u":443},{"a":true,"l":217,"u":840},{"a":false,"l":219,"u":366},{"a":true,"l":397,"u":804},{"a":true,"l":19,"u":980},{"a":true,"l":355,"u":455},{"a":false,"l":407,"u":886},{"a":false,"l":228,"u":329},{"a":true,"l":624,"u":953},{"a":false,"l":36,"u":175},{"a":true,"l":131,"u":508},{"a":false,"l":146,"u":871},{"a":true,"l":208,"u":431},{"a":true,"l":180,"u":426},{"a":false,"l":278,"u":327},{"a":true,"l":376,"u":889},{"a":false,"l":216,"u":236},{"a":false,"l":640,"u":909},{"a":false,"l":92,"u":412},{"a":false,"l":876,"u":899},{"a":true,"l":146,"u":504},{"a":true,"l":331,"u":947},{"a":false,"l":755,"u":828},{"a":true,"l":586,"u":775},{"a":false,"l":497,"u":906},{"a":false,"l":15,"u":114},{"a":false,"l":487,"u":806},{"a":true,"l":54,"u":134},{"a":false,"l":362,"u":875},{"a":true,"l":195,"u":309},{"a":true,"l":556,"u":731},{"a":false,"l":565,"u":856},{"a":false,"l":196,"u":419},{"a":false,"l":463,"u":511},{"a":true,"l":143,"u":996},{"a":false,"l":490,"u":917},{"a":false,"l":375,"u":394},{"a":true,"l":42,"u":275},{"a":false,"l":463,"u":500},{"a":false,"l":134,"u":399},{"a":true,"l":684,"u":891},{"a":false,"l":529,"u":870},{"a":false,"l":551,"u":643},{"a":false,"l":301,"u":930},{"a":true,"l":530,"u":887},{"a":true,"l":604,"u":955},{"a":false,"l":180,"u":572},{"a":false,"l":942,"u":958},{"a":true,"l":96,"u":875},{"a":false,"l":1,"u":667},{"a":true,"l":50,"u":382},{"a":false,"l":62,"u":233},{"a":true,"l":60,"u":547},{"a":true,"l":95,"u":120},{"a":true,"l":22,"u":406},{"a":true,"l":295,"u":392},{"a":true,"l":246,"u":251},{"a":true,"l":454,"u":810},{"a":false,"l":23,"u":497},{"a":true,"l":509,"u":982},{"a":false,"l":2,"u":889},{"a":false,"l":300,"u":545},{"a":true,"l":175,"u":968},{"a":true,"l":54,"u":466},{"a":true,"l":311,"u":588},{"a":false,"l":289,"u":629},{"a":false,"l":269,"u":696},{"a":true,"l":324,"u":423},{"a":false,"l":291,"u":528},{"a":false,"l":739,"u":784},{"a":true,"l":32,"u":58},{"a":false,"l":262,"u":427},{"a":true,"l":406,"u":679},{"a":true,"l":344,"u":510},{"a":true,"l":173,"u":387},{"a":true,"l":70,"u":334},{"a":true,"l":227,"u":523},{"a":true,"l":243,"u":341},{"a":false,"l":609,"u":720},{"a":false,"l":108,"u":838},{"a":true,"l":49,"u":771},{"a":false,"l":235,"u":366},{"a":true,"l":355,"u":876},{"a":false,"l":452,"u":720},{"a":true,"l":366,"u":738},{"a":false,"l":118,"u":968},{"a":false,"l":191,"u":849},{"a":false,"l":85,"u":188},{"a":false,"l":483,"u":712},{"a":true,"l":344,"u":475},{"a":false,"l":129,"u":207},{"a":true,"l":447,"u":781},{"a":true,"l":11,"u":362},{"a":false,"l":208,"u":997},{"a":true,"l":176,"u":399},{"a":false,"l":653,"u":848},{"a":true,"l":350,"u":372},{"a":false,"l":383,"u":555},{"a":true,"l":377,"u":670},{"a":true,"l":679,"u":981},{"a":true,"l":782,"u":808},{"a":true,"l":368,"u":848},{"a":false,"l":114,"u":163},{"a":false,"l":86,"u":587},{"a":false,"l":240,"u":613},{"a":false,"l":145,"u":543},{"a":true,"l":491,"u":527},{"a":true,"l":445,"u":790},{"a":false,"l":143,"u":933},{"a":false,"l":58,"u":500},{"a":true,"l":285,"u":631},{"a":false,"l":347,"u":708},{"a":false,"l":124,"u":761},{"a":false,"l":8,"u":901},{"a":false,"l":542,"u":766},{"a":true,"l":64,"u":248},{"a":true,"l":620,"u":832},{"a":true,"l":407,"u":975},{"a":true,"l":97,"u":235},{"a":false,"l":397,"u":836},{"a":false,"l":612,"u":884},{"a":false,"l":368,"u":723},{"a":false,"l":293,"u":716},{"a":true,"l":410,"u":828},{"a":true,"l":360,"u":955},{"a":false,"l":30,"u":939},{"a":false,"l":418,"u":971},{"a":false,"l":146,"u":680},{"a":true,"l":368,"u":929},{"a":true,"l":532,"u":855},{"a":true,"l":45,"u":603},{"a":true,"l":295,"u":330},{"a":true,"l":203,"u":357},{"a":true,"l":243,"u":930},{"a":true,"l":137,"u":423},{"a":false,"l":97,"u":600},{"a":false,"l":416,"u":525},{"a":false,"l":647,"u":775},{"a":false,"l":300,"u":395},{"a":false,"l":811,"u":935},{"a":false,"l":394,"u":845},{"a":true,"l":170,"u":748},{"a":true,"l":73,"u":693},{"a":true,"l":630,"u":804},{"a":true,"l":294,"u":574},{"a":true,"l":476,"u":504},{"a":false,"l":468,"u":864},{"a":false,"l":299,"u":518},{"a":true,"l":104,"u":322},{"a":false,"l":331,"u":870},{"a":false,"l":448,"u":713},{"a":true,"l":895,"u":926},{"a":false,"l":867,"u":932},{"a":true,"l":871,"u":950},{"a":true,"l":177,"u":545},{"a":false,"l":462,"u":533},{"a":true,"l":630,"u":653},{"a":true,"l":243,"u":955},{"a":false,"l":216,"u":268},{"a":false,"l":288,"u":521},{"a":false,"l":501,"u":913},{"a":true,"l":556,"u":944},{"a":true,"l":85,"u":966},{"a":false,"l":740,"u":882},{"a":true,"l":144,"u":722},{"a":false,"l":253,"u":888},{"a":true,"l":58,"u":504},{"a":true,"l":374,"u":836},{"a":false,"l":618,"u":843},{"a":true,"l":36,"u":958},{"a":false,"l":508,"u":527},{"a":true,"l":525,"u":604},{"a":true,"l":294,"u":783},{"a":false,"l":31,"u":727},{"a":false,"l":37,"u":294},{"a":true,"l":172,"u":253},{"a":true,"l":276,"u":721},{"a":true,"l":489,"u":788},{"a":true,"l":125,"u":359},{"a":true,"l":68,"u":337},{"a":true,"l":542,"u":558},{"a":false,"l":306,"u":719},{"a":true,"l":8,"u":364},{"a":true,"l":352,"u":683},{"a":true,"l":37,"u":389},{"a":false,"l":751,"u":871},{"a":false,"l":422,"u":640},{"a":false,"l":425,"u":597},{"a":false,"l":187,"u":623},{"a":false,"l":154,"u":335},{"a":false,"l":384,"u":736},{"a":true,"l":306,"u":637},{"a":true,"l":167,"u":311},{"a":false,"l":413,"u":571},{"a":false,"l":306,"u":446},{"a":true,"l":302,"u":328},{"a":false,"l":445,"u":516},{"a":false,"l":419,"u":728},{"a":false,"l":693,"u":726},{"a":false,"l":683,"u":793},{"a":false,"l":579,"u":819},{"a":false,"l":129,"u":436},{"a":true,"l":245,"u":608},{"a":true,"l":85,"u":288},{"a":true,"l":35,"u":586},{"a":true,"l":192,"u":861},{"a":false,"l":525,"u":783},{"a":true,"l":302,"u":487},{"a":true,"l":726,"u":952},{"a":false,"l":641,"u":695},{"a":false,"l":209,"u":755},{"a":false,"l":20,"u":380},{"a":true,"l":352,"u":981},{"a":false,"l":284,"u":531},{"a":true,"l":427,"u":539},{"a":false,"l":786,"u":837},{"a":false,"l":46,"u":751},{"a":true,"l":458,"u":780},{"a":false,"l":585,"u":599},{"a":true,"l":49,"u":248},{"a":false,"l":64,"u":794},{"a":false,"l":108,"u":128},{"a":false,"l":182,"u":957},{"a":false,"l":452,"u":453},{"a":true,"l":471,"u":921},{"a":false,"l":682,"u":832},{"a":true,"l":279,"u":791},{"a":true,"l":143,"u":561},{"a":false,"l":368,"u":905},{"a":false,"l":787,"u":922},{"a":false,"l":137,"u":963},{"a":false,"l":666,"u":918},{"a":true,"l":832,"u":979},{"a":false,"l":164,"u":216},{"a":true,"l":585,"u":888},{"a":true,"l":350,"u":459},{"a":false,"l":127,"u":821},{"a":false,"l":661,"u":918},{"a":false,"l":413,"u":622},{"a":true,"l":38,"u":588},{"a":true,"l":162,"u":246},{"a":true,"l":798,"u":994},{"a":false,"l":91,"u":844},{"a":false,"l":725,"u":743},{"a":false,"l":32,"u":968},{"a":true,"l":172,"u":675},{"a":false,"l":113,"u":243},{"a":true,"l":385,"u":961},{"a":false,"l":156,"u":489},{"a":true,"l":60,"u":488},{"a":true,"l":40,"u":931},{"a":false,"l":57,"u":478},{"a":false,"l":776,"u":870},{"a":false,"l":25,"u":687},{"a":true,"l":23,"u":888},{"a":true,"l":363,"u":418},{"a":true,"l":191,"u":655},{"a":false,"l":2,"u":272},{"a":true,"l":732,"u":925},{"a":true,"l":296,"u":772},{"a":true,"l":648,"u":697},{"a":true,"l":613,"u":963},{"a":true,"l":139,"u":534},{"a":true,"l":605,"u":836},{"a":true,"l":901,"u":952},{"a":false,"l":234,"u":657},{"a":true,"l":357,"u":943},{"a":false,"l":489,"u":983},{"a":true,"l":784,"u":830},{"a":false,"l":728,"u":738},{"a":false,"l":200,"u":210},{"a":false,"l":577,"u":880},{"a":false,"l":194,"u":351},{"a":true,"l":137,"u":164},{"a":true,"l":4,"u":406},{"a":true,"l":58,"u":472},{"a":true,"l":235,"u":595},{"a":true,"l":657,"u":679},{"a":true,"l":432,"u":983},{"a":false,"l":147,"u":503},{"a":true,"l":95,"u":186},{"a":false,"l":51,"u":846},{"a":true,"l":791,"u":839},{"a":false,"l":526,"u":670},{"a":false,"l":921,"u":961},{"a":true,"l":411,"u":679},{"a":false,"l":359,"u":400},{"a":true,"l":230,"u":265},{"a":false,"l":777,"u":896},{"a":true,"l":327,"u":937},{"a":true,"l":71,"u":596},{"a":true,"l":582,"u":758},{"a":false,"l":315,"u":421},{"a":true,"l":369,"u":407},{"a":false,"l":234,"u":926},{"a":false,"l":335,"u":626},{"a":false,"l":118,"u":263},{"a":false,"l":355,"u":812},{"a":false,"l":253,"u":768},{"a":true,"l":264,"u":910},{"a":true,"l":452,"u":510},{"a":true,"l":255,"u":564},{"a":false,"l":261,"u":908},{"a":true,"l":53,"u":982},{"a":false,"l":287,"u":412},{"a":true,"l":647,"u":781},{"a":false,"l":200,"u":916},{"a":true,"l":534,"u":962},{"a":false,"l":226,"u":905},{"a":false,"l":809,"u":918},{"a":false,"l":188,"u":571},{"a":false,"l":330,"u":696},{"a":false,"l":77,"u":380},{"a":false,"l":385,"u":965},{"a":true,"l":495,"u":975},{"a":true,"l":185,"u":550},{"a":true,"l":320,"u":860},{"a":false,"l":242,"u":517},{"a":false,"l":296,"u":930},{"a":false,"l":455,"u":512},{"a":true,"l":670,"u":917},{"a":true,"l":88,"u":102},{"a":false,"l":22,"u":351},{"a":false,"l":99,"u":545},{"a":false,"l":68,"u":743},{"a":true,"l":356,"u":527},{"a":true,"l":69,"u":146},{"a":false,"l":454,"u":618},{"a":false,"l":233,"u":294},{"a":false,"l":632,"u":999},{"a":true,"l":258,"u":807},{"a":true,"l":170,"u":400},{"a":false,"l":159,"u":538},{"a":false,"l":448,"u":672},{"a":false,"l":579,"u":683},{"a":false,"l":319,"u":479},{"a":true,"l":402,"u":893},{"a":true,"l":141,"u":395},{"a":true,"l":574,"u":944},{"a":true,"l":395,"u":997},{"a":true,"l":253,"u":478},{"a":false,"l":917,"u":973},{"a":true,"l":130,"u":753},{"a":true,"l":56,"u":523},{"a":false,"l":776,"u":907},{"a":true,"l":600,"u":957},{"a":true,"l":285,"u":461},{"a":true,"l":310,"u":609},{"a":false,"l":511,"u":865},{"a":false,"l":239,"u":874},{"a":true,"l":152,"u":659},{"a":false,"l":135,"u":681},{"a":false,"l":143,"u":660},{"a":false,"l":319,"u":507},{"a":false,"l":687,"u":877},{"a":true,"l":84,"u":253},{"a":false,"l":269,"u":517},{"a":false,"l":579,"u":708},{"a":false,"l":34,"u":355},{"a":true,"l":81,"u":655},{"a":false,"l":468,"u":510},{"a":false,"l":565,"u":818},{"a":true,"l":684,"u":686},{"a":false,"l":756,"u":831},{"a":true,"l":500,"u":664},{"a":false,"l":650,"u":783},{"a":false,"l":361,"u":438},{"a":true,"l":87,"u":541},{"a":false,"l":451,"u":691},{"a":false,"l":505,"u":703},{"a":false,"l":44,"u":764},{"a":true,"l":787,"u":792},{"a":false,"l":124,"u":330},{"a":true,"l":32,"u":399},{"a":false,"l":278,"u":670},{"a":false,"l":294,"u":640},{"a":false,"l":165,"u":245},{"a":true,"l":19,"u":241},{"a":false,"l":110,"u":569},{"a":false,"l":222,"u":300},{"a":false,"l":237,"u":332},{"a":false,"l":466,"u":955},{"a":false,"l":360,"u":482},{"a":true,"l":679,"u":946},{"a":true,"l":62,"u":935},{"a":false,"l":340,"u":350},{"a":false,"l":148,"u":275},{"a":true,"l":171,"u":232},{"a":true,"l":95,"u":563},{"a":false,"l":89,"u":875},{"a":false,"l":115,"u":590},{"a":true,"l":606,"u":790},{"a":true,"l":138,"u":665},{"a":true,"l":360,"u":463},{"a":true,"l":522,"u":935},{"a":false,"l":573,"u":612},{"a":false,"l":583,"u":790},{"a":true,"l":147,"u":545},{"a":true,"l":331,"u":574},{"a":true,"l":284,"u":493},{"a":true,"l":689,"u":769},{"a":true,"l":577,"u":945},{"a":true,"l":331,"u":490},{"a":false,"l":370,"u":678},{"a":false,"l":231,"u":540},{"a":false,"l":71,"u":565},{"a":false,"l":29,"u":204},{"a":false,"l":599,"u":652},{"a":false,"l":24,"u":359},{"a":true,"l":316,"u":726},{"a":true,"l":310,"u":550},{"a":true,"l":478,"u":612},{"a":true,"l":476,"u":761},{"a":true,"l":100,"u":478},{"a":false,"l":108,"u":272},{"a":false,"l":153,"u":278},{"a":true,"l":218,"u":694},{"a":false,"l":152,"u":603},{"a":true,"l":652,"u":718},{"a":false,"l":467,"u":706},{"a":false,"l":124,"u":328},{"a":true,"l":516,"u":720},{"a":false,"l":378,"u":552},{"a":false,"l":358,"u":450},{"a":false,"l":441,"u":481},{"a":false,"l":245,"u":438},{"a":false,"l":188,"u":244},{"a":false,"l":21,"u":896},{"a":false,"l":414,"u":453},{"a":true,"l":523,"u":629},{"a":true,"l":77,"u":299},{"a":false,"l":23,"u":784},{"a":true,"l":49,"u":952},{"a":true,"l":569,"u":728},{"a":false,"l":144,"u":966},{"a":false,"l":64,"u":241},{"a":false,"l":266,"u":455},{"a":true,"l":302,"u":496},{"a":false,"l":108,"u":502},{"a":false,"l":216,"u":285},{"a":true,"l":359,"u":987},{"a":false,"l":185,"u":638},{"a":true,"l":251,"u":387},{"a":true,"l":411,"u":907},{"a":false,"l":617,"u":951},{"a":false,"l":136,"u":699},{"a":false,"l":411,"u":541},{"a":true,"l":297,"u":916},{"a":false,"l":360,"u":651},{"a":false,"l":282,"u":932},{"a":true,"l":76,"u":880},{"a":false,"l":724,"u":995},{"a":true,"l":304,"u":359},{"a":false,"l":211,"u":750},{"a":false,"l":187,"u":507},{"a":true,"l":437,"u":561},{"a":true,"l":361,"u":740},{"a":true,"l":216,"u":346},{"a":true,"l":197,"u":794},{"a":false,"l":764,"u":911},{"a":false,"l":114,"u":859},{"a":false,"l":478,"u":826},{"a":true,"l":747,"u":873},{"a":false,"l":387,"u":939},{"a":true,"l":620,"u":701},{"a":false,"l":261,"u":574},{"a":false,"l":671,"u":967},{"a":false,"l":597,"u":699},{"a":false,"l":246,"u":778},{"a":true,"l":409,"u":765},{"a":true,"l":265,"u":967},{"a":true,"l":293,"u":326},{"a":true,"l":150,"u":282},{"a":true,"l":574,"u":914},{"a":false,"l":636,"u":969},{"a":true,"l":222,"u":427},{"a":true,"l":315,"u":611},{"a":true,"l":407,"u":939},{"a":false,"l":84,"u":318},{"a":false,"l":762,"u":870},{"a":true,"l":220,"u":914},{"a":true,"l":211,"u":519},{"a":false,"l":195,"u":358},{"a":false,"l":26,"u":303},{"a":true,"l":34,"u":405},{"a":true,"l":360,"u":763},{"a":true,"l":200,"u":646},{"a":false,"l":233,"u":912},{"a":true,"l":392,"u":711},{"a":true,"l":111,"u":469},{"a":true,"l":252,"u":636},{"a":false,"l":172,"u":982},{"a":true,"l":368,"u":591},{"a":false,"l":282,"u":496},{"a":true,"l":74,"u":542},{"a":true,"l":191,"u":711},{"a":true,"l":411,"u":456},{"a":true,"l":395,"u":888},{"a":true,"l":49,"u":472},{"a":true,"l":483,"u":612},{"a":true,"l":104,"u":205},{"a":true,"l":176,"u":754},{"a":false,"l":71,"u":434},{"a":true,"l":278,"u":834},{"a":true,"l":88,"u":488},{"a":true,"l":306,"u":470},{"a":false,"l":319,"u":877},{"a":false,"l":161,"u":667},{"a":true,"l":863,"u":879},{"a":true,"l":98,"u":377},{"a":false,"l":404,"u":407},{"a":false,"l":150,"u":874},{"a":false,"l":217,"u":561},{"a":false,"l":404,"u":804},{"a":true,"l":393,"u":492},{"a":true,"l":87,"u":723},{"a":false,"l":907,"u":941},{"a":false,"l":214,"u":785},{"a":false,"l":239,"u":481},{"a":false,"l":254,"u":668},{"a":false,"l":24,"u":151},{"a":false,"l":234,"u":498},{"a":false,"l":328,"u":711},{"a":true,"l":13,"u":164},{"a":false,"l":550,"u":914},{"a":false,"l":7,"u":459},{"a":false,"l":108,"u":363},{"a":true,"l":597,"u":667},{"a":true,"l":496,"u":990},{"a":false,"l":171,"u":917},{"a":false,"l":145,"u":627},{"a":true,"l":736,"u":923},{"a":false,"l":352,"u":764},{"a":false,"l":102,"u":929},{"a":false,"l":216,"u":743},{"a":false,"l":258,"u":399},{"a":false,"l":19,"u":685},{"a":false,"l":285,"u":921},{"a":false,"l":549,"u":717},{"a":true,"l":368,"u":521},{"a":false,"l":128,"u":273},{"a":true,"l":271,"u":507},{"a":false,"l":658,"u":800},{"a":true,"l":56,"u":549},{"a":true,"l":205,"u":549},{"a":false,"l":408,"u":979},{"a":false,"l":31,"u":238},{"a":true,"l":262,"u":588},{"a":false,"l":435,"u":693},{"a":false,"l":147,"u":781},{"a":true,"l":6,"u":319},{"a":false,"l":517,"u":988},{"a":true,"l":85,"u":420},{"a":true,"l":295,"u":729},{"a":false,"l":105,"u":538},{"a":true,"l":295,"u":521},{"a":false,"l":554,"u":881},{"a":true,"l":175,"u":283},{"a":false,"l":139,"u":581},{"a":true,"l":764,"u":920},{"a":true,"l":105,"u":219},{"a":true,"l":541,"u":716},{"a":true,"l":492,"u":920},{"a":false,"l":264,"u":653},{"a":true,"l":45,"u":706},{"a":true,"l":141,"u":798},{"a":true,"l":372,"u":862},{"a":true,"l":631,"u":865},{"a":false,"l":20,"u":891},{"a":true,"l":202,"u":544},{"a":false,"l":484,"u":933},{"a":true,"l":871,"u":985},{"a":true,"l":711,"u":964},{"a":false,"l":354,"u":846},{"a":true,"l":40,"u":582},{"a":false,"l":848,"u":920},{"a":true,"l":34,"u":505},{"a":true,"l":174,"u":791},{"a":false,"l":394,"u":898},{"a":false,"l":533,"u":716},{"a":true,"l":277,"u":441},{"a":false,"l":452,"u":545},{"a":true,"l":532,"u":540},{"a":true,"l":361,"u":634},{"a":true,"l":424,"u":737},{"a":false,"l":334,"u":672},{"a":true,"l":577,"u":791},{"a":true,"l":149,"u":194},{"a":true,"l":652,"u":981},{"a":false,"l":329,"u":634},{"a":false,"l":653,"u":949},{"a":true,"l":850,"u":979},{"a":true,"l":136,"u":330},{"a":false,"l":255,"u":455},{"a":true,"l":772,"u":907},{"a":false,"l":653,"u":779},{"a":false,"l":829,"u":938},{"a":false,"l":142,"u":463},{"a":false,"l":160,"u":320},{"a":true,"l":606,"u":926},{"a":false,"l":120,"u":368},{"a":true,"l":606,"u":769},{"a":false,"l":125,"u":937},{"a":false,"l":460,"u":608},{"a":false,"l":117,"u":346},{"a":true,"l":476,"u":841},{"a":false,"l":75,"u":681},{"a":false,"l":378,"u":871},{"a":true,"l":42,"u":275},{"a":true,"l":104,"u":928},{"a":false,"l":23,"u":979},{"a":true,"l":149,"u":255},{"a":true,"l":88,"u":727},{"a":false,"l":108,"u":886},{"a":true,"l":670,"u":760},{"a":false,"l":967,"u":999},{"a":true,"l":136,"u":925},{"a":true,"l":90,"u":138},{"a":true,"l":38,"u":172},{"a":true,"l":357,"u":896},{"a":true,"l":245,"u":272},{"a":false,"l":250,"u":494},{"a":true,"l":763,"u":809},{"a":true,"l":178,"u":938},{"a":false,"l":32,"u":79},{"a":false,"l":771,"u":935},{"a":true,"l":401,"u":867},{"a":false,"l":70,"u":672},{"a":false,"l":506,"u":513},{"a":true,"l":179,"u":542},{"a":false,"l":695,"u":935},{"a":true,"l":372,"u":687},{"a":false,"l":371,"u":603},{"a":false,"l":320,"u":916},{"a":true,"l":267,"u":528},{"a":false,"l":44,"u":789},{"a":true,"l":602,"u":606},{"a":true,"l":486,"u":569},{"a":false,"l":182,"u":822},{"a":true,"l":669,"u":782},{"a":false,"l":168,"u":236},{"a":true,"l":714,"u":975},{"a":false,"l":608,"u":893},{"a":false,"l":838,"u":906},{"a":false,"l":663,"u":751},{"a":true,"l":104,"u":376},{"a":true,"l":913,"u":919},{"a":true,"l":581,"u":738},{"a":false,"l":109,"u":231},{"a":true,"l":231,"u":878},{"a":false,"l":127,"u":781},{"a":true,"l":493,"u":584},{"a":false,"l":741,"u":922},{"a":false,"l":25,"u":688},{"a":false,"l":321,"u":570},{"a":false,"l":259,"u":654},{"a":true,"l":151,"u":247},{"a":true,"l":72,"u":372},{"a":false,"l":355,"u":805},{"a":false,"l":502,"u":558},{"a":true,"l":231,"u":632},{"a":false,"l":172,"u":173},{"a":false,"l":503,"u":989},{"a":true,"l":300,"u":771},{"a":true,"l":169,"u":955},{"a":true,"l":292,"u":515},{"a":false,"l":340,"u":489},{"a":false,"l":695,"u":919},{"a":true,"l":198,"u":246},{"a":false,"l":187,"u":658},{"a":true,"l":189,"u":784},{"a":false,"l":272,"u":996},{"a":true,"l":208,"u":478},{"a":false,"l":256,"u":728},{"a":false,"l":720,"u":970},{"a":false,"l":152,"u":156},{"a":false,"l":202,"u":766},{"a":false,"l":455,"u":623},{"a":false,"l":489,"u":793},{"a":true,"l":54,"u":494},{"a":false,"l":141,"u":345},{"a":false,"l":70,"u":572},{"a":false,"l":683,"u":757},{"a":false,"l":500,"u":531},{"a":false,"l":169,"u":907},{"a":true,"l":83,"u":580},{"a":true,"l":774,"u":948},{"a":true,"l":489,"u":904},{"a":true,"l":353,"u":515},{"a":false,"l":101,"u":948},{"a":true,"l":562,"u":568},{"a":true,"l":24,"u":926},{"a":true,"l":388,"u":817},{"a":true,"l":17,"u":900},{"a":true,"l":42,"u":436},{"a":true,"l":360,"u":473},{"a":true,"l":44,"u":181},{"a":true,"l":435,"u":724},{"a":false,"l":69,"u":227},{"a":false,"l":828,"u":951},{"a":false,"l":668,"u":825},{"a":false,"l":111,"u":435},{"a":true,"l":267,"u":785},{"a":true,"l":326,"u":741},{"a":false,"l":192,"u":379},{"a":false,"l":173,"u":510},{"a":false,"l":674,"u":958},{"a":true,"l":550,"u":901},{"a":true,"l":820,"u":856},{"a":true,"l":434,"u":949},{"a":false,"l":830,"u":933},{"a":true,"l":529,"u":568},{"a":true,"l":620,"u":822},{"a":false,"l":520,"u":744},{"a":false,"l":254,"u":316},{"a":true,"l":196,"u":422},{"a":false,"l":287,"u":795},{"a":true,"l":628,"u":805},{"a":false,"l":100,"u":180},{"a":true,"l":282,"u":636},{"a":false,"l":950,"u":973},{"a":true,"l":89,"u":586},{"a":false,"l":233,"u":950},{"a":true,"l":307,"u":588},{"a":false,"l":463,"u":992},{"a":false,"l":806,"u":928},{"a":true,"l":374,"u":515},{"a":true,"l":410,"u":500},{"a":true,"l":400,"u":831},{"a":true,"l":442,"u":873},{"a":true,"l":363,"u":650},{"a":false,"l":446,"u":713},{"a":true,"l":210,"u":411},{"a":false,"l":143,"u":176},{"a":true,"l":293,"u":312},{"a":false,"l":182,"u":773},{"a":true,"l":385,"u":511},{"a":true,"l":185,"u":726},{"a":true,"l":618,"u":677},{"a":false,"l":172,"u":552},{"a":true,"l":83,"u":299},{"a":false,"l":211,"u":391},{"a":true,"l":567,"u":718},{"a":true,"l":411,"u":761},{"a":false,"l":43,"u":730},{"a":true,"l":268,"u":737},{"a":false,"l":209,"u":379},{"a":false,"l":394,"u":472},{"a":false,"l":404,"u":601},{"a":false,"l":556,"u":821},{"a":false,"l":196,"u":217},{"a":false,"l":631,"u":973},{"a":false,"l":99,"u":976},{"a":false,"l":155,"u":283},{"a":true,"l":262,"u":980},{"a":false,"l":135,"u":832},{"a":false,"l":347,"u":965},{"a":false,"l":162,"u":468},{"a":true,"l":112,"u":823},{"a":false,"l":170,"u":292},{"a":false,"l":717,"u":894},{"a":false,"l":299,"u":737},{"a":false,"l":208,"u":809},{"a":true,"l":106,"u":250},{"a":false,"l":114,"u":155},{"a":false,"l":109,"u":726},{"a":true,"l":164,"u":765},{"a":false,"l":207,"u":722},{"a":true,"l":556,"u":938},{"a":false,"l":200,"u":825},{"a":true,"l":322,"u":743},{"a":true,"l":202,"u":429},{"a":false,"l":528,"u":532},{"a":false,"l":578,"u":883},{"a":true,"l":232,"u":600},{"a":true,"l":410,"u":833},{"a":true,"l":136,"u":505},{"a":false,"l":466,"u":991},{"a":false,"l":428,"u":611},{"a":true,"l":36,"u":300},{"a":false,"l":160,"u":451},{"a":true,"l":203,"u":901},{"a":true,"l":321,"u":361},{"a":true,"l":156,"u":200},{"a":false,"l":100,"u":675},{"a":true,"l":365,"u":891},{"a":true,"l":620,"u":928},{"a":true,"l":162,"u":195},{"a":false,"l":269,"u":746},{"a":false,"l":38,"u":734},{"a":false,"l":81,"u":441},{"a":false,"l":124,"u":629},{"a":true,"l":421,"u":941},{"a":false,"l":305,"u":602},{"a":false,"l":547,"u":715},{"a":false,"l":513,"u":775},{"a":true,"l":11,"u":263},{"a":true,"l":840,"u":956},{"a":true,"l":414,"u":496},{"a":true,"l":55,"u":233},{"a":false,"l":317,"u":709},{"a":true,"l":960,"u":970},{"a":false,"l":409,"u":632},{"a":true,"l":281,"u":429},{"a":false,"l":669,"u":839},{"a":false,"l":99,"u":413},{"a":false,"l":334,"u":981},{"a":true,"l":190,"u":264},{"a":false,"l":817,"u":910},{"a":false,"l":509,"u":607},{"a":true,"l":474,"u":574},{"a":false,"l":262,"u":553},{"a":true,"l":14,"u":584},{"a":true,"l":199,"u":349},{"a":false,"l":282,"u":410},{"a":false,"l":423,"u":744},{"a":true,"l":533,"u":992},{"a":false,"l":167,"u":955},{"a":false,"l":346,"u":551},{"a":true,"l":7,"u":184},{"a":true,"l":317,"u":873},{"a":false,"l":732,"u":772},{"a":false,"l":93,"u":217},{"a":true,"l":369,"u":837},{"a":true,"l":242,"u":696},{"a":true,"l":210,"u":860},{"a":true,"l":155,"u":655},{"a":true,"l":14,"u":469},{"a":false,"l":658,"u":974},{"a":true,"l":640,"u":990},{"a":false,"l":346,"u":374},{"a":false,"l":358,"u":833},{"a":true,"l":257,"u":715},{"a":true,"l":462,"u":701},{"a":true,"l":707,"u":909},{"a":true,"l":601,"u":931},{"a":true,"l":214,"u":630},{"a":false,"l":109,"u":680},{"a":false,"l":288,"u":616},{"a":true,"l":487,"u":840},{"a":true,"l":80,"u":449},{"a":true,"l":71,"u":419},{"a":true,"l":620,"u":732},{"a":false,"l":81,"u":170},{"a":true,"l":629,"u":838},{"a":false,"l":278,"u":500},{"a":false,"l":178,"u":340},{"a":false,"l":99,"u":764},{"a":true,"l":102,"u":464},{"a":false,"l":200,"u":580},{"a":false,"l":39,"u":748},{"a":true,"l":481,"u":867},{"a":false,"l":355,"u":990},{"a":true,"l":60,"u":228},{"a":true,"l":221,"u":463},{"a":false,"l":74,"u":391},{"a":true,"l":116,"u":818},{"a":false,"l":97,"u":520},{"a":false,"l":778,"u":998},{"a":true,"l":388,"u":883},{"a":true,"l":25,"u":375},{"a":true,"l":264,"u":318},{"a":false,"l":194,"u":935},{"a":false,"l":123,"u":229},{"a":false,"l":534,"u":641},{"a":false,"l":350,"u":615},{"a":true,"l":218,"u":518},{"a":true,"l":154,"u":173},{"a":false,"l":177,"u":821},{"a":true,"l":496,"u":801},{"a":false,"l":29,"u":587},{"a":true,"l":34,"u":48},{"a":false,"l":140,"u":880},{"a":true,"l":218,"u":438},{"a":false,"l":383,"u":611},{"a":false,"l":93,"u":219},{"a":false,"l":370,"u":466},{"a":true,"l":541,"u":700},{"a":false,"l":97,"u":785},{"a":false,"l":68,"u":971},{"a":false,"l":238,"u":252},{"a":false,"l":808,"u":816},{"a":true,"l":651,"u":826},{"a":false,"l":609,"u":992},{"a":false,"l":119,"u":918},{"a":false,"l":230,"u":437},{"a":true,"l":210,"u":472},{"a":true,"l":823,"u":824},{"a":true,"l":114,"u":851},{"a":true,"l":111,"u":534},{"a":false,"l":100,"u":509},{"a":true,"l":178,"u":351},{"a":true,"l":133,"u":835},{"a":true,"l":78,"u":304},{"a":false,"l":491,"u":999},{"a":true,"l":8,"u":148},{"a":true,"l":9,"u":511},{"a":false,"l":822,"u":832},{"a":true,"l":19,"u":301},{"a":false,"l":37,"u":176},{"a":false,"l":111,"u":154},{"a":true,"l":76,"u":368},{"a":true,"l":405,"u":987},{"a":true,"l":782,"u":894},{"a":true,"l":25,"u":222},{"a":false,"l":361,"u":995},{"a":false,"l":376,"u":536},{"a":true,"l":289,"u":605},{"a":false,"l":148,"u":661},{"a":true,"l":266,"u":834},{"a":false,"l":214,"u":960},{"a":true,"l":250,"u":856},{"a":true,"l":203,"u":425},{"a":false,"l":654,"u":799},{"a":true,"l":525,"u":661},{"a":false,"l":740,"u":932},{"a":true,"l":512,"u":711},{"a":false,"l":206,"u":363},{"a":false,"l":318,"u":355},{"a":true,"l":595,"u":694},{"a":true,"l":459,"u":968},{"a":false,"l":358,"u":521},{"a":false,"l":480,"u":589},{"a":false,"l":101,"u":274},{"a":true,"l":420,"u":919},{"a":true,"l":113,"u":463},{"a":true,"l":83,"u":879},{"a":false,"l":330,"u":531},{"a":false,"l":16,"u":237},{"a":false,"l":580,"u":629},{"a":false,"l":21,"u":681},{"a":true,"l":46,"u":252},{"a":false,"l":77,"u":222},{"a":false,"l":510,"u":538},{"a":false,"l":410,"u":812},{"a":true,"l":539,"u":613},{"a":false,"l":72,"u":752},{"a":true,"l":217,"u":516},{"a":false,"l":769,"u":791},{"a":false,"l":796,"u":864},{"a":false,"l":748,"u":841},{"a":false,"l":262,"u":485},{"a":false,"l":397,"u":477},{"a":true,"l":118,"u":221},{"a":true,"l":919,"u":966},{"a":false,"l":113,"u":526},{"a":false,"l":47,"u":318},{"a":false,"l":411,"u":872},{"a":false,"l":132,"u":306},{"a":false,"l":33,"u":932},{"a":true,"l":152,"u":393},{"a":true,"l":3,"u":323},{"a":true,"l":635,"u":796},{"a":true,"l":314,"u":874},{"a":true,"l":235,"u":400},{"a":false,"l":192,"u":800},{"a":false,"l":221,"u":439},{"a":false,"l":410,"u":962},{"a":true,"l":386,"u":722},{"a":false,"l":4,"u":507},{"a":true,"l":664,"u":739},{"a":false,"l":500,"u":518},{"a":true,"l":587,"u":732},{"a":false,"l":269,"u":526},{"a":false,"l":141,"u":431},{"a":false,"l":17,"u":517},{"a":true,"l":282,"u":764},{"a":true,"l":328,"u":452},{"a":false,"l":203,"u":977},{"a":false,"l":82,"u":962},{"a":false,"l":259,"u":922},{"a":true,"l":252,"u":915},{"a":true,"l":766,"u":879},{"a":false,"l":215,"u":790},{"a":true,"l":127,"u":776},{"a":false,"l":103,"u":456},{"a":false,"l":197,"u":998},{"a":false,"l":186,"u":283},{"a":false,"l":337,"u":919},{"a":true,"l":352,"u":892},{"a":true,"l":466,"u":671},{"a":false,"l":102,"u":666},{"a":true,"l":558,"u":928},{"a":false,"l":183,"u":643},{"a":false,"l":430,"u":908},{"a":true,"l":196,"u":956},{"a":false,"l":449,"u":591},{"a":false,"l":386,"u":679},{"a":true,"l":766,"u":873},{"a":false,"l":811,"u":860},{"a":true,"l":107,"u":333},{"a":true,"l":559,"u":765},{"a":true,"l":844,"u":989},{"a":true,"l":2,"u":495},{"a":true,"l":721,"u":918},{"a":false,"l":395,"u":836},{"a":false,"l":114,"u":516},{"a":true,"l":497,"u":535},{"a":true,"l":35,"u":759},{"a":false,"l":250,"u":441},{"a":true,"l":385,"u":885},{"a":false,"l":632,"u":827},{"a":false,"l":505,"u":837},{"a":true,"l":646,"u":994},{"a":true,"l":374,"u":562},{"a":false,"l":632,"u":992},{"a":true,"l":13,"u":553},{"a":true,"l":293,"u":343},{"a":false,"l":9,"u":480},{"a":true,"l":152,"u":511},{"a":false,"l":376,"u":925},{"a":false,"l":233,"u":525},{"a":false,"l":309,"u":560},{"a":true,"l":60,"u":574},{"a":false,"l":494,"u":599},{"a":false,"l":724,"u":835},{"a":true,"l":514,"u":528},{"a":true,"l":79,"u":161},{"a":true,"l":45,"u":219},{"a":true,"l":290,"u":453},{"a":true,"l":195,"u":443},{"a":true,"l":228,"u":875},{"a":true,"l":312,"u":688},{"a":true,"l":759,"u":925},{"a":false,"l":659,"u":747},{"a":false,"l":777,"u":890},{"a":true,"l":490,"u":545},{"a":true,"l":571,"u":819},{"a":false,"l":281,"u":903},{"a":false,"l":86,"u":320},{"a":false,"l":462,"u":931},{"a":false,"l":166,"u":827},{"a":false,"l":649,"u":773},{"a":false,"l":424,"u":703},{"a":false,"l":310,"u":515},{"a":true,"l":162,"u":542},{"a":true,"l":489,"u":781},{"a":false,"l":223,"u":837},{"a":false,"l":123,"u":911},{"a":false,"l":328,"u":656},{"a":false,"l":429,"u":460},{"a":false,"l":559,"u":563},{"a":false,"l":176,"u":413},{"a":true,"l":226,"u":881},{"a":true,"l":418,"u":843},{"a":true,"l":208,"u":301},{"a":false,"l":876,"u":877},{"a":true,"l":931,"u":952},{"a":false,"l":139,"u":155},{"a":true,"l":81,"u":784},{"a":false,"l":333,"u":458},{"a":false,"l":454,"u":904},{"a":false,"l":547,"u":842},{"a":true,"l":342,"u":367},{"a":true,"l":387,"u":734},{"a":false,"l":42,"u":146},{"a":true,"l":142,"u":549},{"a":true,"l":495,"u":565},{"a":false,"l":422,"u":476},{"a":true,"l":331,"u":412},{"a":true,"l":691,"u":933},{"a":true,"l":493,"u":593},{"a":true,"l":484,"u":641},{"a":false,"l":52,"u":383},{"a":false,"l":26,"u":953},{"a":true,"l":390,"u":891},{"a":false,"l":872,"u":999},{"a":true,"l":221,"u":391},{"a":true,"l":391,"u":753},{"a":true,"l":183,"u":485},{"a":true,"l":246,"u":248},{"a":false,"l":284,"u":561},{"a":true,"l":100,"u":922},{"a":true,"l":359,"u":746},{"a":true,"l":36,"u":340},{"a":true,"l":289,"u":964},{"a":true,"l":218,"u":404},{"a":false,"l":526,"u":624},{"a":true,"l":438,"u":699},{"a":false,"l":287,"u":665},{"a":false,"l":596,"u":761},{"a":false,"l":629,"u":888},{"a":false,"l":132,"u":138},{"a":true,"l":8,"u":255},{"a":true,"l":481,"u":732},{"a":false,"l":515,"u":695},{"a":true,"l":348,"u":627},{"a":true,"l":244,"u":832},{"a":false,"l":868,"u":986},{"a":true,"l":31,"u":157},{"a":false,"l":206,"u":320},{"a":false,"l":15,"u":101},{"a":false,"l":446,"u":880},{"a":true,"l":804,"u":887},{"a":false,"l":565,"u":996},{"a":false,"l":145,"u":533},{"a":false,"l":293,"u":430},{"a":true,"l":712,"u":960},{"a":true,"l":56,"u":222},{"a":true,"l":14,"u":378},{"a":true,"l":599,"u":776},{"a":false,"l":2,"u":953},{"a":false,"l":111,"u":324},{"a":false,"l":556,"u":971},{"a":true,"l":194,"u":347},{"a":true,"l":469,"u":916},{"a":true,"l":596,"u":694},{"a":true,"l":422,"u":860},{"a":false,"l":99,"u":316},{"a":true,"l":146,"u":212},{"a":false,"l":696,"u":896},{"a":true,"l":658,"u":931},{"a":false,"l":163,"u":937},{"a":false,"l":49,"u":313},{"a":false,"l":554,"u":912},{"a":false,"l":130,"u":380},{"a":false,"l":185,"u":490},{"a":true,"l":242,"u":560},{"a":true,"l":406,"u":914},{"a":true,"l":417,"u":643},{"a":false,"l":483,"u":863},{"a":false,"l":780,"u":944},{"a":false,"l":192,"u":781},{"a":false,"l":115,"u":658},{"a":false,"l":465,"u":716},{"a":false,"l":443,"u":606},{"a":false,"l":117,"u":251},{"a":true,"l":215,"u":671},{"a":true,"l":306,"u":909},{"a":false,"l":439,"u":925},{"a":false,"l":595,"u":760},{"a":true,"l":509,"u":976},{"a":false,"l":101,"u":657},{"a":true,"l":85,"u":125},{"a":true,"l":137,"u":883},{"a":true,"l":139,"u":317},{"a":true,"l":584,"u":737},{"a":true,"l":219,"u":254},{"a":false,"l":71,"u":429},{"a":false,"l":173,"u":266},{"a":false,"l":34,"u":667},{"a":false,"l":724,"u":885},{"a":true,"l":623,"u":936},{"a":true,"l":509,"u":564},{"a":false,"l":60,"u":928},{"a":true,"l":221,"u":378},{"a":false,"l":576,"u":654},{"a":true,"l":159,"u":516},{"a":true,"l":574,"u":825},{"a":true,"l":276,"u":543},{"a":false,"l":261,"u":725},{"a":false,"l":283,"u":868},{"a":false,"l":292,"u":550},{"a":false,"l":763,"u":827},{"a":false,"l":559,"u":874},{"a":false,"l":770,"u":924},{"a":false,"l":60,"u":536},{"a":true,"l":469,"u":814},{"a":true,"l":334,"u":845},{"a":false,"l":236,"u":296},{"a":false,"l":347,"u":618},{"a":false,"l":44,"u":99},{"a":true,"l":207,"u":286},{"a":true,"l":657,"u":990},{"a":false,"l":312,"u":367},{"a":true,"l":47,"u":833},{"a":false,"l":633,"u":910},{"a":true,"l":108,"u":258},{"a":false,"l":290,"u":883},{"a":false,"l":222,"u":540},{"a":false,"l":108,"u":814},{"a":false,"l":120,"u":257},{"a":false,"l":607,"u":851},{"a":true,"l":331,"u":728},{"a":false,"l":7,"u":846},{"a":true,"l":439,"u":735},{"a":false,"l":252,"u":264},{"a":false,"l":39,"u":226},{"a":true,"l":48,"u":276},{"a":true,"l":672,"u":775},{"a":true,"l":106,"u":349},{"a":false,"l":632,"u":933},{"a":true,"l":214,"u":650},{"a":true,"l":385,"u":537},{"a":true,"l":361,"u":459},{"a":true,"l":215,"u":835},{"a":false,"l":212,"u":490},{"a":false,"l":680,"u":751},{"a":false,"l":328,"u":883},{"a":false,"l":702,"u":969},{"a":false,"l":194,"u":952},{"a":false,"l":334,"u":437},{"a":false,"l":141,"u":706},{"a":false,"l":191,"u":857},{"a":true,"l":432,"u":762},{"a":true,"l":125,"u":881},{"a":true,"l":703,"u":903},{"a":true,"l":63,"u":818},{"a":false,"l":458,"u":604},{"a":true,"l":192,"u":802},{"a":false,"l":105,"u":695},{"a":false,"l":258,"u":311},{"a":true,"l":274,"u":869},{"a":false,"l":552,"u":560},{"a":false,"l":1,"u":20},{"a":true,"l":356,"u":457},{"a":true,"l":530,"u":748},{"a":true,"l":211,"u":933},{"a":false,"l":103,"u":563},{"a":false,"l":495,"u":521},{"a":true,"l":587,"u":820},{"a":true,"l":63,"u":123},{"a":false,"l":339,"u":678},{"a":true,"l":268,"u":986},{"a":true,"l":485,"u":950},{"a":false,"l":841,"u":978},{"a":true,"l":509,"u":610},{"a":false,"l":259,"u":996},{"a":true,"l":445,"u":730},{"a":false,"l":31,"u":744},{"a":true,"l":270,"u":539},{"a":true,"l":218,"u":264},{"a":false,"l":551,"u":728},{"a":false,"l":344,"u":516},{"a":false,"l":599,"u":691},{"a":true,"l":725,"u":811},{"a":false,"l":156,"u":498},{"a":false,"l":37,"u":323},{"a":false,"l":530,"u":692},{"a":true,"l":168,"u":263},{"a":false,"l":187,"u":321},{"a":false,"l":23,"u":81},{"a":true,"l":186,"u":237},{"a":true,"l":154,"u":195},{"a":true,"l":190,"u":531},{"a":true,"l":387,"u":736},{"a":false,"l":396,"u":559},{"a":true,"l":489,"u":863},{"a":true,"l":474,"u":903},{"a":true,"l":406,"u":919},{"a":true,"l":70,"u":356},{"a":false,"l":197,"u":908},{"a":true,"l":482,"u":942},{"a":true,"l":918,"u":972},{"a":false,"l":55,"u":736},{"a":false,"l":640,"u":816},{"a":true,"l":238,"u":418},{"a":false,"l":366,"u":548},{"a":true,"l":227,"u":979},{"a":false,"l":40,"u":465},{"a":false,"l":639,"u":700},{"a":false,"l":188,"u":378},{"a":true,"l":670,"u":892},{"a":false,"l":425,"u":753},{"a":false,"l":433,"u":926},{"a":true,"l":139,"u":737},{"a":true,"l":159,"u":619},{"a":true,"l":52,"u":150},{"a":true,"l":309,"u":661},{"a":false,"l":85,"u":165},{"a":false,"l":172,"u":947},{"a":true,"l":276,"u":722},{"a":true,"l":408,"u":915},{"a":false,"l":322,"u":578},{"a":true,"l":692,"u":728},{"a":true,"l":270,"u":998},{"a":true,"l":299,"u":872},{"a":false,"l":537,"u":959},{"a":true,"l":18,"u":731},{"a":false,"l":481,"u":774},{"a":true,"l":118,"u":586},{"a":true,"l":76,"u":417},{"a":true,"l":331,"u":488},{"a":false,"l":503,"u":964},{"a":false,"l":101,"u":913},{"a":true,"l":12,"u":616},{"a":false,"l":496,"u":682},{"a":false,"l":658,"u":741},{"a":true,"l":657,"u":726},{"a":false,"l":393,"u":406},{"a":false,"l":256,"u":635},{"a":false,"l":169,"u":474},{"a":false,"l":200,"u":891},{"a":true,"l":213,"u":256},{"a":false,"l":738,"u":893},{"a":false,"l":365,"u":564},{"a":false,"l":167,"u":609},{"a":false,"l":518,"u":987},{"a":true,"l":647,"u":720},{"a":true,"l":536,"u":790},{"a":false,"l":268,"u":366},{"a":false,"l":434,"u":631},{"a":false,"l":259,"u":818},{"a":true,"l":307,"u":394},{"a":false,"l":352,"u":489},{"a":false,"l":369,"u":676},{"a":false,"l":459,"u":808},{"a":false,"l":871,"u":940},{"a":true,"l":363,"u":616},{"a":true,"l":438,"u":514},{"a":false,"l":178,"u":458},{"a":true,"l":100,"u":642},{"a":false,"l":15,"u":798},{"a":false,"l":112,"u":398},{"a":false,"l":182,"u":841},{"a":true,"l":258,"u":829},{"a":true,"l":16,"u":670},{"a":false,"l":368,"u":774},{"a":false,"l":682,"u":845},{"a":true,"l":116,"u":324},{"a":true,"l":132,"u":527},{"a":true,"l":809,"u":819},{"a":false,"l":253,"u":727},{"a":true,"l":477,"u":759},{"a":true,"l":206,"u":629},{"a":true,"l":576,"u":788},{"a":false,"l":4,"u":262},{"a":false,"l":84,"u":273},{"a":true,"l":510,"u":764},{"a":false,"l":148,"u":396},{"a":false,"l":368,"u":959},{"a":false,"l":408,"u":925},{"a":true,"l":156,"u":662},{"a":true,"l":612,"u":948},{"a":true,"l":129,"u":526},{"a":false,"l":613,"u":875},{"a":true,"l":144,"u":272},{"a":false,"l":500,"u":607},{"a":false,"l":535,"u":817},{"a":false,"l":433,"u":925},{"a":true,"l":13,"u":471},{"a":false,"l":388,"u":955},{"a":true,"l":411,"u":912},{"a":false,"l":348,"u":696},{"a":false,"l":284,"u":733},{"a":true,"l":697,"u":954},{"a":false,"l":106,"u":646},{"a":false,"l":219,"u":597},{"a":false,"l":113,"u":398},{"a":true,"l":114,"u":658},{"a":true,"l":166,"u":834},{"a":true,"l":37,"u":843},{"a":true,"l":359,"u":531},{"a":true,"l":288,"u":435},{"a":true,"l":413,"u":961},{"a":false,"l":730,"u":978},{"a":false,"l":434,"u":624},{"a":true,"l":946,"u":966},{"a":false,"l":840,"u":846},{"a":true,"l":902,"u":959},{"a":true,"l":765,"u":768},{"a":true,"l":257,"u":562},{"a":false,"l":534,"u":588},{"a":true,"l":354,"u":663},{"a":true,"l":81,"u":659},{"a":true,"l":81,"u":676},{"a":false,"l":466,"u":847},{"a":true,"l":418,"u":422},{"a":true,"l":605,"u":882},{"a":true,"l":74,"u":233},{"a":false,"l":221,"u":725},{"a":false,"l":527,"u":569},{"a":true,"l":262,"u":951},{"a":false,"l":760,"u":861},{"a":false,"l":15,"u":123},{"a":false,"l":178,"u":782},{"a":false,"l":367,"u":712},{"a":true,"l":319,"u":635},{"a":true,"l":539,"u":957},{"a":true,"l":916,"u":982},{"a":false,"l":463,"u":879},{"a":true,"l":88,"u":296},{"a":false,"l":812,"u":826},{"a":true,"l":79,"u":136},{"a":false,"l":502,"u":985},{"a":false,"l":518,"u":558},{"a":true,"l":368,"u":960},{"a":false,"l":113,"u":489},{"a":false,"l":462,"u":874},{"a":true,"l":43,"u":434},{"a":false,"l":277,"u":678},{"a":true,"l":377,"u":622},{"a":true,"l":367,"u":833},{"a":true,"l":80,"u":745},{"a":true,"l":373,"u":939},{"a":false,"l":237,"u":281},{"a":true,"l":695,"u":907},{"a":false,"l":374,"u":696},{"a":false,"l":278,"u":668},{"a":true,"l":294,"u":906},{"a":true,"l":46,"u":631},{"a":false,"l":694,"u":837},{"a":false,"l":236,"u":999},{"a":true,"l":69,"u":999},{"a":true,"l":117,"u":140},{"a":true,"l":149,"u":699},{"a":true,"l":129,"u":931},{"a":false,"l":95,"u":159},{"a":true,"l":203,"u":319},{"a":true,"l":690,"u":904},{"a":false,"l":9,"u":442},{"a":false,"l":801,"u":835},{"a":false,"l":412,"u":585},{"a":false,"l":434,"u":998},{"a":false,"l":789,"u":903},{"a":true,"l":604,"u":859},{"a":false,"l":599,"u":631},{"a":false,"l":179,"u":871},{"a":true,"l":526,"u":581},{"a":false,"l":86,"u":198},{"a":true,"l":193,"u":821},{"a":true,"l":877,"u":971},{"a":false,"l":565,"u":909},{"a":false,"l":410,"u":689},{"a":false,"l":494,"u":929},{"a":false,"l":34,"u":959},{"a":false,"l":63,"u":141},{"a":false,"l":74,"u":454},{"a":false,"l":347,"u":360},{"a":false,"l":203,"u":784},{"a":false,"l":562,"u":732},{"a":false,"l":728,"u":976},{"a":true,"l":117,"u":588},{"a":true,"l":3,"u":423},{"a":false,"l":149,"u":519},{"a":false,"l":779,"u":800},{"a":true,"l":143,"u":643},{"a":false,"l":144,"u":313},{"a":false,"l":2,"u":779},{"a":true,"l":214,"u":721},{"a":false,"l":17,"u":614},{"a":false,"l":551,"u":612},{"a":false,"l":541,"u":844},{"a":true,"l":680,"u":738},{"a":false,"l":457,"u":684},{"a":false,"l":29,"u":656},{"a":false,"l":839,"u":933},{"a":false,"l":268,"u":993},{"a":false,"l":383,"u":487},{"a":false,"l":225,"u":425},{"a":false,"l":21,"u":452},{"a":false,"l":673,"u":891},{"a":true,"l":432,"u":993},{"a":true,"l":87,"u":205},{"a":false,"l":102,"u":826},{"a":true,"l":9,"u":603},{"a":true,"l":358,"u":387},{"a":false,"l":411,"u":616},{"a":false,"l":557,"u":700},{"a":false,"l":198,"u":383},{"a":true,"l":713,"u":855},{"a":true,"l":496,"u":913},{"a":false,"l":351,"u":945},{"a":true,"l":394,"u":484},{"a":false,"l":163,"u":498},{"a":false,"l":264,"u":375},{"a":true,"l":315,"u":317},{"a":false,"l":121,"u":879},{"a":false,"l":78,"u":973},{"a":true,"l":308,"u":621},{"a":true,"l":231,"u":593},{"a":true,"l":400,"u":639},{"a":true,"l":646,"u":975},{"a":true,"l":175,"u":538},{"a":false,"l":400,"u":557},{"a":false,"l":357,"u":765},{"a":true,"l":377,"u":423},{"a":true,"l":158,"u":345},{"a":false,"l":232,"u":980},{"a":false,"l":670,"u":811},{"a":false,"l":908,"u":986},{"a":false,"l":92,"u":508},{"a":false,"l":394,"u":809},{"a":true,"l":237,"u":247},{"a":true,"l":78,"u":507},{"a":false,"l":533,"u":674},{"a":true,"l":308,"u":382},{"a":false,"l":332,"u":812},{"a":true,"l":931,"u":967},{"a":false,"l":595,"u":603},{"a":true,"l":769,"u":811},{"a":true,"l":374,"u":574},{"a":true,"l":4,"u":997},{"a":false,"l":318,"u":900},{"a":false,"l":281,"u":677},{"a":true,"l":320,"u":331},{"a":false,"l":690,"u":865},{"a":true,"l":269,"u":912},{"a":false,"l":59,"u":897},{"a":false,"l":93,"u":400},{"a":false,"l":302,"u":720},{"a":true,"l":104,"u":665},{"a":true,"l":775,"u":880},{"a":true,"l":83,"u":202},{"a":false,"l":79,"u":440},{"a":true,"l":61,"u":915},{"a":false,"l":613,"u":871},{"a":true,"l":229,"u":918},{"a":false,"l":203,"u":358},{"a":false,"l":107,"u":749},{"a":false,"l":182,"u":701},{"a":false,"l":122,"u":155},{"a":false,"l":46,"u":933},{"a":true,"l":372,"u":498},{"a":true,"l":309,"u":330},{"a":true,"l":329,"u":558},{"a":true,"l":356,"u":655},{"a":false,"l":869,"u":894},{"a":true,"l":550,"u":890},{"a":false,"l":63,"u":422},{"a":true,"l":102,"u":712},{"a":false,"l":446,"u":712},{"a":false,"l":6,"u":375},{"a":true,"l":332,"u":509},{"a":false,"l":290,"u":508},{"a":false,"l":437,"u":990},{"a":true,"l":863,"u":885},{"a":false,"l":31,"u":173},{"a":false,"l":600,"u":729},{"a":true,"l":160,"u":653},{"a":false,"l":40,"u":649},{"a":false,"l":30,"u":732},{"a":true,"l":80,"u":544},{"a":false,"l":388,"u":410},{"a":true,"l":390,"u":802},{"a":false,"l":373,"u":874},{"a":true,"l":267,"u":996},{"a":false,"l":750,"u":990},{"a":true,"l":817,"u":932},{"a":false,"l":705,"u":744},{"a":true,"l":202,"u":243},{"a":true,"l":469,"u":906},{"a":false,"l":67,"u":558},{"a":false,"l":169,"u":852},{"a":false,"l":139,"u":866},{"a":false,"l":404,"u":486},{"a":false,"l":172,"u":440},{"a":true,"l":182,"u":908},{"a":true,"l":657,"u":694},{"a":true,"l":590,"u":837},{"a":true,"l":269,"u":309},{"a":false,"l":141,"u":273},{"a":false,"l":250,"u":779},{"a":true,"l":4,"u":894},{"a":false,"l":70,"u":297},{"a":false,"l":63,"u":632},{"a":true,"l":107,"u":881},{"a":true,"l":657,"u":908},{"a":true,"l":534,"u":576},{"a":false,"l":82,"u":669},{"a":false,"l":7,"u":387},{"a":false,"l":137,"u":761},{"a":true,"l":653,"u":769},{"a":true,"l":128,"u":785},{"a":true,"l":249,"u":347},{"a":false,"l":589,"u":969},{"a":false,"l":549,"u":981},{"a":false,"l":163,"u":971},{"a":true,"l":500,"u":515},{"a":true,"l":332,"u":924},{"a":true,"l":527,"u":585},{"a":true,"l":103,"u":250},{"a":false,"l":877,"u":931},{"a":false,"l":408,"u":741},{"a":true,"l":162,"u":596},{"a":false,"l":640,"u":706},{"a":false,"l":406,"u":722},{"a":true,"l":667,"u":705},{"a":true,"l":53,"u":279},{"a":true,"l":912,"u":980},{"a":true,"l":24,"u":426},{"a":false,"l":17,"u":750},{"a":true,"l":87,"u":159},{"a":false,"l":471,"u":724},{"a":true,"l":246,"u":593},{"a":true,"l":624,"u":677},{"a":false,"l":310,"u":985},{"a":true,"l":113,"u":167},{"a":false,"l":270,"u":831},{"a":true,"l":394,"u":496},{"a":false,"l":458,"u":736},{"a":false,"l":551,"u":686},{"a":false,"l":530,"u":560},{"a":false,"l":199,"u":408},{"a":false,"l":133,"u":990},{"a":true,"l":259,"u":372},{"a":true,"l":230,"u":762},{"a":true,"l":58,"u":202},{"a":true,"l":690,"u":784},{"a":false,"l":364,"u":711},{"a":false,"l":418,"u":932},{"a":true,"l":67,"u":561},{"a":false,"l":80,"u":468},{"a":true,"l":185,"u":669},{"a":true,"l":223,"u":715},{"a":true,"l":603,"u":820},{"a":true,"l":92,"u":690},{"a":false,"l":212,"u":378},{"a":false,"l":470,"u":722},{"a":false,"l":330,"u":714},{"a":true,"l":529,"u":962},{"a":false,"l":297,"u":699},{"a":false,"l":344,"u":400},{"a":true,"l":255,"u":453},{"a":false,"l":177,"u":842},{"a":true,"l":290,"u":573},{"a":true,"l":554,"u":843},{"a":true,"l":520,"u":747},{"a":false,"l":504,"u":754},{"a":false,"l":449,"u":771},{"a":false,"l":744,"u":900},{"a":true,"l":118,"u":401},{"a":true,"l":140,"u":718},{"a":true,"l":501,"u":672},{"a":false,"l":25,"u":236},{"a":false,"l":427,"u":668},{"a":false,"l":182,"u":465},{"a":false,"l":17,"u":774},{"a":true,"l":27,"u":566},{"a":false,"l":58,"u":563},{"a":false,"l":744,"u":927},{"a":false,"l":250,"u":522},{"a":true,"l":403,"u":794},{"a":false,"l":831,"u":939},{"a":false,"l":451,"u":472},{"a":false,"l":476,"u":567},{"a":true,"l":502,"u":947},{"a":true,"l":318,"u":433},{"a":false,"l":567,"u":624},{"a":false,"l":423,"u":922},{"a":true,"l":229,"u":642},{"a":true,"l":533,"u":988},{"a":false,"l":14,"u":469},{"a":false,"l":302,"u":345},{"a":true,"l":108,"u":943},{"a":true,"l":113,"u":910},{"a":false,"l":474,"u":872},{"a":false,"l":144,"u":855},{"a":false,"l":36,"u":615},{"a":false,"l":144,"u":173},{"a":true,"l":110,"u":382},{"a":false,"l":760,"u":856},{"a":true,"l":804,"u":973},{"a":true,"l":605,"u":752},{"a":true,"l":40,"u":546},{"a":true,"l":482,"u":592},{"a":true,"l":20,"u":333},{"a":false,"l":119,"u":826},{"a":true,"l":464,"u":544},{"a":true,"l":761,"u":784},{"a":true,"l":352,"u":785},{"a":true,"l":41,"u":407},{"a":false,"l":369,"u":653},{"a":true,"l":113,"u":800},{"a":true,"l":673,"u":681},{"a":true,"l":857,"u":875},{"a":false,"l":502,"u":734},{"a":false,"l":622,"u":958},{"a":true,"l":145,"u":408},{"a":true,"l":756,"u":997},{"a":true,"l":18,"u":298},{"a":false,"l":184,"u":674},{"a":false,"l":160,"u":724},{"a":true,"l":535,"u":802},{"a":false,"l":508,"u":611},{"a":true,"l":401,"u":473},{"a":true,"l":507,"u":509},{"a":false,"l":208,"u":641},{"a":false,"l":538,"u":965},{"a":false,"l":50,"u":340},{"a":false,"l":161,"u":446},{"a":false,"l":65,"u":804},{"a":true,"l":604,"u":794},{"a":false,"l":271,"u":836},{"a":false,"l":354,"u":671},{"a":false,"l":16,"u":679},{"a":true,"l":592,"u":643},{"a":true,"l":718,"u":737},{"a":false,"l":277,"u":950},{"a":true,"l":646,"u":881},{"a":false,"l":248,"u":945},{"a":true,"l":567,"u":991},{"a":true,"l":672,"u":763},{"a":true,"l":35,"u":771},{"a":false,"l":659,"u":977},{"a":false,"l":520,"u":871},{"a":false,"l":816,"u":845},{"a":false,"l":516,"u":591},{"a":true,"l":625,"u":972},{"a":false,"l":607,"u":734},{"a":true,"l":106,"u":393},{"a":false,"l":91,"u":341},{"a":false,"l":791,"u":870},{"a":false,"l":77,"u":594},{"a":false,"l":614,"u":652},{"a":false,"l":206,"u":680},{"a":true,"l":59,"u":307},{"a":false,"l":674,"u":941},{"a":false,"l":417,"u":799},{"a":false,"l":567,"u":875},{"a":true,"l":598,"u":842},{"a":true,"l":500,"u":639},{"a":false,"l":217,"u":889},{"a":true,"l":94,"u":648},{"a":true,"l":812,"u":900},{"a":true,"l":95,"u":218},{"a":false,"l":14,"u":284},{"a":false,"l":476,"u":729},{"a":true,"l":213,"u":281},{"a":true,"l":299,"u":341},{"a":false,"l":453,"u":777},{"a":false,"l":171,"u":845},{"a":false,"l":159,"u":409},{"a":true,"l":771,"u":903},{"a":true,"l":673,"u":962},{"a":false,"l":782,"u":832},{"a":true,"l":624,"u":872},{"a":true,"l":334,"u":915},{"a":false,"l":517,"u":751},{"a":true,"l":392,"u":756},{"a":true,"l":613,"u":940},{"a":false,"l":220,"u":462},{"a":true,"l":368,"u":970},{"a":false,"l":88,"u":443},{"a":false,"l":63,"u":143},{"a":false,"l":444,"u":874},{"a":true,"l":214,"u":968},{"a":false,"l":685,"u":707},{"a":true,"l":128,"u":180},{"a":false,"l":440,"u":715},{"a":false,"l":107,"u":782},{"a":false,"l":144,"u":882},{"a":true,"l":846,"u":920},{"a":false,"l":97,"u":752},{"a":true,"l":578,"u":633},{"a":false,"l":147,"u":569},{"a":true,"l":256,"u":277},{"a":true,"l":267,"u":372},{"a":true,"l":706,"u":931},{"a":true,"l":621,"u":633},{"a":true,"l":316,"u":547},{"a":false,"l":762,"u":982},{"a":false,"l":526,"u":807},{"a":false,"l":935,"u":963},{"a":true,"l":809,"u":925},{"a":true,"l":178,"u":218},{"a":false,"l":40,"u":918},{"a":false,"l":231,"u":815},{"a":true,"l":3,"u":263},{"a":false,"l":136,"u":916},{"a":false,"l":328,"u":543},{"a":true,"l":518,"u":768},{"a":true,"l":9,"u":972},{"a":false,"l":312,"u":750},{"a":false,"l":268,"u":479},{"a":true,"l":93,"u":435},{"a":true,"l":192,"u":436},{"a":false,"l":712,"u":760},{"a":false,"l":28,"u":986},{"a":true,"l":486,"u":579},{"a":true,"l":146,"u":750},{"a":true,"l":398,"u":905},{"a":true,"l":177,"u":434},{"a":true,"l":44,"u":342},{"a":true,"l":634,"u":869},{"a":false,"l":161,"u":527},{"a":true,"l":961,"u":985},{"a":true,"l":408,"u":942},{"a":false,"l":453,"u":841},{"a":false,"l":40,"u":487},{"a":false,"l":642,"u":720},{"a":false,"l":32,"u":601},{"a":false,"l":119,"u":452},{"a":false,"l":252,"u":615},{"a":true,"l":387,"u":767},{"a":true,"l":4,"u":223},{"a":true,"l":512,"u":559},{"a":false,"l":17,"u":500},{"a":true,"l":116,"u":645},{"a":true,"l":58,"u":265},{"a":true,"l":500,"u":790},{"a":false,"l":52,"u":492},{"a":false,"l":433,"u":438},{"a":false,"l":737,"u":744},{"a":true,"l":278,"u":848},{"a":false,"l":35,"u":136},{"a":false,"l":739,"u":854},{"a":false,"l":714,"u":822},{"a":true,"l":588,"u":611},{"a":false,"l":99,"u":138},{"a":true,"l":23,"u":80},{"a":true,"l":227,"u":812},{"a":true,"l":58,"u":395},{"a":false,"l":226,"u":555},{"a":false,"l":536,"u":761},{"a":false,"l":374,"u":458},{"a":false,"l":459,"u":968},{"a":false,"l":817,"u":821},{"a":false,"l":62,"u":65},{"a":true,"l":302,"u":847},{"a":false,"l":275,"u":415},{"a":true,"l":221,"u":314},{"a":false,"l":330,"u":721},{"a":false,"l":50,"u":513},{"a":true,"l":571,"u":980},{"a":true,"l":164,"u":289},{"a":false,"l":374,"u":488},{"a":false,"l":479,"u":640},{"a":true,"l":66,"u":633},{"a":true,"l":173,"u":792},{"a":false,"l":177,"u":792},{"a":false,"l":100,"u":243},{"a":true,"l":135,"u":738},{"a":false,"l":507,"u":935},{"a":false,"l":9,"u":990},{"a":false,"l":693,"u":778},{"a":false,"l":312,"u":779},{"a":false,"l":734,"u":980},{"a":false,"l":320,"u":684},{"a":false,"l":250,"u":346},{"a":false,"l":273,"u":964},{"a":true,"l":727,"u":896},{"a":true,"l":313,"u":655},{"a":true,"l":220,"u":599},{"a":false,"l":47,"u":110},{"a":false,"l":527,"u":790},{"a":false,"l":270,"u":600},{"a":true,"l":767,"u":776},{"a":false,"l":121,"u":517},{"a":false,"l":83,"u":674},{"a":false,"l":241,"u":494},{"a":true,"l":733,"u":744},{"a":false,"l":413,"u":923},{"a":false,"l":539,"u":894},{"a":true,"l":91,"u":405},{"a":true,"l":83,"u":499},{"a":true,"l":267,"u":817},{"a":false,"l":226,"u":516},{"a":false,"l":160,"u":235},{"a":true,"l":144,"u":344},{"a":true,"l":509,"u":865},{"a":true,"l":150,"u":407},{"a":true,"l":873,"u":907},{"a":false,"l":431,"u":571},{"a":true,"l":161,"u":354},{"a":false,"l":415,"u":926},{"a":true,"l":404,"u":427},{"a":false,"l":609,"u":666},{"a":true,"l":251,"u":744},{"a":false,"l":401,"u":579},{"a":false,"l":20,"u":310},{"a":false,"l":155,"u":732},{"a":false,"l":119,"u":943},{"a":false,"l":532,"u":680},{"a":true,"l":328,"u":506},{"a":true,"l":184,"u":872},{"a":true,"l":348,"u":613},{"a":true,"l":260,"u":492},{"a":false,"l":51,"u":242},{"a":false,"l":6,"u":718},{"a":false,"l":29,"u":258},{"a":false,"l":690,"u":922},{"a":true,"l":151,"u":201},{"a":true,"l":150,"u":750},{"a":true,"l":172,"u":668},{"a":false,"l":702,"u":873},{"a":true,"l":920,"u":998},{"a":false,"l":600,"u":812},{"a":true,"l":650,"u":795},{"a":false,"l":592,"u":726},{"a":true,"l":42,"u":890},{"a":true,"l":444,"u":768},{"a":true,"l":568,"u":596},{"a":false,"l":11,"u":936},{"a":true,"l":587,"u":869},{"a":false,"l":415,"u":740},{"a":true,"l":68,"u":750},{"a":true,"l":801,"u":803},{"a":true,"l":13,"u":146},{"a":false,"l":741,"u":868},{"a":false,"l":473,"u":819},{"a":false,"l":820,"u":868},{"a":true,"l":160,"u":429},{"a":true,"l":277,"u":856},{"a":false,"l":251,"u":569},{"a":false,"l":544,"u":930},{"a":false,"l":516,"u":762},{"a":true,"l":106,"u":560},{"a":false,"l":204,"u":609},{"a":false,"l":649,"u":856},{"a":true,"l":21,"u":345},{"a":false,"l":700,"u":913},{"a":true,"l":47,"u":186},{"a":false,"l":43,"u":403},{"a":false,"l":321,"u":982},{"a":true,"l":149,"u":563},{"a":false,"l":262,"u":530},{"a":false,"l":41,"u":357},{"a":false,"l":346,"u":400},{"a":false,"l":373,"u":808},{"a":true,"l":211,"u":936},{"a":true,"l":655,"u":805},{"a":true,"l":553,"u":734},{"a":true,"l":325,"u":801},{"a":false,"l":633,"u":797},{"a":true,"l":692,"u":775},{"a":false,"l":474,"u":597},{"a":true,"l":293,"u":949},{"a":true,"l":263,"u":726},{"a":true,"l":287,"u":662},{"a":true,"l":696,"u":776},{"a":true,"l":681,"u":742},{"a":false,"l":477,"u":721},{"a":true,"l":809,"u":936},{"a":true,"l":389,"u":695},{"a":true,"l":136,"u":711},{"a":true,"l":574,"u":959},{"a":true,"l":268,"u":463},{"a":true,"l":32,"u":489},{"a":true,"l":422,"u":931},{"a":false,"l":296,"u":897},{"a":false,"l":838,"u":851},{"a":false,"l":181,"u":387},{"a":true,"l":510,"u":647},{"a":true,"l":471,"u":765},{"a":false,"l":31,"u":78},{"a":false,"l":178,"u":582},{"a":true,"l":544,"u":941},{"a":false,"l":181,"u":653},{"a":true,"l":571,"u":616},{"a":true,"l":744,"u":984},{"a":false,"l":538,"u":752},{"a":true,"l":157,"u":884},{"a":true,"l":84,"u":444},{"a":true,"l":552,"u":711},{"a":true,"l":18,"u":594},{"a":true,"l":272,"u":930},{"a":false,"l":564,"u":882},{"a":true,"l":125,"u":897},{"a":true,"l":167,"u":424},{"a":true,"l":758,"u":794},{"a":false,"l":227,"u":967},{"a":true,"l":16,"u":203},{"a":true,"l":190,"u":531},{"a":false,"l":511,"u":686},{"a":false,"l":607,"u":808},{"a":false,"l":90,"u":130},{"a":true,"l":344,"u":350},{"a":true,"l":127,"u":202},{"a":true,"l":503,"u":519},{"a":true,"l":292,"u":695},{"a":true,"l":246,"u":511},{"a":true,"l":578,"u":698},{"a":true,"l":104,"u":413},{"a":true,"l":106,"u":179},{"a":false,"l":241,"u":855},{"a":false,"l":186,"u":750},{"a":false,"l":161,"u":544},{"a":true,"l":257,"u":765},{"a":true,"l":184,"u":890},{"a":false,"l":242,"u":850},{"a":true,"l":76,"u":787},{"a":true,"l":568,"u":987},{"a":false,"l":425,"u":628},{"a":true,"l":332,"u":381},{"a":false,"l":621,"u":741},{"a":true,"l":398,"u":879},{"a":true,"l":644,"u":697},{"a":false,"l":589,"u":613},{"a":true,"l":377,"u":549},{"a":true,"l":72,"u":163},{"a":true,"l":606,"u":781},{"a":true,"l":93,"u":670},{"a":false,"l":3,"u":589},{"a":false,"l":252,"u":707},{"a":false,"l":138,"u":888},{"a":true,"l":536,"u":934},{"a":true,"l":403,"u":610},{"a":true,"l":260,"u":507},{"a":false,"l":653,"u":859},{"a":false,"l":603,"u":915},{"a":false,"l":615,"u":987},{"a":false,"l":16,"u":553},{"a":true,"l":145,"u":346},{"a":false,"l":353,"u":383},{"a":true,"l":355,"u":538},{"a":false,"l":511,"u":928},{"a":true,"l":153,"u":814},{"a":true,"l":220,"u":743},{"a":false,"l":430,"u":910},{"a":false,"l":107,"u":872},{"a":true,"l":98,"u":117},{"a":true,"l":181,"u":450},{"a":false,"l":649,"u":681},{"a":false,"l":662,"u":924},{"a":true,"l":120,"u":964},{"a":true,"l":466,"u":694},{"a":true,"l":343,"u":575},{"a":true,"l":57,"u":966},{"a":true,"l":607,"u":812},{"a":true,"l":266,"u":977},{"a":true,"l":515,"u":785},{"a":true,"l":402,"u":836},{"a":false,"l":460,"u":666},{"a":true,"l":341,"u":635},{"a":true,"l":402,"u":887},{"a":false,"l":306,"u":592},{"a":true,"l":81,"u":461},{"a":true,"l":244,"u":370},{"a":true,"l":194,"u":966},{"a":true,"l":38,"u":722},{"a":true,"l":144,"u":603},{"a":true,"l":604,"u":613},{"a":false,"l":897,"u":952},{"a":true,"l":412,"u":880},{"a":false,"l":251,"u":488},{"a":true,"l":211,"u":903},{"a":false,"l":255,"u":537},{"a":true,"l":62,"u":944},{"a":true,"l":99,"u":648},{"a":false,"l":128,"u":184},{"a":false,"l":133,"u":202},{"a":false,"l":49,"u":527},{"a":false,"l":422,"u":629},{"a":true,"l":536,"u":754},{"a":false,"l":673,"u":865},{"a":true,"l":737,"u":841},{"a":false,"l":74,"u":900},{"a":true,"l":626,"u":992},{"a":false,"l":61,"u":284},{"a":true,"l":119,"u":164},{"a":false,"l":896,"u":988},{"a":true,"l":526,"u":945},{"a":true,"l":607,"u":832},{"a":false,"l":28,"u":514},{"a":true,"l":252,"u":708},{"a":true,"l":976,"u":997},{"a":true,"l":553,"u":597},{"a":true,"l":130,"u":264},{"a":false,"l":32,"u":159},{"a":true,"l":392,"u":499},{"a":false,"l":246,"u":341},{"a":true,"l":346,"u":477},{"a":false,"l":316,"u":866},{"a":false,"l":674,"u":798},{"a":false,"l":419,"u":456},{"a":true,"l":96,"u":843},{"a":true,"l":687,"u":699},{"a":true,"l":368,"u":565},{"a":false,"l":153,"u":355},{"a":false,"l":209,"u":666},{"a":false,"l":83,"u":228},{"a":false,"l":603,"u":643},{"a":false,"l":611,"u":717},{"a":true,"l":95,"u":960},{"a":false,"l":418,"u":528},{"a":true,"l":49,"u":539},{"a":false,"l":253,"u":940},{"a":true,"l":613,"u":805},{"a":true,"l":698,"u":940},{"a":false,"l":356,"u":492},{"a":true,"l":424,"u":911},{"a":false,"l":441,"u":797},{"a":false,"l":56,"u":436},{"a":false,"l":137,"u":571},{"a":false,"l":841,"u":903},{"a":false,"l":552,"u":969},{"a":true,"l":166,"u":961},{"a":true,"l":773,"u":958},{"a":false,"l":766,"u":999},{"a":true,"l":343,"u":381},{"a":false,"l":875,"u":898},{"a":true,"l":81,"u":570},{"a":true,"l":384,"u":614},{"a":true,"l":265,"u":658},{"a":false,"l":674,"u":930},{"a":false,"l":70,"u":339},{"a":false,"l":28,"u":503},{"a":false,"l":503,"u":939},{"a":true,"l":528,"u":918},{"a":false,"l":525,"u":592},{"a":true,"l":405,"u":767},{"a":true,"l":37,"u":945},{"a":true,"l":445,"u":912},{"a":true,"l":835,"u":996},{"a":false,"l":464,"u":992},{"a":false,"l":435,"u":516},{"a":true,"l":38,"u":184},{"a":false,"l":23,"u":179},{"a":false,"l":418,"u":790},{"a":false,"l":546,"u":984},{"a":true,"l":203,"u":616},{"a":true,"l":253,"u":836},{"a":false,"l":194,"u":876},{"a":false,"l":559,"u":620},{"a":false,"l":423,"u":781},{"a":false,"l":516,"u":946},{"a":false,"l":385,"u":679},{"a":false,"l":214,"u":496},{"a":false,"l":362,"u":993},{"a":false,"l":556,"u":796},{"a":false,"l":141,"u":545},{"a":false,"l":867,"u":870},{"a":true,"l":740,"u":745},{"a":true,"l":871,"u":966},{"a":false,"l":18,"u":123},{"a":false,"l":277,"u":299},{"a":false,"l":488,"u":884},{"a":false,"l":285,"u":947},{"a":false,"l":287,"u":411},{"a":false,"l":67,"u":915},{"a":false,"l":134,"u":708},{"a":false,"l":328,"u":594},{"a":true,"l":115,"u":188},{"a":true,"l":55,"u":803},{"a":false,"l":433,"u":542},{"a":true,"l":661,"u":834},{"a":false,"l":197,"u":233},{"a":true,"l":790,"u":825},{"a":true,"l":102,"u":624},{"a":true,"l":290,"u":511},{"a":false,"l":492,"u":693},{"a":true,"l":287,"u":519},{"a":true,"l":146,"u":708},{"a":false,"l":501,"u":956},{"a":true,"l":138,"u":182},{"a":false,"l":114,"u":697},{"a":false,"l":361,"u":897},{"a":false,"l":15,"u":177},{"a":false,"l":914,"u":931},{"a":true,"l":466,"u":960},{"a":false,"l":59,"u":852},{"a":false,"l":483,"u":963},{"a":true,"l":800,"u":878},{"a":true,"l":609,"u":837},{"a":false,"l":8,"u":694},{"a":false,"l":313,"u":973},{"a":false,"l":274,"u":525},{"a":false,"l":87,"u":347},{"a":false,"l":71,"u":305},{"a":true,"l":17,"u":974},{"a":true,"l":614,"u":627},{"a":false,"l":330,"u":914},{"a":false,"l":39,"u":533},{"a":true,"l":383,"u":675},{"a":true,"l":40,"u":316},{"a":true,"l":622,"u":731},{"a":false,"l":690,"u":725},{"a":true,"l":661,"u":864},{"a":true,"l":127,"u":557},{"a":true,"l":395,"u":777},{"a":false,"l":379,"u":888},{"a":false,"l":112,"u":859},{"a":false,"l":380,"u":976},{"a":false,"l":93,"u":368},{"a":false,"l":99,"u":823},{"a":false,"l":904,"u":954},{"a":false,"l":619,"u":819},{"a":false,"l":399,"u":667},{"a":true,"l":127,"u":922},{"a":true,"l":485,"u":917},{"a":true,"l":1,"u":430},{"a":true,"l":272,"u":322},{"a":false,"l":434,"u":447},{"a":false,"l":812,"u":875},{"a":false,"l":506,"u":914},{"a":true,"l":248,"u":749},{"a":false,"l":560,"u":666},{"a":false,"l":54,"u":841},{"a":false,"l":778,"u":891},{"a":false,"l":395,"u":405},{"a":false,"l":683,"u":727},{"a":false,"l":542,"u":974},{"a":false,"l":21,"u":204},{"a":true,"l":33,"u":606},{"a":false,"l":483,"u":921},{"a":true,"l":447,"u":466},{"a":false,"l":731,"u":841},{"a":false,"l":355,"u":994},{"a":false,"l":12,"u":879},{"a":false,"l":689,"u":729},{"a":true,"l":835,"u":861},{"a":true,"l":25,"u":831},{"a":true,"l":9,"u":756},{"a":false,"l":203,"u":873},{"a":false,"l":511,"u":729},{"a":true,"l":673,"u":925},{"a":true,"l":353,"u":943},{"a":false,"l":147,"u":919},{"a":true,"l":300,"u":909},{"a":false,"l":456,"u":568},{"a":false,"l":769,"u":883},{"a":false,"l":65,"u":761},{"a":true,"l":211,"u":366},{"a":true,"l":112,"u":779},{"a":true,"l":54,"u":995},{"a":true,"l":513,"u":536},{"a":true,"l":229,"u":770},{"a":false,"l":264,"u":474},{"a":true,"l":47,"u":530},{"a":true,"l":375,"u":906},{"a":true,"l":207,"u":790},{"a":true,"l":810,"u":947},{"a":true,"l":148,"u":363},{"a":true,"l":764,"u":792},{"a":false,"l":738,"u":825},{"a":false,"l":205,"u":476},{"a":true,"l":208,"u":460},{"a":true,"l":367,"u":983},{"a":false,"l":178,"u":511},{"a":false,"l":273,"u":547},{"a":true,"l":475,"u":972},{"a":false,"l":513,"u":650},{"a":false,"l":368,"u":399},{"a":false,"l":565,"u":640},{"a":true,"l":63,"u":661},{"a":false,"l":547,"u":946},{"a":true,"l":119,"u":421},{"a":true,"l":88,"u":766},{"a":true,"l":277,"u":412},{"a":true,"l":331,"u":772},{"a":false,"l":178,"u":654},{"a":false,"l":198,"u":685},{"a":true,"l":577,"u":798},{"a":false,"l":589,"u":853},{"a":true,"l":209,"u":815},{"a":false,"l":586,"u":899},{"a":true,"l":668,"u":915},{"a":false,"l":136,"u":494},{"a":true,"l":112,"u":695},{"a":false,"l":124,"u":531},{"a":false,"l":444,"u":858},{"a":false,"l":540,"u":755},{"a":false,"l":791,"u":945},{"a":true,"l":94,"u":699},{"a":false,"l":181,"u":265},{"a":true,"l":703,"u":720},{"a":true,"l":433,"u":923},{"a":true,"l":444,"u":806},{"a":false,"l":197,"u":234},{"a":false,"l":4,"u":621},{"a":false,"l":654,"u":987},{"a":true,"l":411,"u":600},{"a":false,"l":145,"u":515},{"a":false,"l":56,"u":816},{"a":false,"l":5,"u":533},{"a":true,"l":370,"u":874},{"a":false,"l":828,"u":905},{"a":true,"l":266,"u":811},{"a":false,"l":408,"u":912},{"a":true,"l":485,"u":829},{"a":true,"l":897,"u":941},{"a":false,"l":485,"u":700},{"a":false,"l":657,"u":917},{"a":false,"l":254,"u":709},{"a":true,"l":25,"u":605},{"a":true,"l":378,"u":754},{"a":true,"l":145,"u":345},{"a":false,"l":801,"u":874},{"a":false,"l":661,"u":811},{"a":false,"l":541,"u":764},{"a":true,"l":45,"u":252},{"a":true,"l":45,"u":389},{"a":true,"l":261,"u":760},{"a":false,"l":253,"u":463},{"a":true,"l":167,"u":354},{"a":false,"l":212,"u":694},{"a":false,"l":77,"u":91},{"a":false,"l":130,"u":758},{"a":false,"l":634,"u":891},{"a":false,"l":165,"u":335},{"a":true,"l":641,"u":812},{"a":true,"l":392,"u":858},{"a":true,"l":2,"u":919},{"a":false,"l":161,"u":955},{"a":false,"l":478,"u":647},{"a":true,"l":905,"u":905},{"a":true,"l":73,"u":381},{"a":true,"l":379,"u":428},{"a":true,"l":381,"u":682},{"a":true,"l":82,"u":754},{"a":true,"l":266,"u":294},{"a":false,"l":347,"u":770},{"a":false,"l":407,"u":532},{"a":true,"l":154,"u":864},{"a":true,"l":326,"u":893},{"a":false,"l":392,"u":800},{"a":false,"l":470,"u":830},{"a":false,"l":875,"u":947},{"a":false,"l":291,"u":971},{"a":false,"l":100,"u":292},{"a":true,"l":296,"u":338},{"a":true,"l":278,"u":558},{"a":true,"l":627,"u":826},{"a":true,"l":57,"u":647},{"a":true,"l":89,"u":372},{"a":false,"l":537,"u":667},{"a":false,"l":337,"u":768},{"a":false,"l":586,"u":638},{"a":true,"l":69,"u":784},{"a":false,"l":150,"u":167},{"a":false,"l":127,"u":442},{"a":false,"l":310,"u":359},{"a":false,"l":243,"u":461},{"a":false,"l":76,"u":116},{"a":false,"l":183,"u":596},{"a":true,"l":764,"u":856},{"a":true,"l":722,"u":777},{"a":true,"l":163,"u":900},{"a":false,"l":344,"u":610},{"a":false,"l":152,"u":210},{"a":true,"l":523,"u":585},{"a":true,"l":355,"u":496},{"a":false,"l":878,"u":943},{"a":false,"l":44,"u":105},{"a":false,"l":916,"u":974},{"a":false,"l":339,"u":484},{"a":false,"l":137,"u":975},{"a":true,"l":245,"u":349},{"a":true,"l":722,"u":911},{"a":false,"l":597,"u":654},{"a":false,"l":610,"u":754},{"a":false,"l":2,"u":368},{"a":true,"l":939,"u":991},{"a":true,"l":197,"u":458},{"a":false,"l":1,"u":617},{"a":true,"l":36,"u":798},{"a":true,"l":189,"u":706},{"a":false,"l":117,"u":142},{"a":true,"l":539,"u":964},{"a":true,"l":572,"u":813},{"a":false,"l":591,"u":599},{"a":false,"l":880,"u":940},{"a":false,"l":198,"u":348},{"a":false,"l":419,"u":477},{"a":false,"l":25,"u":519},{"a":false,"l":107,"u":380},{"a":false,"l":626,"u":736},{"a":false,"l":401,"u":984},{"a":false,"l":439,"u":778},{"a":true,"l":279,"u":847},{"a":false,"l":79,"u":896},{"a":true,"l":65,"u":653},{"a":false,"l":339,"u":524},{"a":true,"l":351,"u":662},{"a":true,"l":774,"u":913},{"a":false,"l":235,"u":416},{"a":true,"l":27,"u":865},{"a":false,"l":138,"u":652},{"a":false,"l":780,"u":892},{"a":true,"l":618,"u":891},{"a":true,"l":285,"u":973},{"a":false,"l":80,"u":451},{"a":true,"l":645,"u":874},{"a":false,"l":245,"u":375},{"a":true,"l":409,"u":482},{"a":false,"l":683,"u":851},{"a":true,"l":654,"u":760},{"a":false,"l":270,"u":521},{"a":true,"l":145,"u":513},{"a":false,"l":108,"u":228},{"a":false,"l":210,"u":395},{"a":true,"l":518,"u":905},{"a":true,"l":368,"u":899},{"a":false,"l":731,"u":747},{"a":true,"l":624,"u":663},{"a":false,"l":878,"u":959},{"a":false,"l":503,"u":799},{"a":false,"l":134,"u":894},{"a":true,"l":367,"u":446},{"a":true,"l":25,"u":51},{"a":false,"l":94,"u":474},{"a":false,"l":404,"u":671},{"a":false,"l":437,"u":649},{"a":false,"l":863,"u":940},{"a":true,"l":82,"u":535},{"a":true,"l":601,"u":728},{"a":false,"l":463,"u":607},{"a":true,"l":60,"u":99},{"a":false,"l":329,"u":504},{"a":true,"l":211,"u":216},{"a":false,"l":455,"u":833},{"a":true,"l":471,"u":807},{"a":false,"l":601,"u":741},{"a":false,"l":42,"u":533},{"a":true,"l":106,"u":426},{"a":true,"l":185,"u":878},{"a":false,"l":761,"u":882},{"a":true,"l":93,"u":956},{"a":false,"l":668,"u":931},{"a":false,"l":29,"u":699},{"a":false,"l":349,"u":835},{"a":true,"l":443,"u":468},{"a":true,"l":267,"u":468},{"a":false,"l":484,"u":544},{"a":true,"l":507,"u":575},{"a":false,"l":279,"u":315},{"a":false,"l":245,"u":612},{"a":true,"l":523,"u":748},{"a":false,"l":291,"u":442},{"a":false,"l":651,"u":732},{"a":false,"l":206,"u":571},{"a":true,"l":857,"u":904},{"a":true,"l":272,"u":869},{"a":false,"l":211,"u":686},{"a":false,"l":91,"u":756},{"a":true,"l":653,"u":773},{"a":false,"l":495,"u":797},{"a":false,"l":76,"u":677},{"a":true,"l":551,"u":860},{"a":false,"l":102,"u":941},{"a":true,"l":105,"u":499},{"a":false,"l":212,"u":654},{"a":true,"l":418,"u":813},{"a":true,"l":570,"u":768},{"a":true,"l":328,"u":569},{"a":false,"l":188,"u":939},{"a":false,"l":331,"u":497},{"a":false,"l":339,"u":640},{"a":false,"l":780,"u":979},{"a":true,"l":165,"u":427},{"a":false,"l":179,"u":893},{"a":false,"l":133,"u":658},{"a":false,"l":811,"u":902},{"a":true,"l":166,"u":558},{"a":true,"l":300,"u":971},{"a":true,"l":622,"u":737},{"a":true,"l":345,"u":636},{"a":true,"l":120,"u":193},{"a":true,"l":63,"u":898},{"a":false,"l":299,"u":628},{"a":false,"l":386,"u":413},{"a":false,"l":628,"u":732},{"a":false,"l":236,"u":850},{"a":true,"l":108,"u":582},{"a":false,"l":299,"u":443},{"a":false,"l":755,"u":993},{"a":false,"l":423,"u":425},{"a":true,"l":359,"u":887},{"a":false,"l":393,"u":790},{"a":false,"l":522,"u":828},{"a":true,"l":162,"u":387},{"a":true,"l":146,"u":150},{"a":true,"l":141,"u":481},{"a":true,"l":154,"u":447},{"a":false,"l":13,"u":311},{"a":false,"l":170,"u":934},{"a":true,"l":304,"u":597},{"a":false,"l":178,"u":256},{"a":false,"l":891,"u":928},{"a":false,"l":603,"u":697},{"a":true,"l":342,"u":782},{"a":true,"l":336,"u":687},{"a":false,"l":499,"u":943},{"a":true,"l":237,"u":799},{"a":true,"l":512,"u":618},{"a":false,"l":512,"u":848},{"a":true,"l":636,"u":648},{"a":true,"l":154,"u":748},{"a":true,"l":11,"u":335},{"a":false,"l":37,"u":206},{"a":false,"l":299,"u":492},{"a":false,"l":679,"u":824},{"a":true,"l":682,"u":845},{"a":false,"l":115,"u":675},{"a":false,"l":115,"u":418},{"a":true,"l":385,"u":912},{"a":true,"l":276,"u":287},{"a":false,"l":107,"u":238},{"a":true,"l":446,"u":502},{"a":true,"l":326,"u":688},{"a":false,"l":176,"u":478},{"a":false,"l":138,"u":792},{"a":false,"l":468,"u":783},{"a":false,"l":88,"u":485},{"a":true,"l":580,"u":949},{"a":true,"l":691,"u":775},{"a":true,"l":419,"u":632},{"a":true,"l":352,"u":896},{"a":true,"l":414,"u":499},{"a":false,"l":59,"u":366},{"a":false,"l":2,"u":674},{"a":false,"l":743,"u":941},{"a":false,"l":414,"u":867},{"a":false,"l":245,"u":637},{"a":false,"l":201,"u":851},{"a":false,"l":69,"u":92},{"a":false,"l":619,"u":711},{"a":true,"l":284,"u":950},{"a":false,"l":94,"u":478},{"a":true,"l":683,"u":923},{"a":true,"l":129,"u":564},{"a":true,"l":220,"u":394},{"a":true,"l":324,"u":900},{"a":false,"l":479,"u":669},{"a":false,"l":374,"u":485},{"a":false,"l":248,"u":571},{"a":true,"l":425,"u":889},{"a":false,"l":739,"u":839},{"a":false,"l":164,"u":719},{"a":true,"l":569,"u":669},{"a":false,"l":440,"u":707},{"a":false,"l":539,"u":993},{"a":true,"l":592,"u":633},{"a":false,"l":932,"u":947},{"a":true,"l":577,"u":881},{"a":true,"l":287,"u":308},{"a":false,"l":326,"u":712},{"a":false,"l":305,"u":780},{"a":true,"l":250,"u":846},{"a":false,"l":148,"u":240},{"a":false,"l":672,"u":963},{"a":true,"l":40,"u":654},{"a":true,"l":221,"u":441},{"a":true,"l":95,"u":884},{"a":true,"l":486,"u":770},{"a":false,"l":211,"u":259},{"a":false,"l":92,"u":442},{"a":true,"l":166,"u":482},{"a":true,"l":82,"u":746},{"a":true,"l":105,"u":588},{"a":true,"l":391,"u":738},{"a":true,"l":822,"u":965},{"a":false,"l":555,"u":985},{"a":false,"l":639,"u":912},{"a":true,"l":207,"u":505},{"a":true,"l":350,"u":880},{"a":true,"l":119,"u":529},{"a":false,"l":108,"u":942},{"a":false,"l":121,"u":568},{"a":true,"l":344,"u":974},{"a":false,"l":619,"u":818},{"a":true,"l":20,"u":536},{"a":true,"l":3,"u":660},{"a":false,"l":609,"u":644},{"a":true,"l":289,"u":576},{"a":false,"l":124,"u":660},{"a":true,"l":780,"u":809},{"a":true,"l":23,"u":534},{"a":false,"l":526,"u":719},{"a":false,"l":14,"u":175},{"a":true,"l":617,"u":935},{"a":true,"l":21,"u":532},{"a":false,"l":621,"u":758},{"a":true,"l":147,"u":178},{"a":false,"l":35,"u":494},{"a":false,"l":303,"u":768},{"a":true,"l":121,"u":214},{"a":false,"l":495,"u":807},{"a":true,"l":625,"u":713},{"a":true,"l":36,"u":747},{"a":false,"l":231,"u":698},{"a":true,"l":597,"u":805},{"a":false,"l":387,"u":483},{"a":false,"l":516,"u":984},{"a":false,"l":817,"u":827},{"a":true,"l":186,"u":388},{"a":false,"l":366,"u":830},{"a":true,"l":332,"u":514},{"a":true,"l":391,"u":923},{"a":true,"l":869,"u":942},{"a":true,"l":389,"u":995},{"a":false,"l":564,"u":974},{"a":true,"l":368,"u":845},{"a":false,"l":44,"u":881},{"a":true,"l":236,"u":295},{"a":false,"l":276,"u":870},{"a":true,"l":327,"u":836},{"a":true,"l":21,"u":956},{"a":true,"l":512,"u":960},{"a":true,"l":568,"u":947},{"a":false,"l":233,"u":315},{"a":true,"l":483,"u":549},{"a":false,"l":53,"u":471},{"a":true,"l":419,"u":761},{"a":true,"l":171,"u":824},{"a":false,"l":74,"u":768},{"a":false,"l":604,"u":764},{"a":true,"l":79,"u":462},{"a":false,"l":453,"u":735},{"a":true,"l":706,"u":743},{"a":false,"l":246,"u":514},{"a":false,"l":378,"u":519},{"a":true,"l":642,"u":676},{"a":false,"l":248,"u":812},{"a":true,"l":161,"u":897},{"a":true,"l":216,"u":589},{"a":false,"l":479,"u":493},{"a":true,"l":609,"u":671},{"a":true,"l":758,"u":770},{"a":false,"l":420,"u":571},{"a":true,"l":824,"u":921},{"a":true,"l":88,"u":736},{"a":false,"l":116,"u":953},{"a":true,"l":123,"u":790},{"a":false,"l":101,"u":253},{"a":true,"l":243,"u":593},{"a":false,"l":30,"u":751},{"a":false,"l":333,"u":734},{"a":true,"l":496,"u":957},{"a":true,"l":575,"u":883},{"a":true,"l":140,"u":451},{"a":false,"l":268,"u":477},{"a":true,"l":338,"u":539},{"a":false,"l":239,"u":921},{"a":true,"l":63,"u":322},{"a":true,"l":526,"u":572},{"a":true,"l":297,"u":785},{"a":false,"l":87,"u":313},{"a":false,"l":93,"u":848},{"a":true,"l":125,"u":185},{"a":true,"l":447,"u":840},{"a":true,"l":121,"u":645},{"a":false,"l":259,"u":600},{"a":false,"l":92,"u":535},{"a":false,"l":201,"u":291},{"a":true,"l":693,"u":969},{"a":true,"l":29,"u":302},{"a":false,"l":415,"u":741},{"a":false,"l":218,"u":815},{"a":true,"l":685,"u":735},{"a":true,"l":42,"u":755},{"a":false,"l":35,"u":980},{"a":true,"l":155,"u":374},{"a":false,"l":496,"u":909},{"a":false,"l":234,"u":265},{"a":false,"l":709,"u":845},{"a":false,"l":15,"u":970},{"a":false,"l":426,"u":763},{"a":true,"l":676,"u":824},{"a":false,"l":319,"u":854},{"a":false,"l":131,"u":509},{"a":true,"l":242,"u":491},{"a":false,"l":151,"u":207},{"a":false,"l":306,"u":534},{"a":false,"l":15,"u":714},{"a":true,"l":339,"u":446},{"a":false,"l":6,"u":226},{"a":false,"l":523,"u":560},{"a":false,"l":326,"u":987},{"a":true,"l":316,"u":852},{"a":true,"l":175,"u":962},{"a":false,"l":137,"u":192},{"a":false,"l":219,"u":269},{"a":false,"l":538,"u":618},{"a":true,"l":297,"u":564},{"a":false,"l":460,"u":879},{"a":false,"l":608,"u":762},{"a":false,"l":255,"u":567},{"a":true,"l":239,"u":263},{"a":true,"l":34,"u":975},{"a":true,"l":263,"u":326},{"a":true,"l":156,"u":437},{"a":false,"l":636,"u":811},{"a":false,"l":614,"u":761},{"a":false,"l":15,"u":764},{"a":true,"l":316,"u":951},{"a":true,"l":425,"u":952},{"a":true,"l":611,"u":626},{"a":true,"l":413,"u":847},{"a":true,"l":12,"u":680},{"a":false,"l":427,"u":626},{"a":false,"l":102,"u":536},{"a":true,"l":483,"u":794},{"a":true,"l":370,"u":839},{"a":true,"l":67,"u":812},{"a":false,"l":197,"u":494},{"a":false,"l":356,"u":605},{"a":false,"l":8,"u":704},{"a":false,"l":237,"u":636},{"a":false,"l":515,"u":841},{"a":true,"l":500,"u":849},{"a":false,"l":30,"u":186},{"a":false,"l":62,"u":595},{"a":false,"l":269,"u":665},{"a":false,"l":326,"u":946},{"a":false,"l":477,"u":910},{"a":true,"l":429,"u":745},{"a":false,"l":235,"u":243},{"a":true,"l":59,"u":78},{"a":true,"l":19,"u":530},{"a":false,"l":853,"u":959},{"a":true,"l":261,"u":620},{"a":true,"l":423,"u":840},{"a":true,"l":338,"u":567},{"a":true,"l":240,"u":641},{"a":true,"l":444,"u":962},{"a":false,"l":201,"u":295},{"a":true,"l":970,"u":981},{"a":false,"l":776,"u":942},{"a":false,"l":500,"u":574},{"a":false,"l":131,"u":846},{"a":false,"l":159,"u":684},{"a":false,"l":38,"u":789},{"a":true,"l":656,"u":992},{"a":false,"l":14,"u":292},{"a":true,"l":481,"u":848},{"a":false,"l":415,"u":792},{"a":true,"l":32,"u":698},{"a":true,"l":891,"u":989},{"a":true,"l":67,"u":637},{"a":true,"l":102,"u":316},{"a":false,"l":390,"u":768},{"a":true,"l":64,"u":575},{"a":true,"l":814,"u":845},{"a":true,"l":61,"u":561},{"a":true,"l":483,"u":871},{"a":true,"l":514,"u":834},{"a":true,"l":135,"u":975},{"a":true,"l":387,"u":841},{"a":false,"l":426,"u":621},{"a":false,"l":409,"u":655},{"a":false,"l":539,"u":983},{"a":true,"l":613,"u":702},{"a":true,"l":2,"u":380},{"a":false,"l":508,"u":552},{"a":false,"l":9,"u":271},{"a":false,"l":215,"u":432},{"a":true,"l":173,"u":307},{"a":true,"l":55,"u":703},{"a":true,"l":275,"u":517},{"a":true,"l":65,"u":338},{"a":true,"l":448,"u":576},{"a":true,"l":44,"u":531},{"a":true,"l":61,"u":391},{"a":true,"l":31,"u":170},{"a":false,"l":88,"u":685},{"a":false,"l":547,"u":952},{"a":false,"l":68,"u":943},{"a":false,"l":34,"u":462},{"a":false,"l":431,"u":466},{"a":false,"l":502,"u":596},{"a":true,"l":541,"u":613},{"a":false,"l":472,"u":989},{"a":false,"l":441,"u":957},{"a":true,"l":64,"u":78},{"a":true,"l":130,"u":683},{"a":false,"l":238,"u":275},{"a":true,"l":143,"u":507},{"a":false,"l":824,"u":881},{"a":false,"l":178,"u":293},{"a":false,"l":227,"u":432},{"a":true,"l":333,"u":512},{"a":true,"l":208,"u":583},{"a":true,"l":63,"u":428},{"a":false,"l":711,"u":975},{"a":true,"l":367,"u":913},{"a":true,"l":525,"u":610},{"a":false,"l":874,"u":986},{"a":true,"l":500,"u":897},{"a":false,"l":36,"u":660},{"a":true,"l":113,"u":298},{"a":true,"l":481,"u":602},{"a":false,"l":196,"u":986},{"a":false,"l":2,"u":3},{"a":true,"l":149,"u":248},{"a":false,"l":25,"u":248},{"a":true,"l":6,"u":160},{"a":true,"l":513,"u":838},{"a":false,"l":610,"u":777},{"a":true,"l":793,"u":993},{"a":false,"l":18,"u":491},{"a":true,"l":146,"u":681},{"a":false,"l":29,"u":679},{"a":true,"l":798,"u":811},{"a":false,"l":765,"u":808},{"a":false,"l":464,"u":806},{"a":true,"l":526,"u":584},{"a":false,"l":521,"u":638},{"a":true,"l":195,"u":272},{"a":false,"l":316,"u":923},{"a":false,"l":399,"u":925},{"a":true,"l":344,"u":478},{"a":false,"l":579,"u":858},{"a":false,"l":377,"u":582},{"a":false,"l":598,"u":661},{"a":true,"l":605,"u":981},{"a":true,"l":627,"u":792},{"a":false,"l":646,"u":711},{"a":false,"l":84,"u":157},{"a":true,"l":710,"u":893},{"a":false,"l":399,"u":616},{"a":false,"l":37,"u":850},{"a":true,"l":186,"u":935},{"a":false,"l":279,"u":958},{"a":true,"l":32,"u":235},{"a":false,"l":502,"u":958},{"a":false,"l":520,"u":785},{"a":false,"l":385,"u":785},{"a":true,"l":823,"u":885},{"a":true,"l":396,"u":675},{"a":false,"l":819,"u":961},{"a":true,"l":659,"u":849},{"a":false,"l":217,"u":764},{"a":false,"l":308,"u":497},{"a":false,"l":531,"u":896},{"a":false,"l":552,"u":585},{"a":false,"l":178,"u":196},{"a":true,"l":719,"u":950},{"a":true,"l":434,"u":525},{"a":true,"l":345,"u":725},{"a":false,"l":575,"u":626},{"a":true,"l":174,"u":704},{"a":true,"l":7,"u":700},{"a":true,"l":742,"u":781},{"a":true,"l":83,"u":191},{"a":false,"l":54,"u":641},{"a":true,"l":229,"u":434},{"a":false,"l":408,"u":836},{"a":true,"l":83,"u":336},{"a":false,"l":201,"u":348},{"a":true,"l":193,"u":418},{"a":false,"l":38,"u":305},{"a":true,"l":129,"u":658},{"a":false,"l":43,"u":527},{"a":true,"l":62,"u":489},{"a":true,"l":11,"u":862},{"a":false,"l":68,"u":110},{"a":false,"l":109,"u":932},{"a":true,"l":4,"u":856},{"a":false,"l":675,"u":706},{"a":false,"l":122,"u":183},{"a":true,"l":602,"u":984},{"a":false,"l":93,"u":366},{"a":false,"l":213,"u":331},{"a":false,"l":316,"u":437},{"a":true,"l":729,"u":815},{"a":false,"l":339,"u":432},{"a":false,"l":602,"u":659},{"a":true,"l":316,"u":810},{"a":false,"l":258,"u":886},{"a":true,"l":510,"u":997},{"a":true,"l":390,"u":771},{"a":true,"l":566,"u":767},{"a":true,"l":287,"u":525},{"a":false,"l":168,"u":744},{"a":true,"l":51,"u":226},{"a":true,"l":681,"u":772},{"a":false,"l":218,"u":596},{"a":true,"l":446,"u":794},{"a":false,"l":52,"u":286},{"a":true,"l":60,"u":654},{"a":true,"l":238,"u":831},{"a":true,"l":134,"u":692},{"a":false,"l":548,"u":905},{"a":true,"l":353,"u":487},{"a":false,"l":587,"u":921},{"a":true,"l":973,"u":977},{"a":false,"l":477,"u":657},{"a":false,"l":575,"u":582},{"a":false,"l":231,"u":542},{"a":false,"l":832,"u":834},{"a":true,"l":523,"u":991},{"a":true,"l":462,"u":565},{"a":true,"l":367,"u":397},{"a":true,"l":201,"u":877},{"a":true,"l":504,"u":637},{"a":false,"l":577,"u":649},{"a":true,"l":131,"u":504},{"a":true,"l":367,"u":935},{"a":true,"l":424,"u":875},{"a":true,"l":27,"u":790},{"a":false,"l":227,"u":475},{"a":true,"l":327,"u":560},{"a":false,"l":824,"u":841},{"a":true,"l":324,"u":507},{"a":true,"l":110,"u":826},{"a":false,"l":400,"u":913},{"a":false,"l":468,"u":618},{"a":false,"l":25,"u":43},{"a":false,"l":66,"u":324},{"a":true,"l":762,"u":957},{"a":true,"l":212,"u":251},{"a":false,"l":204,"u":410},{"a":true,"l":184,"u":313},{"a":true,"l":807,"u":973},{"a":true,"l":166,"u":445},{"a":true,"l":471,"u":758},{"a":false,"l":25,"u":641},{"a":true,"l":247,"u":826},{"a":true,"l":704,"u":950},{"a":true,"l":639,"u":834},{"a":true,"l":454,"u":466},{"a":true,"l":394,"u":864},{"a":false,"l":743,"u":843},{"a":false,"l":672,"u":709},{"a":false,"l":312,"u":727},{"a":true,"l":46,"u":805},{"a":false,"l":207,"u":590},{"a":true,"l":486,"u":548},{"a":true,"l":456,"u":518},{"a":true,"l":226,"u":555},{"a":false,"l":687,"u":958},{"a":false,"l":162,"u":314},{"a":true,"l":28,"u":446},{"a":true,"l":315,"u":583},{"a":true,"l":14,"u":793},{"a":false,"l":235,"u":454},{"a":true,"l":290,"u":540},{"a":true,"l":290,"u":368},{"a":true,"l":694,"u":924},{"a":true,"l":550,"u":749},{"a":true,"l":875,"u":985},{"a":true,"l":348,"u":385},{"a":true,"l":419,"u":778},{"a":true,"l":720,"u":921},{"a":true,"l":271,"u":808},{"a":true,"l":269,"u":528},{"a":true,"l":268,"u":620},{"a":true,"l":709,"u":905},{"a":true,"l":485,"u":664},{"a":false,"l":199,"u":304},{"a":true,"l":394,"u":599},{"a":true,"l":658,"u":863},{"a":true,"l":218,"u":660},{"a":false,"l":204,"u":329},{"a":true,"l":379,"u":535},{"a":false,"l":325,"u":833},{"a":false,"l":375,"u":865},{"a":true,"l":195,"u":698},{"a":false,"l":468,"u":986},{"a":true,"l":469,"u":815},{"a":false,"l":864,"u":894},{"a":true,"l":97,"u":159},{"a":false,"l":447,"u":785},{"a":true,"l":793,"u":970},{"a":false,"l":708,"u":875},{"a":true,"l":89,"u":250},{"a":true,"l":152,"u":673},{"a":true,"l":460,"u":668},{"a":false,"l":346,"u":397},{"a":true,"l":328,"u":406},{"a":true,"l":83,"u":689},{"a":false,"l":50,"u":935},{"a":true,"l":62,"u":89},{"a":true,"l":149,"u":505},{"a":true,"l":413,"u":512},{"a":false,"l":690,"u":812},{"a":true,"l":782,"u":915},{"a":true,"l":601,"u":998},{"a":false,"l":263,"u":602},{"a":false,"l":83,"u":811},{"a":false,"l":73,"u":127},{"a":false,"l":751,"u":915},{"a":true,"l":79,"u":827},{"a":false,"l":264,"u":935},{"a":true,"l":557,"u":695},{"a":false,"l":135,"u":344},{"a":true,"l":148,"u":316},{"a":true,"l":360,"u":775},{"a":false,"l":116,"u":167},{"a":true,"l":425,"u":692},{"a":false,"l":169,"u":630},{"a":false,"l":511,"u":685},{"a":true,"l":185,"u":454},{"a":false,"l":693,"u":808},{"a":true,"l":35,"u":975},{"a":true,"l":85,"u":321},{"a":false,"l":840,"u":982},{"a":true,"l":333,"u":729},{"a":true,"l":291,"u":825},{"a":true,"l":103,"u":742},{"a":false,"l":321,"u":509},{"a":false,"l":581,"u":629},{"a":false,"l":256,"u":562},{"a":false,"l":43,"u":522},{"a":true,"l":200,"u":299},{"a":false,"l":348,"u":412},{"a":true,"l":333,"u":929},{"a":false,"l":470,"u":832},{"a":true,"l":896,"u":974},{"a":false,"l":325,"u":638},{"a":false,"l":263,"u":763},{"a":true,"l":538,"u":901},{"a":true,"l":299,"u":787},{"a":true,"l":287,"u":821},{"a":true,"l":16,"u":234},{"a":false,"l":13,"u":704},{"a":false,"l":555,"u":988},{"a":false,"l":888,"u":990},{"a":false,"l":225,"u":307},{"a":true,"l":81,"u":759},{"a":true,"l":213,"u":661},{"a":false,"l":33,"u":702},{"a":false,"l":176,"u":993},{"a":false,"l":136,"u":449},{"a":false,"l":346,"u":625},{"a":true,"l":211,"u":239},{"a":false,"l":270,"u":403},{"a":false,"l":65,"u":657},{"a":false,"l":430,"u":494},{"a":false,"l":32,"u":945},{"a":false,"l":113,"u":874},{"a":true,"l":374,"u":468},{"a":false,"l":23,"u":244},{"a":false,"l":35,"u":605},{"a":false,"l":440,"u":948},{"a":false,"l":648,"u":942},{"a":true,"l":494,"u":829},{"a":true,"l":196,"u":209},{"a":false,"l":83,"u":620},{"a":true,"l":539,"u":815},{"a":false,"l":149,"u":996},{"a":true,"l":870,"u":977},{"a":true,"l":142,"u":385},{"a":false,"l":183,"u":782},{"a":false,"l":251,"u":543},{"a":false,"l":327,"u":976},{"a":false,"l":186,"u":819},{"a":true,"l":207,"u":610},{"a":true,"l":218,"u":453},{"a":false,"l":545,"u":830},{"a":false,"l":383,"u":779},{"a":true,"l":235,"u":788},{"a":true,"l":632,"u":910},{"a":false,"l":262,"u":471},{"a":true,"l":931,"u":941},{"a":true,"l":93,"u":487},{"a":true,"l":234,"u":873},{"a":true,"l":45,"u":592},{"a":true,"l":491,"u":541},{"a":false,"l":214,"u":717},{"a":true,"l":337,"u":978},{"a":false,"l":218,"u":779},{"a":true,"l":35,"u":430},{"a":false,"l":186,"u":336},{"a":false,"l":673,"u":817},{"a":false,"l":348,"u":890},{"a":true,"l":83,"u":660},{"a":true,"l":221,"u":579},{"a":true,"l":895,"u":898},{"a":true,"l":68,"u":517},{"a":true,"l":271,"u":685},{"a":false,"l":382,"u":908},{"a":true,"l":210,"u":423},{"a":false,"l":193,"u":938},{"a":false,"l":36,"u":717},{"a":true,"l":582,"u":835},{"a":true,"l":54,"u":112},{"a":true,"l":394,"u":951},{"a":false,"l":490,"u":519},{"a":false,"l":845,"u":978},{"a":true,"l":354,"u":537},{"a":true,"l":389,"u":708},{"a":true,"l":59,"u":432},{"a":true,"l":307,"u":906},{"a":false,"l":44,"u":320},{"a":true,"l":283,"u":435},{"a":true,"l":200,"u":245},{"a":true,"l":183,"u":860},{"a":true,"l":93,"u":265},{"a":false,"l":307,"u":553},{"a":true,"l":559,"u":577},{"a":false,"l":14,"u":110},{"a":true,"l":419,"u":718},{"a":false,"l":280,"u":505},{"a":false,"l":18,"u":181},{"a":true,"l":174,"u":540},{"a":false,"l":1,"u":340},{"a":false,"l":86,"u":932},{"a":false,"l":2,"u":690},{"a":true,"l":40,"u":422},{"a":true,"l":6,"u":333},{"a":false,"l":454,"u":973},{"a":true,"l":171,"u":194},{"a":true,"l":519,"u":895},{"a":false,"l":359,"u":577},{"a":true,"l":607,"u":743},{"a":false,"l":129,"u":944},{"a":false,"l":819,"u":985},{"a":false,"l":13,"u":183},{"a":true,"l":455,"u":515},{"a":true,"l":294,"u":774},{"a":false,"l":470,"u":731},{"a":false,"l":483,"u":721},{"a":false,"l":89,"u":917},{"a":true,"l":120,"u":984},{"a":true,"l":169,"u":258},{"a":false,"l":6,"u":115},{"a":false,"l":395,"u":636},{"a":false,"l":306,"u":555},{"a":false,"l":23,"u":336},{"a":true,"l":211,"u":355},{"a":false,"l":342,"u":838},{"a":true,"l":198,"u":697},{"a":true,"l":213,"u":494},{"a":true,"l":495,"u":695},{"a":false,"l":17,"u":345},{"a":true,"l":379,"u":975},{"a":false,"l":653,"u":703},{"a":true,"l":340,"u":756},{"a":false,"l":186,"u":264},{"a":true,"l":393,"u":495},{"a":false,"l":244,"u":710},{"a":false,"l":343,"u":813},{"a":false,"l":165,"u":200},{"a":false,"l":555,"u":871},{"a":false,"l":135,"u":280},{"a":true,"l":460,"u":724},{"a":true,"l":221,"u":807},{"a":true,"l":50,"u":101},{"a":true,"l":689,"u":776},{"a":false,"l":11,"u":809},{"a":true,"l":173,"u":698},{"a":false,"l":496,"u":912},{"a":true,"l":219,"u":975},{"a":false,"l":184,"u":630},{"a":true,"l":160,"u":930},{"a":true,"l":149,"u":157},{"a":false,"l":118,"u":880},{"a":true,"l":286,"u":908},{"a":true,"l":155,"u":977},{"a":true,"l":356,"u":839},{"a":true,"l":324,"u":398},{"a":false,"l":171,"u":882},{"a":false,"l":352,"u":591},{"a":false,"l":59,"u":431},{"a":true,"l":20,"u":409},{"a":false,"l":219,"u":224},{"a":false,"l":296,"u":430},{"a":false,"l":47,"u":806},{"a":false,"l":129,"u":618},{"a":true,"l":615,"u":985},{"a":true,"l":90,"u":691},{"a":false,"l":731,"u":942},{"a":false,"l":261,"u":389},{"a":false,"l":89,"u":286},{"a":false,"l":351,"u":433},{"a":true,"l":72,"u":293},{"a":true,"l":63,"u":962},{"a":true,"l":333,"u":693},{"a":false,"l":182,"u":209},{"a":true,"l":760,"u":893},{"a":true,"l":420,"u":572},{"a":true,"l":489,"u":731},{"a":false,"l":650,"u":673},{"a":false,"l":77,"u":230},{"a":true,"l":30,"u":276},{"a":true,"l":693,"u":914},{"a":false,"l":48,"u":832},{"a":true,"l":111,"u":531},{"a":false,"l":124,"u":824},{"a":true,"l":119,"u":397},{"a":false,"l":224,"u":319},{"a":true,"l":36,"u":969},{"a":true,"l":265,"u":606},{"a":false,"l":42,"u":298},{"a":true,"l":181,"u":458},{"a":true,"l":571,"u":789},{"a":true,"l":43,"u":108},{"a":false,"l":691,"u":997},{"a":true,"l":59,"u":936},{"a":false,"l":517,"u":987},{"a":false,"l":146,"u":415},{"a":true,"l":53,"u":727},{"a":true,"l":385,"u":461},{"a":true,"l":542,"u":822},{"a":true,"l":400,"u":917},{"a":true,"l":71,"u":729},{"a":true,"l":555,"u":556},{"a":false,"l":398,"u":945},{"a":true,"l":171,"u":440},{"a":false,"l":23,"u":690},{"a":true,"l":37,"u":703},{"a":true,"l":91,"u":768},{"a":false,"l":322,"u":910},{"a":true,"l":535,"u":896},{"a":true,"l":219,"u":617},{"a":false,"l":37,"u":453},{"a":false,"l":777,"u":844},{"a":false,"l":390,"u":574},{"a":true,"l":253,"u":646},{"a":true,"l":145,"u":232},{"a":true,"l":474,"u":739},{"a":true,"l":325,"u":554},{"a":true,"l":43,"u":542},{"a":true,"l":824,"u":862},{"a":true,"l":567,"u":892},{"a":false,"l":105,"u":882},{"a":false,"l":548,"u":631},{"a":true,"l":628,"u":778},{"a":false,"l":115,"u":610},{"a":true,"l":911,"u":967},{"a":false,"l":27,"u":368},{"a":true,"l":746,"u":942},{"a":true,"l":209,"u":361},{"a":true,"l":303,"u":701},{"a":false,"l":75,"u":797},{"a":false,"l":349,"u":607},{"a":false,"l":54,"u":286},{"a":false,"l":21,"u":253},{"a":true,"l":242,"u":332},{"a":false,"l":445,"u":816},{"a":true,"l":759,"u":811},{"a":false,"l":117,"u":293},{"a":true,"l":721,"u":806},{"a":true,"l":761,"u":876},{"a":true,"l":563,"u":988},{"a":true,"l":123,"u":973},{"a":false,"l":779,"u":800},{"a":true,"l":48,"u":773},{"a":true,"l":707,"u":801},{"a":true,"l":433,"u":838},{"a":true,"l":363,"u":504},{"a":true,"l":226,"u":637},{"a":true,"l":46,"u":694},{"a":true,"l":823,"u":865},{"a":true,"l":130,"u":244},{"a":false,"l":436,"u":673},{"a":true,"l":106,"u":200},{"a":true,"l":99,"u":405},{"a":false,"l":208,"u":429},{"a":true,"l":436,"u":975},{"a":false,"l":80,"u":973},{"a":false,"l":765,"u":899},{"a":true,"l":30,"u":913},{"a":false,"l":14,"u":382},{"a":true,"l":15,"u":518},{"a":false,"l":919,"u":938},{"a":true,"l":222,"u":428},{"a":true,"l":248,"u":396},{"a":true,"l":36,"u":946},{"a":true,"l":566,"u":672},{"a":false,"l":49,"u":673},{"a":true,"l":639,"u":702},{"a":true,"l":271,"u":919},{"a":false,"l":475,"u":648},{"a":true,"l":2,"u":426},{"a":true,"l":54,"u":620},{"a":false,"l":348,"u":995},{"a":true,"l":266,"u":845},{"a":true,"l":126,"u":145},{"a":false,"l":130,"u":557},{"a":false,"l":590,"u":801},{"a":false,"l":521,"u":773},{"a":false,"l":302,"u":740},{"a":true,"l":83,"u":898},{"a":false,"l":252,"u":620},{"a":false,"l":244,"u":401},{"a":true,"l":395,"u":968},{"a":false,"l":80,"u":676},{"a":true,"l":271,"u":669},{"a":false,"l":757,"u":862},{"a":false,"l":322,"u":919},{"a":false,"l":506,"u":659},{"a":false,"l":245,"u":883},{"a":true,"l":329,"u":807},{"a":false,"l":245,"u":635},{"a":true,"l":408,"u":523},{"a":true,"l":146,"u":449},{"a":false,"l":331,"u":924},{"a":true,"l":198,"u":348},{"a":true,"l":478,"u":971},{"a":false,"l":352,"u":550},{"a":true,"l":72,"u":414},{"a":true,"l":69,"u":248},{"a":false,"l":505,"u":627},{"a":false,"l":61,"u":175},{"a":false,"l":141,"u":398},{"a":true,"l":373,"u":641},{"a":false,"l":50,"u":368},{"a":true,"l":144,"u":693},{"a":true,"l":49,"u":960},{"a":false,"l":160,"u":621},{"a":false,"l":328,"u":436},{"a":true,"l":127,"u":178},{"a":false,"l":662,"u":806},{"a":true,"l":358,"u":893},{"a":true,"l":271,"u":917},{"a":false,"l":413,"u":436},{"a":true,"l":471,"u":944},{"a":false,"l":455,"u":528},{"a":false,"l":594,"u":914},{"a":true,"l":907,"u":914},{"a":false,"l":515,"u":650},{"a":true,"l":304,"u":392},{"a":false,"l":163,"u":240},{"a":false,"l":147,"u":845},{"a":false,"l":477,"u":974},{"a":false,"l":2,"u":172},{"a":false,"l":29,"u":324},{"a":false,"l":597,"u":777},{"a":true,"l":113,"u":662},{"a":false,"l":28,"u":264},{"a":false,"l":43,"u":780},{"a":true,"l":10,"u":560},{"a":true,"l":559,"u":697},{"a":false,"l":720,"u":806},{"a":true,"l":268,"u":612},{"a":false,"l":157,"u":608},{"a":false,"l":668,"u":742},{"a":true,"l":44,"u":859},{"a":true,"l":301,"u":832},{"a":true,"l":180,"u":957},{"a":false,"l":579,"u":871},{"a":true,"l":474,"u":959},{"a":false,"l":533,"u":803},{"a":true,"l":508,"u":863},{"a":true,"l":824,"u":999},{"a":true,"l":258,"u":360},{"a":true,"l":107,"u":798},{"a":true,"l":392,"u":536},{"a":true,"l":103,"u":907},{"a":true,"l":153,"u":420},{"a":true,"l":351,"u":801},{"a":false,"l":263,"u":669},{"a":false,"l":360,"u":738},{"a":true,"l":468,"u":547},{"a":true,"l":386,"u":394},{"a":true,"l":842,"u":952},{"a":true,"l":370,"u":530},{"a":true,"l":238,"u":423},{"a":false,"l":451,"u":651},{"a":true,"l":312,"u":764},{"a":true,"l":275,"u":347},{"a":false,"l":127,"u":332},{"a":false,"l":197,"u":443},{"a":false,"l":394,"u":487},{"a":true,"l":559,"u":805},{"a":false,"l":679,"u":848},{"a":false,"l":199,"u":554},{"a":true,"l":433,"u":466},{"a":true,"l":49,"u":499},{"a":true,"l":35,"u":676},{"a":false,"l":425,"u":829},{"a":true,"l":154,"u":392},{"a":false,"l":841,"u":933},{"a":false,"l":339,"u":550},{"a":false,"l":541,"u":769},{"a":false,"l":154,"u":198},{"a":true,"l":295,"u":360},{"a":false,"l":618,"u":684},{"a":false,"l":126,"u":975},{"a":false,"l":8,"u":399},{"a":true,"l":390,"u":801},{"a":true,"l":533,"u":949},{"a":false,"l":240,"u":912},{"a":true,"l":514,"u":737},{"a":true,"l":119,"u":729},{"a":false,"l":547,"u":799},{"a":true,"l":306,"u":901},{"a":false,"l":848,"u":876},{"a":false,"l":95,"u":136},{"a":true,"l":602,"u":816},{"a":true,"l":127,"u":944},{"a":true,"l":621,"u":774},{"a":false,"l":50,"u":972},{"a":false,"l":98,"u":525},{"a":true,"l":640,"u":885},{"a":true,"l":544,"u":819},{"a":true,"l":581,"u":715},{"a":true,"l":605,"u":824},{"a":true,"l":22,"u":483},{"a":false,"l":461,"u":775},{"a":true,"l":16,"u":465},{"a":true,"l":231,"u":945},{"a":false,"l":278,"u":357},{"a":false,"l":777,"u":880},{"a":true,"l":638,"u":833},{"a":true,"l":302,"u":872},{"a":false,"l":416,"u":863},{"a":false,"l":163,"u":454},{"a":true,"l":329,"u":993},{"a":false,"l":232,"u":451},{"a":true,"l":634,"u":901},{"a":false,"l":637,"u":855},{"a":false,"l":588,"u":784},{"a":false,"l":307,"u":940},{"a":true,"l":399,"u":478},{"a":true,"l":219,"u":407},{"a":true,"l":9,"u":757},{"a":false,"l":417,"u":900},{"a":false,"l":49,"u":528},{"a":false,"l":448,"u":905},{"a":false,"l":559,"u":854},{"a":true,"l":400,"u":908},{"a":true,"l":687,"u":701},{"a":false,"l":628,"u":983},{"a":true,"l":318,"u":810},{"a":false,"l":223,"u":585},{"a":true,"l":664,"u":955},{"a":true,"l":530,"u":720},{"a":true,"l":318,"u":364},{"a":true,"l":354,"u":371},{"a":false,"l":700,"u":872},{"a":false,"l":131,"u":234},{"a":false,"l":760,"u":926},{"a":false,"l":654,"u":894},{"a":false,"l":162,"u":860},{"a":false,"l":627,"u":954},{"a":false,"l":485,"u":723},{"a":false,"l":15,"u":25},{"a":true,"l":190,"u":906},{"a":true,"l":125,"u":711},{"a":true,"l":283,"u":750},{"a":false,"l":1,"u":737},{"a":true,"l":654,"u":970},{"a":true,"l":747,"u":876},{"a":true,"l":831,"u":855},{"a":false,"l":444,"u":589},{"a":true,"l":572,"u":770},{"a":false,"l":337,"u":974},{"a":true,"l":150,"u":546},{"a":true,"l":624,"u":898},{"a":true,"l":451,"u":982},{"a":false,"l":325,"u":954},{"a":true,"l":604,"u":972},{"a":false,"l":130,"u":487},{"a":false,"l":7,"u":828},{"a":false,"l":720,"u":737},{"a":true,"l":11,"u":320},{"a":false,"l":800,"u":934},{"a":true,"l":245,"u":367},{"a":false,"l":60,"u":854},{"a":false,"l":258,"u":322},{"a":true,"l":420,"u":598},{"a":false,"l":565,"u":850},{"a":true,"l":323,"u":804},{"a":false,"l":759,"u":879},{"a":true,"l":184,"u":382},{"a":false,"l":411,"u":929},{"a":true,"l":633,"u":719},{"a":false,"l":346,"u":857},{"a":false,"l":485,"u":824},{"a":false,"l":988,"u":994},{"a":false,"l":1,"u":436},{"a":true,"l":158,"u":808},{"a":false,"l":444,"u":819},{"a":true,"l":233,"u":635},{"a":false,"l":550,"u":551},{"a":true,"l":50,"u":540},{"a":false,"l":794,"u":818},{"a":true,"l":325,"u":637},{"a":false,"l":273,"u":358},{"a":true,"l":32,"u":98},{"a":true,"l":341,"u":915},{"a":true,"l":315,"u":519},{"a":true,"l":44,"u":742},{"a":true,"l":678,"u":910},{"a":false,"l":42,"u":517},{"a":false,"l":161,"u":300},{"a":true,"l":307,"u":925},{"a":false,"l":471,"u":954},{"a":false,"l":867,"u":900},{"a":false,"l":266,"u":994},{"a":false,"l":48,"u":641},{"a":true,"l":514,"u":938},{"a":false,"l":565,"u":753},{"a":false,"l":2,"u":872},{"a":false,"l":867,"u":882},{"a":true,"l":519,"u":756},{"a":false,"l":378,"u":581},{"a":true,"l":26,"u":826},{"a":false,"l":307,"u":947},{"a":false,"l":32,"u":82},{"a":false,"l":926,"u":973},{"a":true,"l":307,"u":556},{"a":true,"l":437,"u":791},{"a":true,"l":281,"u":788},{"a":false,"l":218,"u":661},{"a":false,"l":154,"u":772},{"a":true,"l":621,"u":967},{"a":false,"l":400,"u":432},{"a":false,"l":405,"u":500},{"a":false,"l":52,"u":944},{"a":true,"l":68,"u":347},{"a":true,"l":549,"u":808},{"a":true,"l":522,"u":852},{"a":true,"l":685,"u":970},{"a":false,"l":55,"u":371},{"a":true,"l":389,"u":404},{"a":false,"l":548,"u":971},{"a":false,"l":108,"u":542},{"a":false,"l":165,"u":641},{"a":false,"l":262,"u":524},{"a":false,"l":309,"u":656},{"a":false,"l":98,"u":179},{"a":true,"l":206,"u":565},{"a":true,"l":86,"u":437},{"a":false,"l":343,"u":972},{"a":true,"l":746,"u":929},{"a":false,"l":619,"u":942},{"a":false,"l":212,"u":373},{"a":true,"l":643,"u":734},{"a":false,"l":879,"u":949},{"a":false,"l":230,"u":700},{"a":true,"l":111,"u":984},{"a":false,"l":177,"u":627},{"a":true,"l":226,"u":507},{"a":false,"l":98,"u":344},{"a":false,"l":318,"u":632},{"a":false,"l":737,"u":890},{"a":false,"l":56,"u":596},{"a":true,"l":481,"u":781},{"a":false,"l":173,"u":480},{"a":false,"l":461,"u":679},{"a":false,"l":172,"u":414},{"a":false,"l":191,"u":193},{"a":true,"l":410,"u":648},{"a":false,"l":291,"u":813},{"a":false,"l":238,"u":772},{"a":true,"l":489,"u":833},{"a":false,"l":416,"u":987},{"a":false,"l":322,"u":429},{"a":false,"l":87,"u":302},{"a":true,"l":603,"u":952},{"a":false,"l":443,"u":966},{"a":true,"l":470,"u":904},{"a":false,"l":30,"u":949},{"a":false,"l":829,"u":907},{"a":false,"l":213,"u":579},{"a":true,"l":375,"u":552},{"a":true,"l":113,"u":479},{"a":true,"l":149,"u":944},{"a":false,"l":630,"u":738},{"a":true,"l":120,"u":913},{"a":false,"l":172,"u":970},{"a":false,"l":424,"u":643},{"a":false,"l":259,"u":466},{"a":false,"l":198,"u":813},{"a":false,"l":248,"u":508},{"a":false,"l":47,"u":868},{"a":false,"l":364,"u":728},{"a":false,"l":86,"u":169},{"a":false,"l":162,"u":702},{"a":false,"l":200,"u":929},{"a":true,"l":37,"u":847},{"a":false,"l":296,"u":462},{"a":false,"l":36,"u":334},{"a":false,"l":331,"u":540},{"a":false,"l":315,"u":653},{"a":true,"l":114,"u":426},{"a":false,"l":481,"u":898},{"a":true,"l":35,"u":375},{"a":false,"l":205,"u":235},{"a":true,"l":102,"u":862},{"a":false,"l":606,"u":861},{"a":false,"l":331,"u":810},{"a":true,"l":400,"u":815},{"a":false,"l":20,"u":696},{"a":true,"l":185,"u":928},{"a":false,"l":244,"u":714},{"a":true,"l":266,"u":762},{"a":false,"l":257,"u":631},{"a":true,"l":221,"u":727},{"a":true,"l":473,"u":764},{"a":true,"l":646,"u":855},{"a":false,"l":313,"u":990},{"a":true,"l":651,"u":766},{"a":false,"l":19,"u":152},{"a":true,"l":221,"u":468},{"a":false,"l":628,"u":868},{"a":true,"l":857,"u":960},{"a":false,"l":358,"u":870},{"a":true,"l":335,"u":540},{"a":false,"l":783,"u":934},{"a":true,"l":111,"u":144},{"a":false,"l":256,"u":583},{"a":false,"l":70,"u":820},{"a":false,"l":394,"u":562},{"a":true,"l":613,"u":676},{"a":true,"l":192,"u":668},{"a":false,"l":249,"u":676},{"a":true,"l":688,"u":986},{"a":false,"l":336,"u":949},{"a":true,"l":430,"u":640},{"a":false,"l":202,"u":579},{"a":true,"l":468,"u":550},{"a":true,"l":199,"u":478},{"a":true,"l":390,"u":830},{"a":false,"l":374,"u":726},{"a":true,"l":237,"u":381},{"a":true,"l":297,"u":989},{"a":true,"l":279,"u":402},{"a":false,"l":177,"u":917},{"a":true,"l":67,"u":125},{"a":true,"l":7,"u":998},{"a":true,"l":94,"u":176},{"a":false,"l":287,"u":856},{"a":true,"l":556,"u":842},{"a":true,"l":617,"u":746},{"a":false,"l":81,"u":170},{"a":true,"l":710,"u":972},{"a":true,"l":594,"u":855},{"a":true,"l":452,"u":750},{"a":false,"l":41,"u":957},{"a":false,"l":359,"u":490},{"a":false,"l":718,"u":883},{"a":true,"l":148,"u":210},{"a":true,"l":256,"u":665},{"a":false,"l":39,"u":875},{"a":false,"l":67,"u":958},{"a":false,"l":392,"u":880},{"a":false,"l":244,"u":883},{"a":false,"l":252,"u":976},{"a":true,"l":16,"u":31},{"a":true,"l":552,"u":555},{"a":false,"l":359,"u":898},{"a":false,"l":477,"u":577},{"a":true,"l":229,"u":770},{"a":false,"l":286,"u":334},{"a":true,"l":156,"u":411},{"a":false,"l":606,"u":684},{"a":false,"l":371,"u":601},{"a":false,"l":315,"u":683},{"a":false,"l":411,"u":759},{"a":false,"l":130,"u":168},{"a":false,"l":367,"u":447},{"a":true,"l":835,"u":850},{"a":false,"l":122,"u":448},{"a":false,"l":742,"u":912},{"a":true,"l":747,"u":804},{"a":false,"l":609,"u":846},{"a":true,"l":460,"u":568},{"a":false,"l":59,"u":793},{"a":true,"l":677,"u":859},{"a":true,"l":258,"u":969},{"a":true,"l":201,"u":965},{"a":true,"l":28,"u":778},{"a":false,"l":32,"u":903},{"a":false,"l":153,"u":369},{"a":true,"l":269,"u":941},{"a":true,"l":431,"u":529},{"a":true,"l":444,"u":545},{"a":true,"l":140,"u":550},{"a":false,"l":362,"u":661},{"a":true,"l":174,"u":665},{"a":false,"l":51,"u":558},{"a":true,"l":183,"u":386},{"a":true,"l":8,"u":436},{"a":true,"l":330,"u":999},{"a":false,"l":106,"u":566},{"a":true,"l":181,"u":666},{"a":true,"l":495,"u":659},{"a":true,"l":759,"u":850},{"a":false,"l":245,"u":955},{"a":false,"l":80,"u":495},{"a":false,"l":424,"u":833},{"a":true,"l":13,"u":391},{"a":false,"l":61,"u":780},{"a":true,"l":629,"u":934},{"a":true,"l":793,"u":985},{"a":true,"l":16,"u":791},{"a":false,"l":366,"u":607},{"a":false,"l":130,"u":996},{"a":true,"l":51,"u":641},{"a":true,"l":456,"u":688},{"a":false,"l":380,"u":841},{"a":true,"l":13,"u":916},{"a":true,"l":368,"u":709},{"a":false,"l":469,"u":475},{"a":false,"l":229,"u":328},{"a":false,"l":493,"u":735},{"a":true,"l":122,"u":263},{"a":true,"l":354,"u":668},{"a":true,"l":637,"u":905},{"a":false,"l":94,"u":288},{"a":true,"l":171,"u":551},{"a":true,"l":582,"u":817},{"a":true,"l":722,"u":830},{"a":false,"l":445,"u":605},{"a":true,"l":254,"u":481},{"a":false,"l":517,"u":682},{"a":false,"l":20,"u":310},{"a":false,"l":236,"u":951},{"a":true,"l":312,"u":503},{"a":false,"l":56,"u":464},{"a":true,"l":521,"u":984},{"a":true,"l":455,"u":914},{"a":true,"l":408,"u":923},{"a":true,"l":804,"u":859},{"a":true,"l":214,"u":489},{"a":false,"l":193,"u":725},{"a":false,"l":693,"u":838},{"a":true,"l":159,"u":960},{"a":true,"l":790,"u":857},{"a":true,"l":87,"u":135},{"a":false,"l":138,"u":737},{"a":true,"l":74,"u":457},{"a":true,"l":452,"u":482},{"a":true,"l":140,"u":404},{"a":true,"l":241,"u":501},{"a":false,"l":363,"u":765},{"a":true,"l":661,"u":732},{"a":true,"l":543,"u":927},{"a":false,"l":44,"u":388},{"a":true,"l":561,"u":716},{"a":true,"l":604,"u":614},{"a":false,"l":362,"u":565},{"a":true,"l":12,"u":896},{"a":false,"l":772,"u":860},{"a":false,"l":155,"u":217},{"a":false,"l":548,"u":662},{"a":true,"l":577,"u":948},{"a":true,"l":370,"u":948},{"a":true,"l":295,"u":462},{"a":false,"l":353,"u":633},{"a":false,"l":371,"u":422},{"a":true,"l":375,"u":997},{"a":true,"l":195,"u":664},{"a":false,"l":440,"u":761},{"a":true,"l":19,"u":74},{"a":true,"l":191,"u":384},{"a":true,"l":663,"u":767},{"a":true,"l":295,"u":718},{"a":true,"l":250,"u":827},{"a":false,"l":377,"u":702},{"a":false,"l":272,"u":743},{"a":true,"l":158,"u":612},{"a":true,"l":13,"u":411},{"a":true,"l":452,"u":710},{"a":true,"l":453,"u":777},{"a":true,"l":496,"u":625},{"a":true,"l":195,"u":323},{"a":true,"l":271,"u":947},{"a":true,"l":77,"u":685},{"a":false,"l":37,"u":234},{"a":false,"l":700,"u":878},{"a":true,"l":645,"u":815},{"a":false,"l":36,"u":558},{"a":false,"l":317,"u":757},{"a":true,"l":704,"u":838},{"a":true,"l":41,"u":784},{"a":true,"l":35,"u":93},{"a":false,"l":188,"u":776},{"a":false,"l":36,"u":564},{"a":true,"l":476,"u":816},{"a":false,"l":390,"u":648},{"a":false,"l":62,"u":101},{"a":true,"l":63,"u":971},{"a":false,"l":588,"u":976},{"a":false,"l":11,"u":18},{"a":true,"l":58,"u":617},{"a":true,"l":145,"u":566},{"a":false,"l":109,"u":713},{"a":false,"l":509,"u":720},{"a":false,"l":210,"u":231},{"a":true,"l":887,"u":906},{"a":false,"l":74,"u":938},{"a":false,"l":168,"u":911},{"a":true,"l":210,"u":258},{"a":true,"l":538,"u":763},{"a":true,"l":394,"u":521},{"a":false,"l":247,"u":918},{"a":false,"l":315,"u":543},{"a":false,"l":389,"u":468},{"a":true,"l":92,"u":286},{"a":false,"l":310,"u":653},{"a":false,"l":205,"u":785},{"a":false,"l":819,"u":942},{"a":true,"l":210,"u":445},{"a":false,"l":308,"u":654},{"a":true,"l":120,"u":786},{"a":false,"l":762,"u":991},{"a":true,"l":673,"u":822},{"a":false,"l":411,"u":797},{"a":true,"l":478,"u":909},{"a":false,"l":113,"u":493},{"a":true,"l":209,"u":749},{"a":true,"l":473,"u":837},{"a":true,"l":494,"u":656},{"a":false,"l":421,"u":606},{"a":true,"l":439,"u":792},{"a":true,"l":618,"u":699},{"a":true,"l":45,"u":445},{"a":true,"l":385,"u":566},{"a":false,"l":673,"u":896},{"a":false,"l":485,"u":915},{"a":true,"l":436,"u":905},{"a":false,"l":78,"u":861},{"a":false,"l":135,"u":565},{"a":true,"l":228,"u":806},{"a":false,"l":479,"u":948},{"a":false,"l":578,"u":580},{"a":true,"l":660,"u":668},{"a":false,"l":34,"u":176},{"a":true,"l":531,"u":745},{"a":true,"l":420,"u":873},{"a":false,"l":263,"u":495},{"a":false,"l":10,"u":378},{"a":true,"l":75,"u":203},{"a":false,"l":41,"u":740},{"a":false,"l":647,"u":934},{"a":true,"l":143,"u":284},{"a":false,"l":344,"u":545},{"a":true,"l":350,"u":573},{"a":true,"l":78,"u":137},{"a":false,"l":12,"u":382},{"a":false,"l":202,"u":746},{"a":false,"l":666,"u":820},{"a":false,"l":145,"u":953},{"a":false,"l":295,"u":556},{"a":true,"l":538,"u":757},{"a":true,"l":876,"u":928},{"a":false,"l":188,"u":305},{"a":true,"l":12,"u":129},{"a":false,"l":200,"u":662},{"a":true,"l":689,"u":899},{"a":false,"l":322,"u":333},{"a":true,"l":454,"u":846},{"a":false,"l":222,"u":737},{"a":false,"l":538,"u":936},{"a":true,"l":313,"u":385},{"a":true,"l":174,"u":327},{"a":false,"l":179,"u":626},{"a":true,"l":561,"u":970},{"a":true,"l":653,"u":730},{"a":true,"l":50,"u":715},{"a":true,"l":574,"u":730},{"a":false,"l":380,"u":782},{"a":true,"l":387,"u":399},{"a":false,"l":681,"u":785},{"a":false,"l":656,"u":965},{"a":true,"l":614,"u":955},{"a":false,"l":601,"u":736},{"a":true,"l":394,"u":674},{"a":false,"l":664,"u":709},{"a":false,"l":543,"u":574},{"a":false,"l":191,"u":272},{"a":true,"l":394,"u":489},{"a":false,"l":305,"u":791},{"a":false,"l":576,"u":955},{"a":false,"l":13,"u":983},{"a":true,"l":26,"u":204},{"a":true,"l":220,"u":811},{"a":false,"l":385,"u":752},{"a":false,"l":3,"u":670},{"a":false,"l":546,"u":580},{"a":true,"l":56,"u":588},{"a":true,"l":354,"u":729},{"a":false,"l":78,"u":923},{"a":true,"l":139,"u":760},{"a":false,"l":507,"u":560},{"a":true,"l":917,"u":925},{"a":false,"l":542,"u":684},{"a":true,"l":30,"u":174},{"a":false,"l":250,"u":841},{"a":true,"l":64,"u":183},{"a":true,"l":325,"u":836},{"a":true,"l":479,"u":605},{"a":true,"l":731,"u":772},{"a":true,"l":223,"u":940},{"a":false,"l":202,"u":828},{"a":false,"l":365,"u":401},{"a":false,"l":115,"u":681},{"a":false,"l":720,"u":956},{"a":false,"l":183,"u":484},{"a":false,"l":255,"u":778},{"a":true,"l":327,"u":753},{"a":false,"l":711,"u":954},{"a":false,"l":540,"u":622},{"a":false,"l":744,"u":775},{"a":true,"l":180,"u":395},{"a":true,"l":724,"u":839},{"a":true,"l":879,"u":918},{"a":true,"l":111,"u":756},{"a":true,"l":354,"u":623},{"a":false,"l":436,"u":592},{"a":false,"l":773,"u":777},{"a":false,"l":177,"u":500},{"a":true,"l":427,"u":791},{"a":false,"l":201,"u":617},{"a":false,"l":231,"u":729},{"a":true,"l":337,"u":763},{"a":false,"l":470,"u":627},{"a":true,"l":7,"u":640},{"a":true,"l":185,"u":252},{"a":true,"l":209,"u":879},{"a":true,"l":723,"u":937},{"a":false,"l":688,"u":720},{"a":true,"l":620,"u":720},{"a":false,"l":129,"u":264},{"a":false,"l":707,"u":760},{"a":true,"l":84,"u":299},{"a":true,"l":809,"u":894},{"a":false,"l":332,"u":573},{"a":true,"l":85,"u":509},{"a":false,"l":240,"u":825},{"a":false,"l":192,"u":432},{"a":true,"l":581,"u":865},{"a":true,"l":180,"u":714},{"a":true,"l":71,"u":465},{"a":false,"l":443,"u":566},{"a":false,"l":288,"u":369},{"a":true,"l":185,"u":884},{"a":true,"l":77,"u":153},{"a":true,"l":52,"u":323},{"a":true,"l":431,"u":720},{"a":true,"l":246,"u":745},{"a":false,"l":548,"u":740},{"a":false,"l":470,"u":939},{"a":false,"l":569,"u":603},{"a":false,"l":427,"u":646},{"a":true,"l":701,"u":791},{"a":true,"l":294,"u":971},{"a":false,"l":426,"u":612},{"a":true,"l":185,"u":326},{"a":true,"l":673,"u":970},{"a":false,"l":218,"u":355},{"a":true,"l":268,"u":843},{"a":false,"l":600,"u":929},{"a":true,"l":251,"u":939},{"a":false,"l":450,"u":673},{"a":true,"l":195,"u":458},{"a":true,"l":591,"u":739},{"a":true,"l":196,"u":904},{"a":false,"l":702,"u":827},{"a":true,"l":316,"u":536},{"a":false,"l":154,"u":705},{"a":false,"l":362,"u":989},{"a":true,"l":603,"u":945},{"a":false,"l":273,"u":489},{"a":true,"l":492,"u":581},{"a":true,"l":260,"u":885},{"a":false,"l":120,"u":255},{"a":true,"l":819,"u":956},{"a":false,"l":771,"u":893},{"a":true,"l":448,"u":875},{"a":false,"l":149,"u":321},{"a":false,"l":425,"u":616},{"a":true,"l":339,"u":391},{"a":false,"l":150,"u":401},{"a":true,"l":927,"u":987},{"a":true,"l":146,"u":368},{"a":false,"l":843,"u":910},{"a":false,"l":142,"u":884},{"a":true,"l":139,"u":654},{"a":true,"l":101,"u":511},{"a":true,"l":242,"u":446},{"a":false,"l":110,"u":273},{"a":true,"l":328,"u":913},{"a":false,"l":556,"u":948},{"a":true,"l":171,"u":768},{"a":false,"l":176,"u":339},{"a":true,"l":54,"u":726},{"a":true,"l":102,"u":505},{"a":true,"l":675,"u":972},{"a":true,"l":379,"u":501},{"a":true,"l":796,"u":952},{"a":true,"l":201,"u":862},{"a":true,"l":271,"u":742},{"a":true,"l":190,"u":572},{"a":false,"l":469,"u":774},{"a":true,"l":282,"u":726},{"a":true,"l":112,"u":787},{"a":false,"l":598,"u":718},{"a":true,"l":240,"u":338},{"a":true,"l":231,"u":327},{"a":false,"l":301,"u":520},{"a":true,"l":247,"u":882},{"a":false,"l":472,"u":505},{"a":false,"l":385,"u":567},{"a":false,"l":323,"u":879},{"a":true,"l":181,"u":798},{"a":true,"l":385,"u":905},{"a":true,"l":492,"u":825},{"a":true,"l":43,"u":877},{"a":true,"l":152,"u":590},{"a":true,"l":258,"u":608},{"a":false,"l":133,"u":981},{"a":false,"l":148,"u":457},{"a":true,"l":53,"u":787},{"a":false,"l":111,"u":363},{"a":false,"l":213,"u":398},{"a":false,"l":212,"u":676},{"a":false,"l":462,"u":736},{"a":false,"l":115,"u":395},{"a":false,"l":118,"u":878},{"a":false,"l":20,"u":794},{"a":false,"l":340,"u":879},{"a":true,"l":291,"u":712},{"a":false,"l":164,"u":883},{"a":false,"l":875,"u":977},{"a":false,"l":97,"u":269},{"a":true,"l":812,"u":886},{"a":true,"l":225,"u":680},{"a":false,"l":345,"u":650},{"a":false,"l":561,"u":750},{"a":true,"l":32,"u":50},{"a":false,"l":245,"u":949},{"a":true,"l":48,"u":101},{"a":false,"l":61,"u":338},{"a":false,"l":46,"u":969},{"a":false,"l":88,"u":279},{"a":false,"l":7,"u":13},{"a":true,"l":515,"u":745},{"a":false,"l":245,"u":299},{"a":true,"l":177,"u":800},{"a":true,"l":325,"u":912},{"a":false,"l":845,"u":894},{"a":false,"l":479,"u":532},{"a":false,"l":425,"u":690},{"a":true,"l":264,"u":636},{"a":true,"l":157,"u":666},{"a":true,"l":692,"u":826},{"a":true,"l":11,"u":154},{"a":false,"l":102,"u":488},{"a":false,"l":224,"u":636},{"a":true,"l":377,"u":916},{"a":true,"l":21,"u":333},{"a":false,"l":183,"u":603},{"a":true,"l":116,"u":333},{"a":true,"l":595,"u":770},{"a":true,"l":830,"u":953},{"a":false,"l":164,"u":714},{"a":true,"l":296,"u":633},{"a":true,"l":598,"u":937},{"a":true,"l":416,"u":771},{"a":false,"l":44,"u":832},{"a":false,"l":803,"u":909},{"a":false,"l":431,"u":816},{"a":false,"l":40,"u":486},{"a":true,"l":284,"u":335},{"a":false,"l":111,"u":467},{"a":true,"l":815,"u":884},{"a":true,"l":370,"u":878},{"a":true,"l":10,"u":412},{"a":false,"l":213,"u":568},{"a":false,"l":365,"u":590},{"a":false,"l":388,"u":599},{"a":false,"l":53,"u":760},{"a":false,"l":571,"u":876},{"a":true,"l":805,"u":938},{"a":false,"l":64,"u":690},{"a":true,"l":385,"u":438},{"a":true,"l":206,"u":967},{"a":true,"l":243,"u":373},{"a":true,"l":643,"u":928},{"a":false,"l":307,"u":496},{"a":false,"l":84,"u":937},{"a":false,"l":499,"u":779},{"a":true,"l":694,"u":873},{"a":false,"l":54,"u":150},{"a":false,"l":25,"u":450},{"a":true,"l":304,"u":924},{"a":false,"l":95,"u":630},{"a":false,"l":276,"u":307},{"a":true,"l":193,"u":676},{"a":false,"l":119,"u":551},{"a":false,"l":228,"u":538},{"a":false,"l":68,"u":963},{"a":true,"l":510,"u":540},{"a":true,"l":192,"u":752},{"a":false,"l":442,"u":464},{"a":true,"l":302,"u":763},{"a":false,"l":168,"u":823},{"a":true,"l":61,"u":76},{"a":true,"l":15,"u":487},{"a":false,"l":489,"u":713},{"a":true,"l":428,"u":656},{"a":false,"l":757,"u":955},{"a":false,"l":759,"u":875},{"a":true,"l":649,"u":733},{"a":true,"l":254,"u":306},{"a":true,"l":299,"u":722},{"a":false,"l":77,"u":865},{"a":true,"l":341,"u":436},{"a":true,"l":408,"u":575},{"a":false,"l":89,"u":590},{"a":false,"l":124,"u":379},{"a":false,"l":752,"u":931},{"a":true,"l":223,"u":986},{"a":true,"l":174,"u":474},{"a":true,"l":204,"u":696},{"a":true,"l":712,"u":985},{"a":true,"l":45,"u":594},{"a":false,"l":171,"u":836},{"a":true,"l":554,"u":563},{"a":false,"l":45,"u":869},{"a":false,"l":909,"u":947},{"a":true,"l":205,"u":730},{"a":false,"l":420,"u":656},{"a":false,"l":318,"u":361},{"a":true,"l":471,"u":558},{"a":true,"l":45,"u":120},{"a":true,"l":317,"u":872},{"a":true,"l":237,"u":840},{"a":true,"l":340,"u":841},{"a":false,"l":585,"u":879},{"a":true,"l":93,"u":804},{"a":false,"l":325,"u":502},{"a":true,"l":742,"u":917},{"a":false,"l":826,"u":856},{"a":true,"l":468,"u":804},{"a":true,"l":625,"u":972},{"a":true,"l":676,"u":882},{"a":true,"l":561,"u":575},{"a":true,"l":451,"u":956},{"a":true,"l":660,"u":708},{"a":true,"l":408,"u":426},{"a":false,"l":307,"u":501},{"a":true,"l":180,"u":438},{"a":false,"l":311,"u":424},{"a":true,"l":156,"u":798},{"a":false,"l":391,"u":853},{"a":false,"l":769,"u":855},{"a":false,"l":167,"u":652},{"a":true,"l":427,"u":669},{"a":false,"l":767,"u":872},{"a":false,"l":273,"u":379},{"a":false,"l":764,"u":957},{"a":true,"l":258,"u":882},{"a":true,"l":352,"u":482},{"a":false,"l":401,"u":936},{"a":true,"l":440,"u":656},{"a":false,"l":259,"u":536},{"a":true,"l":543,"u":759},{"a":true,"l":186,"u":220},{"a":true,"l":176,"u":757},{"a":true,"l":684,"u":845},{"a":true,"l":517,"u":876},{"a":false,"l":213,"u":353},{"a":true,"l":883,"u":981},{"a":false,"l":166,"u":453},{"a":false,"l":335,"u":637},{"a":false,"l":10,"u":866},{"a":true,"l":572,"u":966},{"a":true,"l":447,"u":959},{"a":false,"l":553,"u":877},{"a":false,"l":52,"u":112},{"a":false,"l":260,"u":427},{"a":false,"l":784,"u":790},{"a":true,"l":224,"u":684},{"a":false,"l":590,"u":831},{"a":false,"l":226,"u":508},{"a":false,"l":372,"u":537},{"a":false,"l":95,"u":490},{"a":true,"l":519,"u":927},{"a":true,"l":263,"u":437},{"a":false,"l":882,"u":897},{"a":true,"l":117,"u":947},{"a":true,"l":318,"u":724},{"a":false,"l":426,"u":525},{"a":true,"l":40,"u":827},{"a":false,"l":418,"u":829},{"a":true,"l":281,"u":401},{"a":true,"l":397,"u":916},{"a":false,"l":223,"u":971},{"a":false,"l":110,"u":661},{"a":true,"l":196,"u":368},{"a":true,"l":549,"u":830},{"a":true,"l":257,"u":683},{"a":false,"l":622,"u":691},{"a":true,"l":204,"u":791},{"a":false,"l":934,"u":935},{"a":false,"l":757,"u":967},{"a":false,"l":322,"u":885},{"a":true,"l":135,"u":266},{"a":true,"l":59,"u":903},{"a":false,"l":395,"u":506},{"a":true,"l":885,"u":895},{"a":true,"l":103,"u":659},{"a":true,"l":142,"u":588},{"a":false,"l":203,"u":325},{"a":false,"l":109,"u":656},{"a":false,"l":410,"u":858},{"a":false,"l":264,"u":876},{"a":true,"l":37,"u":808},{"a":false,"l":560,"u":806},{"a":false,"l":87,"u":800},{"a":false,"l":603,"u":690},{"a":true,"l":1,"u":929},{"a":false,"l":694,"u":934},{"a":true,"l":196,"u":600},{"a":true,"l":449,"u":866},{"a":false,"l":626,"u":896},{"a":false,"l":412,"u":958},{"a":true,"l":345,"u":531},{"a":true,"l":250,"u":842},{"a":true,"l":183,"u":303},{"a":true,"l":145,"u":416},{"a":false,"l":437,"u":547},{"a":true,"l":498,"u":677},{"a":true,"l":449,"u":571},{"a":true,"l":349,"u":886},{"a":true,"l":246,"u":464},{"a":true,"l":378,"u":846},{"a":false,"l":687,"u":774},{"a":true,"l":143,"u":532},{"a":true,"l":882,"u":995},{"a":true,"l":584,"u":812},{"a":false,"l":192,"u":226},{"a":false,"l":656,"u":875},{"a":false,"l":335,"u":406},{"a":true,"l":752,"u":818},{"a":true,"l":1,"u":605},{"a":false,"l":303,"u":745},{"a":true,"l":575,"u":871},{"a":true,"l":222,"u":315},{"a":true,"l":620,"u":639},{"a":false,"l":542,"u":661},{"a":false,"l":527,"u":649},{"a":false,"l":533,"u":760},{"a":true,"l":43,"u":307},{"a":true,"l":383,"u":790},{"a":true,"l":538,"u":686},{"a":true,"l":252,"u":662},{"a":false,"l":175,"u":545},{"a":false,"l":591,"u":989},{"a":true,"l":317,"u":891},{"a":true,"l":154,"u":429},{"a":false,"l":791,"u":877},{"a":false,"l":94,"u":966},{"a":false,"l":156,"u":813},{"a":true,"l":112,"u":236},{"a":true,"l":805,"u":932},{"a":true,"l":616,"u":781},{"a":false,"l":388,"u":993},{"a":true,"l":8,"u":424},{"a":true,"l":76,"u":191},{"a":false,"l":366,"u":715},{"a":false,"l":263,"u":495},{"a":false,"l":484,"u":497},{"a":true,"l":290,"u":581},{"a":true,"l":636,"u":771},{"a":true,"l":536,"u":828},{"a":true,"l":227,"u":713},{"a":true,"l":351,"u":920},{"a":false,"l":9,"u":221},{"a":true,"l":123,"u":408},{"a":false,"l":451,"u":699},{"a":true,"l":832,"u":842},{"a":true,"l":145,"u":706},{"a":true,"l":525,"u":799},{"a":false,"l":216,"u":583},{"a":true,"l":24,"u":889},{"a":true,"l":567,"u":707},{"a":true,"l":160,"u":552},{"a":true,"l":707,"u":856},{"a":true,"l":506,"u":883},{"a":false,"l":345,"u":528},{"a":true,"l":217,"u":764},{"a":true,"l":529,"u":912},{"a":false,"l":955,"u":977},{"a":false,"l":280,"u":923},{"a":false,"l":775,"u":993},{"a":true,"l":278,"u":808},{"a":false,"l":81,"u":228},{"a":true,"l":148,"u":824},{"a":false,"l":370,"u":709},{"a":false,"l":41,"u":583},{"a":true,"l":245,"u":441},{"a":true,"l":231,"u":531},{"a":false,"l":449,"u":466},{"a":true,"l":610,"u":900},{"a":false,"l":414,"u":678},{"a":true,"l":144,"u":457},{"a":false,"l":161,"u":660},{"a":false,"l":23,"u":458},{"a":true,"l":418,"u":629},{"a":true,"l":9,"u":252},{"a":false,"l":85,"u":586},{"a":true,"l":283,"u":384},{"a":true,"l":254,"u":605},{"a":true,"l":636,"u":884},{"a":false,"l":286,"u":340},{"a":true,"l":1,"u":485},{"a":false,"l":63,"u":793},{"a":true,"l":145,"u":581},{"a":false,"l":831,"u":959},{"a":false,"l":738,"u":950},{"a":true,"l":119,"u":798},{"a":false,"l":325,"u":437},{"a":true,"l":18,"u":407},{"a":false,"l":175,"u":952},{"a":false,"l":625,"u":883},{"a":true,"l":551,"u":729},{"a":false,"l":6,"u":625},{"a":false,"l":335,"u":648},{"a":true,"l":220,"u":537},{"a":false,"l":160,"u":498},{"a":true,"l":155,"u":796},{"a":false,"l":166,"u":984},{"a":false,"l":259,"u":670},{"a":false,"l":59,"u":234},{"a":false,"l":135,"u":331},{"a":true,"l":743,"u":747},{"a":false,"l":176,"u":940},{"a":false,"l":206,"u":746},{"a":false,"l":428,"u":524},{"a":false,"l":45,"u":367},{"a":false,"l":74,"u":94},{"a":false,"l":402,"u":644},{"a":true,"l":418,"u":669},{"a":false,"l":372,"u":971},{"a":true,"l":493,"u":930},{"a":false,"l":9,"u":598},{"a":true,"l":84,"u":737},{"a":true,"l":935,"u":946},{"a":false,"l":231,"u":486},{"a":true,"l":444,"u":968},{"a":true,"l":262,"u":898},{"a":false,"l":85,"u":184},{"a":false,"l":381,"u":567},{"a":true,"l":708,"u":725},{"a":false,"l":273,"u":600},{"a":true,"l":308,"u":431},{"a":false,"l":146,"u":240},{"a":true,"l":241,"u":335},{"a":true,"l":231,"u":444},{"a":false,"l":210,"u":915},{"a":false,"l":343,"u":389},{"a":true,"l":33,"u":951},{"a":false,"l":420,"u":890},{"a":true,"l":83,"u":503},{"a":true,"l":596,"u":951},{"a":true,"l":715,"u":876},{"a":false,"l":19,"u":554},{"a":false,"l":735,"u":762},{"a":true,"l":434,"u":877},{"a":true,"l":98,"u":801},{"a":false,"l":75,"u":731},{"a":true,"l":259,"u":261},{"a":true,"l":217,"u":850},{"a":false,"l":73,"u":698},{"a":true,"l":685,"u":804},{"a":true,"l":637,"u":716},{"a":true,"l":781,"u":887},{"a":true,"l":124,"u":587},{"a":true,"l":424,"u":923},{"a":false,"l":498,"u":690},{"a":false,"l":721,"u":963},{"a":false,"l":405,"u":617},{"a":false,"l":202,"u":710},{"a":false,"l":594,"u":829},{"a":false,"l":374,"u":447},{"a":false,"l":240,"u":635},{"a":true,"l":712,"u":912},{"a":true,"l":222,"u":268},{"a":true,"l":381,"u":717},{"a":true,"l":3,"u":147},{"a":true,"l":471,"u":794},{"a":true,"l":710,"u":954},{"a":true,"l":235,"u":639},{"a":true,"l":183,"u":188},{"a":false,"l":347,"u":456},{"a":false,"l":189,"u":569},{"a":false,"l":333,"u":510},{"a":true,"l":158,"u":314},{"a":false,"l":76,"u":434},{"a":false,"l":349,"u":885},{"a":false,"l":734,"u":928},{"a":true,"l":258,"u":945},{"a":true,"l":318,"u":797},{"a":true,"l":341,"u":468},{"a":false,"l":101,"u":808},{"a":false,"l":309,"u":794},{"a":false,"l":488,"u":590},{"a":false,"l":289,"u":554},{"a":false,"l":140,"u":431},{"a":false,"l":333,"u":537},{"a":true,"l":14,"u":528},{"a":false,"l":537,"u":543},{"a":true,"l":59,"u":540},{"a":true,"l":179,"u":363},{"a":false,"l":478,"u":793},{"a":false,"l":122,"u":447},{"a":true,"l":49,"u":640},{"a":true,"l":16,"u":689},{"a":true,"l":31,"u":440},{"a":true,"l":311,"u":719},{"a":true,"l":673,"u":953},{"a":false,"l":27,"u":821},{"a":false,"l":530,"u":852},{"a":false,"l":607,"u":771},{"a":false,"l":189,"u":847},{"a":true,"l":665,"u":737},{"a":false,"l":342,"u":905},{"a":true,"l":58,"u":903},{"a":false,"l":507,"u":717},{"a":true,"l":842,"u":999},{"a":false,"l":552,"u":564},{"a":false,"l":482,"u":927},{"a":true,"l":213,"u":488},{"a":false,"l":357,"u":630},{"a":true,"l":400,"u":904},{"a":true,"l":318,"u":443},{"a":true,"l":259,"u":644},{"a":true,"l":253,"u":965},{"a":true,"l":757,"u":923},{"a":false,"l":548,"u":940},{"a":true,"l":133,"u":982},{"a":true,"l":347,"u":721},{"a":true,"l":103,"u":502},{"a":true,"l":19,"u":645},{"a":false,"l":639,"u":954},{"a":true,"l":797,"u":854},{"a":true,"l":582,"u":665},{"a":false,"l":61,"u":88},{"a":true,"l":476,"u":535},{"a":false,"l":351,"u":953},{"a":true,"l":119,"u":995},{"a":true,"l":33,"u":714},{"a":true,"l":292,"u":878},{"a":true,"l":264,"u":897},{"a":true,"l":396,"u":729},{"a":false,"l":121,"u":251},{"a":false,"l":126,"u":213},{"a":true,"l":116,"u":211},{"a":true,"l":94,"u":907},{"a":true,"l":18,"u":585},{"a":true,"l":682,"u":880},{"a":false,"l":55,"u":923},{"a":true,"l":339,"u":697},{"a":false,"l":421,"u":771},{"a":false,"l":258,"u":431},{"a":true,"l":530,"u":959},{"a":false,"l":34,"u":809},{"a":false,"l":186,"u":823},{"a":false,"l":353,"u":951},{"a":true,"l":92,"u":816},{"a":true,"l":137,"u":176},{"a":false,"l":691,"u":854},{"a":false,"l":252,"u":571},{"a":true,"l":383,"u":508},{"a":true,"l":621,"u":676},{"a":true,"l":233,"u":753},{"a":true,"l":432,"u":642},{"a":true,"l":189,"u":504},{"a":false,"l":339,"u":941},{"a":false,"l":513,"u":866},{"a":true,"l":403,"u":819},{"a":true,"l":471,"u":743},{"a":false,"l":169,"u":707},{"a":false,"l":119,"u":522},{"a":false,"l":509,"u":563},{"a":true,"l":280,"u":407},{"a":false,"l":252,"u":784},{"a":false,"l":651,"u":671},{"a":true,"l":201,"u":445},{"a":false,"l":161,"u":708},{"a":true,"l":226,"u":826},{"a":false,"l":70,"u":365},{"a":false,"l":144,"u":613},{"a":true,"l":219,"u":790},{"a":false,"l":1,"u":751},{"a":false,"l":96,"u":989},{"a":true,"l":406,"u":862},{"a":true,"l":134,"u":206},{"a":true,"l":529,"u":847},{"a":true,"l":804,"u":932},{"a":false,"l":151,"u":429},{"a":false,"l":347,"u":405},{"a":true,"l":383,"u":600},{"a":true,"l":16,"u":679},{"a":false,"l":131,"u":556},{"a":false,"l":300,"u":956},{"a":false,"l":7,"u":740},{"a":false,"l":141,"u":290},{"a":false,"l":149,"u":530},{"a":false,"l":322,"u":850},{"a":false,"l":78,"u":97},{"a":false,"l":766,"u":981},{"a":false,"l":184,"u":967},{"a":false,"l":365,"u":872},{"a":false,"l":504,"u":908},{"a":true,"l":107,"u":757},{"a":false,"l":600,"u":888},{"a":false,"l":369,"u":438},{"a":false,"l":578,"u":677},{"a":true,"l":287,"u":430},{"a":false,"l":211,"u":810},{"a":true,"l":684,"u":861},{"a":true,"l":364,"u":377},{"a":false,"l":439,"u":952},{"a":true,"l":520,"u":705},{"a":false,"l":42,"u":446},{"a":true,"l":108,"u":752},{"a":false,"l":171,"u":594},{"a":false,"l":790,"u":837},{"a":true,"l":106,"u":468},{"a":false,"l":117,"u":303},{"a":true,"l":511,"u":818},{"a":true,"l":379,"u":682},{"a":true,"l":381,"u":511},{"a":false,"l":84,"u":809},{"a":true,"l":620,"u":959},{"a":false,"l":14,"u":82},{"a":false,"l":707,"u":726},{"a":true,"l":110,"u":767},{"a":true,"l":156,"u":738},{"a":false,"l":122,"u":867},{"a":false,"l":141,"u":235},{"a":true,"l":677,"u":854},{"a":false,"l":399,"u":741},{"a":false,"l":117,"u":341},{"a":false,"l":288,"u":383},{"a":false,"l":98,"u":414},{"a":true,"l":156,"u":691},{"a":true,"l":419,"u":765},{"a":false,"l":560,"u":954},{"a":true,"l":605,"u":863},{"a":true,"l":485,"u":588},{"a":false,"l":127,"u":222},{"a":false,"l":547,"u":552},{"a":true,"l":384,"u":740},{"a":true,"l":46,"u":702},{"a":true,"l":28,"u":95},{"a":true,"l":414,"u":915},{"a":true,"l":347,"u":867},{"a":false,"l":490,"u":732},{"a":false,"l":760,"u":778},{"a":false,"l":620,"u":807},{"a":true,"l":111,"u":155},{"a":true,"l":389,"u":949},{"a":false,"l":262,"u":825},{"a":false,"l":582,"u":632},{"a":false,"l":325,"u":678},{"a":true,"l":182,"u":870},{"a":true,"l":313,"u":377},{"a":false,"l":448,"u":746},{"a":true,"l":66,"u":808},{"a":false,"l":263,"u":533},{"a":false,"l":359,"u":464},{"a":false,"l":61,"u":475},{"a":true,"l":282,"u":701},{"a":false,"l":146,"u":697},{"a":false,"l":21,"u":183},{"a":true,"l":594,"u":761},{"a":false,"l":452,"u":518},{"a":true,"l":257,"u":933},{"a":true,"l":327,"u":482},{"a":true,"l":113,"u":798},{"a":true,"l":61,"u":520},{"a":true,"l":323,"u":537},{"a":true,"l":260,"u":981},{"a":true,"l":28,"u":83},{"a":true,"l":334,"u":385},{"a":true,"l":865,"u":919},{"a":false,"l":664,"u":887},{"a":true,"l":272,"u":587},{"a":false,"l":220,"u":473},{"a":true,"l":9,"u":775},{"a":false,"l":284,"u":961},{"a":true,"l":711,"u":927},{"a":false,"l":429,"u":590},{"a":true,"l":701,"u":782},{"a":false,"l":565,"u":591},{"a":false,"l":52,"u":846},{"a":false,"l":214,"u":850},{"a":true,"l":880,"u":908},{"a":false,"l":438,"u":972},{"a":false,"l":466,"u":755},{"a":true,"l":384,"u":975},{"a":true,"l":656,"u":927},{"a":false,"l":147,"u":619},{"a":true,"l":75,"u":250},{"a":true,"l":285,"u":693},{"a":false,"l":57,"u":821},{"a":false,"l":417,"u":909},{"a":false,"l":478,"u":963},{"a":true,"l":3,"u":829},{"a":true,"l":689,"u":795},{"a":true,"l":197,"u":793},{"a":false,"l":32,"u":313},{"a":false,"l":19,"u":789},{"a":false,"l":31,"u":808},{"a":true,"l":56,"u":468},{"a":true,"l":499,"u":840},{"a":false,"l":384,"u":897},{"a":false,"l":187,"u":203},{"a":false,"l":161,"u":729},{"a":false,"l":36,"u":142},{"a":true,"l":814,"u":938},{"a":false,"l":611,"u":646},{"a":false,"l":409,"u":974},{"a":true,"l":172,"u":274},{"a":true,"l":298,"u":991},{"a":true,"l":95,"u":664},{"a":false,"l":453,"u":932},{"a":true,"l":88,"u":207},{"a":true,"l":670,"u":742},{"a":true,"l":90,"u":871},{"a":true,"l":195,"u":479},{"a":true,"l":491,"u":686},{"a":false,"l":743,"u":948},{"a":true,"l":401,"u":477},{"a":true,"l":126,"u":808},{"a":true,"l":429,"u":475},{"a":true,"l":356,"u":882},{"a":true,"l":439,"u":821},{"a":true,"l":59,"u":725},{"a":true,"l":326,"u":337},{"a":true,"l":108,"u":273},{"a":true,"l":686,"u":992},{"a":true,"l":150,"u":774},{"a":true,"l":218,"u":786},{"a":false,"l":464,"u":907},{"a":false,"l":287,"u":429},{"a":true,"l":171,"u":827},{"a":true,"l":15,"u":589},{"a":true,"l":791,"u":827},{"a":false,"l":666,"u":847},{"a":false,"l":168,"u":629},{"a":false,"l":158,"u":943},{"a":false,"l":659,"u":686},{"a":true,"l":340,"u":466},{"a":true,"l":282,"u":826},{"a":false,"l":66,"u":695},{"a":true,"l":196,"u":769},{"a":true,"l":49,"u":703},{"a":false,"l":169,"u":483},{"a":false,"l":7,"u":762},{"a":true,"l":820,"u":997},{"a":false,"l":130,"u":725},{"a":true,"l":150,"u":608},{"a":true,"l":485,"u":696},{"a":true,"l":429,"u":931},{"a":false,"l":425,"u":892},{"a":true,"l":24,"u":167},{"a":false,"l":328,"u":348},{"a":false,"l":6,"u":952},{"a":true,"l":397,"u":585},{"a":true,"l":796,"u":966},{"a":false,"l":121,"u":995},{"a":false,"l":344,"u":473},{"a":true,"l":434,"u":691},{"a":true,"l":35,"u":194},{"a":false,"l":529,"u":557},{"a":false,"l":177,"u":618},{"a":true,"l":190,"u":582},{"a":false,"l":268,"u":579},{"a":false,"l":440,"u":560},{"a":true,"l":92,"u":98},{"a":false,"l":209,"u":471},{"a":true,"l":229,"u":297},{"a":false,"l":322,"u":887},{"a":false,"l":196,"u":280},{"a":true,"l":334,"u":435},{"a":true,"l":132,"u":985},{"a":true,"l":257,"u":560},{"a":true,"l":235,"u":331},{"a":true,"l":125,"u":891},{"a":true,"l":389,"u":504},{"a":false,"l":108,"u":763},{"a":true,"l":722,"u":763},{"a":false,"l":454,"u":996},{"a":true,"l":253,"u":876},{"a":false,"l":107,"u":659},{"a":false,"l":326,"u":724},{"a":true,"l":18,"u":831},{"a":true,"l":682,"u":940},{"a":false,"l":283,"u":819},{"a":false,"l":299,"u":645},{"a":true,"l":333,"u":904},{"a":false,"l":498,"u":530},{"a":false,"l":901,"u":922},{"a":true,"l":46,"u":744},{"a":false,"l":19,"u":771},{"a":true,"l":247,"u":329},{"a":false,"l":245,"u":588},{"a":false,"l":453,"u":576},{"a":false,"l":432,"u":957},{"a":true,"l":434,"u":670},{"a":false,"l":824,"u":915},{"a":false,"l":503,"u":610},{"a":true,"l":392,"u":722},{"a":false,"l":832,"u":857},{"a":false,"l":43,"u":960},{"a":false,"l":395,"u":469},{"a":false,"l":404,"u":969},{"a":true,"l":374,"u":839},{"a":false,"l":485,"u":977},{"a":true,"l":203,"u":346},{"a":false,"l":19,"u":176},{"a":false,"l":55,"u":781},{"a":false,"l":296,"u":783},{"a":true,"l":459,"u":565},{"a":false,"l":20,"u":104},{"a":true,"l":83,"u":301},{"a":false,"l":612,"u":697},{"a":false,"l":819,"u":937},{"a":false,"l":316,"u":804},{"a":false,"l":178,"u":911},{"a":false,"l":428,"u":824},{"a":false,"l":421,"u":509},{"a":true,"l":86,"u":287},{"a":true,"l":437,"u":500},{"a":true,"l":393,"u":456},{"a":true,"l":30,"u":190},{"a":true,"l":181,"u":726},{"a":false,"l":667,"u":869},{"a":false,"l":123,"u":520},{"a":false,"l":363,"u":582},{"a":true,"l":142,"u":177},{"a":true,"l":400,"u":555},{"a":false,"l":429,"u":454},{"a":true,"l":363,"u":484},{"a":false,"l":318,"u":841},{"a":false,"l":667,"u":955},{"a":true,"l":44,"u":456},{"a":true,"l":526,"u":757},{"a":true,"l":94,"u":810},{"a":true,"l":500,"u":561},{"a":true,"l":800,"u":855},{"a":false,"l":121,"u":850},{"a":false,"l":549,"u":752},{"a":false,"l":492,"u":889},{"a":true,"l":620,"u":968},{"a":true,"l":332,"u":681},{"a":true,"l":530,"u":829},{"a":false,"l":661,"u":758},{"a":false,"l":321,"u":590},{"a":true,"l":513,"u":523},{"a":true,"l":182,"u":598},{"a":false,"l":678,"u":939},{"a":false,"l":641,"u":948},{"a":true,"l":55,"u":967},{"a":true,"l":228,"u":425},{"a":false,"l":381,"u":738},{"a":false,"l":101,"u":313},{"a":false,"l":240,"u":780},{"a":true,"l":125,"u":271},{"a":false,"l":354,"u":961},{"a":true,"l":229,"u":941},{"a":true,"l":581,"u":641},{"a":false,"l":292,"u":963},{"a":true,"l":74,"u":95},{"a":false,"l":274,"u":835},{"a":false,"l":239,"u":839},{"a":true,"l":557,"u":849},{"a":false,"l":89,"u":968},{"a":true,"l":540,"u":992},{"a":true,"l":176,"u":316},{"a":false,"l":444,"u":862},{"a":true,"l":551,"u":644},{"a":false,"l":526,"u":878},{"a":false,"l":6,"u":731},{"a":false,"l":632,"u":768},{"a":true,"l":164,"u":263},{"a":true,"l":92,"u":351},{"a":false,"l":382,"u":611},{"a":true,"l":388,"u":421},{"a":true,"l":491,"u":555},{"a":false,"l":436,"u":828},{"a":false,"l":211,"u":940},{"a":true,"l":806,"u":851},{"a":true,"l":831,"u":958},{"a":false,"l":785,"u":963},{"a":false,"l":550,"u":761},{"a":false,"l":104,"u":881},{"a":true,"l":164,"u":781},{"a":false,"l":145,"u":244},{"a":true,"l":259,"u":979},{"a":true,"l":298,"u":433},{"a":true,"l":74,"u":328},{"a":false,"l":81,"u":733},{"a":false,"l":168,"u":393},{"a":true,"l":146,"u":412},{"a":false,"l":323,"u":737},{"a":true,"l":22,"u":831},{"a":true,"l":100,"u":332},{"a":true,"l":859,"u":909},{"a":false,"l":380,"u":749},{"a":false,"l":683,"u":729},{"a":true,"l":403,"u":481},{"a":false,"l":654,"u":856},{"a":true,"l":401,"u":641},{"a":false,"l":650,"u":769},{"a":true,"l":234,"u":500},{"a":false,"l":46,"u":638},{"a":true,"l":461,"u":764},{"a":true,"l":282,"u":565},{"a":false,"l":309,"u":438},{"a":true,"l":138,"u":625},{"a":false,"l":258,"u":550},{"a":true,"l":150,"u":795},{"a":false,"l":606,"u":723},{"a":true,"l":22,"u":133},{"a":true,"l":304,"u":444},{"a":true,"l":18,"u":664},{"a":false,"l":494,"u":899},{"a":false,"l":302,"u":842},{"a":true,"l":461,"u":799},{"a":false,"l":413,"u":815},{"a":true,"l":223,"u":374},{"a":false,"l":221,"u":410},{"a":false,"l":332,"u":503},{"a":false,"l":217,"u":928},{"a":true,"l":703,"u":905},{"a":false,"l":237,"u":313},{"a":false,"l":142,"u":871},{"a":false,"l":339,"u":342},{"a":true,"l":589,"u":966},{"a":true,"l":829,"u":857},{"a":false,"l":865,"u":927},{"a":false,"l":527,"u":593},{"a":false,"l":677,"u":705},{"a":false,"l":617,"u":700},{"a":false,"l":189,"u":390},{"a":false,"l":696,"u":761},{"a":true,"l":192,"u":681},{"a":true,"l":105,"u":692},{"a":false,"l":608,"u":632},{"a":false,"l":150,"u":382},{"a":false,"l":345,"u":621},{"a":true,"l":140,"u":587},{"a":true,"l":824,"u":963},{"a":false,"l":258,"u":785},{"a":false,"l":450,"u":970},{"a":true,"l":125,"u":872},{"a":true,"l":578,"u":959},{"a":true,"l":244,"u":689},{"a":false,"l":104,"u":249},{"a":true,"l":303,"u":839},{"a":false,"l":3,"u":817},{"a":false,"l":98,"u":414},{"a":false,"l":124,"u":713},{"a":true,"l":88,"u":546},{"a":false,"l":27,"u":490},{"a":true,"l":584,"u":768},{"a":false,"l":383,"u":785},{"a":false,"l":79,"u":382},{"a":false,"l":897,"u":938},{"a":true,"l":82,"u":464},{"a":false,"l":49,"u":970},{"a":false,"l":158,"u":920},{"a":true,"l":22,"u":222},{"a":true,"l":519,"u":785},{"a":true,"l":427,"u":469},{"a":false,"l":534,"u":928},{"a":true,"l":205,"u":300},{"a":true,"l":760,"u":954},{"a":false,"l":528,"u":781},{"a":true,"l":62,"u":375},{"a":true,"l":256,"u":837},{"a":true,"l":190,"u":527},{"a":false,"l":722,"u":998},{"a":false,"l":1,"u":347},{"a":false,"l":94,"u":147},{"a":false,"l":106,"u":195},{"a":true,"l":62,"u":739},{"a":false,"l":86,"u":411},{"a":false,"l":64,"u":461},{"a":true,"l":686,"u":943},{"a":true,"l":108,"u":218},{"a":true,"l":161,"u":390},{"a":false,"l":60,"u":920},{"a":true,"l":71,"u":447},{"a":true,"l":358,"u":667},{"a":false,"l":558,"u":820},{"a":false,"l":137,"u":746},{"a":false,"l":527,"u":775},{"a":false,"l":433,"u":607},{"a":true,"l":41,"u":336},{"a":true,"l":976,"u":984},{"a":false,"l":642,"u":948},{"a":false,"l":438,"u":830},{"a":true,"l":510,"u":806},{"a":false,"l":167,"u":785},{"a":false,"l":250,"u":501},{"a":true,"l":52,"u":375},{"a":true,"l":276,"u":299},{"a":false,"l":926,"u":944},{"a":true,"l":780,"u":971},{"a":true,"l":515,"u":688},{"a":false,"l":247,"u":830},{"a":true,"l":629,"u":654},{"a":false,"l":395,"u":547},{"a":false,"l":129,"u":916},{"a":true,"l":807,"u":867},{"a":true,"l":276,"u":883},{"a":true,"l":575,"u":685},{"a":true,"l":567,"u":877},{"a":false,"l":541,"u":735},{"a":false,"l":90,"u":171},{"a":true,"l":46,"u":412},{"a":false,"l":16,"u":285},{"a":true,"l":187,"u":220},{"a":true,"l":389,"u":758},{"a":true,"l":690,"u":821},{"a":false,"l":535,"u":740},{"a":false,"l":336,"u":581},{"a":false,"l":162,"u":614},{"a":false,"l":220,"u":717},{"a":false,"l":43,"u":432},{"a":false,"l":569,"u":845},{"a":true,"l":379,"u":567},{"a":true,"l":30,"u":380},{"a":false,"l":139,"u":444},{"a":false,"l":207,"u":215},{"a":true,"l":261,"u":463},{"a":false,"l":882,"u":946},{"a":true,"l":847,"u":973},{"a":true,"l":394,"u":476},{"a":false,"l":264,"u":478},{"a":true,"l":231,"u":335},{"a":true,"l":547,"u":615},{"a":true,"l":707,"u":991},{"a":false,"l":60,"u":120},{"a":true,"l":655,"u":771},{"a":true,"l":10,"u":748},{"a":false,"l":9,"u":804},{"a":false,"l":182,"u":533},{"a":false,"l":611,"u":724},{"a":false,"l":623,"u":684},{"a":true,"l":11,"u":170},{"a":true,"l":183,"u":402},{"a":false,"l":605,"u":716},{"a":true,"l":743,"u":885},{"a":false,"l":231,"u":940},{"a":false,"l":351,"u":408},{"a":true,"l":585,"u":875},{"a":false,"l":643,"u":727},{"a":false,"l":301,"u":796},{"a":true,"l":218,"u":529},{"a":false,"l":488,"u":648},{"a":false,"l":74,"u":340},{"a":false,"l":195,"u":761},{"a":true,"l":392,"u":728},{"a":true,"l":171,"u":758},{"a":true,"l":308,"u":986},{"a":true,"l":441,"u":741},{"a":false,"l":15,"u":845},{"a":false,"l":73,"u":723},{"a":false,"l":720,"u":977},{"a":true,"l":734,"u":966},{"a":true,"l":149,"u":612},{"a":true,"l":641,"u":646},{"a":true,"l":77,"u":254},{"a":false,"l":434,"u":625},{"a":false,"l":582,"u":605},{"a":true,"l":344,"u":581},{"a":true,"l":50,"u":540},{"a":false,"l":169,"u":330},{"a":true,"l":187,"u":539},{"a":false,"l":186,"u":779},{"a":false,"l":335,"u":774},{"a":false,"l":210,"u":989},{"a":false,"l":334,"u":816},{"a":true,"l":658,"u":963},{"a":false,"l":325,"u":903},{"a":false,"l":266,"u":777},{"a":true,"l":402,"u":888},{"a":false,"l":284,"u":881},{"a":true,"l":235,"u":855},{"a":false,"l":125,"u":148},{"a":false,"l":272,"u":843},{"a":true,"l":41,"u":278},{"a":false,"l":75,"u":962},{"a":true,"l":645,"u":915},{"a":false,"l":94,"u":675},{"a":true,"l":346,"u":463},{"a":false,"l":395,"u":569},{"a":true,"l":59,"u":371},{"a":true,"l":327,"u":532},{"a":false,"l":312,"u":798},{"a":false,"l":135,"u":485},{"a":true,"l":383,"u":978},{"a":true,"l":67,"u":221},{"a":false,"l":110,"u":584},{"a":false,"l":202,"u":452},{"a":false,"l":70,"u":700},{"a":true,"l":545,"u":873},{"a":false,"l":55,"u":688},{"a":true,"l":53,"u":997},{"a":false,"l":9,"u":206},{"a":false,"l":606,"u":729},{"a":false,"l":367,"u":429},{"a":true,"l":680,"u":983},{"a":false,"l":435,"u":702},{"a":true,"l":463,"u":860},{"a":false,"l":42,"u":423},{"a":true,"l":470,"u":882},{"a":true,"l":399,"u":542},{"a":false,"l":186,"u":414},{"a":false,"l":244,"u":615},{"a":true,"l":346,"u":603},{"a":true,"l":87,"u":338},{"a":false,"l":328,"u":535},{"a":false,"l":47,"u":674},{"a":true,"l":452,"u":492},{"a":false,"l":177,"u":639},{"a":false,"l":799,"u":847},{"a":true,"l":58,"u":894},{"a":true,"l":337,"u":796},{"a":true,"l":139,"u":202},{"a":true,"l":462,"u":989},{"a":false,"l":181,"u":543},{"a":true,"l":499,"u":851},{"a":false,"l":4,"u":107},{"a":false,"l":244,"u":683},{"a":true,"l":518,"u":622},{"a":true,"l":242,"u":583},{"a":false,"l":680,"u":988},{"a":false,"l":352,"u":794},{"a":true,"l":95,"u":252},{"a":false,"l":36,"u":768},{"a":true,"l":396,"u":559},{"a":false,"l":487,"u":797},{"a":false,"l":402,"u":851},{"a":false,"l":72,"u":920},{"a":true,"l":646,"u":797},{"a":true,"l":389,"u":447},{"a":false,"l":698,"u":833},{"a":false,"l":3,"u":619},{"a":false,"l":162,"u":973},{"a":false,"l":565,"u":727},{"a":true,"l":283,"u":584},{"a":true,"l":287,"u":858},{"a":true,"l":13,"u":944},{"a":false,"l":512,"u":927},{"a":true,"l":167,"u":365},{"a":false,"l":696,"u":869},{"a":true,"l":14,"u":525},{"a":true,"l":428,"u":543},{"a":true,"l":194,"u":274},{"a":true,"l":254,"u":618},{"a":false,"l":208,"u":366},{"a":false,"l":219,"u":637},{"a":true,"l":784,"u":871},{"a":true,"l":506,"u":941},{"a":true,"l":142,"u":475},{"a":true,"l":367,"u":963},{"a":false,"l":272,"u":841},{"a":true,"l":99,"u":904},{"a":false,"l":183,"u":235},{"a":false,"l":253,"u":292},{"a":true,"l":83,"u":492},{"a":true,"l":60,"u":988},{"a":false,"l":337,"u":590},{"a":true,"l":404,"u":600},{"a":false,"l":489,"u":625},{"a":false,"l":541,"u":574},{"a":true,"l":241,"u":942},{"a":false,"l":571,"u":792},{"a":true,"l":102,"u":892},{"a":false,"l":379,"u":590},{"a":false,"l":144,"u":768},{"a":true,"l":339,"u":567},{"a":false,"l":9,"u":418},{"a":true,"l":44,"u":364},{"a":false,"l":37,"u":815},{"a":false,"l":195,"u":291},{"a":true,"l":502,"u":608},{"a":true,"l":459,"u":592},{"a":false,"l":523,"u":820},{"a":false,"l":561,"u":814},{"a":false,"l":662,"u":714},{"a":true,"l":421,"u":585},{"a":true,"l":733,"u":824},{"a":false,"l":120,"u":227},{"a":false,"l":102,"u":341},{"a":true,"l":98,"u":345},{"a":true,"l":459,"u":749},{"a":false,"l":811,"u":958},{"a":true,"l":24,"u":637},{"a":true,"l":292,"u":619},{"a":true,"l":572,"u":615},{"a":false,"l":170,"u":233},{"a":true,"l":204,"u":884},{"a":true,"l":215,"u":355},{"a":false,"l":144,"u":707},{"a":false,"l":27,"u":963},{"a":true,"l":68,"u":931},{"a":false,"l":216,"u":475},{"a":true,"l":159,"u":710},{"a":true,"l":402,"u":795},{"a":false,"l":346,"u":372},{"a":false,"l":456,"u":854},{"a":true,"l":297,"u":552},{"a":true,"l":69,"u":555},{"a":false,"l":2,"u":882},{"a":false,"l":580,"u":651},{"a":true,"l":214,"u":545},{"a":true,"l":26,"u":115},{"a":true,"l":643,"u":801},{"a":true,"l":917,"u":952},{"a":true,"l":177,"u":404},{"a":false,"l":94,"u":696},{"a":false,"l":421,"u":767},{"a":false,"l":630,"u":736},{"a":false,"l":124,"u":853},{"a":false,"l":499,"u":768},{"a":false,"l":280,"u":704},{"a":true,"l":215,"u":668},{"a":false,"l":269,"u":396},{"a":true,"l":58,"u":961},{"a":false,"l":253,"u":371},{"a":true,"l":11,"u":956},{"a":true,"l":107,"u":743},{"a":true,"l":100,"u":609},{"a":true,"l":888,"u":961},{"a":true,"l":218,"u":813},{"a":true,"l":345,"u":710},{"a":false,"l":9,"u":377},{"a":true,"l":58,"u":842},{"a":false,"l":407,"u":973},{"a":false,"l":167,"u":170},{"a":false,"l":225,"u":394},{"a":false,"l":109,"u":718},{"a":true,"l":283,"u":829},{"a":true,"l":96,"u":911},{"a":false,"l":43,"u":177},{"a":false,"l":162,"u":464},{"a":false,"l":297,"u":920},{"a":false,"l":549,"u":697},{"a":false,"l":668,"u":777},{"a":false,"l":835,"u":957},{"a":false,"l":61,"u":70},{"a":false,"l":164,"u":841},{"a":false,"l":305,"u":317},{"a":true,"l":484,"u":859},{"a":true,"l":291,"u":977},{"a":false,"l":45,"u":610},{"a":false,"l":328,"u":437},{"a":true,"l":170,"u":275},{"a":false,"l":378,"u":985},{"a":true,"l":333,"u":611},{"a":true,"l":569,"u":969},{"a":true,"l":343,"u":959},{"a":false,"l":162,"u":561},{"a":true,"l":245,"u":694},{"a":true,"l":423,"u":750},{"a":true,"l":335,"u":688},{"a":false,"l":579,"u":587},{"a":true,"l":193,"u":384},{"a":true,"l":346,"u":750},{"a":true,"l":273,"u":885},{"a":true,"l":484,"u":690},{"a":false,"l":104,"u":938},{"a":true,"l":129,"u":592},{"a":false,"l":353,"u":807},{"a":false,"l":149,"u":690},{"a":true,"l":761,"u":887},{"a":false,"l":568,"u":777},{"a":true,"l":295,"u":710},{"a":true,"l":346,"u":631},{"a":true,"l":360,"u":483},{"a":false,"l":833,"u":917},{"a":false,"l":10,"u":198},{"a":false,"l":376,"u":598},{"a":true,"l":364,"u":445},{"a":false,"l":48,"u":963},{"a":false,"l":690,"u":821},{"a":false,"l":271,"u":426},{"a":true,"l":179,"u":993},{"a":true,"l":169,"u":354},{"a":false,"l":685,"u":839},{"a":true,"l":639,"u":752},{"a":true,"l":377,"u":579},{"a":true,"l":142,"u":999},{"a":true,"l":80,"u":600},{"a":false,"l":474,"u":891},{"a":false,"l":268,"u":514},{"a":false,"l":247,"u":834},{"a":true,"l":32,"u":110},{"a":false,"l":270,"u":316},{"a":true,"l":154,"u":583},{"a":true,"l":182,"u":199},{"a":false,"l":475,"u":791},{"a":true,"l":358,"u":906},{"a":false,"l":849,"u":910},{"a":false,"l":422,"u":773},{"a":false,"l":135,"u":667},{"a":true,"l":684,"u":745},{"a":true,"l":763,"u":935},{"a":false,"l":123,"u":531},{"a":true,"l":377,"u":381},{"a":false,"l":60,"u":322},{"a":false,"l":750,"u":983},{"a":false,"l":47,"u":910},{"a":false,"l":278,"u":328},{"a":true,"l":431,"u":754},{"a":false,"l":21,"u":721},{"a":true,"l":88,"u":753},{"a":true,"l":828,"u":972},{"a":false,"l":171,"u":267},{"a":false,"l":4,"u":6},{"a":false,"l":492,"u":624},{"a":false,"l":318,"u":369},{"a":false,"l":593,"u":881},{"a":true,"l":120,"u":151},{"a":true,"l":67,"u":76},{"a":true,"l":762,"u":953},{"a":true,"l":294,"u":307},{"a":false,"l":238,"u":610},{"a":false,"l":398,"u":929},{"a":true,"l":668,"u":802},{"a":false,"l":69,"u":434},{"a":false,"l":169,"u":904},{"a":false,"l":136,"u":933},{"a":false,"l":142,"u":784},{"a":true,"l":797,"u":949},{"a":true,"l":254,"u":742},{"a":true,"l":200,"u":940},{"a":true,"l":539,"u":771},{"a":true,"l":158,"u":461},{"a":false,"l":16,"u":643},{"a":true,"l":666,"u":691},{"a":false,"l":255,"u":464},{"a":true,"l":210,"u":598},{"a":true,"l":943,"u":959},{"a":false,"l":575,"u":841},{"a":true,"l":241,"u":424},{"a":true,"l":299,"u":539},{"a":false,"l":482,"u":718},{"a":true,"l":599,"u":772},{"a":true,"l":113,"u":621},{"a":false,"l":123,"u":149},{"a":false,"l":916,"u":954},{"a":false,"l":169,"u":719},{"a":false,"l":638,"u":807},{"a":true,"l":615,"u":691},{"a":false,"l":524,"u":931},{"a":false,"l":657,"u":790},{"a":false,"l":175,"u":919},{"a":true,"l":497,"u":844},{"a":false,"l":533,"u":590},{"a":false,"l":65,"u":479},{"a":false,"l":584,"u":706},{"a":false,"l":177,"u":507},{"a":false,"l":48,"u":509},{"a":false,"l":259,"u":348},{"a":false,"l":77,"u":847},{"a":true,"l":3,"u":61},{"a":true,"l":47,"u":911},{"a":false,"l":365,"u":954},{"a":true,"l":309,"u":754},{"a":false,"l":429,"u":921},{"a":false,"l":235,"u":342},{"a":true,"l":509,"u":824},{"a":false,"l":36,"u":90},{"a":false,"l":62,"u":537},{"a":true,"l":574,"u":708},{"a":true,"l":299,"u":605},{"a":true,"l":97,"u":380},{"a":false,"l":16,"u":231},{"a":true,"l":695,"u":897},{"a":true,"l":855,"u":924},{"a":false,"l":7,"u":758},{"a":false,"l":160,"u":842},{"a":false,"l":659,"u":865},{"a":true,"l":714,"u":861},{"a":true,"l":88,"u":742},{"a":false,"l":437,"u":761},{"a":true,"l":202,"u":891},{"a":true,"l":56,"u":506},{"a":true,"l":246,"u":360},{"a":false,"l":456,"u":487},{"a":true,"l":558,"u":799},{"a":true,"l":705,"u":939},{"a":false,"l":790,"u":972},{"a":true,"l":545,"u":623},{"a":false,"l":696,"u":784},{"a":true,"l":314,"u":839},{"a":false,"l":463,"u":465},{"a":true,"l":176,"u":198},{"a":false,"l":422,"u":439},{"a":false,"l":55,"u":819},{"a":true,"l":225,"u":322},{"a":true,"l":53,"u":271},{"a":false,"l":842,"u":930},{"a":true,"l":225,"u":388},{"a":false,"l":6,"u":513},{"a":true,"l":232,"u":554},{"a":true,"l":160,"u":449},{"a":true,"l":9,"u":266},{"a":false,"l":257,"u":432},{"a":false,"l":28,"u":38},{"a":false,"l":254,"u":661},{"a":true,"l":487,"u":519},{"a":false,"l":135,"u":241},{"a":false,"l":249,"u":531},{"a":false,"l":199,"u":346},{"a":true,"l":243,"u":993},{"a":false,"l":187,"u":507},{"a":true,"l":414,"u":682},{"a":false,"l":488,"u":959},{"a":true,"l":349,"u":729},{"a":false,"l":156,"u":909},{"a":false,"l":238,"u":411},{"a":true,"l":152,"u":365},{"a":true,"l":13,"u":675},{"a":false,"l":412,"u":738},{"a":false,"l":404,"u":529},{"a":false,"l":450,"u":528},{"a":false,"l":167,"u":769},{"a":false,"l":881,"u":900},{"a":false,"l":206,"u":294},{"a":false,"l":95,"u":605},{"a":true,"l":676,"u":872},{"a":false,"l":223,"u":983},{"a":false,"l":29,"u":712},{"a":true,"l":208,"u":530},{"a":false,"l":70,"u":285},{"a":false,"l":72,"u":852},{"a":true,"l":450,"u":567},{"a":false,"l":325,"u":829},{"a":true,"l":116,"u":379},{"a":true,"l":780,"u":922},{"a":true,"l":758,"u":949},{"a":true,"l":480,"u":904},{"a":true,"l":373,"u":374},{"a":true,"l":342,"u":424},{"a":false,"l":771,"u":963},{"a":true,"l":67,"u":712},{"a":false,"l":237,"u":979},{"a":true,"l":26,"u":368},{"a":false,"l":32,"u":811},{"a":true,"l":173,"u":878},{"a":true,"l":77,"u":490},{"a":true,"l":833,"u":953},{"a":true,"l":30,"u":945},{"a":true,"l":596,"u":699},{"a":true,"l":500,"u":846},{"a":true,"l":229,"u":914},{"a":false,"l":368,"u":379},{"a":false,"l":63,"u":723},{"a":false,"l":93,"u":969},{"a":false,"l":752,"u":757},{"a":false,"l":190,"u":423},{"a":true,"l":279,"u":993},{"a":false,"l":694,"u":935},{"a":false,"l":26,"u":701},{"a":false,"l":413,"u":544},{"a":false,"l":27,"u":926},{"a":false,"l":120,"u":995},{"a":false,"l":501,"u":519},{"a":true,"l":306,"u":330},{"a":false,"l":229,"u":785},{"a":false,"l":2,"u":230},{"a":true,"l":212,"u":534},{"a":false,"l":471,"u":850},{"a":false,"l":79,"u":290},{"a":false,"l":181,"u":670},{"a":false,"l":47,"u":60},{"a":true,"l":212,"u":886},{"a":false,"l":762,"u":948},{"a":false,"l":180,"u":271},{"a":true,"l":163,"u":644},{"a":true,"l":600,"u":854},{"a":false,"l":40,"u":691},{"a":false,"l":341,"u":692},{"a":false,"l":687,"u":688},{"a":false,"l":30,"u":798},{"a":true,"l":358,"u":503},{"a":true,"l":851,"u":954},{"a":false,"l":2,"u":872},{"a":false,"l":526,"u":949},{"a":false,"l":200,"u":387},{"a":true,"l":452,"u":818},{"a":false,"l":760,"u":976},{"a":false,"l":8,"u":895},{"a":false,"l":286,"u":535},{"a":true,"l":69,"u":293},{"a":false,"l":519,"u":914},{"a":false,"l":116,"u":930},{"a":false,"l":48,"u":993},{"a":false,"l":792,"u":794},{"a":false,"l":636,"u":789},{"a":true,"l":4,"u":834},{"a":false,"l":7,"u":509},{"a":true,"l":194,"u":481},{"a":true,"l":533,"u":857},{"a":true,"l":59,"u":720},{"a":false,"l":81,"u":480},{"a":true,"l":69,"u":151},{"a":true,"l":86,"u":267},{"a":true,"l":446,"u":930},{"a":false,"l":866,"u":883},{"a":false,"l":504,"u":823},{"a":true,"l":753,"u":782},{"a":true,"l":20,"u":306},{"a":true,"l":4,"u":613},{"a":true,"l":212,"u":870},{"a":false,"l":256,"u":620},{"a":true,"l":556,"u":971},{"a":false,"l":65,"u":762},{"a":false,"l":911,"u":939},{"a":true,"l":735,"u":970},{"a":false,"l":237,"u":881},{"a":false,"l":16,"u":896},{"a":true,"l":103,"u":637},{"a":false,"l":654,"u":936},{"a":true,"l":441,"u":621},{"a":false,"l":664,"u":750},{"a":true,"l":93,"u":481},{"a":false,"l":119,"u":476},{"a":false,"l":332,"u":599},{"a":true,"l":210,"u":529},{"a":false,"l":114,"u":927},{"a":false,"l":268,"u":863},{"a":true,"l":696,"u":836},{"a":false,"l":421,"u":590},{"a":false,"l":506,"u":798},{"a":true,"l":34,"u":481},{"a":true,"l":83,"u":188},{"a":true,"l":687,"u":924},{"a":false,"l":248,"u":437},{"a":true,"l":330,"u":455},{"a":true,"l":148,"u":740},{"a":false,"l":119,"u":717},{"a":true,"l":475,"u":786},{"a":true,"l":546,"u":555},{"a":false,"l":289,"u":935},{"a":false,"l":714,"u":936},{"a":true,"l":82,"u":507},{"a":false,"l":565,"u":582},{"a":false,"l":201,"u":707},{"a":false,"l":112,"u":861},{"a":false,"l":156,"u":762},{"a":false,"l":48,"u":613},{"a":false,"l":130,"u":792},{"a":true,"l":46,"u":531},{"a":false,"l":785,"u":803},{"a":false,"l":230,"u":639},{"a":false,"l":130,"u":256},{"a":true,"l":72,"u":978},{"a":false,"l":354,"u":899},{"a":false,"l":95,"u":133},{"a":true,"l":326,"u":626},{"a":true,"l":228,"u":548},{"a":true,"l":300,"u":693},{"a":true,"l":792,"u":835},{"a":false,"l":416,"u":505},{"a":true,"l":306,"u":926},{"a":true,"l":331,"u":574},{"a":true,"l":678,"u":749},{"a":false,"l":551,"u":709},{"a":true,"l":4,"u":964},{"a":true,"l":455,"u":594},{"a":true,"l":870,"u":927},{"a":false,"l":93,"u":279},{"a":false,"l":381,"u":781},{"a":false,"l":309,"u":865},{"a":false,"l":140,"u":847},{"a":true,"l":303,"u":748},{"a":true,"l":647,"u":734},{"a":true,"l":421,"u":497},{"a":true,"l":587,"u":834},{"a":true,"l":43,"u":748},{"a":true,"l":396,"u":977},{"a":false,"l":186,"u":671},{"a":false,"l":608,"u":702},{"a":false,"l":647,"u":813},{"a":false,"l":339,"u":630},{"a":false,"l":389,"u":836},{"a":false,"l":803,"u":892},{"a":false,"l":167,"u":439},{"a":false,"l":125,"u":155},{"a":false,"l":541,"u":943},{"a":false,"l":280,"u":490},{"a":true,"l":193,"u":706},{"a":false,"l":123,"u":308},{"a":false,"l":503,"u":895},{"a":false,"l":468,"u":878},{"a":true,"l":364,"u":779},{"a":false,"l":803,"u":860},{"a":false,"l":171,"u":520},{"a":false,"l":284,"u":630},{"a":false,"l":23,"u":89},{"a":true,"l":82,"u":139},{"a":true,"l":193,"u":785},{"a":true,"l":82,"u":460},{"a":false,"l":568,"u":574},{"a":true,"l":110,"u":523},{"a":true,"l":1,"u":875},{"a":false,"l":194,"u":259},{"a":false,"l":64,"u":823},{"a":true,"l":392,"u":601},{"a":false,"l":555,"u":773},{"a":true,"l":168,"u":685},{"a":false,"l":567,"u":567},{"a":true,"l":498,"u":613},{"a":false,"l":307,"u":652},{"a":true,"l":97,"u":170},{"a":false,"l":417,"u":744},{"a":false,"l":84,"u":675},{"a":false,"l":264,"u":361},{"a":true,"l":162,"u":262},{"a":false,"l":660,"u":764},{"a":true,"l":399,"u":595},{"a":false,"l":607,"u":939},{"a":true,"l":349,"u":487},{"a":false,"l":553,"u":899},{"a":true,"l":202,"u":288},{"a":true,"l":96,"u":829},{"a":false,"l":201,"u":488},{"a":false,"l":22,"u":441},{"a":false,"l":605,"u":928},{"a":false,"l":132,"u":337},{"a":true,"l":355,"u":621},{"a":false,"l":735,"u":773},{"a":false,"l":343,"u":888},{"a":false,"l":316,"u":672},{"a":true,"l":47,"u":968},{"a":false,"l":2,"u":42},{"a":true,"l":667,"u":829},{"a":true,"l":61,"u":977},{"a":false,"l":596,"u":946},{"a":true,"l":455,"u":911},{"a":true,"l":10,"u":68},{"a":false,"l":154,"u":672},{"a":true,"l":26,"u":764},{"a":true,"l":98,"u":411},{"a":true,"l":659,"u":660},{"a":false,"l":405,"u":512},{"a":false,"l":609,"u":946},{"a":false,"l":186,"u":946},{"a":false,"l":555,"u":580},{"a":false,"l":810,"u":952},{"a":false,"l":91,"u":392},{"a":true,"l":126,"u":681},{"a":false,"l":563,"u":975},{"a":false,"l":153,"u":761},{"a":true,"l":92,"u":844},{"a":false,"l":138,"u":657},{"a":false,"l":195,"u":276},{"a":true,"l":175,"u":997},{"a":true,"l":197,"u":604},{"a":true,"l":112,"u":409},{"a":false,"l":603,"u":662},{"a":true,"l":352,"u":790},{"a":false,"l":540,"u":551},{"a":false,"l":165,"u":966},{"a":false,"l":798,"u":839},{"a":false,"l":143,"u":614},{"a":false,"l":176,"u":588},{"a":false,"l":258,"u":593},{"a":false,"l":551,"u":642},{"a":false,"l":55,"u":610},{"a":true,"l":569,"u":690},{"a":false,"l":225,"u":498},{"a":false,"l":521,"u":892},{"a":false,"l":41,"u":122},{"a":false,"l":301,"u":519},{"a":true,"l":250,"u":537},{"a":true,"l":110,"u":232},{"a":false,"l":642,"u":943},{"a":true,"l":119,"u":949},{"a":true,"l":194,"u":456},{"a":true,"l":27,"u":704},{"a":true,"l":166,"u":810},{"a":true,"l":138,"u":826},{"a":true,"l":236,"u":623},{"a":true,"l":94,"u":434},{"a":false,"l":158,"u":708},{"a":false,"l":53,"u":481},{"a":false,"l":382,"u":624},{"a":true,"l":140,"u":245},{"a":true,"l":618,"u":630},{"a":false,"l":3,"u":120},{"a":false,"l":366,"u":758},{"a":false,"l":348,"u":368},{"a":false,"l":177,"u":214},{"a":false,"l":526,"u":582},{"a":true,"l":212,"u":414},{"a":false,"l":186,"u":385},{"a":false,"l":445,"u":742},{"a":false,"l":316,"u":816},{"a":true,"l":149,"u":628},{"a":true,"l":117,"u":764},{"a":false,"l":291,"u":915},{"a":false,"l":305,"u":883},{"a":false,"l":63,"u":634},{"a":true,"l":35,"u":629},{"a":true,"l":117,"u":207},{"a":true,"l":835,"u":992},{"a":true,"l":617,"u":998},{"a":true,"l":313,"u":963},{"a":true,"l":438,"u":458},{"a":true,"l":608,"u":791},{"a":false,"l":218,"u":383},{"a":true,"l":74,"u":642},{"a":true,"l":662,"u":959},{"a":false,"l":391,"u":914},{"a":false,"l":640,"u":971},{"a":true,"l":235,"u":836},{"a":true,"l":299,"u":748},{"a":true,"l":120,"u":335},{"a":false,"l":734,"u":750},{"a":false,"l":83,"u":722},{"a":true,"l":151,"u":419},{"a":true,"l":109,"u":340},{"a":true,"l":146,"u":229},{"a":false,"l":480,"u":887},{"a":true,"l":14,"u":397},{"a":true,"l":362,"u":461},{"a":true,"l":84,"u":784},{"a":true,"l":277,"u":419},{"a":true,"l":276,"u":891},{"a":true,"l":428,"u":460},{"a":true,"l":62,"u":457},{"a":false,"l":142,"u":202},{"a":false,"l":44,"u":875},{"a":false,"l":549,"u":837},{"a":false,"l":856,"u":906},{"a":false,"l":144,"u":175},{"a":false,"l":241,"u":953},{"a":true,"l":632,"u":938},{"a":false,"l":265,"u":612},{"a":true,"l":108,"u":252},{"a":false,"l":145,"u":735},{"a":false,"l":533,"u":953},{"a":false,"l":109,"u":955},{"a":true,"l":162,"u":609},{"a":false,"l":351,"u":877},{"a":false,"l":111,"u":152},{"a":true,"l":172,"u":587},{"a":false,"l":365,"u":635},{"a":true,"l":156,"u":556},{"a":false,"l":107,"u":949},{"a":false,"l":74,"u":299},{"a":true,"l":536,"u":985},{"a":true,"l":206,"u":968},{"a":false,"l":577,"u":790},{"a":true,"l":239,"u":779},{"a":true,"l":181,"u":796},{"a":false,"l":84,"u":501},{"a":false,"l":661,"u":851},{"a":false,"l":619,"u":951},{"a":false,"l":554,"u":791},{"a":true,"l":844,"u":997},{"a":true,"l":795,"u":944},{"a":true,"l":14,"u":891},{"a":true,"l":240,"u":418},{"a":false,"l":753,"u":786},{"a":true,"l":225,"u":401},{"a":true,"l":121,"u":756},{"a":true,"l":268,"u":957},{"a":false,"l":141,"u":498},{"a":false,"l":423,"u":811},{"a":false,"l":422,"u":492},{"a":true,"l":103,"u":893},{"a":true,"l":1,"u":335},{"a":true,"l":514,"u":557},{"a":true,"l":90,"u":501},{"a":false,"l":466,"u":588},{"a":false,"l":40,"u":746},{"a":true,"l":376,"u":437},{"a":true,"l":76,"u":261},{"a":true,"l":308,"u":464},{"a":true,"l":190,"u":353},{"a":true,"l":145,"u":630},{"a":false,"l":693,"u":752},{"a":false,"l":149,"u":655},{"a":true,"l":275,"u":759},{"a":true,"l":421,"u":492},{"a":true,"l":128,"u":494},{"a":true,"l":926,"u":950},{"a":true,"l":91,"u":658},{"a":false,"l":98,"u":227},{"a":true,"l":105,"u":402},{"a":true,"l":870,"u":916},{"a":true,"l":285,"u":957},{"a":false,"l":38,"u":947},{"a":true,"l":502,"u":750},{"a":true,"l":612,"u":836},{"a":false,"l":153,"u":209},{"a":true,"l":484,"u":547},{"a":true,"l":440,"u":700},{"a":true,"l":239,"u":743},{"a":false,"l":696,"u":737},{"a":true,"l":388,"u":977},{"a":false,"l":385,"u":806},{"a":false,"l":701,"u":789},{"a":true,"l":17,"u":108},{"a":false,"l":44,"u":232},{"a":true,"l":298,"u":923},{"a":false,"l":665,"u":767},{"a":true,"l":457,"u":463},{"a":false,"l":323,"u":898},{"a":true,"l":414,"u":699},{"a":false,"l":513,"u":768},{"a":false,"l":21,"u":881},{"a":false,"l":448,"u":515},{"a":false,"l":346,"u":916},{"a":false,"l":672,"u":893},{"a":true,"l":111,"u":132},{"a":false,"l":775,"u":868},{"a":false,"l":485,"u":619},{"a":true,"l":126,"u":519},{"a":true,"l":9,"u":680},{"a":true,"l":224,"u":832},{"a":false,"l":234,"u":496},{"a":false,"l":423,"u":485},{"a":false,"l":53,"u":976},{"a":false,"l":414,"u":539},{"a":true,"l":873,"u":876},{"a":true,"l":416,"u":993},{"a":false,"l":169,"u":213},{"a":false,"l":320,"u":943},{"a":true,"l":342,"u":380},{"a":true,"l":459,"u":765},{"a":true,"l":279,"u":484},{"a":true,"l":712,"u":998},{"a":false,"l":652,"u":749},{"a":false,"l":474,"u":543},{"a":true,"l":393,"u":564},{"a":false,"l":873,"u":878},{"a":false,"l":447,"u":488},{"a":true,"l":15,"u":331},{"a":false,"l":710,"u":810},{"a":true,"l":80,"u":417},{"a":false,"l":56,"u":802},{"a":false,"l":13,"u":71},{"a":false,"l":742,"u":767},{"a":true,"l":372,"u":826},{"a":false,"l":56,"u":657},{"a":false,"l":55,"u":564},{"a":true,"l":308,"u":569},{"a":true,"l":59,"u":833},{"a":true,"l":44,"u":99},{"a":true,"l":286,"u":876},{"a":true,"l":143,"u":878},{"a":false,"l":116,"u":419},{"a":true,"l":249,"u":290},{"a":false,"l":239,"u":279},{"a":true,"l":62,"u":929},{"a":false,"l":523,"u":733},{"a":false,"l":364,"u":933},{"a":true,"l":261,"u":373},{"a":false,"l":195,"u":256},{"a":true,"l":137,"u":205},{"a":false,"l":135,"u":913},{"a":false,"l":747,"u":893},{"a":false,"l":52,"u":927},{"a":true,"l":581,"u":632},{"a":false,"l":738,"u":935},{"a":false,"l":665,"u":812},{"a":true,"l":56,"u":571},{"a":false,"l":259,"u":622},{"a":true,"l":603,"u":952},{"a":true,"l":235,"u":325},{"a":true,"l":597,"u":806},{"a":false,"l":850,"u":852},{"a":false,"l":143,"u":897},{"a":false,"l":93,"u":292},{"a":true,"l":130,"u":778},{"a":false,"l":636,"u":796},{"a":true,"l":127,"u":413},{"a":true,"l":126,"u":174},{"a":true,"l":694,"u":750},{"a":true,"l":766,"u":882},{"a":false,"l":352,"u":835},{"a":true,"l":397,"u":757},{"a":true,"l":185,"u":551},{"a":true,"l":218,"u":560},{"a":false,"l":466,"u":637},{"a":true,"l":123,"u":630},{"a":false,"l":145,"u":486},{"a":true,"l":300,"u":925},{"a":false,"l":397,"u":957},{"a":false,"l":519,"u":748},{"a":true,"l":293,"u":559},{"a":true,"l":292,"u":980},{"a":false,"l":87,"u":704},{"a":true,"l":471,"u":926},{"a":true,"l":446,"u":737},{"a":true,"l":109,"u":837},{"a":true,"l":210,"u":451},{"a":true,"l":624,"u":923},{"a":true,"l":423,"u":596},{"a":false,"l":8,"u":316},{"a":false,"l":49,"u":624},{"a":true,"l":500,"u":747},{"a":true,"l":541,"u":799},{"a":true,"l":160,"u":309},{"a":false,"l":111,"u":538},{"a":false,"l":131,"u":932},{"a":false,"l":726,"u":785},{"a":true,"l":890,"u":914},{"a":true,"l":901,"u":945},{"a":false,"l":205,"u":560},{"a":true,"l":974,"u":978},{"a":true,"l":94,"u":207},{"a":false,"l":10,"u":393},{"a":false,"l":248,"u":577},{"a":false,"l":26,"u":282},{"a":false,"l":220,"u":809},{"a":false,"l":94,"u":726},{"a":false,"l":832,"u":883},{"a":false,"l":465,"u":544},{"a":true,"l":300,"u":830},{"a":true,"l":428,"u":619},{"a":false,"l":846,"u":981},{"a":false,"l":41,"u":879},{"a":false,"l":854,"u":961},{"a":false,"l":675,"u":725},{"a":true,"l":39,"u":947},{"a":false,"l":424,"u":991},{"a":true,"l":129,"u":646},{"a":true,"l":240,"u":625},{"a":true,"l":259,"u":300},{"a":false,"l":32,"u":589},{"a":false,"l":593,"u":932},{"a":false,"l":109,"u":973},{"a":false,"l":504,"u":879},{"a":false,"l":276,"u":557},{"a":true,"l":21,"u":337},{"a":false,"l":95,"u":594},{"a":false,"l":127,"u":968},{"a":false,"l":335,"u":399},{"a":false,"l":380,"u":589},{"a":true,"l":79,"u":300},{"a":false,"l":363,"u":819},{"a":false,"l":393,"u":742},{"a":false,"l":599,"u":915},{"a":false,"l":65,"u":671},{"a":true,"l":25,"u":441},{"a":true,"l":556,"u":871},{"a":false,"l":33,"u":752},{"a":true,"l":123,"u":665},{"a":false,"l":4,"u":50},{"a":false,"l":457,"u":735},{"a":false,"l":6,"u":834},{"a":true,"l":557,"u":575},{"a":true,"l":473,"u":608},{"a":true,"l":547,"u":622},{"a":true,"l":212,"u":278},{"a":false,"l":519,"u":894},{"a":false,"l":389,"u":584},{"a":true,"l":863,"u":893},{"a":true,"l":40,"u":907},{"a":false,"l":354,"u":473},{"a":false,"l":69,"u":135},{"a":true,"l":310,"u":709},{"a":true,"l":237,"u":910},{"a":false,"l":363,"u":992},{"a":true,"l":278,"u":992},{"a":false,"l":287,"u":980},{"a":true,"l":523,"u":979},{"a":true,"l":552,"u":997},{"a":false,"l":796,"u":996},{"a":false,"l":94,"u":701},{"a":false,"l":462,"u":788},{"a":true,"l":418,"u":964},{"a":false,"l":101,"u":122},{"a":false,"l":107,"u":918},{"a":true,"l":436,"u":595},{"a":false,"l":377,"u":655},{"a":false,"l":220,"u":871},{"a":true,"l":185,"u":343},{"a":false,"l":109,"u":180},{"a":true,"l":99,"u":192},{"a":false,"l":388,"u":646},{"a":false,"l":234,"u":376},{"a":false,"l":20,"u":928},{"a":true,"l":522,"u":813},{"a":false,"l":162,"u":864},{"a":true,"l":463,"u":840},{"a":false,"l":522,"u":979},{"a":true,"l":182,"u":537},{"a":false,"l":321,"u":722},{"a":false,"l":223,"u":233},{"a":false,"l":736,"u":991},{"a":false,"l":208,"u":604},{"a":false,"l":42,"u":130},{"a":true,"l":90,"u":755},{"a":false,"l":376,"u":692},{"a":true,"l":561,"u":720},{"a":true,"l":57,"u":801},{"a":false,"l":498,"u":559},{"a":false,"l":659,"u":751},{"a":false,"l":102,"u":511},{"a":false,"l":141,"u":947},{"a":false,"l":415,"u":430},{"a":false,"l":2,"u":339},{"a":false,"l":283,"u":522},{"a":false,"l":275,"u":470},{"a":false,"l":250,"u":857},{"a":false,"l":215,"u":928},{"a":true,"l":911,"u":988},{"a":true,"l":261,"u":667},{"a":false,"l":304,"u":995},{"a":false,"l":491,"u":751},{"a":true,"l":886,"u":969},{"a":false,"l":466,"u":647},{"a":true,"l":273,"u":740},{"a":false,"l":333,"u":381},{"a":true,"l":162,"u":775},{"a":false,"l":96,"u":133},{"a":true,"l":37,"u":981},{"a":true,"l":757,"u":759},{"a":true,"l":179,"u":425},{"a":false,"l":486,"u":508},{"a":true,"l":842,"u":846},{"a":true,"l":514,"u":574},{"a":false,"l":446,"u":833},{"a":false,"l":605,"u":769},{"a":true,"l":375,"u":918},{"a":true,"l":212,"u":350},{"a":true,"l":478,"u":697},{"a":false,"l":749,"u":989},{"a":true,"l":112,"u":512},{"a":false,"l":157,"u":376},{"a":false,"l":272,"u":487},{"a":false,"l":557,"u":765},{"a":true,"l":584,"u":796},{"a":false,"l":291,"u":346},{"a":false,"l":381,"u":683},{"a":false,"l":131,"u":793},{"a":false,"l":299,"u":691},{"a":false,"l":5,"u":749},{"a":false,"l":126,"u":377},{"a":false,"l":384,"u":530},{"a":false,"l":264,"u":425},{"a":false,"l":783,"u":889},{"a":true,"l":682,"u":831},{"a":true,"l":136,"u":267},{"a":true,"l":544,"u":656},{"a":true,"l":61,"u":213},{"a":true,"l":249,"u":434},{"a":true,"l":236,"u":437},{"a":false,"l":73,"u":932},{"a":false,"l":482,"u":831},{"a":true,"l":108,"u":240},{"a":false,"l":639,"u":986},{"a":true,"l":99,"u":491},{"a":true,"l":99,"u":570},{"a":false,"l":603,"u":887},{"a":false,"l":21,"u":256},{"a":false,"l":283,"u":861},{"a":false,"l":97,"u":807},{"a":true,"l":431,"u":458},{"a":true,"l":500,"u":741},{"a":false,"l":682,"u":853},{"a":true,"l":514,"u":673},{"a":true,"l":829,"u":909},{"a":false,"l":602,"u":962},{"a":true,"l":878,"u":947},{"a":false,"l":751,"u":760},{"a":false,"l":388,"u":521},{"a":false,"l":566,"u":909},{"a":false,"l":88,"u":97},{"a":true,"l":362,"u":510},{"a":true,"l":727,"u":989},{"a":false,"l":145,"u":748},{"a":true,"l":85,"u":264},{"a":false,"l":645,"u":865},{"a":true,"l":96,"u":280},{"a":false,"l":300,"u":684},{"a":true,"l":426,"u":553},{"a":true,"l":427,"u":453},{"a":true,"l":171,"u":172},{"a":true,"l":609,"u":629},{"a":false,"l":879,"u":913},{"a":false,"l":276,"u":852},{"a":false,"l":127,"u":402},{"a":true,"l":46,"u":651},{"a":false,"l":52,"u":691},{"a":false,"l":274,"u":661},{"a":true,"l":381,"u":922},{"a":true,"l":746,"u":747},{"a":true,"l":158,"u":178},{"a":false,"l":180,"u":319},{"a":false,"l":322,"u":879},{"a":false,"l":125,"u":863},{"a":true,"l":138,"u":703},{"a":true,"l":204,"u":530},{"a":true,"l":197,"u":333},{"a":true,"l":195,"u":832},{"a":true,"l":360,"u":474},{"a":false,"l":54,"u":883},{"a":false,"l":168,"u":445},{"a":false,"l":419,"u":838},{"a":false,"l":721,"u":978},{"a":false,"l":337,"u":648},{"a":true,"l":296,"u":644},{"a":false,"l":648,"u":902},{"a":false,"l":790,"u":989},{"a":true,"l":14,"u":643},{"a":false,"l":848,"u":862},{"a":false,"l":75,"u":409},{"a":false,"l":306,"u":898},{"a":true,"l":21,"u":46},{"a":true,"l":132,"u":839},{"a":false,"l":118,"u":773},{"a":true,"l":118,"u":595},{"a":true,"l":713,"u":827},{"a":true,"l":210,"u":435},{"a":true,"l":320,"u":722},{"a":true,"l":41,"u":591},{"a":true,"l":745,"u":994},{"a":true,"l":516,"u":555},{"a":false,"l":319,"u":561},{"a":true,"l":357,"u":732},{"a":true,"l":148,"u":399},{"a":false,"l":595,"u":597},{"a":false,"l":651,"u":894},{"a":false,"l":523,"u":945},{"a":true,"l":335,"u":446},{"a":false,"l":72,"u":495},{"a":true,"l":211,"u":264},{"a":true,"l":1,"u":506},{"a":false,"l":11,"u":704},{"a":false,"l":210,"u":886},{"a":true,"l":357,"u":720},{"a":true,"l":480,"u":657},{"a":false,"l":300,"u":582},{"a":false,"l":12,"u":544},{"a":false,"l":117,"u":551},{"a":false,"l":554,"u":742},{"a":false,"l":144,"u":151},{"a":false,"l":177,"u":190},{"a":false,"l":311,"u":655},{"a":true,"l":205,"u":671},{"a":false,"l":534,"u":969},{"a":true,"l":560,"u":948},{"a":false,"l":380,"u":664},{"a":true,"l":628,"u":824},{"a":false,"l":34,"u":579},{"a":false,"l":588,"u":881},{"a":true,"l":67,"u":444},{"a":false,"l":771,"u":928},{"a":false,"l":530,"u":970},{"a":false,"l":557,"u":725},{"a":false,"l":68,"u":990},{"a":true,"l":437,"u":518},{"a":false,"l":4,"u":991},{"a":true,"l":147,"u":496},{"a":true,"l":210,"u":510},{"a":true,"l":450,"u":719},{"a":true,"l":385,"u":552},{"a":false,"l":181,"u":222},{"a":false,"l":523,"u":572},{"a":true,"l":458,"u":814},{"a":false,"l":248,"u":755},{"a":false,"l":407,"u":925},{"a":false,"l":586,"u":935},{"a":true,"l":439,"u":752},{"a":true,"l":500,"u":754},{"a":true,"l":380,"u":576},{"a":true,"l":770,"u":793},{"a":false,"l":109,"u":301},{"a":false,"l":533,"u":816},{"a":false,"l":430,"u":884},{"a":false,"l":364,"u":766},{"a":false,"l":119,"u":648},{"a":true,"l":259,"u":851},{"a":true,"l":492,"u":566},{"a":false,"l":124,"u":792},{"a":true,"l":310,"u":322},{"a":false,"l":525,"u":828},{"a":false,"l":16,"u":879},{"a":true,"l":55,"u":967},{"a":false,"l":705,"u":722},{"a":false,"l":154,"u":527},{"a":false,"l":688,"u":935},{"a":true,"l":301,"u":378},{"a":false,"l":5,"u":367},{"a":true,"l":54,"u":731},{"a":true,"l":34,"u":149},{"a":true,"l":612,"u":980},{"a":true,"l":126,"u":903},{"a":true,"l":161,"u":262},{"a":false,"l":683,"u":703},{"a":true,"l":451,"u":657},{"a":false,"l":238,"u":829},{"a":true,"l":546,"u":686},{"a":false,"l":866,"u":989},{"a":false,"l":600,"u":720},{"a":false,"l":349,"u":931},{"a":false,"l":91,"u":111},{"a":true,"l":28,"u":533},{"a":true,"l":855,"u":964},{"a":true,"l":701,"u":784},{"a":false,"l":419,"u":735},{"a":true,"l":467,"u":785},{"a":true,"l":807,"u":848},{"a":true,"l":94,"u":237},{"a":true,"l":92,"u":422},{"a":false,"l":75,"u":966},{"a":false,"l":342,"u":520},{"a":true,"l":59,"u":903},{"a":false,"l":436,"u":668},{"a":true,"l":573,"u":981},{"a":true,"l":481,"u":692},{"a":false,"l":346,"u":972},{"a":false,"l":666,"u":850},{"a":false,"l":15,"u":357},{"a":true,"l":107,"u":869},{"a":false,"l":434,"u":527},{"a":false,"l":114,"u":237},{"a":true,"l":750,"u":892},{"a":true,"l":431,"u":709},{"a":true,"l":463,"u":974},{"a":true,"l":751,"u":859},{"a":true,"l":413,"u":734},{"a":false,"l":763,"u":874},{"a":false,"l":338,"u":657},{"a":true,"l":852,"u":925},{"a":true,"l":46,"u":280},{"a":true,"l":407,"u":780},{"a":true,"l":625,"u":962},{"a":true,"l":329,"u":403},{"a":false,"l":455,"u":564},{"a":true,"l":528,"u":777},{"a":true,"l":138,"u":980},{"a":false,"l":544,"u":586},{"a":true,"l":344,"u":432},{"a":true,"l":805,"u":838},{"a":true,"l":213,"u":605},{"a":false,"l":822,"u":978},{"a":true,"l":647,"u":682},{"a":false,"l":486,"u":674},{"a":true,"l":227,"u":283},{"a":true,"l":759,"u":774},{"a":true,"l":942,"u":957},{"a":false,"l":356,"u":879},{"a":false,"l":534,"u":859},{"a":false,"l":505,"u":628},{"a":true,"l":289,"u":851},{"a":false,"l":795,"u":818},{"a":true,"l":308,"u":786},{"a":true,"l":461,"u":844},{"a":false,"l":475,"u":761},{"a":false,"l":34,"u":37},{"a":true,"l":84,"u":856},{"a":false,"l":159,"u":678},{"a":true,"l":4,"u":910},{"a":false,"l":704,"u":841},{"a":true,"l":492,"u":796},{"a":false,"l":399,"u":844},{"a":true,"l":423,"u":759},{"a":false,"l":352,"u":595},{"a":false,"l":151,"u":174},{"a":false,"l":23,"u":387},{"a":false,"l":407,"u":425},{"a":false,"l":197,"u":730},{"a":false,"l":365,"u":648},{"a":false,"l":613,"u":783},{"a":true,"l":211,"u":867},{"a":false,"l":466,"u":624},{"a":true,"l":30,"u":548},{"a":true,"l":320,"u":910},{"a":false,"l":151,"u":372},{"a":true,"l":571,"u":967},{"a":false,"l":927,"u":979},{"a":false,"l":16,"u":490},{"a":false,"l":432,"u":513},{"a":false,"l":95,"u":500},{"a":true,"l":357,"u":692},{"a":true,"l":340,"u":629},{"a":false,"l":575,"u":623},{"a":false,"l":243,"u":838},{"a":false,"l":652,"u":875},{"a":false,"l":482,"u":621},{"a":false,"l":668,"u":710},{"a":true,"l":542,"u":555},{"a":false,"l":427,"u":938},{"a":false,"l":190,"u":391},{"a":false,"l":214,"u":906},{"a":true,"l":51,"u":389},{"a":false,"l":282,"u":659},{"a":true,"l":156,"u":579},{"a":true,"l":217,"u":731},{"a":false,"l":190,"u":929},{"a":false,"l":100,"u":702},{"a":false,"l":581,"u":817},{"a":true,"l":183,"u":207},{"a":false,"l":333,"u":610},{"a":false,"l":424,"u":427},{"a":true,"l":17,"u":304},{"a":false,"l":530,"u":565},{"a":false,"l":130,"u":235},{"a":true,"l":190,"u":904},{"a":true,"l":59,"u":945},{"a":false,"l":537,"u":895},{"a":true,"l":779,"u":809},{"a":false,"l":560,"u":766},{"a":false,"l":425,"u":540},{"a":true,"l":516,"u":547},{"a":true,"l":209,"u":240},{"a":true,"l":531,"u":711},{"a":false,"l":87,"u":170},{"a":false,"l":156,"u":950},{"a":false,"l":523,"u":799},{"a":true,"l":116,"u":486},{"a":false,"l":564,"u":714},{"a":true,"l":796,"u":910},{"a":false,"l":257,"u":780},{"a":true,"l":173,"u":573},{"a":true,"l":63,"u":591},{"a":false,"l":279,"u":426},{"a":false,"l":654,"u":801},{"a":true,"l":532,"u":758},{"a":true,"l":224,"u":929},{"a":true,"l":257,"u":912},{"a":true,"l":425,"u":466},{"a":false,"l":192,"u":434},{"a":true,"l":638,"u":640},{"a":true,"l":864,"u":950},{"a":true,"l":281,"u":361},{"a":true,"l":421,"u":575},{"a":false,"l":3,"u":799},{"a":false,"l":487,"u":515},{"a":true,"l":453,"u":741},{"a":false,"l":269,"u":526},{"a":false,"l":176,"u":256},{"a":false,"l":19,"u":167},{"a":true,"l":449,"u":701},{"a":true,"l":100,"u":699},{"a":true,"l":267,"u":397},{"a":true,"l":131,"u":363},{"a":false,"l":774,"u":971},{"a":false,"l":112,"u":533},{"a":true,"l":370,"u":884},{"a":false,"l":325,"u":667},{"a":false,"l":116,"u":128},{"a":true,"l":182,"u":357},{"a":true,"l":5,"u":751},{"a":true,"l":121,"u":926},{"a":false,"l":63,"u":676},{"a":true,"l":265,"u":715},{"a":false,"l":244,"u":323},{"a":true,"l":722,"u":884},{"a":true,"l":291,"u":463},{"a":false,"l":106,"u":395},{"a":true,"l":319,"u":779},{"a":true,"l":377,"u":412},{"a":true,"l":58,"u":182},{"a":false,"l":714,"u":922},{"a":true,"l":197,"u":907},{"a":true,"l":40,"u":455},{"a":true,"l":72,"u":477},{"a":true,"l":80,"u":120},{"a":false,"l":490,"u":929},{"a":true,"l":265,"u":620},{"a":true,"l":601,"u":783},{"a":false,"l":744,"u":963},{"a":true,"l":597,"u":877},{"a":true,"l":35,"u":376},{"a":true,"l":607,"u":626},{"a":true,"l":694,"u":849},{"a":false,"l":833,"u":917},{"a":false,"l":426,"u":570},{"a":true,"l":717,"u":933},{"a":false,"l":70,"u":311},{"a":true,"l":233,"u":704},{"a":true,"l":1,"u":522},{"a":true,"l":52,"u":254},{"a":false,"l":117,"u":779},{"a":false,"l":712,"u":852},{"a":true,"l":8,"u":918},{"a":false,"l":118,"u":159},{"a":false,"l":74,"u":611},{"a":true,"l":376,"u":969},{"a":false,"l":213,"u":791},{"a":true,"l":347,"u":898},{"a":true,"l":20,"u":977},{"a":false,"l":167,"u":640},{"a":true,"l":856,"u":898},{"a":false,"l":768,"u":870},{"a":false,"l":440,"u":626},{"a":false,"l":162,"u":313},{"a":true,"l":92,"u":752},{"a":true,"l":79,"u":769},{"a":true,"l":516,"u":878},{"a":true,"l":494,"u":698},{"a":false,"l":81,"u":797},{"a":false,"l":482,"u":917},{"a":false,"l":19,"u":542},{"a":false,"l":182,"u":297},{"a":false,"l":242,"u":270},{"a":true,"l":92,"u":921},{"a":false,"l":523,"u":680},{"a":false,"l":717,"u":912},{"a":true,"l":542,"u":796},{"a":false,"l":791,"u":911},{"a":true,"l":47,"u":408},{"a":true,"l":102,"u":666},{"a":false,"l":22,"u":469},{"a":false,"l":242,"u":290},{"a":false,"l":397,"u":631},{"a":false,"l":164,"u":364},{"a":false,"l":387,"u":800},{"a":false,"l":678,"u":854},{"a":false,"l":20,"u":783},{"a":true,"l":357,"u":446},{"a":false,"l":113,"u":176},{"a":true,"l":291,"u":975},{"a":true,"l":251,"u":483},{"a":true,"l":14,"u":684},{"a":true,"l":545,"u":602},{"a":false,"l":621,"u":651},{"a":true,"l":193,"u":664},{"a":true,"l":485,"u":851},{"a":true,"l":253,"u":716},{"a":true,"l":278,"u":414},{"a":false,"l":69,"u":381},{"a":false,"l":166,"u":576},{"a":true,"l":370,"u":788},{"a":true,"l":325,"u":842},{"a":false,"l":548,"u":968},{"a":true,"l":317,"u":863},{"a":true,"l":16,"u":222},{"a":false,"l":73,"u":516},{"a":true,"l":642,"u":720},{"a":true,"l":522,"u":824},{"a":false,"l":467,"u":951},{"a":true,"l":139,"u":562},{"a":true,"l":211,"u":649},{"a":false,"l":1,"u":76},{"a":true,"l":66,"u":566},{"a":true,"l":349,"u":456},{"a":true,"l":30,"u":961},{"a":false,"l":187,"u":911},{"a":true,"l":196,"u":294},{"a":false,"l":517,"u":731},{"a":true,"l":784,"u":947},{"a":false,"l":162,"u":253},{"a":false,"l":859,"u":902},{"a":false,"l":148,"u":626},{"a":false,"l":137,"u":182},{"a":true,"l":340,"u":815},{"a":false,"l":824,"u":941},{"a":false,"l":232,"u":772},{"a":false,"l":11,"u":356},{"a":false,"l":581,"u":871},{"a":true,"l":253,"u":266},{"a":true,"l":107,"u":901},{"a":false,"l":109,"u":799},{"a":true,"l":473,"u":896},{"a":false,"l":11,"u":966},{"a":false,"l":18,"u":730},{"a":false,"l":464,"u":602},{"a":true,"l":538,"u":740},{"a":false,"l":128,"u":798},{"a":true,"l":476,"u":987},{"a":true,"l":378,"u":880},{"a":true,"l":131,"u":215},{"a":true,"l":432,"u":631},{"a":false,"l":145,"u":834},{"a":false,"l":166,"u":311},{"a":false,"l":720,"u":850},{"a":false,"l":232,"u":316},{"a":false,"l":251,"u":863},{"a":true,"l":275,"u":574},{"a":false,"l":354,"u":389},{"a":true,"l":49,"u":488},{"a":true,"l":160,"u":848},{"a":true,"l":223,"u":549},{"a":false,"l":828,"u":961},{"a":true,"l":163,"u":166},{"a":false,"l":120,"u":711},{"a":true,"l":880,"u":900},{"a":false,"l":456,"u":987},{"a":false,"l":458,"u":983},{"a":false,"l":352,"u":798},{"a":false,"l":583,"u":739},{"a":false,"l":592,"u":846},{"a":true,"l":468,"u":969},{"a":false,"l":146,"u":771},{"a":false,"l":832,"u":865},{"a":false,"l":96,"u":443},{"a":false,"l":435,"u":495},{"a":true,"l":491,"u":852},{"a":false,"l":474,"u":872},{"a":false,"l":411,"u":549},{"a":true,"l":101,"u":826},{"a":true,"l":200,"u":873},{"a":false,"l":8,"u":755},{"a":false,"l":423,"u":565},{"a":false,"l":251,"u":350},{"a":true,"l":514,"u":658},{"a":false,"l":541,"u":802},{"a":true,"l":514,"u":908},{"a":false,"l":298,"u":570},{"a":false,"l":394,"u":962},{"a":true,"l":196,"u":432},{"a":true,"l":442,"u":540},{"a":true,"l":464,"u":603},{"a":true,"l":107,"u":228},{"a":false,"l":390,"u":989},{"a":true,"l":254,"u":874},{"a":false,"l":752,"u":951},{"a":true,"l":567,"u":882},{"a":false,"l":661,"u":905},{"a":false,"l":737,"u":959},{"a":true,"l":67,"u":224},{"a":false,"l":519,"u":573},{"a":true,"l":443,"u":456},{"a":false,"l":461,"u":926},{"a":true,"l":280,"u":754},{"a":false,"l":95,"u":650},{"a":false,"l":159,"u":740},{"a":false,"l":139,"u":893},{"a":false,"l":272,"u":453},{"a":true,"l":731,"u":900},{"a":false,"l":98,"u":124},{"a":true,"l":327,"u":765},{"a":false,"l":65,"u":915},{"a":false,"l":860,"u":891},{"a":false,"l":510,"u":857},{"a":true,"l":188,"u":487},{"a":false,"l":500,"u":722},{"a":true,"l":922,"u":942},{"a":false,"l":513,"u":590},{"a":true,"l":565,"u":761},{"a":true,"l":688,"u":697},{"a":false,"l":358,"u":766},{"a":false,"l":96,"u":168},{"a":false,"l":280,"u":586},{"a":true,"l":183,"u":743},{"a":true,"l":639,"u":992},{"a":true,"l":66,"u":985},{"a":true,"l":446,"u":466},{"a":false,"l":445,"u":579},{"a":false,"l":256,"u":800},{"a":false,"l":762,"u":878},{"a":true,"l":250,"u":883},{"a":true,"l":880,"u":944},{"a":true,"l":537,"u":620},{"a":false,"l":423,"u":905},{"a":false,"l":209,"u":339},{"a":false,"l":85,"u":723},{"a":true,"l":174,"u":278},{"a":true,"l":185,"u":886},{"a":true,"l":382,"u":829},{"a":false,"l":215,"u":860},{"a":true,"l":63,"u":558},{"a":false,"l":600,"u":672},{"a":false,"l":310,"u":492},{"a":false,"l":860,"u":994},{"a":true,"l":379,"u":581},{"a":false,"l":412,"u":452},{"a":false,"l":285,"u":680},{"a":true,"l":175,"u":292},{"a":false,"l":272,"u":718},{"a":true,"l":467,"u":757},{"a":false,"l":418,"u":630},{"a":false,"l":156,"u":498},{"a":true,"l":817,"u":897},{"a":false,"l":441,"u":443},{"a":true,"l":423,"u":565},{"a":false,"l":76,"u":678},{"a":true,"l":639,"u":785},{"a":false,"l":478,"u":963},{"a":true,"l":361,"u":763},{"a":false,"l":74,"u":481},{"a":true,"l":331,"u":907},{"a":false,"l":575,"u":582},{"a":true,"l":348,"u":541},{"a":true,"l":1,"u":91},{"a":true,"l":656,"u":670},{"a":false,"l":357,"u":833},{"a":false,"l":254,"u":753},{"a":true,"l":132,"u":470},{"a":true,"l":482,"u":682},{"a":false,"l":492,"u":589},{"a":false,"l":17,"u":296},{"a":false,"l":603,"u":673},{"a":false,"l":760,"u":822},{"a":false,"l":191,"u":654},{"a":false,"l":799,"u":982},{"a":false,"l":8,"u":28},{"a":false,"l":464,"u":805},{"a":false,"l":645,"u":748},{"a":true,"l":739,"u":998},{"a":false,"l":814,"u":951},{"a":false,"l":50,"u":954},{"a":true,"l":765,"u":958},{"a":false,"l":76,"u":600},{"a":true,"l":148,"u":257},{"a":true,"l":83,"u":535},{"a":false,"l":468,"u":957},{"a":false,"l":186,"u":619},{"a":false,"l":115,"u":443},{"a":true,"l":31,"u":543},{"a":false,"l":427,"u":644},{"a":false,"l":183,"u":712},{"a":false,"l":854,"u":975},{"a":true,"l":422,"u":915},{"a":false,"l":258,"u":701},{"a":true,"l":77,"u":731},{"a":true,"l":606,"u":685},{"a":false,"l":305,"u":728},{"a":false,"l":403,"u":407},{"a":false,"l":458,"u":753},{"a":true,"l":651,"u":877},{"a":false,"l":662,"u":729},{"a":true,"l":95,"u":486},{"a":true,"l":67,"u":430},{"a":true,"l":217,"u":772},{"a":false,"l":663,"u":715},{"a":false,"l":481,"u":927},{"a":false,"l":66,"u":468},{"a":false,"l":45,"u":738},{"a":true,"l":210,"u":471},{"a":true,"l":240,"u":432},{"a":false,"l":139,"u":632},{"a":true,"l":194,"u":391},{"a":true,"l":712,"u":912},{"a":true,"l":227,"u":736},{"a":false,"l":113,"u":198},{"a":true,"l":313,"u":355},{"a":true,"l":727,"u":866},{"a":true,"l":393,"u":892},{"a":false,"l":103,"u":599},{"a":false,"l":229,"u":406},{"a":true,"l":800,"u":923},{"a":false,"l":630,"u":863},{"a":true,"l":311,"u":459},{"a":false,"l":721,"u":934},{"a":true,"l":679,"u":779},{"a":true,"l":43,"u":200},{"a":false,"l":54,"u":610},{"a":false,"l":612,"u":817},{"a":false,"l":122,"u":826},{"a":true,"l":294,"u":515},{"a":true,"l":267,"u":734},{"a":true,"l":259,"u":627},{"a":false,"l":306,"u":580},{"a":false,"l":272,"u":286},{"a":true,"l":53,"u":246},{"a":false,"l":333,"u":561},{"a":true,"l":133,"u":991},{"a":false,"l":89,"u":260},{"a":false,"l":16,"u":731},{"a":true,"l":235,"u":871},{"a":false,"l":101,"u":196},{"a":false,"l":733,"u":802},{"a":true,"l":491,"u":774},{"a":true,"l":238,"u":485},{"a":false,"l":476,"u":665},{"a":false,"l":727,"u":905},{"a":true,"l":28,"u":821},{"a":false,"l":157,"u":796},{"a":true,"l":484,"u":658},{"a":false,"l":628,"u":850},{"a":true,"l":588,"u":929},{"a":true,"l":599,"u":904},{"a":true,"l":125,"u":539},{"a":true,"l":156,"u":459},{"a":false,"l":302,"u":927},{"a":true,"l":29,"u":718},{"a":false,"l":523,"u":591},{"a":true,"l":170,"u":984},{"a":false,"l":548,"u":654},{"a":false,"l":429,"u":877},{"a":true,"l":74,"u":148},{"a":true,"l":146,"u":475},{"a":true,"l":153,"u":594},{"a":false,"l":519,"u":923},{"a":true,"l":246,"u":385},{"a":true,"l":723,"u":786},{"a":false,"l":33,"u":710},{"a":false,"l":101,"u":550},{"a":true,"l":281,"u":800},{"a":true,"l":834,"u":937},{"a":true,"l":176,"u":584},{"a":false,"l":457,"u":766},{"a":true,"l":632,"u":979},{"a":true,"l":443,"u":529},{"a":false,"l":205,"u":503},{"a":true,"l":702,"u":946},{"a":false,"l":280,"u":505},{"a":true,"l":89,"u":194},{"a":true,"l":264,"u":827},{"a":true,"l":539,"u":909},{"a":true,"l":15,"u":418},{"a":false,"l":294,"u":718},{"a":true,"l":79,"u":887},{"a":false,"l":613,"u":667},{"a":true,"l":359,"u":405},{"a":true,"l":274,"u":808},{"a":false,"l":359,"u":971},{"a":false,"l":112,"u":597},{"a":true,"l":47,"u":538},{"a":true,"l":309,"u":690},{"a":false,"l":892,"u":969},{"a":false,"l":492,"u":887},{"a":false,"l":560,"u":718},{"a":true,"l":338,"u":510},{"a":true,"l":64,"u":356},{"a":false,"l":163,"u":600},{"a":true,"l":819,"u":875},{"a":true,"l":215,"u":764},{"a":false,"l":18,"u":350},{"a":true,"l":99,"u":783},{"a":false,"l":421,"u":656},{"a":true,"l":273,"u":291},{"a":true,"l":121,"u":408},{"a":true,"l":135,"u":492},{"a":false,"l":32,"u":338},{"a":true,"l":271,"u":752},{"a":false,"l":361,"u":784},{"a":true,"l":402,"u":961},{"a":false,"l":438,"u":737},{"a":false,"l":313,"u":741},{"a":false,"l":448,"u":724},{"a":true,"l":469,"u":947},{"a":true,"l":157,"u":416},{"a":true,"l":160,"u":676},{"a":true,"l":179,"u":682},{"a":false,"l":6,"u":839},{"a":true,"l":277,"u":763},{"a":false,"l":194,"u":941},{"a":true,"l":654,"u":669},{"a":true,"l":369,"u":434},{"a":false,"l":492,"u":869},{"a":true,"l":71,"u":267},{"a":true,"l":502,"u":608},{"a":true,"l":178,"u":642},{"a":true,"l":745,"u":936},{"a":true,"l":261,"u":627},{"a":false,"l":583,"u":811},{"a":true,"l":544,"u":884},{"a":true,"l":434,"u":752},{"a":false,"l":173,"u":740},{"a":false,"l":440,"u":612},{"a":true,"l":22,"u":398},{"a":false,"l":489,"u":781},{"a":false,"l":172,"u":680},{"a":false,"l":269,"u":387},{"a":false,"l":319,"u":389},{"a":true,"l":201,"u":639},{"a":false,"l":124,"u":886},{"a":true,"l":261,"u":781},{"a":false,"l":61,"u":807},{"a":false,"l":22,"u":607},{"a":true,"l":391,"u":662},{"a":true,"l":791,"u":986},{"a":false,"l":661,"u":980},{"a":false,"l":33,"u":823},{"a":false,"l":97,"u":236},{"a":true,"l":482,"u":516},{"a":true,"l":321,"u":582},{"a":true,"l":234,"u":851},{"a":false,"l":350,"u":994},{"a":true,"l":444,"u":912},{"a":false,"l":329,"u":911},{"a":false,"l":532,"u":876},{"a":false,"l":652,"u":657},{"a":false,"l":385,"u":761},{"a":true,"l":94,"u":277},{"a":true,"l":72,"u":844},{"a":false,"l":303,"u":754},{"a":true,"l":212,"u":473},{"a":false,"l":85,"u":762},{"a":false,"l":182,"u":627},{"a":false,"l":134,"u":702},{"a":false,"l":13,"u":146},{"a":true,"l":199,"u":898},{"a":true,"l":413,"u":823},{"a":true,"l":227,"u":728},{"a":false,"l":328,"u":436},{"a":true,"l":343,"u":742},{"a":false,"l":271,"u":827},{"a":false,"l":377,"u":701},{"a":true,"l":367,"u":476},{"a":false,"l":9,"u":671},{"a":true,"l":130,"u":823},{"a":true,"l":6,"u":954},{"a":true,"l":161,"u":632},{"a":false,"l":115,"u":645},{"a":false,"l":709,"u":877},{"a":true,"l":60,"u":227},{"a":true,"l":303,"u":752},{"a":true,"l":303,"u":706},{"a":true,"l":292,"u":503},{"a":true,"l":199,"u":553},{"a":true,"l":300,"u":389},{"a":false,"l":745,"u":923},{"a":true,"l":365,"u":514},{"a":false,"l":178,"u":927},{"a":true,"l":54,"u":591},{"a":false,"l":209,"u":273},{"a":false,"l":121,"u":218},{"a":true,"l":56,"u":955},{"a":false,"l":55,"u":709},{"a":false,"l":186,"u":366},{"a":false,"l":44,"u":829},{"a":false,"l":239,"u":532},{"a":false,"l":102,"u":304},{"a":true,"l":122,"u":803},{"a":true,"l":118,"u":361},{"a":true,"l":15,"u":865},{"a":false,"l":261,"u":300},{"a":true,"l":249,"u":315},{"a":true,"l":229,"u":276},{"a":true,"l":724,"u":901},{"a":true,"l":500,"u":930},{"a":false,"l":600,"u":864},{"a":true,"l":663,"u":771},{"a":false,"l":705,"u":730},{"a":false,"l":413,"u":521},{"a":true,"l":436,"u":571},{"a":true,"l":18,"u":401},{"a":false,"l":418,"u":732},{"a":false,"l":418,"u":942},{"a":false,"l":525,"u":752},{"a":true,"l":3,"u":56},{"a":false,"l":287,"u":594},{"a":true,"l":146,"u":147},{"a":true,"l":563,"u":858},{"a":false,"l":36,"u":953},{"a":false,"l":21,"u":396},{"a":true,"l":473,"u":651},{"a":false,"l":42,"u":936},{"a":false,"l":87,"u":717},{"a":false,"l":395,"u":571},{"a":false,"l":442,"u":734},{"a":false,"l":575,"u":830},{"a":true,"l":849,"u":955},{"a":false,"l":636,"u":683},{"a":true,"l":195,"u":670},{"a":true,"l":206,"u":397},{"a":true,"l":57,"u":472},{"a":true,"l":230,"u":729},{"a":true,"l":531,"u":834},{"a":true,"l":51,"u":330},{"a":false,"l":528,"u":623},{"a":false,"l":221,"u":336},{"a":true,"l":43,"u":508},{"a":false,"l":611,"u":934},{"a":true,"l":188,"u":415},{"a":false,"l":153,"u":372},{"a":true,"l":170,"u":598},{"a":true,"l":40,"u":904},{"a":true,"l":265,"u":934},{"a":true,"l":199,"u":370},{"a":false,"l":338,"u":386},{"a":true,"l":795,"u":992},{"a":true,"l":223,"u":765},{"a":false,"l":747,"u":995},{"a":false,"l":370,"u":943},{"a":false,"l":391,"u":763},{"a":false,"l":381,"u":757},{"a":false,"l":45,"u":173},{"a":false,"l":540,"u":957},{"a":true,"l":289,"u":325},{"a":true,"l":642,"u":840},{"a":false,"l":476,"u":616},{"a":false,"l":59,"u":206},{"a":false,"l":169,"u":844},{"a":false,"l":533,"u":968},{"a":true,"l":159,"u":488},{"a":true,"l":513,"u":652},{"a":true,"l":413,"u":911},{"a":false,"l":511,"u":861},{"a":false,"l":674,"u":712},{"a":false,"l":781,"u":983},{"a":false,"l":399,"u":529},{"a":true,"l":278,"u":641},{"a":false,"l":344,"u":943},{"a":true,"l":169,"u":593},{"a":true,"l":564,"u":867},{"a":true,"l":559,"u":673},{"a":true,"l":86,"u":671},{"a":true,"l":486,"u":791},{"a":false,"l":74,"u":81},{"a":true,"l":230,"u":795},{"a":false,"l":9,"u":179},{"a":false,"l":457,"u":929},{"a":false,"l":49,"u":446},{"a":false,"l":171,"u":446},{"a":false,"l":96,"u":886},{"a":false,"l":137,"u":546},{"a":false,"l":378,"u":988},{"a":true,"l":418,"u":546},{"a":false,"l":437,"u":445},{"a":true,"l":859,"u":923},{"a":true,"l":204,"u":456},{"a":true,"l":340,"u":553},{"a":true,"l":513,"u":572},{"a":true,"l":275,"u":492},{"a":false,"l":181,"u":471},{"a":true,"l":46,"u":852},{"a":true,"l":321,"u":483},{"a":true,"l":15,"u":505},{"a":true,"l":228,"u":917},{"a":true,"l":140,"u":788},{"a":false,"l":612,"u":798},{"a":false,"l":178,"u":391},{"a":false,"l":144,"u":890},{"a":true,"l":49,"u":265},{"a":true,"l":868,"u":910},{"a":true,"l":347,"u":821},{"a":false,"l":397,"u":542},{"a":true,"l":624,"u":683},{"a":false,"l":116,"u":669},{"a":false,"l":249,"u":868},{"a":false,"l":150,"u":970},{"a":false,"l":159,"u":549},{"a":true,"l":65,"u":767},{"a":true,"l":532,"u":909},{"a":true,"l":430,"u":461},{"a":true,"l":404,"u":589},{"a":false,"l":34,"u":938},{"a":true,"l":420,"u":865},{"a":true,"l":423,"u":642},{"a":false,"l":656,"u":802},{"a":true,"l":213,"u":990},{"a":true,"l":58,"u":964},{"a":true,"l":165,"u":549},{"a":false,"l":135,"u":504},{"a":true,"l":624,"u":750},{"a":true,"l":224,"u":766},{"a":true,"l":283,"u":883},{"a":false,"l":26,"u":102},{"a":true,"l":194,"u":196},{"a":true,"l":95,"u":447},{"a":false,"l":177,"u":761},{"a":true,"l":337,"u":903},{"a":true,"l":130,"u":908},{"a":false,"l":150,"u":905},{"a":true,"l":229,"u":837},{"a":false,"l":160,"u":893},{"a":false,"l":84,"u":784},{"a":false,"l":69,"u":433},{"a":true,"l":527,"u":882},{"a":true,"l":253,"u":907},{"a":true,"l":580,"u":769},{"a":true,"l":605,"u":793},{"a":true,"l":476,"u":914},{"a":true,"l":169,"u":224},{"a":true,"l":266,"u":962},{"a":true,"l":490,"u":817},{"a":true,"l":928,"u":988},{"a":true,"l":34,"u":81},{"a":true,"l":384,"u":510},{"a":false,"l":289,"u":747},{"a":false,"l":680,"u":942},{"a":false,"l":523,"u":652},{"a":false,"l":101,"u":596},{"a":false,"l":645,"u":720},{"a":false,"l":598,"u":620},{"a":true,"l":234,"u":606},{"a":false,"l":82,"u":520},{"a":true,"l":437,"u":925},{"a":true,"l":148,"u":725},{"a":true,"l":47,"u":453},{"a":true,"l":533,"u":560},{"a":false,"l":36,"u":145},{"a":false,"l":170,"u":708},{"a":true,"l":72,"u":881},{"a":false,"l":223,"u":595},{"a":true,"l":741,"u":792},{"a":true,"l":43,"u":819},{"a":false,"l":71,"u":748},{"a":true,"l":18,"u":415},{"a":true,"l":126,"u":849},{"a":true,"l":895,"u":919},{"a":false,"l":641,"u":886},{"a":false,"l":277,"u":415},{"a":true,"l":250,"u":445},{"a":true,"l":27,"u":188},{"a":false,"l":888,"u":938},{"a":false,"l":2,"u":247},{"a":false,"l":539,"u":966},{"a":false,"l":204,"u":610},{"a":true,"l":779,"u":851},{"a":true,"l":366,"u":843},{"a":true,"l":8,"u":735},{"a":true,"l":253,"u":720},{"a":true,"l":514,"u":921},{"a":false,"l":55,"u":207},{"a":false,"l":95,"u":565},{"a":false,"l":540,"u":723},{"a":false,"l":117,"u":419},{"a":true,"l":1,"u":608},{"a":false,"l":312,"u":689},{"a":true,"l":34,"u":344},{"a":false,"l":724,"u":803},{"a":true,"l":484,"u":817},{"a":true,"l":328,"u":933},{"a":true,"l":643,"u":780},{"a":false,"l":866,"u":939},{"a":false,"l":3,"u":664},{"a":true,"l":450,"u":823},{"a":false,"l":714,"u":931},{"a":true,"l":36,"u":570},{"a":false,"l":345,"u":681},{"a":false,"l":74,"u":216},{"a":true,"l":292,"u":443},{"a":true,"l":745,"u":762},{"a":true,"l":649,"u":766},{"a":true,"l":458,"u":549},{"a":false,"l":45,"u":595},{"a":false,"l":256,"u":358},{"a":true,"l":290,"u":457},{"a":true,"l":409,"u":821},{"a":false,"l":550,"u":734},{"a":false,"l":248,"u":389},{"a":true,"l":388,"u":839},{"a":true,"l":56,"u":858},{"a":true,"l":638,"u":849},{"a":false,"l":41,"u":521},{"a":false,"l":252,"u":628},{"a":false,"l":786,"u":931},{"a":false,"l":678,"u":863},{"a":false,"l":300,"u":893},{"a":true,"l":56,"u":291},{"a":true,"l":425,"u":522},{"a":false,"l":197,"u":956},{"a":true,"l":460,"u":606},{"a":false,"l":398,"u":713},{"a":true,"l":325,"u":557},{"a":false,"l":25,"u":28},{"a":true,"l":38,"u":860},{"a":true,"l":198,"u":820},{"a":true,"l":428,"u":718},{"a":false,"l":102,"u":383},{"a":true,"l":52,"u":403},{"a":true,"l":331,"u":394},{"a":true,"l":790,"u":875},{"a":false,"l":215,"u":407},{"a":false,"l":379,"u":704},{"a":true,"l":53,"u":273},{"a":true,"l":520,"u":897},{"a":true,"l":509,"u":693},{"a":false,"l":575,"u":664},{"a":false,"l":143,"u":947},{"a":false,"l":140,"u":517},{"a":false,"l":453,"u":742},{"a":false,"l":408,"u":674},{"a":false,"l":747,"u":975},{"a":false,"l":205,"u":793},{"a":true,"l":396,"u":608},{"a":false,"l":22,"u":814},{"a":false,"l":509,"u":983},{"a":true,"l":26,"u":404},{"a":false,"l":308,"u":395},{"a":true,"l":86,"u":300},{"a":false,"l":123,"u":636},{"a":false,"l":294,"u":658},{"a":true,"l":195,"u":608},{"a":false,"l":281,"u":727},{"a":true,"l":305,"u":918},{"a":false,"l":294,"u":707},{"a":true,"l":76,"u":913},{"a":false,"l":402,"u":745},{"a":true,"l":214,"u":542},{"a":true,"l":141,"u":184},{"a":true,"l":484,"u":813},{"a":false,"l":680,"u":800},{"a":false,"l":69,"u":676},{"a":false,"l":541,"u":599},{"a":true,"l":349,"u":982},{"a":true,"l":237,"u":251},{"a":true,"l":335,"u":744},{"a":true,"l":930,"u":978},{"a":true,"l":510,"u":946},{"a":false,"l":744,"u":748},{"a":false,"l":193,"u":373},{"a":false,"l":313,"u":878},{"a":true,"l":32,"u":554},{"a":true,"l":66,"u":197},{"a":false,"l":365,"u":507},{"a":false,"l":20,"u":422},{"a":false,"l":51,"u":320},{"a":false,"l":476,"u":577},{"a":true,"l":824,"u":856},{"a":false,"l":262,"u":485},{"a":false,"l":21,"u":439},{"a":false,"l":720,"u":772},{"a":true,"l":102,"u":770},{"a":true,"l":439,"u":649},{"a":false,"l":12,"u":525},{"a":false,"l":210,"u":514},{"a":true,"l":702,"u":850},{"a":false,"l":445,"u":836},{"a":false,"l":233,"u":948},{"a":true,"l":103,"u":381},{"a":false,"l":471,"u":693},{"a":true,"l":545,"u":815},{"a":false,"l":61,"u":883},{"a":true,"l":601,"u":994},{"a":true,"l":653,"u":693},{"a":true,"l":136,"u":292},{"a":true,"l":233,"u":817},{"a":true,"l":237,"u":372},{"a":false,"l":278,"u":524},{"a":true,"l":2,"u":928},{"a":false,"l":334,"u":654},{"a":true,"l":255,"u":774},{"a":true,"l":135,"u":271},{"a":true,"l":433,"u":734},{"a":true,"l":318,"u":967},{"a":true,"l":371,"u":842},{"a":false,"l":823,"u":981},{"a":false,"l":155,"u":492},{"a":false,"l":449,"u":899},{"a":true,"l":789,"u":817},{"a":true,"l":239,"u":836},{"a":true,"l":7,"u":438},{"a":false,"l":502,"u":920},{"a":false,"l":628,"u":828},{"a":true,"l":195,"u":334},{"a":true,"l":618,"u":656},{"a":true,"l":414,"u":485},{"a":false,"l":861,"u":955},{"a":true,"l":192,"u":653},{"a":false,"l":382,"u":931},{"a":false,"l":322,"u":868},{"a":false,"l":537,"u":828},{"a":false,"l":11,"u":758},{"a":false,"l":215,"u":782},{"a":true,"l":406,"u":708},{"a":true,"l":448,"u":919},{"a":true,"l":406,"u":685},{"a":false,"l":631,"u":702},{"a":false,"l":332,"u":982},{"a":true,"l":477,"u":731},{"a":true,"l":677,"u":881},{"a":true,"l":879,"u":902},{"a":true,"l":885,"u":910},{"a":true,"l":61,"u":226},{"a":false,"l":839,"u":890},{"a":false,"l":361,"u":543},{"a":true,"l":348,"u":349},{"a":false,"l":19,"u":182},{"a":true,"l":172,"u":611},{"a":true,"l":717,"u":848},{"a":true,"l":208,"u":303},{"a":true,"l":248,"u":604},{"a":false,"l":342,"u":684},{"a":false,"l":351,"u":385},{"a":true,"l":83,"u":630},{"a":false,"l":610,"u":627},{"a":false,"l":636,"u":994},{"a":true,"l":287,"u":914},{"a":false,"l":479,"u":889},{"a":false,"l":610,"u":996},{"a":false,"l":253,"u":466},{"a":true,"l":341,"u":464},{"a":true,"l":521,"u":798},{"a":true,"l":309,"u":469},{"a":false,"l":18,"u":423},{"a":true,"l":681,"u":796},{"a":true,"l":683,"u":831},{"a":true,"l":490,"u":507},{"a":false,"l":208,"u":706},{"a":false,"l":339,"u":502},{"a":true,"l":383,"u":603},{"a":true,"l":231,"u":409},{"a":true,"l":265,"u":992},{"a":false,"l":214,"u":745},{"a":true,"l":43,"u":69},{"a":true,"l":105,"u":757},{"a":true,"l":720,"u":979},{"a":true,"l":337,"u":338},{"a":false,"l":29,"u":557},{"a":false,"l":322,"u":920},{"a":true,"l":126,"u":244},{"a":false,"l":730,"u":857},{"a":false,"l":80,"u":925},{"a":true,"l":493,"u":942},{"a":true,"l":268,"u":399},{"a":true,"l":95,"u":570},{"a":false,"l":15,"u":955},{"a":false,"l":29,"u":158},{"a":true,"l":490,"u":763},{"a":false,"l":702,"u":838},{"a":false,"l":374,"u":930},{"a":false,"l":455,"u":589},{"a":true,"l":322,"u":907},{"a":false,"l":421,"u":905},{"a":true,"l":782,"u":903},{"a":false,"l":266,"u":519},{"a":true,"l":71,"u":860},{"a":true,"l":376,"u":646},{"a":true,"l":196,"u":497},{"a":true,"l":118,"u":163},{"a":false,"l":680,"u":869},{"a":false,"l":708,"u":989},{"a":true,"l":236,"u":772},{"a":false,"l":669,"u":671},{"a":false,"l":537,"u":781},{"a":true,"l":61,"u":336},{"a":false,"l":316,"u":561},{"a":false,"l":253,"u":419},{"a":false,"l":383,"u":965},{"a":false,"l":662,"u":823},{"a":false,"l":666,"u":881},{"a":false,"l":4,"u":394},{"a":true,"l":128,"u":327},{"a":true,"l":512,"u":715},{"a":false,"l":202,"u":676},{"a":true,"l":99,"u":402},{"a":true,"l":176,"u":177},{"a":true,"l":156,"u":708},{"a":true,"l":54,"u":828},{"a":false,"l":173,"u":793},{"a":true,"l":227,"u":858},{"a":false,"l":513,"u":602},{"a":true,"l":377,"u":600},{"a":false,"l":544,"u":736},{"a":false,"l":198,"u":996},{"a":false,"l":399,"u":870},{"a":true,"l":398,"u":556},{"a":true,"l":643,"u":908},{"a":true,"l":9,"u":848},{"a":false,"l":725,"u":843},{"a":true,"l":109,"u":626},{"a":true,"l":200,"u":870},{"a":false,"l":795,"u":918},{"a":false,"l":245,"u":691},{"a":false,"l":394,"u":755},{"a":true,"l":145,"u":778},{"a":true,"l":317,"u":619},{"a":true,"l":441,"u":736},{"a":false,"l":92,"u":280},{"a":true,"l":541,"u":727},{"a":true,"l":348,"u":409},{"a":true,"l":567,"u":736},{"a":false,"l":38,"u":511},{"a":true,"l":135,"u":472},{"a":true,"l":190,"u":426},{"a":false,"l":455,"u":693},{"a":true,"l":470,"u":680},{"a":false,"l":255,"u":378},{"a":false,"l":522,"u":594},{"a":true,"l":289,"u":424},{"a":false,"l":230,"u":574},{"a":true,"l":830,"u":909},{"a":true,"l":388,"u":866},{"a":true,"l":837,"u":852},{"a":false,"l":6,"u":118},{"a":false,"l":225,"u":963},{"a":false,"l":578,"u":596},{"a":false,"l":129,"u":151},{"a":true,"l":9,"u":440},{"a":true,"l":52,"u":630},{"a":false,"l":106,"u":189},{"a":true,"l":558,"u":944},{"a":false,"l":395,"u":902},{"a":false,"l":71,"u":216},{"a":true,"l":348,"u":639},{"a":false,"l":191,"u":782},{"a":false,"l":358,"u":826},{"a":false,"l":151,"u":348},{"a":false,"l":520,"u":562},{"a":false,"l":703,"u":826},{"a":false,"l":136,"u":676},{"a":true,"l":873,"u":936},{"a":true,"l":589,"u":609},{"a":true,"l":414,"u":486},{"a":false,"l":171,"u":955},{"a":false,"l":134,"u":149},{"a":true,"l":364,"u":951},{"a":false,"l":248,"u":577},{"a":true,"l":188,"u":902},{"a":false,"l":53,"u":875},{"a":true,"l":538,"u":896},{"a":false,"l":622,"u":718},{"a":true,"l":157,"u":518},{"a":true,"l":274,"u":581},{"a":false,"l":97,"u":781},{"a":true,"l":306,"u":343},{"a":false,"l":44,"u":530},{"a":false,"l":306,"u":797},{"a":false,"l":220,"u":707},{"a":true,"l":346,"u":924},{"a":true,"l":436,"u":823},{"a":false,"l":387,"u":969},{"a":true,"l":128,"u":421},{"a":true,"l":38,"u":792},{"a":true,"l":284,"u":549},{"a":false,"l":334,"u":868},{"a":true,"l":572,"u":695},{"a":false,"l":476,"u":826},{"a":true,"l":486,"u":836},{"a":true,"l":244,"u":974},{"a":false,"l":480,"u":987},{"a":false,"l":452,"u":788},{"a":true,"l":611,"u":868},{"a":true,"l":52,"u":380},{"a":false,"l":496,"u":800},{"a":true,"l":586,"u":802},{"a":true,"l":84,"u":264},{"a":false,"l":206,"u":922},{"a":false,"l":616,"u":781},{"a":false,"l":834,"u":876},{"a":true,"l":280,"u":410},{"a":false,"l":424,"u":592},{"a":true,"l":252,"u":330},{"a":true,"l":601,"u":627},{"a":false,"l":88,"u":599},{"a":true,"l":244,"u":662},{"a":true,"l":162,"u":300},{"a":false,"l":48,"u":285},{"a":false,"l":425,"u":731},{"a":false,"l":235,"u":847},{"a":false,"l":148,"u":433},{"a":false,"l":264,"u":947},{"a":true,"l":163,"u":518},{"a":false,"l":493,"u":943},{"a":false,"l":793,"u":959},{"a":false,"l":215,"u":352},{"a":false,"l":161,"u":412},{"a":true,"l":35,"u":777},{"a":false,"l":242,"u":587},{"a":true,"l":309,"u":386},{"a":false,"l":453,"u":767},{"a":true,"l":73,"u":755},{"a":false,"l":387,"u":751},{"a":true,"l":161,"u":538},{"a":false,"l":122,"u":428},{"a":true,"l":482,"u":624},{"a":false,"l":704,"u":726},{"a":false,"l":89,"u":716},{"a":false,"l":431,"u":705},{"a":false,"l":22,"u":527},{"a":false,"l":663,"u":743},{"a":true,"l":41,"u":854},{"a":true,"l":222,"u":719},{"a":true,"l":3,"u":253},{"a":true,"l":204,"u":989},{"a":true,"l":23,"u":319},{"a":false,"l":554,"u":871},{"a":false,"l":769,"u":835},{"a":false,"l":588,"u":732},{"a":true,"l":179,"u":313},{"a":true,"l":761,"u":788},{"a":false,"l":347,"u":789},{"a":false,"l":48,"u":844},{"a":true,"l":259,"u":681},{"a":true,"l":443,"u":793},{"a":true,"l":496,"u":970},{"a":false,"l":239,"u":389},{"a":false,"l":375,"u":887},{"a":false,"l":188,"u":887},{"a":false,"l":632,"u":747},{"a":false,"l":267,"u":931},{"a":false,"l":337,"u":891},{"a":false,"l":58,"u":280},{"a":false,"l":121,"u":848},{"a":false,"l":490,"u":663},{"a":true,"l":497,"u":591},{"a":false,"l":227,"u":422},{"a":true,"l":79,"u":612},{"a":true,"l":680,"u":912},{"a":false,"l":326,"u":799},{"a":true,"l":151,"u":576},{"a":false,"l":214,"u":436},{"a":true,"l":223,"u":397},{"a":false,"l":144,"u":906},{"a":true,"l":17,"u":878},{"a":true,"l":372,"u":754},{"a":true,"l":159,"u":224},{"a":false,"l":114,"u":494},{"a":false,"l":507,"u":554},{"a":true,"l":73,"u":225},{"a":false,"l":190,"u":445},{"a":false,"l":54,"u":367},{"a":true,"l":448,"u":577},{"a":true,"l":203,"u":947},{"a":false,"l":346,"u":416},{"a":true,"l":573,"u":980},{"a":true,"l":49,"u":889},{"a":false,"l":353,"u":659},{"a":false,"l":305,"u":931},{"a":true,"l":200,"u":213},{"a":false,"l":52,"u":536},{"a":false,"l":144,"u":501},{"a":false,"l":303,"u":567},{"a":false,"l":460,"u":510},{"a":true,"l":672,"u":716},{"a":true,"l":236,"u":273},{"a":false,"l":944,"u":979},{"a":false,"l":508,"u":797},{"a":true,"l":263,"u":278},{"a":true,"l":179,"u":635},{"a":false,"l":58,"u":955},{"a":true,"l":614,"u":633},{"a":true,"l":244,"u":722},{"a":false,"l":267,"u":981},{"a":false,"l":328,"u":806},{"a":false,"l":363,"u":456},{"a":true,"l":4,"u":411},{"a":true,"l":105,"u":747},{"a":true,"l":646,"u":942},{"a":false,"l":57,"u":170},{"a":false,"l":499,"u":623},{"a":true,"l":136,"u":566},{"a":false,"l":61,"u":429},{"a":false,"l":591,"u":709},{"a":true,"l":339,"u":779},{"a":true,"l":759,"u":771},{"a":false,"l":518,"u":963},{"a":true,"l":426,"u":533},{"a":true,"l":164,"u":844},{"a":true,"l":251,"u":682},{"a":true,"l":296,"u":772},{"a":false,"l":624,"u":939},{"a":true,"l":743,"u":905},{"a":false,"l":744,"u":760},{"a":false,"l":295,"u":715},{"a":true,"l":467,"u":849},{"a":false,"l":71,"u":474},{"a":true,"l":239,"u":300},{"a":false,"l":110,"u":523},{"a":true,"l":580,"u":797},{"a":true,"l":42,"u":359},{"a":true,"l":212,"u":244},{"a":true,"l":563,"u":794},{"a":false,"l":27,"u":601},{"a":true,"l":812,"u":897},{"a":true,"l":230,"u":547},{"a":true,"l":510,"u":999},{"a":false,"l":423,"u":860},{"a":false,"l":655,"u":958},{"a":true,"l":638,"u":928},{"a":true,"l":436,"u":597},{"a":false,"l":554,"u":832},{"a":false,"l":152,"u":614},{"a":false,"l":794,"u":818},{"a":true,"l":176,"u":717},{"a":false,"l":254,"u":571},{"a":true,"l":118,"u":171},{"a":true,"l":84,"u":183},{"a":true,"l":187,"u":786},{"a":false,"l":485,"u":665},{"a":true,"l":593,"u":657},{"a":false,"l":71,"u":712},{"a":false,"l":129,"u":939},{"a":false,"l":648,"u":940},{"a":true,"l":433,"u":692},{"a":true,"l":53,"u":98},{"a":false,"l":314,"u":694},{"a":true,"l":295,"u":390},{"a":true,"l":631,"u":703},{"a":true,"l":196,"u":991},{"a":false,"l":188,"u":381},{"a":false,"l":213,"u":559},{"a":false,"l":18,"u":580},{"a":false,"l":529,"u":580},{"a":true,"l":507,"u":760},{"a":true,"l":774,"u":806},{"a":false,"l":390,"u":810},{"a":false,"l":675,"u":700},{"a":true,"l":203,"u":913},{"a":true,"l":31,"u":806},{"a":true,"l":62,"u":424},{"a":false,"l":24,"u":475},{"a":false,"l":345,"u":384},{"a":true,"l":625,"u":910},{"a":false,"l":284,"u":995},{"a":true,"l":158,"u":494},{"a":true,"l":17,"u":847},{"a":false,"l":235,"u":461},{"a":true,"l":287,"u":509},{"a":false,"l":403,"u":841},{"a":true,"l":498,"u":907},{"a":true,"l":20,"u":478},{"a":true,"l":153,"u":231},{"a":true,"l":235,"u":276},{"a":false,"l":346,"u":566},{"a":false,"l":26,"u":756},{"a":false,"l":371,"u":767},{"a":true,"l":57,"u":119},{"a":false,"l":169,"u":716},{"a":false,"l":14,"u":153},{"a":true,"l":649,"u":727},{"a":true,"l":348,"u":511},{"a":false,"l":356,"u":459},{"a":false,"l":473,"u":877},{"a":true,"l":443,"u":487},{"a":false,"l":565,"u":628},{"a":true,"l":180,"u":492},{"a":false,"l":327,"u":979},{"a":false,"l":433,"u":995},{"a":false,"l":694,"u":803},{"a":false,"l":146,"u":903},{"a":false,"l":315,"u":998},{"a":false,"l":686,"u":764},{"a":true,"l":160,"u":938},{"a":true,"l":491,"u":817},{"a":false,"l":123,"u":225},{"a":false,"l":220,"u":970},{"a":true,"l":186,"u":475},{"a":true,"l":237,"u":317},{"a":false,"l":482,"u":609},{"a":false,"l":402,"u":504},{"a":false,"l":183,"u":250},{"a":true,"l":471,"u":685},{"a":true,"l":576,"u":795},{"a":false,"l":422,"u":530},{"a":false,"l":159,"u":284},{"a":false,"l":858,"u":864},{"a":true,"l":85,"u":900},{"a":true,"l":99,"u":496},{"a":true,"l":348,"u":802},{"a":true,"l":313,"u":540},{"a":true,"l":235,"u":604},{"a":false,"l":99,"u":845},{"a":false,"l":99,"u":983},{"a":true,"l":810,"u":855},{"a":false,"l":105,"u":624},{"a":false,"l":728,"u":974},{"a":false,"l":18,"u":537},{"a":true,"l":69,"u":302},{"a":true,"l":3,"u":320},{"a":true,"l":477,"u":698},{"a":false,"l":213,"u":826},{"a":true,"l":316,"u":929},{"a":false,"l":28,"u":922},{"a":true,"l":22,"u":422},{"a":false,"l":136,"u":725},{"a":true,"l":1,"u":885},{"a":true,"l":40,"u":343},{"a":true,"l":801,"u":983},{"a":false,"l":298,"u":539},{"a":true,"l":114,"u":653},{"a":false,"l":101,"u":268}] diff --git a/submodules/Postbox/PostboxTests/HoleOperationsVector2.json b/submodules/Postbox/PostboxTests/HoleOperationsVector2.json deleted file mode 100644 index 515b602976..0000000000 --- a/submodules/Postbox/PostboxTests/HoleOperationsVector2.json +++ /dev/null @@ -1 +0,0 @@ -[{"u":300,"l":278,"s":1,"a":false},{"u":455,"l":418,"s":1,"a":false},{"u":505,"l":64,"s":0,"a":false},{"u":578,"l":106,"s":1,"a":true},{"u":603,"l":211,"s":1,"a":false},{"u":851,"l":562,"s":1,"a":true},{"u":666,"l":338,"s":0,"a":true},{"u":212,"l":198,"s":0,"a":true},{"u":757,"l":336,"s":1,"a":false},{"u":586,"l":130,"s":0,"a":false},{"u":620,"l":461,"s":0,"a":false},{"u":839,"l":802,"s":1,"a":true},{"u":649,"l":558,"s":1,"a":true},{"u":578,"l":261,"s":1,"a":true},{"u":323,"l":208,"s":1,"a":true},{"u":540,"l":443,"s":1,"a":true},{"u":810,"l":676,"s":1,"a":true},{"u":771,"l":246,"s":1,"a":false},{"u":517,"l":249,"s":1,"a":false},{"u":411,"l":323,"s":1,"a":false},{"u":543,"l":229,"s":1,"a":false},{"u":371,"l":60,"s":1,"a":true},{"u":953,"l":305,"s":1,"a":false},{"u":936,"l":629,"s":1,"a":true},{"u":595,"l":312,"s":1,"a":false},{"u":764,"l":198,"s":0,"a":false},{"u":560,"l":478,"s":0,"a":true},{"u":694,"l":378,"s":1,"a":true},{"u":398,"l":131,"s":1,"a":true},{"u":357,"l":118,"s":0,"a":true},{"u":509,"l":72,"s":0,"a":true},{"u":896,"l":69,"s":1,"a":true},{"u":467,"l":236,"s":0,"a":true},{"u":443,"l":308,"s":1,"a":false},{"u":708,"l":224,"s":1,"a":true},{"u":842,"l":749,"s":1,"a":false},{"u":461,"l":177,"s":1,"a":false},{"u":950,"l":945,"s":1,"a":true},{"u":528,"l":8,"s":1,"a":true},{"u":639,"l":491,"s":0,"a":true},{"u":33,"l":29,"s":0,"a":true},{"u":544,"l":7,"s":1,"a":false},{"u":854,"l":410,"s":1,"a":true},{"u":683,"l":468,"s":1,"a":false},{"u":990,"l":198,"s":1,"a":true},{"u":878,"l":751,"s":0,"a":false},{"u":651,"l":301,"s":1,"a":true},{"u":862,"l":596,"s":0,"a":true},{"u":309,"l":36,"s":0,"a":false},{"u":854,"l":626,"s":0,"a":false},{"u":488,"l":402,"s":0,"a":false},{"u":664,"l":569,"s":1,"a":true},{"u":344,"l":315,"s":1,"a":false},{"u":997,"l":670,"s":1,"a":true},{"u":916,"l":181,"s":0,"a":false},{"u":495,"l":390,"s":0,"a":false},{"u":584,"l":14,"s":1,"a":false},{"u":914,"l":506,"s":0,"a":false},{"u":640,"l":237,"s":0,"a":true},{"u":774,"l":346,"s":0,"a":false},{"u":940,"l":764,"s":1,"a":false},{"u":910,"l":605,"s":1,"a":false},{"u":826,"l":728,"s":0,"a":true},{"u":404,"l":391,"s":0,"a":false},{"u":465,"l":108,"s":1,"a":false},{"u":374,"l":173,"s":0,"a":true},{"u":541,"l":361,"s":1,"a":false},{"u":656,"l":121,"s":1,"a":true},{"u":761,"l":321,"s":0,"a":true},{"u":564,"l":522,"s":0,"a":true},{"u":703,"l":409,"s":1,"a":false},{"u":991,"l":399,"s":1,"a":true},{"u":757,"l":317,"s":1,"a":true},{"u":668,"l":239,"s":1,"a":true},{"u":237,"l":73,"s":1,"a":true},{"u":856,"l":604,"s":0,"a":true},{"u":727,"l":350,"s":1,"a":false},{"u":394,"l":201,"s":0,"a":true},{"u":763,"l":241,"s":0,"a":true},{"u":713,"l":22,"s":0,"a":false},{"u":522,"l":187,"s":1,"a":false},{"u":942,"l":186,"s":1,"a":false},{"u":654,"l":612,"s":0,"a":true},{"u":916,"l":115,"s":1,"a":true},{"u":459,"l":299,"s":0,"a":false},{"u":437,"l":360,"s":1,"a":false},{"u":993,"l":917,"s":1,"a":true},{"u":555,"l":148,"s":0,"a":true},{"u":953,"l":902,"s":0,"a":true},{"u":652,"l":9,"s":0,"a":true},{"u":764,"l":696,"s":0,"a":false},{"u":475,"l":99,"s":0,"a":false},{"u":720,"l":269,"s":0,"a":false},{"u":361,"l":240,"s":0,"a":true},{"u":911,"l":78,"s":0,"a":false},{"u":305,"l":82,"s":1,"a":false},{"u":855,"l":694,"s":0,"a":false},{"u":744,"l":672,"s":1,"a":true},{"u":850,"l":694,"s":1,"a":true},{"u":991,"l":208,"s":1,"a":false},{"u":309,"l":104,"s":1,"a":false},{"u":330,"l":4,"s":0,"a":true},{"u":750,"l":142,"s":1,"a":true},{"u":560,"l":154,"s":0,"a":true},{"u":359,"l":320,"s":0,"a":true},{"u":992,"l":240,"s":1,"a":true},{"u":364,"l":338,"s":0,"a":true},{"u":774,"l":689,"s":0,"a":false},{"u":218,"l":39,"s":1,"a":false},{"u":857,"l":822,"s":0,"a":true},{"u":877,"l":16,"s":0,"a":true},{"u":600,"l":511,"s":0,"a":false},{"u":946,"l":568,"s":0,"a":true},{"u":449,"l":96,"s":0,"a":false},{"u":304,"l":34,"s":1,"a":false},{"u":739,"l":394,"s":1,"a":false},{"u":880,"l":409,"s":1,"a":false},{"u":747,"l":564,"s":1,"a":true},{"u":501,"l":380,"s":1,"a":true},{"u":225,"l":207,"s":1,"a":false},{"u":363,"l":236,"s":0,"a":false},{"u":935,"l":876,"s":0,"a":false},{"u":545,"l":20,"s":0,"a":false},{"u":431,"l":189,"s":0,"a":false},{"u":934,"l":56,"s":1,"a":true},{"u":75,"l":35,"s":0,"a":true},{"u":635,"l":533,"s":1,"a":false},{"u":350,"l":109,"s":1,"a":false},{"u":766,"l":654,"s":1,"a":false},{"u":695,"l":1,"s":0,"a":false},{"u":855,"l":234,"s":1,"a":false},{"u":755,"l":271,"s":1,"a":false},{"u":831,"l":98,"s":1,"a":true},{"u":807,"l":311,"s":0,"a":true},{"u":923,"l":733,"s":1,"a":false},{"u":669,"l":352,"s":0,"a":true},{"u":989,"l":492,"s":0,"a":true},{"u":537,"l":232,"s":1,"a":false},{"u":898,"l":689,"s":0,"a":false},{"u":737,"l":117,"s":0,"a":false},{"u":510,"l":465,"s":1,"a":true},{"u":184,"l":117,"s":1,"a":false},{"u":813,"l":452,"s":0,"a":true},{"u":951,"l":517,"s":0,"a":false},{"u":862,"l":327,"s":1,"a":true},{"u":677,"l":215,"s":1,"a":false},{"u":757,"l":244,"s":0,"a":true},{"u":888,"l":341,"s":1,"a":true},{"u":967,"l":632,"s":0,"a":true},{"u":169,"l":89,"s":0,"a":false},{"u":330,"l":92,"s":0,"a":true},{"u":853,"l":447,"s":1,"a":false},{"u":361,"l":265,"s":1,"a":false},{"u":756,"l":247,"s":1,"a":false},{"u":964,"l":333,"s":0,"a":false},{"u":885,"l":624,"s":1,"a":false},{"u":902,"l":770,"s":1,"a":true},{"u":696,"l":692,"s":1,"a":false},{"u":946,"l":126,"s":1,"a":false},{"u":941,"l":500,"s":1,"a":true},{"u":543,"l":65,"s":1,"a":true},{"u":648,"l":464,"s":1,"a":false},{"u":824,"l":192,"s":0,"a":true},{"u":356,"l":108,"s":0,"a":false},{"u":649,"l":264,"s":1,"a":false},{"u":612,"l":131,"s":1,"a":false},{"u":979,"l":817,"s":0,"a":true},{"u":618,"l":261,"s":1,"a":false},{"u":656,"l":9,"s":0,"a":false},{"u":182,"l":24,"s":1,"a":false},{"u":750,"l":129,"s":1,"a":true},{"u":593,"l":482,"s":1,"a":false},{"u":952,"l":162,"s":0,"a":true},{"u":532,"l":255,"s":0,"a":false},{"u":843,"l":474,"s":1,"a":true},{"u":839,"l":354,"s":1,"a":false},{"u":609,"l":461,"s":0,"a":false},{"u":345,"l":225,"s":0,"a":false},{"u":865,"l":787,"s":0,"a":true},{"u":348,"l":327,"s":1,"a":true},{"u":985,"l":99,"s":1,"a":false},{"u":626,"l":106,"s":0,"a":false},{"u":376,"l":53,"s":1,"a":true},{"u":872,"l":320,"s":0,"a":true},{"u":629,"l":448,"s":0,"a":true},{"u":605,"l":208,"s":1,"a":false},{"u":941,"l":75,"s":1,"a":true},{"u":202,"l":148,"s":0,"a":true},{"u":514,"l":261,"s":0,"a":false},{"u":874,"l":847,"s":1,"a":false},{"u":580,"l":314,"s":1,"a":true},{"u":666,"l":151,"s":0,"a":true},{"u":850,"l":782,"s":1,"a":true},{"u":558,"l":451,"s":1,"a":true},{"u":913,"l":395,"s":1,"a":true},{"u":113,"l":107,"s":1,"a":false},{"u":937,"l":850,"s":0,"a":false},{"u":643,"l":363,"s":1,"a":true},{"u":489,"l":214,"s":0,"a":false},{"u":797,"l":74,"s":1,"a":false},{"u":986,"l":878,"s":1,"a":false},{"u":297,"l":188,"s":1,"a":true},{"u":411,"l":295,"s":0,"a":false},{"u":206,"l":29,"s":1,"a":false},{"u":960,"l":386,"s":0,"a":true},{"u":849,"l":647,"s":0,"a":false},{"u":876,"l":387,"s":0,"a":true},{"u":820,"l":744,"s":1,"a":true},{"u":779,"l":135,"s":1,"a":true},{"u":574,"l":482,"s":0,"a":true},{"u":962,"l":22,"s":0,"a":false},{"u":799,"l":186,"s":1,"a":true},{"u":577,"l":189,"s":0,"a":false},{"u":948,"l":8,"s":1,"a":false},{"u":713,"l":616,"s":1,"a":true},{"u":775,"l":104,"s":1,"a":false},{"u":644,"l":67,"s":1,"a":true},{"u":871,"l":117,"s":0,"a":false},{"u":498,"l":16,"s":1,"a":true},{"u":748,"l":109,"s":1,"a":true},{"u":773,"l":5,"s":1,"a":true},{"u":805,"l":641,"s":0,"a":false},{"u":714,"l":635,"s":0,"a":false},{"u":922,"l":581,"s":1,"a":true},{"u":558,"l":214,"s":1,"a":false},{"u":482,"l":481,"s":0,"a":false},{"u":442,"l":262,"s":0,"a":true},{"u":124,"l":122,"s":0,"a":true},{"u":988,"l":297,"s":1,"a":false},{"u":685,"l":336,"s":0,"a":true},{"u":928,"l":316,"s":0,"a":true},{"u":274,"l":48,"s":0,"a":true},{"u":944,"l":54,"s":1,"a":false},{"u":773,"l":357,"s":0,"a":true},{"u":489,"l":47,"s":0,"a":false},{"u":427,"l":95,"s":1,"a":false},{"u":553,"l":463,"s":1,"a":false},{"u":356,"l":188,"s":0,"a":false},{"u":764,"l":459,"s":1,"a":true},{"u":749,"l":501,"s":1,"a":false},{"u":47,"l":1,"s":1,"a":true},{"u":817,"l":154,"s":1,"a":false},{"u":810,"l":176,"s":1,"a":false},{"u":689,"l":651,"s":1,"a":false},{"u":783,"l":219,"s":0,"a":false},{"u":886,"l":40,"s":1,"a":true},{"u":739,"l":718,"s":1,"a":false},{"u":633,"l":546,"s":0,"a":false},{"u":343,"l":308,"s":1,"a":false},{"u":924,"l":508,"s":1,"a":false},{"u":632,"l":113,"s":1,"a":false},{"u":307,"l":68,"s":1,"a":false},{"u":764,"l":94,"s":1,"a":true},{"u":202,"l":21,"s":0,"a":false},{"u":767,"l":29,"s":0,"a":false},{"u":978,"l":970,"s":0,"a":true},{"u":905,"l":491,"s":0,"a":true},{"u":456,"l":122,"s":1,"a":true},{"u":278,"l":88,"s":0,"a":false},{"u":820,"l":652,"s":0,"a":true},{"u":693,"l":602,"s":0,"a":true},{"u":277,"l":18,"s":1,"a":true},{"u":291,"l":201,"s":0,"a":false},{"u":850,"l":424,"s":1,"a":false},{"u":652,"l":358,"s":1,"a":true},{"u":958,"l":507,"s":1,"a":true},{"u":406,"l":365,"s":0,"a":true},{"u":882,"l":508,"s":0,"a":true},{"u":359,"l":348,"s":1,"a":false},{"u":796,"l":673,"s":0,"a":false},{"u":991,"l":21,"s":1,"a":false},{"u":192,"l":22,"s":0,"a":true},{"u":543,"l":79,"s":1,"a":false},{"u":725,"l":432,"s":0,"a":true},{"u":217,"l":50,"s":0,"a":false},{"u":125,"l":70,"s":1,"a":false},{"u":760,"l":757,"s":1,"a":true},{"u":864,"l":642,"s":0,"a":true},{"u":750,"l":8,"s":1,"a":true},{"u":646,"l":564,"s":1,"a":false},{"u":751,"l":506,"s":1,"a":true},{"u":924,"l":412,"s":1,"a":false},{"u":825,"l":655,"s":0,"a":false},{"u":338,"l":157,"s":1,"a":false},{"u":869,"l":109,"s":1,"a":true},{"u":454,"l":345,"s":0,"a":false},{"u":991,"l":327,"s":1,"a":true},{"u":859,"l":747,"s":0,"a":false},{"u":923,"l":750,"s":0,"a":true},{"u":917,"l":661,"s":0,"a":true},{"u":663,"l":10,"s":1,"a":true},{"u":485,"l":224,"s":1,"a":false},{"u":748,"l":738,"s":1,"a":false},{"u":518,"l":264,"s":1,"a":true},{"u":735,"l":505,"s":0,"a":true},{"u":542,"l":94,"s":0,"a":false},{"u":576,"l":63,"s":1,"a":true},{"u":778,"l":165,"s":0,"a":true},{"u":943,"l":24,"s":0,"a":true},{"u":829,"l":130,"s":1,"a":true},{"u":862,"l":569,"s":1,"a":true},{"u":546,"l":41,"s":1,"a":true},{"u":320,"l":221,"s":1,"a":false},{"u":469,"l":235,"s":0,"a":false},{"u":495,"l":354,"s":0,"a":true},{"u":537,"l":520,"s":1,"a":true},{"u":850,"l":307,"s":1,"a":false},{"u":817,"l":31,"s":1,"a":true},{"u":728,"l":698,"s":0,"a":true},{"u":622,"l":301,"s":0,"a":true},{"u":919,"l":592,"s":0,"a":false},{"u":574,"l":374,"s":0,"a":true},{"u":445,"l":405,"s":1,"a":false},{"u":623,"l":372,"s":0,"a":true},{"u":943,"l":196,"s":1,"a":true},{"u":391,"l":149,"s":0,"a":false},{"u":766,"l":77,"s":1,"a":true},{"u":610,"l":522,"s":0,"a":false},{"u":984,"l":635,"s":0,"a":true},{"u":781,"l":571,"s":1,"a":true},{"u":975,"l":54,"s":0,"a":true},{"u":986,"l":908,"s":1,"a":true},{"u":998,"l":863,"s":0,"a":true},{"u":991,"l":24,"s":1,"a":true},{"u":979,"l":684,"s":0,"a":false},{"u":899,"l":643,"s":0,"a":true},{"u":887,"l":202,"s":0,"a":true},{"u":599,"l":152,"s":1,"a":true},{"u":922,"l":253,"s":0,"a":true},{"u":644,"l":79,"s":0,"a":true},{"u":252,"l":21,"s":0,"a":false},{"u":235,"l":67,"s":0,"a":false},{"u":7,"l":3,"s":0,"a":false},{"u":406,"l":36,"s":1,"a":false},{"u":907,"l":86,"s":0,"a":true},{"u":733,"l":726,"s":0,"a":false},{"u":691,"l":216,"s":0,"a":true},{"u":579,"l":517,"s":0,"a":true},{"u":837,"l":502,"s":0,"a":true},{"u":913,"l":690,"s":1,"a":true},{"u":845,"l":100,"s":0,"a":true},{"u":401,"l":343,"s":1,"a":true},{"u":972,"l":176,"s":0,"a":true},{"u":595,"l":147,"s":0,"a":false},{"u":863,"l":74,"s":0,"a":true},{"u":441,"l":64,"s":0,"a":true},{"u":759,"l":296,"s":1,"a":true},{"u":602,"l":137,"s":0,"a":false},{"u":951,"l":458,"s":1,"a":true},{"u":601,"l":19,"s":0,"a":true},{"u":648,"l":187,"s":1,"a":true},{"u":337,"l":254,"s":0,"a":false},{"u":914,"l":281,"s":0,"a":false},{"u":963,"l":670,"s":0,"a":false},{"u":446,"l":140,"s":1,"a":false},{"u":610,"l":520,"s":1,"a":false},{"u":806,"l":314,"s":1,"a":false},{"u":473,"l":396,"s":0,"a":true},{"u":957,"l":352,"s":1,"a":false},{"u":671,"l":290,"s":0,"a":false},{"u":315,"l":23,"s":1,"a":false},{"u":782,"l":236,"s":1,"a":true},{"u":701,"l":296,"s":1,"a":true},{"u":326,"l":87,"s":0,"a":true},{"u":660,"l":141,"s":1,"a":false},{"u":937,"l":344,"s":1,"a":true},{"u":888,"l":127,"s":0,"a":false},{"u":521,"l":349,"s":0,"a":true},{"u":856,"l":201,"s":0,"a":false},{"u":504,"l":183,"s":1,"a":true},{"u":83,"l":1,"s":1,"a":false},{"u":366,"l":162,"s":0,"a":false},{"u":870,"l":440,"s":0,"a":true},{"u":760,"l":51,"s":1,"a":true},{"u":459,"l":357,"s":1,"a":false},{"u":350,"l":292,"s":0,"a":false},{"u":436,"l":236,"s":1,"a":false},{"u":527,"l":504,"s":1,"a":false},{"u":739,"l":70,"s":1,"a":false},{"u":277,"l":238,"s":0,"a":false},{"u":572,"l":331,"s":1,"a":false},{"u":728,"l":552,"s":0,"a":false},{"u":956,"l":351,"s":0,"a":false},{"u":102,"l":66,"s":0,"a":true},{"u":805,"l":29,"s":0,"a":true},{"u":822,"l":325,"s":0,"a":false},{"u":269,"l":228,"s":0,"a":true},{"u":926,"l":181,"s":1,"a":true},{"u":208,"l":25,"s":1,"a":false},{"u":909,"l":803,"s":0,"a":false},{"u":669,"l":357,"s":0,"a":true},{"u":612,"l":130,"s":1,"a":false},{"u":731,"l":31,"s":1,"a":true},{"u":811,"l":757,"s":1,"a":false},{"u":864,"l":508,"s":1,"a":true},{"u":423,"l":58,"s":1,"a":false},{"u":513,"l":236,"s":0,"a":false},{"u":308,"l":95,"s":0,"a":true},{"u":509,"l":125,"s":1,"a":true},{"u":520,"l":237,"s":1,"a":true},{"u":648,"l":457,"s":0,"a":true},{"u":724,"l":188,"s":0,"a":false},{"u":695,"l":634,"s":1,"a":true},{"u":678,"l":607,"s":0,"a":false},{"u":494,"l":10,"s":0,"a":false},{"u":542,"l":294,"s":1,"a":true},{"u":930,"l":899,"s":1,"a":true},{"u":895,"l":338,"s":1,"a":false},{"u":941,"l":222,"s":1,"a":true},{"u":794,"l":654,"s":1,"a":true},{"u":523,"l":302,"s":1,"a":true},{"u":632,"l":440,"s":0,"a":false},{"u":243,"l":31,"s":1,"a":false},{"u":763,"l":595,"s":1,"a":false},{"u":822,"l":80,"s":0,"a":true},{"u":859,"l":302,"s":0,"a":false},{"u":684,"l":48,"s":1,"a":false},{"u":569,"l":19,"s":0,"a":false},{"u":999,"l":764,"s":0,"a":true},{"u":703,"l":619,"s":0,"a":false},{"u":910,"l":438,"s":1,"a":true},{"u":520,"l":121,"s":0,"a":true},{"u":629,"l":497,"s":0,"a":true},{"u":340,"l":282,"s":1,"a":true},{"u":20,"l":15,"s":0,"a":true},{"u":709,"l":381,"s":0,"a":false},{"u":202,"l":192,"s":0,"a":true},{"u":782,"l":336,"s":1,"a":true},{"u":389,"l":196,"s":1,"a":false},{"u":600,"l":546,"s":0,"a":true},{"u":731,"l":309,"s":1,"a":true},{"u":465,"l":429,"s":0,"a":true},{"u":512,"l":400,"s":0,"a":false},{"u":388,"l":234,"s":1,"a":false},{"u":883,"l":600,"s":0,"a":true},{"u":469,"l":8,"s":0,"a":true},{"u":954,"l":203,"s":1,"a":true},{"u":891,"l":729,"s":0,"a":true},{"u":902,"l":267,"s":1,"a":false},{"u":380,"l":370,"s":1,"a":true},{"u":755,"l":422,"s":0,"a":false},{"u":885,"l":760,"s":1,"a":false},{"u":832,"l":811,"s":0,"a":false},{"u":126,"l":65,"s":0,"a":false},{"u":456,"l":256,"s":0,"a":true},{"u":772,"l":592,"s":1,"a":true},{"u":550,"l":427,"s":0,"a":false},{"u":492,"l":171,"s":0,"a":true},{"u":665,"l":74,"s":1,"a":false},{"u":556,"l":428,"s":0,"a":false},{"u":278,"l":139,"s":0,"a":true},{"u":833,"l":413,"s":1,"a":true},{"u":97,"l":66,"s":1,"a":false},{"u":712,"l":94,"s":0,"a":false},{"u":791,"l":786,"s":0,"a":true},{"u":877,"l":431,"s":1,"a":false},{"u":505,"l":128,"s":1,"a":true},{"u":473,"l":108,"s":0,"a":false},{"u":637,"l":585,"s":1,"a":true},{"u":861,"l":663,"s":1,"a":false},{"u":801,"l":228,"s":0,"a":true},{"u":816,"l":250,"s":0,"a":false},{"u":880,"l":417,"s":0,"a":false},{"u":524,"l":54,"s":1,"a":true},{"u":898,"l":302,"s":1,"a":false},{"u":357,"l":202,"s":0,"a":false},{"u":877,"l":503,"s":1,"a":true},{"u":161,"l":133,"s":0,"a":false},{"u":443,"l":178,"s":0,"a":false},{"u":288,"l":32,"s":0,"a":true},{"u":833,"l":56,"s":1,"a":false},{"u":492,"l":37,"s":0,"a":true},{"u":497,"l":43,"s":1,"a":true},{"u":884,"l":58,"s":0,"a":true},{"u":742,"l":548,"s":1,"a":true},{"u":972,"l":610,"s":0,"a":true},{"u":868,"l":178,"s":1,"a":false},{"u":504,"l":34,"s":0,"a":false},{"u":826,"l":701,"s":0,"a":false},{"u":967,"l":650,"s":1,"a":true},{"u":756,"l":91,"s":1,"a":true},{"u":822,"l":544,"s":1,"a":false},{"u":966,"l":516,"s":0,"a":false},{"u":144,"l":58,"s":0,"a":true},{"u":523,"l":82,"s":0,"a":true},{"u":725,"l":636,"s":1,"a":true},{"u":707,"l":95,"s":0,"a":true},{"u":896,"l":462,"s":1,"a":true},{"u":564,"l":388,"s":1,"a":true},{"u":880,"l":200,"s":0,"a":false},{"u":786,"l":186,"s":1,"a":false},{"u":765,"l":316,"s":1,"a":false},{"u":976,"l":481,"s":1,"a":true},{"u":960,"l":473,"s":0,"a":true},{"u":431,"l":299,"s":1,"a":true},{"u":274,"l":200,"s":0,"a":false},{"u":522,"l":223,"s":1,"a":false},{"u":816,"l":746,"s":0,"a":false},{"u":292,"l":60,"s":0,"a":true},{"u":275,"l":196,"s":0,"a":true},{"u":747,"l":561,"s":0,"a":false},{"u":942,"l":435,"s":0,"a":true},{"u":462,"l":391,"s":1,"a":true},{"u":837,"l":609,"s":0,"a":false},{"u":727,"l":568,"s":0,"a":false},{"u":599,"l":296,"s":1,"a":false},{"u":960,"l":97,"s":1,"a":true},{"u":930,"l":588,"s":0,"a":false},{"u":846,"l":103,"s":1,"a":true},{"u":779,"l":133,"s":1,"a":true},{"u":796,"l":259,"s":0,"a":true},{"u":993,"l":70,"s":0,"a":true},{"u":733,"l":192,"s":1,"a":false},{"u":661,"l":639,"s":1,"a":true},{"u":732,"l":667,"s":0,"a":true},{"u":551,"l":517,"s":1,"a":true},{"u":817,"l":433,"s":1,"a":false},{"u":593,"l":195,"s":1,"a":true},{"u":175,"l":43,"s":0,"a":true},{"u":735,"l":70,"s":0,"a":true},{"u":795,"l":239,"s":0,"a":true},{"u":949,"l":416,"s":0,"a":true},{"u":775,"l":112,"s":1,"a":false},{"u":230,"l":180,"s":1,"a":false},{"u":809,"l":364,"s":1,"a":true},{"u":445,"l":417,"s":1,"a":false},{"u":957,"l":883,"s":0,"a":false},{"u":896,"l":217,"s":0,"a":true},{"u":756,"l":397,"s":1,"a":false},{"u":338,"l":2,"s":1,"a":false},{"u":381,"l":47,"s":1,"a":true},{"u":233,"l":104,"s":0,"a":false},{"u":634,"l":607,"s":0,"a":false},{"u":823,"l":52,"s":0,"a":true},{"u":368,"l":189,"s":1,"a":false},{"u":699,"l":528,"s":0,"a":false},{"u":366,"l":252,"s":1,"a":true},{"u":859,"l":122,"s":1,"a":true},{"u":628,"l":465,"s":1,"a":false},{"u":698,"l":561,"s":0,"a":true},{"u":747,"l":23,"s":1,"a":true},{"u":611,"l":373,"s":1,"a":true},{"u":643,"l":150,"s":0,"a":true},{"u":834,"l":352,"s":1,"a":false},{"u":382,"l":324,"s":1,"a":false},{"u":616,"l":61,"s":1,"a":false},{"u":586,"l":263,"s":1,"a":true},{"u":535,"l":275,"s":0,"a":true},{"u":541,"l":175,"s":1,"a":true},{"u":890,"l":181,"s":0,"a":false},{"u":781,"l":449,"s":0,"a":true},{"u":405,"l":126,"s":0,"a":false},{"u":799,"l":708,"s":0,"a":true},{"u":524,"l":128,"s":1,"a":false},{"u":715,"l":474,"s":0,"a":true},{"u":719,"l":107,"s":1,"a":true},{"u":634,"l":53,"s":1,"a":false},{"u":599,"l":596,"s":1,"a":false},{"u":484,"l":122,"s":1,"a":true},{"u":747,"l":324,"s":1,"a":true},{"u":761,"l":539,"s":1,"a":false},{"u":970,"l":197,"s":0,"a":true},{"u":902,"l":9,"s":1,"a":true},{"u":763,"l":148,"s":1,"a":false},{"u":287,"l":13,"s":1,"a":true},{"u":589,"l":257,"s":0,"a":true},{"u":489,"l":401,"s":0,"a":false},{"u":354,"l":348,"s":1,"a":true},{"u":689,"l":366,"s":1,"a":true},{"u":691,"l":104,"s":0,"a":false},{"u":836,"l":562,"s":1,"a":false},{"u":814,"l":325,"s":0,"a":false},{"u":434,"l":239,"s":1,"a":false},{"u":256,"l":146,"s":1,"a":true},{"u":762,"l":484,"s":1,"a":false},{"u":932,"l":857,"s":1,"a":false},{"u":169,"l":34,"s":0,"a":true},{"u":671,"l":70,"s":0,"a":false},{"u":254,"l":220,"s":1,"a":true},{"u":724,"l":65,"s":0,"a":false},{"u":918,"l":545,"s":1,"a":false},{"u":410,"l":184,"s":1,"a":false},{"u":472,"l":445,"s":1,"a":false},{"u":196,"l":91,"s":1,"a":true},{"u":88,"l":4,"s":0,"a":false},{"u":663,"l":132,"s":0,"a":false},{"u":877,"l":455,"s":0,"a":true},{"u":770,"l":541,"s":1,"a":false},{"u":952,"l":711,"s":1,"a":true},{"u":643,"l":286,"s":0,"a":true},{"u":896,"l":80,"s":0,"a":false},{"u":469,"l":393,"s":1,"a":false},{"u":781,"l":236,"s":0,"a":false},{"u":121,"l":82,"s":0,"a":false},{"u":574,"l":500,"s":0,"a":true},{"u":594,"l":357,"s":1,"a":false},{"u":931,"l":99,"s":0,"a":true},{"u":461,"l":167,"s":0,"a":false},{"u":565,"l":148,"s":0,"a":true},{"u":343,"l":142,"s":0,"a":false},{"u":907,"l":368,"s":0,"a":true},{"u":868,"l":848,"s":1,"a":true},{"u":980,"l":455,"s":1,"a":true},{"u":177,"l":44,"s":0,"a":false},{"u":446,"l":27,"s":1,"a":false},{"u":709,"l":382,"s":1,"a":true},{"u":746,"l":77,"s":1,"a":false},{"u":833,"l":399,"s":1,"a":false},{"u":944,"l":485,"s":1,"a":false},{"u":507,"l":294,"s":1,"a":false},{"u":513,"l":222,"s":1,"a":false},{"u":518,"l":12,"s":0,"a":false},{"u":531,"l":335,"s":1,"a":false},{"u":741,"l":295,"s":1,"a":false},{"u":767,"l":390,"s":0,"a":false},{"u":269,"l":110,"s":0,"a":false},{"u":594,"l":288,"s":0,"a":true},{"u":739,"l":419,"s":0,"a":true},{"u":504,"l":67,"s":0,"a":true},{"u":899,"l":484,"s":1,"a":false},{"u":398,"l":385,"s":0,"a":true},{"u":487,"l":270,"s":1,"a":false},{"u":803,"l":685,"s":1,"a":true},{"u":399,"l":370,"s":1,"a":true},{"u":399,"l":273,"s":1,"a":true},{"u":972,"l":734,"s":0,"a":true},{"u":568,"l":426,"s":1,"a":true},{"u":654,"l":185,"s":0,"a":true},{"u":891,"l":158,"s":0,"a":false},{"u":463,"l":450,"s":1,"a":true},{"u":793,"l":752,"s":1,"a":false},{"u":639,"l":30,"s":0,"a":true},{"u":511,"l":115,"s":1,"a":true},{"u":562,"l":142,"s":1,"a":false},{"u":446,"l":381,"s":1,"a":true},{"u":666,"l":383,"s":1,"a":true},{"u":503,"l":73,"s":1,"a":true},{"u":979,"l":899,"s":1,"a":true},{"u":779,"l":687,"s":0,"a":true},{"u":689,"l":187,"s":1,"a":true},{"u":604,"l":53,"s":0,"a":true},{"u":152,"l":18,"s":1,"a":false},{"u":530,"l":138,"s":1,"a":false},{"u":864,"l":698,"s":1,"a":false},{"u":176,"l":175,"s":1,"a":true},{"u":747,"l":672,"s":1,"a":true},{"u":777,"l":119,"s":1,"a":false},{"u":934,"l":628,"s":0,"a":true},{"u":670,"l":155,"s":1,"a":true},{"u":845,"l":297,"s":0,"a":true},{"u":867,"l":595,"s":0,"a":false},{"u":710,"l":338,"s":0,"a":true},{"u":836,"l":643,"s":0,"a":true},{"u":800,"l":415,"s":0,"a":true},{"u":987,"l":415,"s":1,"a":true},{"u":476,"l":159,"s":0,"a":false},{"u":690,"l":191,"s":1,"a":true},{"u":699,"l":351,"s":1,"a":false},{"u":961,"l":250,"s":0,"a":true},{"u":929,"l":777,"s":0,"a":true},{"u":964,"l":785,"s":0,"a":true},{"u":903,"l":645,"s":1,"a":false},{"u":669,"l":573,"s":1,"a":true},{"u":556,"l":406,"s":0,"a":false},{"u":734,"l":703,"s":0,"a":true},{"u":654,"l":140,"s":0,"a":false},{"u":334,"l":312,"s":1,"a":false},{"u":752,"l":452,"s":1,"a":true},{"u":860,"l":567,"s":1,"a":false},{"u":964,"l":271,"s":0,"a":false},{"u":419,"l":209,"s":1,"a":true},{"u":798,"l":752,"s":1,"a":true},{"u":390,"l":93,"s":0,"a":false},{"u":952,"l":590,"s":0,"a":true},{"u":952,"l":638,"s":0,"a":true},{"u":949,"l":527,"s":1,"a":true},{"u":303,"l":1,"s":0,"a":false},{"u":720,"l":595,"s":0,"a":true},{"u":599,"l":394,"s":0,"a":true},{"u":882,"l":202,"s":1,"a":true},{"u":102,"l":92,"s":0,"a":false},{"u":839,"l":490,"s":0,"a":true},{"u":744,"l":712,"s":1,"a":true},{"u":847,"l":545,"s":1,"a":true},{"u":916,"l":206,"s":1,"a":true},{"u":120,"l":63,"s":0,"a":false},{"u":931,"l":465,"s":0,"a":true},{"u":791,"l":51,"s":1,"a":true},{"u":976,"l":163,"s":1,"a":true},{"u":854,"l":796,"s":1,"a":false},{"u":456,"l":226,"s":0,"a":false},{"u":547,"l":186,"s":1,"a":true},{"u":859,"l":311,"s":1,"a":false},{"u":578,"l":360,"s":0,"a":true},{"u":970,"l":55,"s":0,"a":true},{"u":985,"l":559,"s":0,"a":true},{"u":232,"l":81,"s":0,"a":false},{"u":801,"l":342,"s":1,"a":true},{"u":924,"l":276,"s":1,"a":false},{"u":727,"l":654,"s":1,"a":true},{"u":728,"l":679,"s":1,"a":false},{"u":558,"l":535,"s":1,"a":false},{"u":890,"l":649,"s":1,"a":false},{"u":477,"l":356,"s":1,"a":true},{"u":848,"l":741,"s":0,"a":false},{"u":887,"l":268,"s":0,"a":false},{"u":392,"l":221,"s":1,"a":false},{"u":525,"l":76,"s":1,"a":false},{"u":802,"l":93,"s":1,"a":false},{"u":976,"l":170,"s":0,"a":false},{"u":729,"l":682,"s":0,"a":true},{"u":818,"l":633,"s":0,"a":false},{"u":473,"l":450,"s":0,"a":false},{"u":866,"l":238,"s":0,"a":false},{"u":764,"l":298,"s":1,"a":false},{"u":858,"l":769,"s":0,"a":false},{"u":886,"l":140,"s":0,"a":false},{"u":693,"l":566,"s":0,"a":true},{"u":872,"l":278,"s":1,"a":false},{"u":940,"l":872,"s":0,"a":true},{"u":602,"l":387,"s":0,"a":false},{"u":875,"l":59,"s":0,"a":true},{"u":421,"l":107,"s":0,"a":false},{"u":544,"l":239,"s":1,"a":true},{"u":975,"l":599,"s":1,"a":false},{"u":991,"l":981,"s":0,"a":true},{"u":500,"l":397,"s":1,"a":false},{"u":438,"l":435,"s":1,"a":false},{"u":888,"l":307,"s":1,"a":true},{"u":691,"l":595,"s":1,"a":true},{"u":942,"l":306,"s":1,"a":false},{"u":661,"l":332,"s":0,"a":false},{"u":403,"l":32,"s":0,"a":false},{"u":640,"l":273,"s":0,"a":false},{"u":723,"l":172,"s":1,"a":false},{"u":248,"l":29,"s":0,"a":true},{"u":278,"l":198,"s":1,"a":true},{"u":199,"l":82,"s":0,"a":true},{"u":860,"l":104,"s":0,"a":true},{"u":737,"l":445,"s":0,"a":true},{"u":354,"l":297,"s":1,"a":true},{"u":209,"l":172,"s":1,"a":false},{"u":571,"l":62,"s":0,"a":true},{"u":560,"l":310,"s":1,"a":false},{"u":927,"l":518,"s":1,"a":true},{"u":419,"l":419,"s":0,"a":true},{"u":910,"l":501,"s":0,"a":true},{"u":143,"l":60,"s":1,"a":false},{"u":472,"l":376,"s":1,"a":true},{"u":538,"l":122,"s":1,"a":true},{"u":274,"l":20,"s":0,"a":false},{"u":610,"l":535,"s":1,"a":false},{"u":920,"l":638,"s":1,"a":true},{"u":541,"l":499,"s":0,"a":true},{"u":425,"l":23,"s":0,"a":false},{"u":822,"l":807,"s":0,"a":false},{"u":930,"l":486,"s":1,"a":true},{"u":964,"l":19,"s":1,"a":true},{"u":662,"l":556,"s":0,"a":true},{"u":796,"l":689,"s":0,"a":false},{"u":545,"l":239,"s":1,"a":false},{"u":710,"l":369,"s":1,"a":false},{"u":763,"l":39,"s":0,"a":true},{"u":831,"l":740,"s":0,"a":false},{"u":920,"l":73,"s":0,"a":true},{"u":451,"l":238,"s":1,"a":true},{"u":597,"l":215,"s":0,"a":true},{"u":974,"l":538,"s":1,"a":true},{"u":615,"l":293,"s":0,"a":true},{"u":737,"l":267,"s":1,"a":true},{"u":929,"l":321,"s":1,"a":false},{"u":317,"l":74,"s":1,"a":false},{"u":506,"l":202,"s":0,"a":false},{"u":607,"l":51,"s":1,"a":false},{"u":416,"l":58,"s":0,"a":true},{"u":538,"l":369,"s":0,"a":true},{"u":87,"l":74,"s":1,"a":false},{"u":909,"l":250,"s":0,"a":true},{"u":997,"l":214,"s":1,"a":false},{"u":775,"l":664,"s":0,"a":false},{"u":905,"l":433,"s":0,"a":false},{"u":947,"l":220,"s":1,"a":true},{"u":627,"l":171,"s":1,"a":false},{"u":844,"l":358,"s":1,"a":true},{"u":378,"l":138,"s":1,"a":true},{"u":725,"l":279,"s":1,"a":false},{"u":629,"l":292,"s":0,"a":true},{"u":700,"l":92,"s":0,"a":false},{"u":707,"l":57,"s":0,"a":false},{"u":577,"l":116,"s":0,"a":true},{"u":708,"l":390,"s":0,"a":true},{"u":838,"l":627,"s":1,"a":true},{"u":824,"l":365,"s":0,"a":true},{"u":504,"l":90,"s":0,"a":true},{"u":927,"l":461,"s":0,"a":false},{"u":682,"l":657,"s":1,"a":true},{"u":733,"l":464,"s":1,"a":false},{"u":946,"l":489,"s":1,"a":false},{"u":206,"l":109,"s":1,"a":true},{"u":918,"l":643,"s":0,"a":false},{"u":907,"l":475,"s":0,"a":false},{"u":651,"l":355,"s":1,"a":true},{"u":340,"l":322,"s":1,"a":false},{"u":260,"l":24,"s":0,"a":true},{"u":456,"l":63,"s":1,"a":true},{"u":465,"l":428,"s":1,"a":false},{"u":199,"l":27,"s":1,"a":true},{"u":317,"l":120,"s":1,"a":false},{"u":491,"l":176,"s":1,"a":false},{"u":661,"l":210,"s":0,"a":true},{"u":147,"l":25,"s":1,"a":false},{"u":599,"l":507,"s":0,"a":true},{"u":933,"l":283,"s":1,"a":false},{"u":821,"l":706,"s":1,"a":false},{"u":517,"l":455,"s":1,"a":true},{"u":199,"l":70,"s":0,"a":true},{"u":380,"l":64,"s":1,"a":false},{"u":453,"l":375,"s":1,"a":true},{"u":739,"l":730,"s":0,"a":true},{"u":64,"l":28,"s":1,"a":false},{"u":762,"l":637,"s":1,"a":true},{"u":955,"l":28,"s":1,"a":true},{"u":743,"l":739,"s":1,"a":false},{"u":807,"l":59,"s":1,"a":true},{"u":763,"l":610,"s":1,"a":true},{"u":848,"l":163,"s":0,"a":false},{"u":477,"l":257,"s":1,"a":true},{"u":362,"l":158,"s":0,"a":false},{"u":450,"l":20,"s":1,"a":true},{"u":745,"l":430,"s":1,"a":false},{"u":617,"l":90,"s":1,"a":true},{"u":853,"l":317,"s":0,"a":false},{"u":371,"l":122,"s":1,"a":false},{"u":748,"l":495,"s":0,"a":true},{"u":588,"l":120,"s":0,"a":true},{"u":621,"l":252,"s":1,"a":false},{"u":442,"l":99,"s":0,"a":false},{"u":844,"l":637,"s":1,"a":false},{"u":696,"l":188,"s":1,"a":false},{"u":886,"l":723,"s":0,"a":false},{"u":258,"l":8,"s":0,"a":false},{"u":880,"l":590,"s":0,"a":true},{"u":806,"l":398,"s":0,"a":false},{"u":517,"l":198,"s":1,"a":true},{"u":732,"l":259,"s":0,"a":true},{"u":555,"l":261,"s":0,"a":true},{"u":595,"l":5,"s":0,"a":false},{"u":632,"l":216,"s":1,"a":false},{"u":296,"l":51,"s":0,"a":true},{"u":790,"l":481,"s":0,"a":false},{"u":902,"l":244,"s":1,"a":false},{"u":948,"l":424,"s":1,"a":false},{"u":968,"l":510,"s":1,"a":true},{"u":605,"l":593,"s":0,"a":false},{"u":942,"l":502,"s":0,"a":true},{"u":556,"l":262,"s":0,"a":false},{"u":894,"l":660,"s":1,"a":true},{"u":563,"l":253,"s":0,"a":true},{"u":430,"l":120,"s":1,"a":false},{"u":657,"l":128,"s":0,"a":false},{"u":825,"l":503,"s":1,"a":false},{"u":286,"l":47,"s":0,"a":false},{"u":783,"l":449,"s":1,"a":true},{"u":661,"l":330,"s":0,"a":true},{"u":651,"l":33,"s":0,"a":false},{"u":738,"l":152,"s":0,"a":false},{"u":441,"l":32,"s":0,"a":true},{"u":716,"l":81,"s":0,"a":true},{"u":929,"l":227,"s":0,"a":true},{"u":881,"l":131,"s":0,"a":false},{"u":328,"l":114,"s":0,"a":true},{"u":884,"l":127,"s":0,"a":true},{"u":659,"l":576,"s":0,"a":false},{"u":602,"l":90,"s":1,"a":false},{"u":665,"l":340,"s":0,"a":true},{"u":948,"l":321,"s":0,"a":true},{"u":136,"l":76,"s":0,"a":true},{"u":782,"l":532,"s":1,"a":true},{"u":632,"l":63,"s":1,"a":true},{"u":667,"l":297,"s":1,"a":false},{"u":101,"l":51,"s":1,"a":true},{"u":642,"l":41,"s":0,"a":false},{"u":804,"l":683,"s":0,"a":false},{"u":442,"l":324,"s":1,"a":true},{"u":668,"l":506,"s":1,"a":true},{"u":403,"l":316,"s":1,"a":false},{"u":546,"l":134,"s":0,"a":true},{"u":862,"l":855,"s":1,"a":true},{"u":606,"l":203,"s":0,"a":true},{"u":583,"l":24,"s":0,"a":true},{"u":974,"l":216,"s":0,"a":true},{"u":322,"l":146,"s":0,"a":true},{"u":883,"l":53,"s":1,"a":false},{"u":553,"l":178,"s":0,"a":true},{"u":378,"l":255,"s":0,"a":false},{"u":697,"l":3,"s":0,"a":false},{"u":900,"l":148,"s":0,"a":true},{"u":367,"l":324,"s":1,"a":false},{"u":789,"l":358,"s":0,"a":true},{"u":795,"l":512,"s":1,"a":true},{"u":588,"l":392,"s":1,"a":false},{"u":352,"l":104,"s":0,"a":false},{"u":688,"l":445,"s":1,"a":true},{"u":381,"l":287,"s":0,"a":true},{"u":182,"l":8,"s":0,"a":true},{"u":313,"l":97,"s":0,"a":false},{"u":912,"l":259,"s":0,"a":true},{"u":265,"l":243,"s":0,"a":true},{"u":765,"l":448,"s":1,"a":false},{"u":560,"l":341,"s":1,"a":true},{"u":442,"l":257,"s":1,"a":false},{"u":456,"l":359,"s":0,"a":true},{"u":803,"l":678,"s":1,"a":true},{"u":641,"l":63,"s":1,"a":true},{"u":956,"l":111,"s":0,"a":false},{"u":691,"l":463,"s":0,"a":false},{"u":590,"l":27,"s":1,"a":true},{"u":956,"l":729,"s":0,"a":true},{"u":245,"l":167,"s":1,"a":true},{"u":967,"l":337,"s":1,"a":false},{"u":807,"l":168,"s":1,"a":true},{"u":272,"l":231,"s":0,"a":true},{"u":618,"l":228,"s":0,"a":true},{"u":686,"l":214,"s":1,"a":true},{"u":888,"l":833,"s":1,"a":true},{"u":482,"l":131,"s":1,"a":false},{"u":340,"l":276,"s":1,"a":true},{"u":674,"l":223,"s":0,"a":false},{"u":990,"l":941,"s":0,"a":true},{"u":274,"l":111,"s":1,"a":true},{"u":931,"l":648,"s":1,"a":false},{"u":968,"l":795,"s":1,"a":true},{"u":835,"l":226,"s":0,"a":false},{"u":845,"l":18,"s":1,"a":true},{"u":505,"l":360,"s":1,"a":false},{"u":623,"l":416,"s":0,"a":true},{"u":173,"l":138,"s":0,"a":true},{"u":717,"l":285,"s":0,"a":true},{"u":918,"l":275,"s":0,"a":true},{"u":298,"l":92,"s":1,"a":true},{"u":420,"l":384,"s":0,"a":true},{"u":93,"l":41,"s":1,"a":false},{"u":435,"l":363,"s":0,"a":false},{"u":372,"l":73,"s":1,"a":true},{"u":960,"l":489,"s":0,"a":false},{"u":319,"l":310,"s":0,"a":true},{"u":705,"l":90,"s":0,"a":true},{"u":926,"l":698,"s":0,"a":true},{"u":843,"l":278,"s":1,"a":false},{"u":527,"l":259,"s":1,"a":false},{"u":417,"l":191,"s":0,"a":false},{"u":651,"l":182,"s":0,"a":true},{"u":89,"l":50,"s":1,"a":true},{"u":921,"l":788,"s":1,"a":false},{"u":571,"l":341,"s":1,"a":true},{"u":534,"l":299,"s":0,"a":true},{"u":981,"l":432,"s":1,"a":false},{"u":647,"l":596,"s":1,"a":false},{"u":837,"l":358,"s":0,"a":false},{"u":732,"l":373,"s":0,"a":false},{"u":809,"l":253,"s":0,"a":true},{"u":309,"l":296,"s":1,"a":true},{"u":385,"l":84,"s":1,"a":true},{"u":417,"l":413,"s":0,"a":false},{"u":563,"l":426,"s":0,"a":true},{"u":806,"l":604,"s":0,"a":true},{"u":792,"l":563,"s":1,"a":true},{"u":862,"l":518,"s":1,"a":true},{"u":500,"l":33,"s":0,"a":false},{"u":601,"l":337,"s":1,"a":true},{"u":707,"l":577,"s":1,"a":true},{"u":915,"l":703,"s":0,"a":true},{"u":446,"l":341,"s":1,"a":false},{"u":830,"l":181,"s":1,"a":false},{"u":765,"l":137,"s":1,"a":true},{"u":728,"l":617,"s":1,"a":true},{"u":942,"l":714,"s":1,"a":true},{"u":17,"l":15,"s":0,"a":false},{"u":431,"l":1,"s":1,"a":false},{"u":822,"l":461,"s":1,"a":true},{"u":943,"l":648,"s":0,"a":true},{"u":263,"l":85,"s":1,"a":false},{"u":138,"l":58,"s":1,"a":false},{"u":971,"l":819,"s":0,"a":false},{"u":439,"l":371,"s":1,"a":false},{"u":559,"l":191,"s":1,"a":false},{"u":653,"l":641,"s":1,"a":false},{"u":673,"l":109,"s":0,"a":true},{"u":268,"l":251,"s":1,"a":false},{"u":630,"l":335,"s":0,"a":false},{"u":744,"l":110,"s":1,"a":true},{"u":992,"l":84,"s":0,"a":true},{"u":870,"l":448,"s":0,"a":false},{"u":322,"l":269,"s":1,"a":false},{"u":835,"l":779,"s":1,"a":true},{"u":402,"l":384,"s":0,"a":true},{"u":413,"l":358,"s":1,"a":true},{"u":307,"l":132,"s":0,"a":true},{"u":734,"l":136,"s":0,"a":true},{"u":845,"l":668,"s":0,"a":false},{"u":812,"l":737,"s":1,"a":false},{"u":400,"l":225,"s":0,"a":true},{"u":729,"l":468,"s":1,"a":false},{"u":668,"l":331,"s":0,"a":true},{"u":744,"l":183,"s":1,"a":false},{"u":571,"l":68,"s":1,"a":false},{"u":985,"l":677,"s":1,"a":false},{"u":872,"l":266,"s":1,"a":false},{"u":308,"l":209,"s":0,"a":false},{"u":623,"l":43,"s":0,"a":false},{"u":460,"l":341,"s":0,"a":true},{"u":592,"l":383,"s":0,"a":false},{"u":735,"l":455,"s":1,"a":false},{"u":622,"l":211,"s":1,"a":true},{"u":325,"l":184,"s":1,"a":true},{"u":934,"l":393,"s":1,"a":false},{"u":360,"l":138,"s":1,"a":true},{"u":785,"l":393,"s":1,"a":false},{"u":257,"l":105,"s":0,"a":true},{"u":68,"l":61,"s":0,"a":true},{"u":869,"l":252,"s":1,"a":true},{"u":704,"l":156,"s":1,"a":true},{"u":347,"l":175,"s":1,"a":false},{"u":597,"l":261,"s":1,"a":true},{"u":578,"l":134,"s":0,"a":true},{"u":624,"l":401,"s":0,"a":true},{"u":231,"l":218,"s":0,"a":false},{"u":228,"l":94,"s":1,"a":true},{"u":404,"l":101,"s":0,"a":false},{"u":814,"l":576,"s":0,"a":false},{"u":500,"l":3,"s":1,"a":false},{"u":366,"l":64,"s":0,"a":true},{"u":550,"l":407,"s":0,"a":false},{"u":940,"l":27,"s":0,"a":true},{"u":836,"l":660,"s":1,"a":true},{"u":826,"l":469,"s":0,"a":true},{"u":328,"l":202,"s":0,"a":true},{"u":844,"l":104,"s":1,"a":true},{"u":954,"l":768,"s":0,"a":false},{"u":945,"l":910,"s":0,"a":true},{"u":839,"l":222,"s":1,"a":true},{"u":744,"l":56,"s":1,"a":false},{"u":759,"l":287,"s":0,"a":true},{"u":390,"l":278,"s":1,"a":false},{"u":904,"l":107,"s":0,"a":true},{"u":626,"l":156,"s":0,"a":true},{"u":44,"l":10,"s":1,"a":true},{"u":581,"l":90,"s":0,"a":true},{"u":134,"l":69,"s":1,"a":false},{"u":459,"l":161,"s":1,"a":false},{"u":688,"l":54,"s":1,"a":false},{"u":838,"l":653,"s":1,"a":false},{"u":560,"l":532,"s":1,"a":false},{"u":944,"l":217,"s":0,"a":false},{"u":612,"l":398,"s":0,"a":false},{"u":284,"l":222,"s":1,"a":true},{"u":586,"l":170,"s":0,"a":true},{"u":580,"l":95,"s":1,"a":true},{"u":95,"l":44,"s":1,"a":false},{"u":333,"l":46,"s":1,"a":true},{"u":635,"l":474,"s":1,"a":true},{"u":827,"l":114,"s":0,"a":false},{"u":485,"l":235,"s":1,"a":true},{"u":410,"l":305,"s":1,"a":true},{"u":636,"l":612,"s":0,"a":false},{"u":654,"l":113,"s":1,"a":false},{"u":798,"l":48,"s":1,"a":false},{"u":385,"l":71,"s":1,"a":true},{"u":989,"l":222,"s":0,"a":false},{"u":884,"l":160,"s":0,"a":false},{"u":907,"l":190,"s":0,"a":false},{"u":964,"l":274,"s":0,"a":true},{"u":802,"l":198,"s":0,"a":true},{"u":536,"l":516,"s":1,"a":true},{"u":370,"l":137,"s":1,"a":true},{"u":326,"l":151,"s":1,"a":true},{"u":913,"l":231,"s":1,"a":false},{"u":213,"l":63,"s":0,"a":false},{"u":356,"l":125,"s":1,"a":true},{"u":982,"l":759,"s":1,"a":true},{"u":653,"l":306,"s":0,"a":false},{"u":259,"l":206,"s":0,"a":true},{"u":832,"l":249,"s":0,"a":false},{"u":345,"l":33,"s":0,"a":true},{"u":683,"l":64,"s":0,"a":true},{"u":471,"l":99,"s":0,"a":false},{"u":886,"l":514,"s":1,"a":true},{"u":503,"l":234,"s":0,"a":true},{"u":141,"l":110,"s":0,"a":false},{"u":472,"l":471,"s":1,"a":false},{"u":702,"l":690,"s":1,"a":true},{"u":72,"l":70,"s":1,"a":true},{"u":842,"l":303,"s":1,"a":false},{"u":644,"l":174,"s":1,"a":true},{"u":182,"l":82,"s":0,"a":true},{"u":957,"l":16,"s":1,"a":true},{"u":580,"l":278,"s":0,"a":false},{"u":659,"l":471,"s":1,"a":true},{"u":472,"l":375,"s":0,"a":false},{"u":303,"l":150,"s":1,"a":false},{"u":799,"l":716,"s":0,"a":true},{"u":807,"l":575,"s":1,"a":true},{"u":907,"l":429,"s":1,"a":true},{"u":836,"l":306,"s":0,"a":true},{"u":364,"l":345,"s":1,"a":false},{"u":919,"l":167,"s":1,"a":false},{"u":905,"l":77,"s":1,"a":true},{"u":871,"l":472,"s":0,"a":true},{"u":525,"l":193,"s":1,"a":false},{"u":581,"l":471,"s":0,"a":true},{"u":625,"l":101,"s":0,"a":true},{"u":947,"l":468,"s":0,"a":false},{"u":983,"l":587,"s":1,"a":false},{"u":690,"l":574,"s":1,"a":false},{"u":916,"l":256,"s":1,"a":true},{"u":357,"l":183,"s":0,"a":false},{"u":159,"l":58,"s":0,"a":false},{"u":913,"l":168,"s":0,"a":false},{"u":771,"l":677,"s":0,"a":false},{"u":914,"l":88,"s":0,"a":false},{"u":224,"l":223,"s":1,"a":true},{"u":381,"l":13,"s":0,"a":true},{"u":776,"l":486,"s":1,"a":true},{"u":675,"l":341,"s":0,"a":false},{"u":941,"l":116,"s":1,"a":false},{"u":878,"l":583,"s":0,"a":false},{"u":943,"l":551,"s":1,"a":true},{"u":90,"l":33,"s":0,"a":false},{"u":840,"l":541,"s":0,"a":true},{"u":834,"l":172,"s":1,"a":true},{"u":168,"l":44,"s":1,"a":false},{"u":719,"l":146,"s":0,"a":false},{"u":376,"l":4,"s":1,"a":true},{"u":430,"l":372,"s":0,"a":false},{"u":635,"l":555,"s":0,"a":true},{"u":736,"l":106,"s":1,"a":true},{"u":674,"l":150,"s":0,"a":true},{"u":899,"l":334,"s":0,"a":true},{"u":680,"l":55,"s":0,"a":true},{"u":653,"l":284,"s":1,"a":false},{"u":715,"l":185,"s":0,"a":false},{"u":181,"l":168,"s":1,"a":true},{"u":140,"l":71,"s":1,"a":true},{"u":902,"l":784,"s":1,"a":false},{"u":489,"l":117,"s":0,"a":false},{"u":871,"l":121,"s":0,"a":true},{"u":812,"l":784,"s":1,"a":false},{"u":927,"l":561,"s":1,"a":false},{"u":642,"l":16,"s":0,"a":true},{"u":933,"l":635,"s":1,"a":false},{"u":926,"l":369,"s":0,"a":true},{"u":570,"l":513,"s":0,"a":false},{"u":984,"l":595,"s":1,"a":true},{"u":990,"l":879,"s":0,"a":false},{"u":644,"l":185,"s":1,"a":true},{"u":673,"l":76,"s":0,"a":false},{"u":990,"l":188,"s":1,"a":true},{"u":365,"l":264,"s":0,"a":true},{"u":686,"l":32,"s":0,"a":false},{"u":703,"l":645,"s":0,"a":true},{"u":682,"l":593,"s":0,"a":false},{"u":835,"l":458,"s":0,"a":false},{"u":732,"l":645,"s":0,"a":false},{"u":727,"l":438,"s":0,"a":false},{"u":466,"l":459,"s":1,"a":false},{"u":809,"l":588,"s":0,"a":false},{"u":818,"l":351,"s":1,"a":true},{"u":557,"l":215,"s":0,"a":false},{"u":928,"l":560,"s":1,"a":true},{"u":202,"l":39,"s":1,"a":false},{"u":902,"l":644,"s":0,"a":false},{"u":897,"l":532,"s":1,"a":true},{"u":403,"l":208,"s":0,"a":true},{"u":527,"l":304,"s":0,"a":false},{"u":878,"l":331,"s":1,"a":true},{"u":200,"l":70,"s":0,"a":false},{"u":594,"l":12,"s":0,"a":true},{"u":773,"l":329,"s":0,"a":false},{"u":884,"l":48,"s":0,"a":true},{"u":659,"l":305,"s":0,"a":false},{"u":871,"l":865,"s":1,"a":false},{"u":474,"l":105,"s":0,"a":false},{"u":512,"l":384,"s":1,"a":true},{"u":179,"l":160,"s":0,"a":false},{"u":907,"l":606,"s":1,"a":true},{"u":548,"l":188,"s":1,"a":false},{"u":574,"l":190,"s":1,"a":true},{"u":419,"l":255,"s":0,"a":false},{"u":988,"l":533,"s":1,"a":false},{"u":301,"l":234,"s":1,"a":false},{"u":351,"l":107,"s":0,"a":false},{"u":823,"l":711,"s":1,"a":true},{"u":713,"l":662,"s":1,"a":true},{"u":883,"l":390,"s":1,"a":true},{"u":782,"l":90,"s":0,"a":true},{"u":963,"l":56,"s":1,"a":true},{"u":396,"l":231,"s":1,"a":true},{"u":415,"l":138,"s":0,"a":true},{"u":980,"l":463,"s":1,"a":true},{"u":952,"l":659,"s":1,"a":false},{"u":462,"l":376,"s":0,"a":true},{"u":223,"l":93,"s":0,"a":true},{"u":500,"l":418,"s":0,"a":true},{"u":922,"l":490,"s":0,"a":true},{"u":478,"l":194,"s":0,"a":true},{"u":880,"l":815,"s":0,"a":true},{"u":535,"l":417,"s":1,"a":false},{"u":948,"l":771,"s":1,"a":false},{"u":454,"l":12,"s":1,"a":true},{"u":172,"l":106,"s":1,"a":false},{"u":776,"l":251,"s":1,"a":false},{"u":809,"l":345,"s":0,"a":true},{"u":814,"l":119,"s":0,"a":true},{"u":823,"l":124,"s":1,"a":true},{"u":947,"l":756,"s":1,"a":true},{"u":425,"l":191,"s":1,"a":true},{"u":750,"l":403,"s":0,"a":false},{"u":885,"l":498,"s":0,"a":false},{"u":940,"l":762,"s":0,"a":true},{"u":356,"l":106,"s":1,"a":false},{"u":887,"l":377,"s":0,"a":false},{"u":935,"l":902,"s":0,"a":false},{"u":638,"l":398,"s":1,"a":true},{"u":719,"l":308,"s":0,"a":true},{"u":776,"l":395,"s":1,"a":false},{"u":334,"l":168,"s":1,"a":false},{"u":792,"l":212,"s":1,"a":true},{"u":382,"l":157,"s":0,"a":true},{"u":628,"l":285,"s":0,"a":true},{"u":747,"l":166,"s":1,"a":false},{"u":913,"l":704,"s":1,"a":true},{"u":614,"l":35,"s":1,"a":false},{"u":932,"l":379,"s":1,"a":false},{"u":395,"l":34,"s":1,"a":false},{"u":417,"l":149,"s":0,"a":true},{"u":779,"l":105,"s":1,"a":true},{"u":382,"l":183,"s":1,"a":false},{"u":984,"l":671,"s":0,"a":false},{"u":920,"l":451,"s":1,"a":false},{"u":629,"l":536,"s":0,"a":true},{"u":504,"l":347,"s":1,"a":true},{"u":660,"l":240,"s":1,"a":true},{"u":942,"l":310,"s":0,"a":true},{"u":740,"l":590,"s":0,"a":true},{"u":915,"l":482,"s":1,"a":false},{"u":882,"l":559,"s":1,"a":true},{"u":502,"l":72,"s":0,"a":false},{"u":713,"l":708,"s":0,"a":true},{"u":423,"l":202,"s":0,"a":true},{"u":816,"l":390,"s":1,"a":false},{"u":780,"l":10,"s":0,"a":true},{"u":578,"l":34,"s":0,"a":true},{"u":826,"l":604,"s":1,"a":false},{"u":942,"l":897,"s":1,"a":true},{"u":623,"l":320,"s":0,"a":true},{"u":984,"l":319,"s":1,"a":false},{"u":652,"l":157,"s":0,"a":false},{"u":513,"l":184,"s":1,"a":false},{"u":838,"l":579,"s":1,"a":true},{"u":747,"l":411,"s":0,"a":false},{"u":965,"l":357,"s":0,"a":false},{"u":872,"l":406,"s":0,"a":true},{"u":657,"l":334,"s":1,"a":true},{"u":501,"l":142,"s":0,"a":true},{"u":694,"l":287,"s":1,"a":false},{"u":808,"l":755,"s":1,"a":false},{"u":204,"l":26,"s":0,"a":true},{"u":400,"l":390,"s":0,"a":true},{"u":428,"l":410,"s":1,"a":true},{"u":308,"l":197,"s":0,"a":false},{"u":368,"l":11,"s":1,"a":true},{"u":851,"l":832,"s":0,"a":false},{"u":432,"l":299,"s":1,"a":false},{"u":747,"l":305,"s":0,"a":false},{"u":949,"l":892,"s":1,"a":false},{"u":656,"l":198,"s":1,"a":false},{"u":712,"l":261,"s":1,"a":false},{"u":778,"l":93,"s":1,"a":true},{"u":629,"l":185,"s":1,"a":false},{"u":369,"l":278,"s":1,"a":true},{"u":568,"l":464,"s":1,"a":false},{"u":717,"l":458,"s":0,"a":false},{"u":613,"l":441,"s":0,"a":false},{"u":639,"l":191,"s":1,"a":false},{"u":559,"l":372,"s":0,"a":true},{"u":753,"l":251,"s":1,"a":true},{"u":798,"l":324,"s":1,"a":true},{"u":985,"l":875,"s":1,"a":false},{"u":970,"l":697,"s":1,"a":false},{"u":265,"l":106,"s":0,"a":true},{"u":65,"l":47,"s":0,"a":false},{"u":354,"l":304,"s":0,"a":true},{"u":672,"l":110,"s":1,"a":false},{"u":748,"l":684,"s":1,"a":true},{"u":430,"l":129,"s":1,"a":true},{"u":899,"l":676,"s":1,"a":false},{"u":870,"l":601,"s":0,"a":true},{"u":737,"l":205,"s":0,"a":true},{"u":645,"l":429,"s":1,"a":true},{"u":764,"l":539,"s":1,"a":true},{"u":997,"l":320,"s":1,"a":false},{"u":625,"l":57,"s":1,"a":true},{"u":805,"l":449,"s":0,"a":true},{"u":838,"l":139,"s":1,"a":true},{"u":555,"l":325,"s":0,"a":true},{"u":428,"l":6,"s":1,"a":false},{"u":669,"l":571,"s":1,"a":false},{"u":688,"l":216,"s":1,"a":false},{"u":459,"l":307,"s":1,"a":true},{"u":716,"l":249,"s":0,"a":false},{"u":639,"l":409,"s":0,"a":false},{"u":526,"l":287,"s":0,"a":false},{"u":434,"l":165,"s":1,"a":true},{"u":481,"l":150,"s":1,"a":true},{"u":783,"l":123,"s":0,"a":false},{"u":864,"l":529,"s":1,"a":true},{"u":733,"l":374,"s":0,"a":true},{"u":589,"l":58,"s":1,"a":false},{"u":625,"l":383,"s":0,"a":false},{"u":463,"l":459,"s":1,"a":false},{"u":398,"l":166,"s":0,"a":false},{"u":781,"l":472,"s":0,"a":false},{"u":611,"l":160,"s":1,"a":false},{"u":919,"l":676,"s":0,"a":false},{"u":601,"l":334,"s":0,"a":true},{"u":936,"l":785,"s":0,"a":false},{"u":805,"l":760,"s":0,"a":true},{"u":592,"l":436,"s":1,"a":false},{"u":547,"l":183,"s":0,"a":true},{"u":983,"l":114,"s":1,"a":true},{"u":984,"l":572,"s":1,"a":false},{"u":350,"l":116,"s":0,"a":false},{"u":706,"l":164,"s":0,"a":true},{"u":884,"l":627,"s":0,"a":false},{"u":751,"l":84,"s":0,"a":false},{"u":534,"l":458,"s":1,"a":false},{"u":781,"l":482,"s":1,"a":true},{"u":161,"l":109,"s":0,"a":true},{"u":862,"l":281,"s":1,"a":false},{"u":963,"l":394,"s":0,"a":false},{"u":644,"l":381,"s":1,"a":true},{"u":458,"l":59,"s":0,"a":true},{"u":989,"l":398,"s":1,"a":false},{"u":723,"l":228,"s":0,"a":false},{"u":655,"l":261,"s":0,"a":true},{"u":748,"l":75,"s":1,"a":false},{"u":766,"l":505,"s":0,"a":true},{"u":744,"l":696,"s":0,"a":true},{"u":783,"l":745,"s":0,"a":true},{"u":930,"l":794,"s":1,"a":false},{"u":533,"l":79,"s":0,"a":true},{"u":374,"l":82,"s":1,"a":false},{"u":411,"l":325,"s":1,"a":false},{"u":234,"l":89,"s":1,"a":true},{"u":514,"l":332,"s":1,"a":false},{"u":897,"l":887,"s":0,"a":true},{"u":979,"l":715,"s":1,"a":false},{"u":618,"l":303,"s":0,"a":true},{"u":605,"l":358,"s":1,"a":true},{"u":422,"l":390,"s":1,"a":false},{"u":404,"l":178,"s":0,"a":false},{"u":884,"l":632,"s":1,"a":false},{"u":457,"l":83,"s":1,"a":true},{"u":512,"l":133,"s":1,"a":true},{"u":481,"l":319,"s":0,"a":true},{"u":703,"l":188,"s":0,"a":true},{"u":304,"l":104,"s":1,"a":true},{"u":73,"l":6,"s":0,"a":false},{"u":618,"l":43,"s":0,"a":false},{"u":695,"l":72,"s":0,"a":true},{"u":541,"l":315,"s":1,"a":false},{"u":318,"l":99,"s":1,"a":true},{"u":706,"l":133,"s":1,"a":false},{"u":453,"l":201,"s":1,"a":false},{"u":171,"l":132,"s":1,"a":false},{"u":596,"l":25,"s":1,"a":true},{"u":979,"l":553,"s":1,"a":true},{"u":931,"l":387,"s":1,"a":false},{"u":660,"l":32,"s":0,"a":false},{"u":688,"l":576,"s":0,"a":false},{"u":861,"l":777,"s":1,"a":true},{"u":849,"l":152,"s":0,"a":true},{"u":437,"l":362,"s":0,"a":true},{"u":938,"l":522,"s":1,"a":true},{"u":931,"l":111,"s":1,"a":false},{"u":977,"l":449,"s":1,"a":true},{"u":645,"l":309,"s":0,"a":true},{"u":714,"l":609,"s":0,"a":true},{"u":790,"l":441,"s":1,"a":true},{"u":982,"l":489,"s":1,"a":false},{"u":941,"l":35,"s":0,"a":false},{"u":669,"l":20,"s":1,"a":true},{"u":926,"l":532,"s":0,"a":false},{"u":879,"l":517,"s":1,"a":true},{"u":824,"l":689,"s":1,"a":true},{"u":314,"l":294,"s":0,"a":true},{"u":943,"l":292,"s":0,"a":true},{"u":974,"l":964,"s":1,"a":true},{"u":939,"l":486,"s":1,"a":true},{"u":602,"l":287,"s":1,"a":false},{"u":192,"l":142,"s":1,"a":true},{"u":888,"l":455,"s":1,"a":false},{"u":833,"l":636,"s":0,"a":false},{"u":516,"l":23,"s":0,"a":true},{"u":643,"l":640,"s":1,"a":false},{"u":505,"l":449,"s":0,"a":false},{"u":866,"l":764,"s":0,"a":true},{"u":608,"l":223,"s":1,"a":true},{"u":715,"l":369,"s":1,"a":true},{"u":346,"l":168,"s":1,"a":true},{"u":754,"l":144,"s":0,"a":true},{"u":825,"l":538,"s":1,"a":false},{"u":780,"l":659,"s":1,"a":false},{"u":632,"l":272,"s":0,"a":true},{"u":922,"l":512,"s":0,"a":false},{"u":843,"l":281,"s":1,"a":true},{"u":607,"l":17,"s":1,"a":false},{"u":414,"l":282,"s":0,"a":false},{"u":915,"l":801,"s":0,"a":false},{"u":905,"l":249,"s":0,"a":true},{"u":776,"l":296,"s":0,"a":false},{"u":740,"l":437,"s":1,"a":false},{"u":237,"l":218,"s":1,"a":true},{"u":198,"l":65,"s":0,"a":false},{"u":752,"l":720,"s":0,"a":false},{"u":429,"l":334,"s":1,"a":true},{"u":452,"l":174,"s":0,"a":true},{"u":944,"l":466,"s":1,"a":false},{"u":707,"l":389,"s":0,"a":false},{"u":993,"l":920,"s":1,"a":false},{"u":426,"l":415,"s":0,"a":true},{"u":787,"l":190,"s":0,"a":true},{"u":981,"l":923,"s":1,"a":true},{"u":213,"l":151,"s":1,"a":false},{"u":778,"l":270,"s":1,"a":false},{"u":751,"l":592,"s":1,"a":true},{"u":528,"l":156,"s":1,"a":true},{"u":693,"l":530,"s":1,"a":false},{"u":81,"l":39,"s":1,"a":true},{"u":89,"l":7,"s":1,"a":false},{"u":849,"l":758,"s":1,"a":false},{"u":540,"l":468,"s":0,"a":true},{"u":668,"l":510,"s":0,"a":false},{"u":655,"l":646,"s":0,"a":true},{"u":416,"l":410,"s":1,"a":false},{"u":904,"l":816,"s":0,"a":true},{"u":652,"l":54,"s":0,"a":true},{"u":689,"l":546,"s":1,"a":true},{"u":154,"l":141,"s":0,"a":false},{"u":373,"l":1,"s":0,"a":false},{"u":881,"l":704,"s":0,"a":false},{"u":720,"l":246,"s":1,"a":true},{"u":968,"l":309,"s":0,"a":true},{"u":568,"l":533,"s":0,"a":false},{"u":944,"l":782,"s":0,"a":true},{"u":210,"l":144,"s":0,"a":true},{"u":157,"l":11,"s":0,"a":true},{"u":819,"l":650,"s":1,"a":false},{"u":429,"l":147,"s":1,"a":false},{"u":875,"l":112,"s":1,"a":false},{"u":795,"l":266,"s":1,"a":true},{"u":401,"l":9,"s":0,"a":true},{"u":917,"l":650,"s":1,"a":true},{"u":897,"l":793,"s":0,"a":false},{"u":883,"l":43,"s":0,"a":true},{"u":930,"l":260,"s":1,"a":true},{"u":972,"l":39,"s":0,"a":true},{"u":957,"l":685,"s":0,"a":true},{"u":573,"l":41,"s":1,"a":true},{"u":159,"l":88,"s":1,"a":true},{"u":992,"l":613,"s":0,"a":false},{"u":913,"l":887,"s":1,"a":true},{"u":409,"l":391,"s":0,"a":true},{"u":814,"l":22,"s":0,"a":false},{"u":877,"l":294,"s":0,"a":false},{"u":660,"l":377,"s":1,"a":true},{"u":555,"l":137,"s":0,"a":true},{"u":238,"l":147,"s":1,"a":true},{"u":155,"l":124,"s":1,"a":false},{"u":909,"l":400,"s":0,"a":false},{"u":748,"l":416,"s":1,"a":true},{"u":791,"l":725,"s":1,"a":false},{"u":588,"l":412,"s":1,"a":true},{"u":668,"l":241,"s":1,"a":false},{"u":870,"l":728,"s":1,"a":true},{"u":206,"l":61,"s":0,"a":false},{"u":526,"l":401,"s":0,"a":false},{"u":689,"l":556,"s":0,"a":false},{"u":989,"l":108,"s":0,"a":true},{"u":961,"l":167,"s":1,"a":true},{"u":674,"l":40,"s":0,"a":true},{"u":846,"l":97,"s":0,"a":false},{"u":590,"l":495,"s":0,"a":false},{"u":812,"l":215,"s":0,"a":false},{"u":927,"l":178,"s":1,"a":true},{"u":604,"l":440,"s":1,"a":false},{"u":809,"l":551,"s":1,"a":true},{"u":798,"l":377,"s":0,"a":false},{"u":898,"l":130,"s":0,"a":false},{"u":411,"l":409,"s":0,"a":true},{"u":999,"l":228,"s":1,"a":false},{"u":784,"l":565,"s":1,"a":false},{"u":389,"l":379,"s":0,"a":false},{"u":559,"l":250,"s":1,"a":false},{"u":993,"l":617,"s":0,"a":true},{"u":712,"l":678,"s":1,"a":true},{"u":532,"l":197,"s":0,"a":true},{"u":158,"l":18,"s":0,"a":false},{"u":855,"l":269,"s":0,"a":true},{"u":519,"l":510,"s":1,"a":true},{"u":736,"l":395,"s":0,"a":true},{"u":219,"l":162,"s":1,"a":false},{"u":607,"l":39,"s":0,"a":true},{"u":811,"l":699,"s":0,"a":false},{"u":712,"l":106,"s":1,"a":true},{"u":775,"l":25,"s":1,"a":true},{"u":749,"l":204,"s":0,"a":false},{"u":689,"l":112,"s":0,"a":false},{"u":855,"l":57,"s":0,"a":false},{"u":652,"l":109,"s":0,"a":false},{"u":675,"l":544,"s":0,"a":false},{"u":920,"l":163,"s":0,"a":true},{"u":617,"l":353,"s":0,"a":true},{"u":926,"l":727,"s":1,"a":true},{"u":777,"l":214,"s":1,"a":true},{"u":333,"l":251,"s":1,"a":false},{"u":429,"l":131,"s":0,"a":false},{"u":914,"l":770,"s":1,"a":false},{"u":618,"l":266,"s":1,"a":true},{"u":636,"l":40,"s":1,"a":false},{"u":382,"l":369,"s":1,"a":false},{"u":824,"l":17,"s":1,"a":true},{"u":433,"l":336,"s":0,"a":false},{"u":487,"l":456,"s":0,"a":false},{"u":995,"l":716,"s":0,"a":true},{"u":840,"l":32,"s":0,"a":false},{"u":333,"l":292,"s":1,"a":false},{"u":235,"l":47,"s":1,"a":true},{"u":860,"l":326,"s":0,"a":true},{"u":530,"l":302,"s":1,"a":true},{"u":549,"l":244,"s":1,"a":false},{"u":739,"l":546,"s":0,"a":true},{"u":211,"l":68,"s":1,"a":true},{"u":414,"l":191,"s":0,"a":false},{"u":641,"l":490,"s":0,"a":false},{"u":309,"l":61,"s":1,"a":false},{"u":688,"l":509,"s":1,"a":true},{"u":988,"l":759,"s":0,"a":true},{"u":752,"l":599,"s":1,"a":false},{"u":598,"l":90,"s":1,"a":true},{"u":657,"l":546,"s":1,"a":true},{"u":309,"l":79,"s":1,"a":true},{"u":971,"l":520,"s":1,"a":true},{"u":509,"l":209,"s":1,"a":true},{"u":181,"l":34,"s":0,"a":false},{"u":985,"l":708,"s":1,"a":true},{"u":925,"l":336,"s":0,"a":true},{"u":813,"l":61,"s":1,"a":true},{"u":875,"l":825,"s":1,"a":false},{"u":80,"l":17,"s":0,"a":false},{"u":260,"l":237,"s":0,"a":true},{"u":299,"l":31,"s":1,"a":true},{"u":417,"l":97,"s":0,"a":false},{"u":382,"l":239,"s":1,"a":false},{"u":657,"l":271,"s":1,"a":false},{"u":915,"l":75,"s":1,"a":false},{"u":741,"l":566,"s":1,"a":true},{"u":790,"l":786,"s":0,"a":false},{"u":856,"l":3,"s":0,"a":true},{"u":941,"l":222,"s":1,"a":false},{"u":899,"l":177,"s":1,"a":true},{"u":775,"l":393,"s":0,"a":false},{"u":7,"l":4,"s":1,"a":true},{"u":885,"l":856,"s":1,"a":true},{"u":860,"l":725,"s":1,"a":true},{"u":779,"l":206,"s":0,"a":true},{"u":311,"l":141,"s":1,"a":true},{"u":916,"l":609,"s":1,"a":true},{"u":848,"l":45,"s":1,"a":false},{"u":256,"l":178,"s":0,"a":true},{"u":386,"l":1,"s":1,"a":false},{"u":541,"l":475,"s":1,"a":true},{"u":257,"l":121,"s":0,"a":false},{"u":893,"l":468,"s":1,"a":true},{"u":523,"l":386,"s":1,"a":false},{"u":386,"l":348,"s":1,"a":false},{"u":364,"l":309,"s":0,"a":true},{"u":713,"l":208,"s":0,"a":false},{"u":832,"l":823,"s":1,"a":false},{"u":609,"l":454,"s":0,"a":false},{"u":870,"l":111,"s":1,"a":false},{"u":316,"l":101,"s":1,"a":false},{"u":758,"l":393,"s":0,"a":false},{"u":999,"l":805,"s":0,"a":false},{"u":299,"l":254,"s":0,"a":false},{"u":768,"l":322,"s":0,"a":false},{"u":787,"l":504,"s":0,"a":false},{"u":854,"l":356,"s":0,"a":false},{"u":819,"l":236,"s":0,"a":false},{"u":768,"l":338,"s":1,"a":true},{"u":100,"l":34,"s":0,"a":false},{"u":815,"l":713,"s":0,"a":false},{"u":765,"l":459,"s":0,"a":false},{"u":618,"l":428,"s":1,"a":true},{"u":999,"l":281,"s":0,"a":false},{"u":588,"l":352,"s":0,"a":false},{"u":260,"l":127,"s":0,"a":false},{"u":502,"l":128,"s":0,"a":true},{"u":977,"l":333,"s":1,"a":false},{"u":290,"l":27,"s":0,"a":true},{"u":569,"l":190,"s":0,"a":true},{"u":819,"l":403,"s":0,"a":true},{"u":757,"l":592,"s":1,"a":true},{"u":823,"l":420,"s":0,"a":true},{"u":715,"l":611,"s":0,"a":false},{"u":786,"l":189,"s":0,"a":true},{"u":801,"l":739,"s":1,"a":false},{"u":287,"l":12,"s":1,"a":false},{"u":999,"l":603,"s":0,"a":true},{"u":780,"l":262,"s":1,"a":false},{"u":250,"l":77,"s":1,"a":true},{"u":366,"l":96,"s":1,"a":true},{"u":677,"l":164,"s":0,"a":true},{"u":558,"l":48,"s":0,"a":false},{"u":923,"l":770,"s":0,"a":true},{"u":922,"l":793,"s":0,"a":false},{"u":655,"l":557,"s":0,"a":false},{"u":978,"l":787,"s":1,"a":true},{"u":986,"l":88,"s":0,"a":false},{"u":794,"l":755,"s":1,"a":false},{"u":117,"l":27,"s":1,"a":true},{"u":709,"l":515,"s":0,"a":false},{"u":954,"l":917,"s":1,"a":true},{"u":721,"l":122,"s":0,"a":true},{"u":393,"l":70,"s":1,"a":true},{"u":944,"l":95,"s":0,"a":true},{"u":689,"l":580,"s":0,"a":false},{"u":375,"l":37,"s":1,"a":true},{"u":334,"l":270,"s":1,"a":true},{"u":741,"l":315,"s":0,"a":false},{"u":951,"l":599,"s":1,"a":false},{"u":816,"l":168,"s":0,"a":false},{"u":793,"l":591,"s":1,"a":false},{"u":461,"l":225,"s":0,"a":true},{"u":471,"l":49,"s":1,"a":false},{"u":965,"l":950,"s":1,"a":false},{"u":880,"l":239,"s":0,"a":true},{"u":422,"l":117,"s":1,"a":true},{"u":976,"l":618,"s":0,"a":false},{"u":199,"l":148,"s":0,"a":true},{"u":446,"l":8,"s":1,"a":false},{"u":265,"l":264,"s":1,"a":true},{"u":581,"l":546,"s":1,"a":false},{"u":602,"l":508,"s":1,"a":true},{"u":936,"l":546,"s":1,"a":false},{"u":666,"l":580,"s":1,"a":false},{"u":520,"l":91,"s":1,"a":false},{"u":366,"l":32,"s":1,"a":true},{"u":930,"l":685,"s":0,"a":true},{"u":411,"l":156,"s":1,"a":false},{"u":482,"l":434,"s":0,"a":false},{"u":949,"l":121,"s":1,"a":true},{"u":691,"l":305,"s":0,"a":false},{"u":520,"l":420,"s":1,"a":false},{"u":642,"l":324,"s":0,"a":false},{"u":524,"l":172,"s":0,"a":false},{"u":289,"l":211,"s":1,"a":true},{"u":911,"l":377,"s":1,"a":true},{"u":724,"l":149,"s":1,"a":true},{"u":935,"l":161,"s":1,"a":false},{"u":868,"l":821,"s":1,"a":false},{"u":869,"l":672,"s":1,"a":false},{"u":636,"l":284,"s":1,"a":true},{"u":989,"l":45,"s":1,"a":false},{"u":343,"l":258,"s":0,"a":true},{"u":687,"l":650,"s":0,"a":false},{"u":556,"l":1,"s":0,"a":true},{"u":760,"l":72,"s":1,"a":true},{"u":916,"l":833,"s":1,"a":false},{"u":91,"l":86,"s":1,"a":false},{"u":384,"l":362,"s":1,"a":true},{"u":440,"l":427,"s":0,"a":false},{"u":895,"l":489,"s":0,"a":true},{"u":230,"l":98,"s":0,"a":false},{"u":579,"l":467,"s":0,"a":true},{"u":323,"l":11,"s":0,"a":false},{"u":175,"l":146,"s":1,"a":true},{"u":784,"l":216,"s":1,"a":false},{"u":574,"l":198,"s":1,"a":true},{"u":845,"l":556,"s":1,"a":true},{"u":625,"l":608,"s":1,"a":true},{"u":851,"l":795,"s":1,"a":false},{"u":327,"l":222,"s":1,"a":true},{"u":352,"l":229,"s":0,"a":false},{"u":768,"l":162,"s":1,"a":true},{"u":917,"l":374,"s":0,"a":false},{"u":758,"l":235,"s":0,"a":false},{"u":600,"l":378,"s":1,"a":false},{"u":619,"l":245,"s":1,"a":false},{"u":825,"l":9,"s":1,"a":true},{"u":385,"l":297,"s":1,"a":false},{"u":591,"l":494,"s":1,"a":false},{"u":185,"l":78,"s":0,"a":false},{"u":697,"l":324,"s":1,"a":false},{"u":780,"l":739,"s":1,"a":false},{"u":667,"l":451,"s":0,"a":false},{"u":886,"l":337,"s":1,"a":false},{"u":929,"l":141,"s":0,"a":false},{"u":492,"l":135,"s":1,"a":true},{"u":555,"l":411,"s":0,"a":true},{"u":864,"l":620,"s":0,"a":false},{"u":214,"l":12,"s":1,"a":true},{"u":847,"l":42,"s":1,"a":false},{"u":766,"l":114,"s":0,"a":true},{"u":113,"l":100,"s":1,"a":true},{"u":436,"l":96,"s":1,"a":true},{"u":798,"l":770,"s":0,"a":true},{"u":585,"l":129,"s":1,"a":true},{"u":473,"l":379,"s":1,"a":false},{"u":724,"l":316,"s":1,"a":false},{"u":773,"l":633,"s":1,"a":true},{"u":596,"l":36,"s":1,"a":true},{"u":603,"l":332,"s":1,"a":false},{"u":636,"l":279,"s":0,"a":true},{"u":456,"l":112,"s":0,"a":true},{"u":300,"l":243,"s":0,"a":false},{"u":869,"l":138,"s":1,"a":true},{"u":535,"l":287,"s":1,"a":true},{"u":675,"l":206,"s":1,"a":true},{"u":354,"l":337,"s":1,"a":true},{"u":760,"l":226,"s":1,"a":false},{"u":571,"l":526,"s":0,"a":true},{"u":533,"l":193,"s":1,"a":true},{"u":798,"l":175,"s":1,"a":false},{"u":941,"l":66,"s":1,"a":false},{"u":790,"l":778,"s":1,"a":false},{"u":959,"l":626,"s":0,"a":true},{"u":464,"l":399,"s":1,"a":false},{"u":268,"l":265,"s":0,"a":true},{"u":961,"l":646,"s":0,"a":false},{"u":396,"l":370,"s":1,"a":true},{"u":665,"l":497,"s":0,"a":true},{"u":654,"l":637,"s":1,"a":true},{"u":544,"l":87,"s":1,"a":true},{"u":869,"l":839,"s":0,"a":false},{"u":273,"l":248,"s":1,"a":true},{"u":439,"l":322,"s":1,"a":false},{"u":271,"l":211,"s":1,"a":true},{"u":951,"l":190,"s":1,"a":false},{"u":946,"l":822,"s":1,"a":true},{"u":972,"l":845,"s":1,"a":true},{"u":119,"l":12,"s":0,"a":false},{"u":929,"l":125,"s":0,"a":true},{"u":600,"l":481,"s":0,"a":false},{"u":247,"l":138,"s":0,"a":false},{"u":968,"l":772,"s":0,"a":true},{"u":352,"l":325,"s":1,"a":true},{"u":585,"l":500,"s":1,"a":false},{"u":751,"l":287,"s":1,"a":false},{"u":377,"l":300,"s":0,"a":true},{"u":865,"l":131,"s":0,"a":false},{"u":919,"l":633,"s":1,"a":false},{"u":851,"l":75,"s":0,"a":false},{"u":878,"l":873,"s":1,"a":false},{"u":246,"l":189,"s":0,"a":false},{"u":535,"l":446,"s":0,"a":false},{"u":74,"l":27,"s":1,"a":true},{"u":750,"l":646,"s":1,"a":false},{"u":917,"l":277,"s":1,"a":true},{"u":888,"l":779,"s":0,"a":false},{"u":475,"l":273,"s":1,"a":true},{"u":563,"l":11,"s":1,"a":true},{"u":382,"l":173,"s":0,"a":true},{"u":725,"l":543,"s":0,"a":false},{"u":807,"l":215,"s":0,"a":true},{"u":591,"l":258,"s":1,"a":false},{"u":859,"l":579,"s":0,"a":true},{"u":253,"l":123,"s":1,"a":true},{"u":906,"l":856,"s":1,"a":true},{"u":609,"l":64,"s":1,"a":true},{"u":816,"l":227,"s":0,"a":false},{"u":875,"l":525,"s":0,"a":true},{"u":843,"l":629,"s":0,"a":false},{"u":767,"l":461,"s":0,"a":true},{"u":859,"l":652,"s":1,"a":true},{"u":769,"l":307,"s":0,"a":true},{"u":680,"l":381,"s":0,"a":true},{"u":912,"l":773,"s":1,"a":false},{"u":829,"l":565,"s":0,"a":true},{"u":942,"l":52,"s":1,"a":true},{"u":284,"l":146,"s":1,"a":true},{"u":399,"l":356,"s":0,"a":false},{"u":625,"l":585,"s":0,"a":true},{"u":896,"l":662,"s":0,"a":false},{"u":320,"l":49,"s":0,"a":true},{"u":288,"l":152,"s":1,"a":true},{"u":150,"l":61,"s":0,"a":true},{"u":329,"l":315,"s":1,"a":true},{"u":738,"l":573,"s":0,"a":false},{"u":477,"l":51,"s":1,"a":true},{"u":724,"l":46,"s":0,"a":true},{"u":835,"l":131,"s":1,"a":false},{"u":690,"l":211,"s":1,"a":true},{"u":707,"l":395,"s":0,"a":true},{"u":813,"l":217,"s":0,"a":true},{"u":128,"l":99,"s":1,"a":true},{"u":488,"l":17,"s":1,"a":true},{"u":863,"l":192,"s":0,"a":true},{"u":715,"l":669,"s":0,"a":true},{"u":628,"l":331,"s":1,"a":true},{"u":453,"l":341,"s":1,"a":true},{"u":975,"l":116,"s":0,"a":false},{"u":426,"l":342,"s":0,"a":false},{"u":526,"l":107,"s":1,"a":true},{"u":622,"l":618,"s":0,"a":false},{"u":541,"l":200,"s":0,"a":true},{"u":948,"l":60,"s":1,"a":false},{"u":540,"l":453,"s":1,"a":true},{"u":565,"l":528,"s":1,"a":true},{"u":864,"l":716,"s":1,"a":false},{"u":805,"l":584,"s":0,"a":false},{"u":967,"l":17,"s":1,"a":false},{"u":743,"l":410,"s":0,"a":true},{"u":370,"l":101,"s":1,"a":false},{"u":757,"l":377,"s":1,"a":true},{"u":979,"l":249,"s":0,"a":true},{"u":784,"l":142,"s":0,"a":true},{"u":367,"l":65,"s":1,"a":false},{"u":427,"l":34,"s":0,"a":true},{"u":641,"l":182,"s":0,"a":false},{"u":544,"l":282,"s":0,"a":true},{"u":826,"l":751,"s":1,"a":true},{"u":543,"l":324,"s":1,"a":false},{"u":713,"l":487,"s":1,"a":false},{"u":970,"l":796,"s":0,"a":true},{"u":415,"l":265,"s":1,"a":false},{"u":874,"l":440,"s":0,"a":true},{"u":671,"l":524,"s":0,"a":false},{"u":697,"l":97,"s":1,"a":false},{"u":722,"l":707,"s":0,"a":true},{"u":286,"l":139,"s":1,"a":false},{"u":911,"l":696,"s":0,"a":true},{"u":308,"l":64,"s":1,"a":true},{"u":484,"l":61,"s":0,"a":false},{"u":778,"l":553,"s":0,"a":true},{"u":843,"l":164,"s":0,"a":true},{"u":130,"l":114,"s":1,"a":false},{"u":922,"l":912,"s":1,"a":false},{"u":831,"l":420,"s":1,"a":false},{"u":588,"l":581,"s":0,"a":false},{"u":318,"l":70,"s":0,"a":true},{"u":918,"l":48,"s":0,"a":true},{"u":539,"l":322,"s":1,"a":true},{"u":437,"l":325,"s":1,"a":true},{"u":213,"l":105,"s":0,"a":true},{"u":852,"l":61,"s":0,"a":false},{"u":691,"l":641,"s":1,"a":false},{"u":202,"l":151,"s":0,"a":false},{"u":867,"l":111,"s":1,"a":false},{"u":908,"l":400,"s":0,"a":true},{"u":502,"l":145,"s":0,"a":true},{"u":762,"l":212,"s":0,"a":true},{"u":829,"l":502,"s":0,"a":true},{"u":595,"l":460,"s":1,"a":true},{"u":199,"l":57,"s":1,"a":true},{"u":204,"l":172,"s":0,"a":true},{"u":822,"l":721,"s":1,"a":true},{"u":156,"l":72,"s":1,"a":true},{"u":313,"l":276,"s":0,"a":true},{"u":420,"l":303,"s":1,"a":false},{"u":261,"l":95,"s":1,"a":false},{"u":480,"l":18,"s":0,"a":false},{"u":600,"l":563,"s":0,"a":true},{"u":960,"l":31,"s":1,"a":true},{"u":270,"l":104,"s":0,"a":true},{"u":866,"l":449,"s":1,"a":false},{"u":588,"l":6,"s":1,"a":true},{"u":671,"l":393,"s":1,"a":true},{"u":536,"l":291,"s":0,"a":false},{"u":992,"l":830,"s":0,"a":false},{"u":826,"l":699,"s":0,"a":false},{"u":887,"l":626,"s":1,"a":true},{"u":259,"l":141,"s":0,"a":true},{"u":731,"l":485,"s":1,"a":true},{"u":476,"l":159,"s":1,"a":true},{"u":759,"l":299,"s":0,"a":false},{"u":826,"l":67,"s":0,"a":true},{"u":782,"l":40,"s":0,"a":true},{"u":801,"l":377,"s":1,"a":true},{"u":454,"l":179,"s":1,"a":true},{"u":900,"l":117,"s":1,"a":false},{"u":228,"l":154,"s":1,"a":true},{"u":990,"l":811,"s":1,"a":false},{"u":522,"l":30,"s":0,"a":false},{"u":617,"l":151,"s":0,"a":true},{"u":485,"l":255,"s":0,"a":false},{"u":865,"l":8,"s":1,"a":true},{"u":803,"l":100,"s":0,"a":true},{"u":635,"l":358,"s":1,"a":true},{"u":437,"l":86,"s":0,"a":false},{"u":833,"l":575,"s":1,"a":true},{"u":213,"l":129,"s":0,"a":false},{"u":474,"l":74,"s":0,"a":true},{"u":953,"l":459,"s":0,"a":false},{"u":739,"l":401,"s":0,"a":true},{"u":992,"l":417,"s":1,"a":false},{"u":759,"l":505,"s":0,"a":false},{"u":885,"l":599,"s":0,"a":true},{"u":909,"l":790,"s":0,"a":true},{"u":829,"l":59,"s":1,"a":true},{"u":948,"l":496,"s":0,"a":false},{"u":855,"l":135,"s":1,"a":false},{"u":743,"l":8,"s":0,"a":false},{"u":554,"l":489,"s":0,"a":true},{"u":563,"l":558,"s":0,"a":false},{"u":669,"l":355,"s":0,"a":false},{"u":967,"l":642,"s":1,"a":false},{"u":972,"l":290,"s":1,"a":false},{"u":911,"l":66,"s":1,"a":true},{"u":666,"l":300,"s":0,"a":true},{"u":725,"l":145,"s":1,"a":false},{"u":937,"l":438,"s":0,"a":true},{"u":207,"l":166,"s":1,"a":true},{"u":517,"l":130,"s":0,"a":true},{"u":639,"l":199,"s":0,"a":false},{"u":770,"l":589,"s":1,"a":false},{"u":963,"l":406,"s":0,"a":true},{"u":354,"l":40,"s":0,"a":false},{"u":987,"l":181,"s":1,"a":true},{"u":618,"l":546,"s":1,"a":true},{"u":858,"l":763,"s":1,"a":false},{"u":978,"l":208,"s":1,"a":false},{"u":248,"l":142,"s":1,"a":false},{"u":919,"l":891,"s":1,"a":false},{"u":714,"l":227,"s":1,"a":true},{"u":834,"l":97,"s":1,"a":false},{"u":319,"l":279,"s":0,"a":false},{"u":876,"l":808,"s":0,"a":false},{"u":506,"l":359,"s":1,"a":true},{"u":578,"l":35,"s":0,"a":false},{"u":558,"l":521,"s":0,"a":false},{"u":531,"l":525,"s":0,"a":false},{"u":992,"l":539,"s":1,"a":false},{"u":690,"l":136,"s":1,"a":false},{"u":937,"l":927,"s":0,"a":false},{"u":270,"l":97,"s":0,"a":true},{"u":287,"l":278,"s":1,"a":false},{"u":501,"l":439,"s":1,"a":true},{"u":725,"l":428,"s":1,"a":false},{"u":809,"l":795,"s":0,"a":true},{"u":538,"l":338,"s":1,"a":true},{"u":798,"l":483,"s":0,"a":false},{"u":933,"l":541,"s":1,"a":true},{"u":730,"l":145,"s":1,"a":true},{"u":735,"l":352,"s":0,"a":false},{"u":912,"l":20,"s":1,"a":false},{"u":815,"l":30,"s":1,"a":false},{"u":880,"l":709,"s":1,"a":false},{"u":652,"l":439,"s":0,"a":true},{"u":813,"l":529,"s":1,"a":false},{"u":895,"l":3,"s":1,"a":true},{"u":964,"l":573,"s":0,"a":true},{"u":523,"l":231,"s":1,"a":false},{"u":862,"l":526,"s":1,"a":true},{"u":595,"l":514,"s":0,"a":true},{"u":724,"l":154,"s":0,"a":false},{"u":234,"l":186,"s":0,"a":true},{"u":646,"l":200,"s":0,"a":false},{"u":407,"l":306,"s":0,"a":true},{"u":863,"l":604,"s":0,"a":false},{"u":846,"l":122,"s":1,"a":true},{"u":984,"l":30,"s":0,"a":false},{"u":831,"l":74,"s":1,"a":true},{"u":704,"l":462,"s":0,"a":true},{"u":554,"l":361,"s":1,"a":true},{"u":849,"l":349,"s":0,"a":false},{"u":428,"l":163,"s":1,"a":true},{"u":821,"l":730,"s":0,"a":true},{"u":374,"l":219,"s":1,"a":true},{"u":933,"l":923,"s":1,"a":true},{"u":967,"l":590,"s":0,"a":false},{"u":700,"l":608,"s":1,"a":false},{"u":768,"l":537,"s":0,"a":false},{"u":696,"l":666,"s":0,"a":false},{"u":892,"l":480,"s":1,"a":true},{"u":606,"l":218,"s":0,"a":false},{"u":659,"l":115,"s":1,"a":false},{"u":919,"l":870,"s":0,"a":true},{"u":751,"l":393,"s":1,"a":false},{"u":650,"l":565,"s":0,"a":true},{"u":810,"l":229,"s":1,"a":false},{"u":831,"l":459,"s":1,"a":true},{"u":780,"l":76,"s":1,"a":true},{"u":485,"l":450,"s":1,"a":false},{"u":760,"l":490,"s":0,"a":true},{"u":879,"l":156,"s":0,"a":false},{"u":727,"l":281,"s":0,"a":true},{"u":420,"l":396,"s":1,"a":false},{"u":147,"l":138,"s":1,"a":true},{"u":898,"l":587,"s":1,"a":true},{"u":645,"l":495,"s":0,"a":false},{"u":296,"l":71,"s":1,"a":false},{"u":759,"l":74,"s":1,"a":true},{"u":470,"l":251,"s":1,"a":false},{"u":538,"l":54,"s":1,"a":false},{"u":822,"l":239,"s":0,"a":false},{"u":969,"l":775,"s":0,"a":true},{"u":424,"l":62,"s":1,"a":true},{"u":763,"l":347,"s":0,"a":false},{"u":426,"l":234,"s":1,"a":false},{"u":321,"l":258,"s":0,"a":false},{"u":360,"l":171,"s":1,"a":false},{"u":470,"l":378,"s":0,"a":false},{"u":774,"l":447,"s":0,"a":false},{"u":751,"l":391,"s":0,"a":false},{"u":269,"l":92,"s":0,"a":false},{"u":135,"l":58,"s":0,"a":true},{"u":625,"l":251,"s":1,"a":false},{"u":834,"l":615,"s":0,"a":true},{"u":827,"l":761,"s":1,"a":false},{"u":784,"l":52,"s":1,"a":true},{"u":863,"l":82,"s":1,"a":true},{"u":158,"l":145,"s":1,"a":false},{"u":287,"l":51,"s":1,"a":false},{"u":680,"l":576,"s":1,"a":true},{"u":822,"l":105,"s":1,"a":false},{"u":769,"l":109,"s":0,"a":true},{"u":877,"l":813,"s":0,"a":false},{"u":951,"l":935,"s":0,"a":true},{"u":973,"l":116,"s":0,"a":true},{"u":979,"l":37,"s":0,"a":false},{"u":627,"l":318,"s":1,"a":true},{"u":756,"l":706,"s":0,"a":false},{"u":742,"l":591,"s":0,"a":false},{"u":885,"l":142,"s":0,"a":true},{"u":515,"l":491,"s":1,"a":true},{"u":785,"l":580,"s":1,"a":false},{"u":756,"l":517,"s":1,"a":false},{"u":643,"l":232,"s":1,"a":true},{"u":759,"l":184,"s":0,"a":false},{"u":543,"l":126,"s":0,"a":false},{"u":980,"l":776,"s":1,"a":false},{"u":825,"l":105,"s":1,"a":true},{"u":718,"l":619,"s":0,"a":true},{"u":550,"l":513,"s":1,"a":false},{"u":589,"l":146,"s":1,"a":false},{"u":671,"l":246,"s":1,"a":false},{"u":275,"l":271,"s":1,"a":true},{"u":809,"l":157,"s":1,"a":false},{"u":937,"l":72,"s":1,"a":false},{"u":943,"l":813,"s":0,"a":true},{"u":282,"l":215,"s":1,"a":false},{"u":808,"l":364,"s":1,"a":true},{"u":975,"l":347,"s":0,"a":false},{"u":984,"l":496,"s":1,"a":false},{"u":799,"l":579,"s":1,"a":true},{"u":752,"l":106,"s":1,"a":false},{"u":474,"l":205,"s":0,"a":true},{"u":662,"l":335,"s":1,"a":true},{"u":858,"l":157,"s":0,"a":false},{"u":593,"l":14,"s":0,"a":false},{"u":649,"l":383,"s":1,"a":true},{"u":707,"l":277,"s":0,"a":true},{"u":623,"l":31,"s":1,"a":false},{"u":276,"l":129,"s":1,"a":false},{"u":862,"l":137,"s":0,"a":false},{"u":855,"l":431,"s":0,"a":false},{"u":991,"l":186,"s":1,"a":false},{"u":548,"l":293,"s":0,"a":false},{"u":837,"l":368,"s":1,"a":true},{"u":425,"l":92,"s":0,"a":false},{"u":741,"l":501,"s":0,"a":true},{"u":602,"l":32,"s":1,"a":false},{"u":929,"l":106,"s":0,"a":false},{"u":255,"l":26,"s":0,"a":false},{"u":907,"l":640,"s":1,"a":false},{"u":789,"l":528,"s":1,"a":true},{"u":968,"l":532,"s":0,"a":true},{"u":758,"l":318,"s":0,"a":true},{"u":370,"l":250,"s":1,"a":true},{"u":766,"l":581,"s":0,"a":false},{"u":401,"l":148,"s":0,"a":false},{"u":429,"l":390,"s":1,"a":false},{"u":729,"l":116,"s":0,"a":false},{"u":902,"l":230,"s":1,"a":false},{"u":836,"l":395,"s":0,"a":false},{"u":643,"l":241,"s":1,"a":true},{"u":822,"l":157,"s":0,"a":true},{"u":853,"l":488,"s":1,"a":false},{"u":612,"l":135,"s":1,"a":false},{"u":581,"l":337,"s":0,"a":false},{"u":249,"l":148,"s":0,"a":false},{"u":323,"l":205,"s":1,"a":false},{"u":925,"l":899,"s":0,"a":false},{"u":679,"l":66,"s":1,"a":false},{"u":969,"l":762,"s":1,"a":true},{"u":941,"l":881,"s":0,"a":false},{"u":967,"l":721,"s":0,"a":false},{"u":499,"l":188,"s":0,"a":false},{"u":922,"l":531,"s":1,"a":false},{"u":568,"l":97,"s":0,"a":false},{"u":894,"l":80,"s":1,"a":true},{"u":680,"l":530,"s":1,"a":false},{"u":263,"l":105,"s":0,"a":false},{"u":173,"l":124,"s":1,"a":false},{"u":608,"l":331,"s":0,"a":true},{"u":923,"l":408,"s":0,"a":false},{"u":72,"l":13,"s":1,"a":false},{"u":557,"l":258,"s":0,"a":true},{"u":611,"l":257,"s":1,"a":false},{"u":908,"l":373,"s":1,"a":true},{"u":942,"l":177,"s":1,"a":false},{"u":484,"l":320,"s":0,"a":false},{"u":973,"l":2,"s":1,"a":false},{"u":573,"l":240,"s":1,"a":true},{"u":943,"l":15,"s":0,"a":true},{"u":178,"l":61,"s":1,"a":true},{"u":667,"l":407,"s":1,"a":false},{"u":943,"l":635,"s":0,"a":false},{"u":989,"l":357,"s":1,"a":true},{"u":495,"l":185,"s":1,"a":false},{"u":905,"l":28,"s":0,"a":true},{"u":800,"l":719,"s":0,"a":false},{"u":889,"l":826,"s":0,"a":true},{"u":300,"l":41,"s":0,"a":true},{"u":695,"l":374,"s":1,"a":true},{"u":938,"l":92,"s":1,"a":true},{"u":491,"l":76,"s":0,"a":false},{"u":598,"l":180,"s":0,"a":false},{"u":254,"l":243,"s":0,"a":false},{"u":786,"l":102,"s":1,"a":false},{"u":609,"l":93,"s":0,"a":false},{"u":627,"l":395,"s":0,"a":false},{"u":758,"l":209,"s":0,"a":false},{"u":671,"l":256,"s":0,"a":true},{"u":502,"l":263,"s":1,"a":true},{"u":842,"l":840,"s":0,"a":true},{"u":986,"l":175,"s":0,"a":true},{"u":735,"l":474,"s":0,"a":true},{"u":824,"l":133,"s":0,"a":false},{"u":507,"l":152,"s":1,"a":false},{"u":649,"l":110,"s":1,"a":true},{"u":835,"l":281,"s":1,"a":false},{"u":568,"l":151,"s":0,"a":true},{"u":401,"l":400,"s":0,"a":false},{"u":588,"l":327,"s":1,"a":true},{"u":894,"l":772,"s":1,"a":true},{"u":978,"l":211,"s":0,"a":false},{"u":764,"l":613,"s":1,"a":true},{"u":981,"l":553,"s":0,"a":true},{"u":447,"l":37,"s":0,"a":false},{"u":796,"l":259,"s":1,"a":true},{"u":973,"l":806,"s":1,"a":false},{"u":985,"l":373,"s":1,"a":false},{"u":971,"l":197,"s":0,"a":true},{"u":594,"l":431,"s":0,"a":true},{"u":628,"l":250,"s":1,"a":false},{"u":725,"l":13,"s":1,"a":false},{"u":330,"l":261,"s":1,"a":true},{"u":805,"l":447,"s":1,"a":false},{"u":843,"l":137,"s":0,"a":false},{"u":580,"l":510,"s":0,"a":true},{"u":710,"l":417,"s":0,"a":false},{"u":829,"l":157,"s":1,"a":true},{"u":439,"l":368,"s":0,"a":true},{"u":815,"l":749,"s":1,"a":false},{"u":880,"l":658,"s":0,"a":true},{"u":971,"l":775,"s":0,"a":false},{"u":953,"l":90,"s":1,"a":true},{"u":966,"l":53,"s":1,"a":false},{"u":928,"l":481,"s":0,"a":false},{"u":952,"l":332,"s":1,"a":true},{"u":122,"l":114,"s":0,"a":false},{"u":587,"l":60,"s":0,"a":false},{"u":90,"l":18,"s":0,"a":true},{"u":627,"l":286,"s":0,"a":false},{"u":918,"l":450,"s":1,"a":false},{"u":876,"l":432,"s":0,"a":true},{"u":740,"l":387,"s":1,"a":false},{"u":987,"l":548,"s":0,"a":false},{"u":854,"l":204,"s":1,"a":true},{"u":537,"l":225,"s":0,"a":true},{"u":865,"l":340,"s":1,"a":false},{"u":243,"l":74,"s":1,"a":true},{"u":763,"l":685,"s":0,"a":true},{"u":209,"l":48,"s":0,"a":true},{"u":481,"l":206,"s":1,"a":false},{"u":872,"l":555,"s":0,"a":true},{"u":971,"l":194,"s":1,"a":true},{"u":391,"l":186,"s":0,"a":false},{"u":936,"l":873,"s":0,"a":true},{"u":220,"l":107,"s":0,"a":true},{"u":420,"l":160,"s":1,"a":true},{"u":711,"l":404,"s":0,"a":false},{"u":917,"l":166,"s":1,"a":true},{"u":440,"l":124,"s":0,"a":true},{"u":814,"l":372,"s":1,"a":false},{"u":616,"l":561,"s":0,"a":true},{"u":446,"l":203,"s":1,"a":true},{"u":443,"l":374,"s":1,"a":false},{"u":871,"l":594,"s":0,"a":false},{"u":897,"l":422,"s":0,"a":true},{"u":740,"l":156,"s":0,"a":true},{"u":374,"l":367,"s":0,"a":false},{"u":619,"l":517,"s":1,"a":true},{"u":612,"l":185,"s":0,"a":false},{"u":246,"l":168,"s":1,"a":true},{"u":985,"l":426,"s":1,"a":true},{"u":931,"l":79,"s":0,"a":false},{"u":296,"l":225,"s":1,"a":false},{"u":716,"l":532,"s":0,"a":true},{"u":864,"l":68,"s":1,"a":false},{"u":251,"l":135,"s":0,"a":true},{"u":997,"l":712,"s":0,"a":false},{"u":819,"l":766,"s":0,"a":true},{"u":949,"l":872,"s":0,"a":true},{"u":984,"l":698,"s":0,"a":true},{"u":602,"l":140,"s":0,"a":true},{"u":854,"l":473,"s":0,"a":false},{"u":408,"l":119,"s":1,"a":false},{"u":899,"l":840,"s":0,"a":false},{"u":860,"l":377,"s":0,"a":true},{"u":875,"l":285,"s":1,"a":true},{"u":883,"l":215,"s":1,"a":true},{"u":726,"l":457,"s":0,"a":true},{"u":826,"l":124,"s":0,"a":true},{"u":323,"l":86,"s":1,"a":true},{"u":362,"l":123,"s":0,"a":true},{"u":997,"l":491,"s":0,"a":true},{"u":883,"l":92,"s":1,"a":false},{"u":576,"l":313,"s":0,"a":true},{"u":698,"l":355,"s":1,"a":true},{"u":591,"l":339,"s":0,"a":false},{"u":809,"l":744,"s":1,"a":false},{"u":985,"l":154,"s":1,"a":false},{"u":402,"l":296,"s":1,"a":false},{"u":419,"l":170,"s":0,"a":false},{"u":742,"l":125,"s":0,"a":false},{"u":382,"l":379,"s":0,"a":false},{"u":432,"l":126,"s":1,"a":false},{"u":763,"l":8,"s":0,"a":true},{"u":893,"l":81,"s":1,"a":true},{"u":926,"l":715,"s":0,"a":false},{"u":878,"l":240,"s":1,"a":true},{"u":801,"l":472,"s":0,"a":false},{"u":574,"l":304,"s":1,"a":false},{"u":813,"l":676,"s":0,"a":true},{"u":369,"l":143,"s":0,"a":true},{"u":965,"l":155,"s":0,"a":true},{"u":833,"l":357,"s":0,"a":false},{"u":949,"l":161,"s":1,"a":true},{"u":987,"l":240,"s":0,"a":true},{"u":988,"l":610,"s":1,"a":true},{"u":606,"l":224,"s":1,"a":true},{"u":557,"l":6,"s":1,"a":true},{"u":930,"l":149,"s":1,"a":true},{"u":529,"l":430,"s":1,"a":false},{"u":651,"l":370,"s":0,"a":true},{"u":606,"l":74,"s":0,"a":false},{"u":938,"l":904,"s":0,"a":true},{"u":789,"l":306,"s":1,"a":true},{"u":781,"l":23,"s":0,"a":false},{"u":418,"l":380,"s":0,"a":false},{"u":791,"l":54,"s":1,"a":true},{"u":989,"l":232,"s":1,"a":false},{"u":987,"l":142,"s":1,"a":true},{"u":773,"l":82,"s":1,"a":false},{"u":746,"l":232,"s":1,"a":true},{"u":387,"l":86,"s":0,"a":true},{"u":734,"l":722,"s":1,"a":false},{"u":950,"l":822,"s":0,"a":true},{"u":343,"l":214,"s":1,"a":true},{"u":660,"l":149,"s":1,"a":true},{"u":798,"l":129,"s":1,"a":false},{"u":307,"l":103,"s":1,"a":false},{"u":697,"l":459,"s":0,"a":false},{"u":901,"l":812,"s":1,"a":true},{"u":270,"l":136,"s":0,"a":true},{"u":501,"l":384,"s":0,"a":false},{"u":882,"l":393,"s":0,"a":false},{"u":979,"l":237,"s":0,"a":false},{"u":622,"l":324,"s":1,"a":true},{"u":661,"l":110,"s":1,"a":true},{"u":607,"l":314,"s":1,"a":true},{"u":718,"l":662,"s":1,"a":false},{"u":761,"l":685,"s":0,"a":false},{"u":427,"l":328,"s":0,"a":false},{"u":931,"l":246,"s":0,"a":false},{"u":277,"l":19,"s":1,"a":false},{"u":544,"l":364,"s":1,"a":false},{"u":166,"l":102,"s":1,"a":true},{"u":805,"l":685,"s":1,"a":false},{"u":879,"l":7,"s":1,"a":true},{"u":214,"l":193,"s":0,"a":true},{"u":127,"l":102,"s":0,"a":true},{"u":470,"l":289,"s":1,"a":true},{"u":633,"l":297,"s":1,"a":false},{"u":611,"l":569,"s":0,"a":true},{"u":719,"l":419,"s":1,"a":true},{"u":845,"l":737,"s":0,"a":false},{"u":877,"l":292,"s":0,"a":false},{"u":704,"l":621,"s":0,"a":false},{"u":872,"l":479,"s":1,"a":true},{"u":856,"l":378,"s":1,"a":false},{"u":817,"l":733,"s":1,"a":true},{"u":319,"l":49,"s":1,"a":true},{"u":374,"l":293,"s":1,"a":false},{"u":984,"l":444,"s":1,"a":true},{"u":550,"l":55,"s":0,"a":false},{"u":554,"l":450,"s":1,"a":true},{"u":780,"l":213,"s":1,"a":false},{"u":960,"l":677,"s":1,"a":true},{"u":725,"l":80,"s":1,"a":false},{"u":983,"l":494,"s":0,"a":false},{"u":613,"l":318,"s":0,"a":true},{"u":360,"l":217,"s":1,"a":true},{"u":592,"l":468,"s":1,"a":false},{"u":975,"l":720,"s":1,"a":false},{"u":838,"l":36,"s":0,"a":true},{"u":451,"l":54,"s":1,"a":true},{"u":413,"l":96,"s":0,"a":true},{"u":404,"l":377,"s":0,"a":true},{"u":671,"l":466,"s":0,"a":true},{"u":511,"l":375,"s":1,"a":true},{"u":846,"l":244,"s":1,"a":true},{"u":869,"l":151,"s":1,"a":true},{"u":867,"l":861,"s":0,"a":true},{"u":392,"l":352,"s":0,"a":false},{"u":823,"l":122,"s":0,"a":false},{"u":398,"l":22,"s":1,"a":false},{"u":692,"l":597,"s":0,"a":true},{"u":827,"l":20,"s":0,"a":true},{"u":593,"l":220,"s":1,"a":true},{"u":983,"l":706,"s":0,"a":false},{"u":930,"l":648,"s":0,"a":true},{"u":440,"l":82,"s":1,"a":true},{"u":856,"l":283,"s":0,"a":true},{"u":499,"l":22,"s":1,"a":false},{"u":939,"l":28,"s":1,"a":true},{"u":546,"l":535,"s":0,"a":true},{"u":667,"l":243,"s":1,"a":false},{"u":976,"l":779,"s":1,"a":false},{"u":459,"l":115,"s":1,"a":false},{"u":253,"l":208,"s":1,"a":true},{"u":276,"l":111,"s":0,"a":false},{"u":868,"l":272,"s":1,"a":true},{"u":207,"l":51,"s":1,"a":false},{"u":950,"l":688,"s":0,"a":true},{"u":890,"l":198,"s":0,"a":true},{"u":408,"l":9,"s":0,"a":false},{"u":470,"l":90,"s":1,"a":true},{"u":800,"l":275,"s":1,"a":true},{"u":167,"l":15,"s":0,"a":false},{"u":328,"l":139,"s":1,"a":false},{"u":998,"l":364,"s":0,"a":false},{"u":429,"l":127,"s":1,"a":false},{"u":767,"l":129,"s":1,"a":true},{"u":889,"l":679,"s":0,"a":true},{"u":235,"l":163,"s":1,"a":false},{"u":766,"l":680,"s":1,"a":true},{"u":522,"l":357,"s":0,"a":true},{"u":208,"l":78,"s":0,"a":false},{"u":468,"l":343,"s":0,"a":true},{"u":811,"l":184,"s":1,"a":true},{"u":524,"l":357,"s":1,"a":true},{"u":469,"l":52,"s":1,"a":false},{"u":965,"l":291,"s":0,"a":true},{"u":777,"l":194,"s":0,"a":false},{"u":295,"l":63,"s":1,"a":true},{"u":911,"l":577,"s":1,"a":true},{"u":874,"l":521,"s":0,"a":true},{"u":681,"l":236,"s":0,"a":false},{"u":729,"l":539,"s":1,"a":false},{"u":758,"l":609,"s":1,"a":false},{"u":398,"l":317,"s":1,"a":true},{"u":891,"l":572,"s":1,"a":false},{"u":390,"l":125,"s":1,"a":true},{"u":299,"l":200,"s":0,"a":false},{"u":712,"l":669,"s":0,"a":false},{"u":523,"l":185,"s":1,"a":true},{"u":629,"l":456,"s":0,"a":false},{"u":650,"l":597,"s":1,"a":true},{"u":832,"l":140,"s":0,"a":false},{"u":960,"l":411,"s":1,"a":true},{"u":854,"l":365,"s":1,"a":false},{"u":828,"l":813,"s":1,"a":true},{"u":819,"l":645,"s":1,"a":true},{"u":559,"l":478,"s":1,"a":false},{"u":281,"l":278,"s":0,"a":false},{"u":783,"l":141,"s":0,"a":false},{"u":789,"l":654,"s":1,"a":false},{"u":514,"l":61,"s":1,"a":true},{"u":306,"l":224,"s":0,"a":false},{"u":738,"l":96,"s":1,"a":false},{"u":583,"l":106,"s":1,"a":true},{"u":746,"l":117,"s":1,"a":false},{"u":705,"l":298,"s":0,"a":true},{"u":995,"l":685,"s":1,"a":false},{"u":913,"l":880,"s":0,"a":false},{"u":617,"l":594,"s":0,"a":true},{"u":185,"l":179,"s":1,"a":true},{"u":361,"l":189,"s":1,"a":true},{"u":707,"l":393,"s":0,"a":true},{"u":284,"l":90,"s":1,"a":true},{"u":457,"l":79,"s":0,"a":true},{"u":735,"l":644,"s":0,"a":true},{"u":811,"l":285,"s":1,"a":true},{"u":812,"l":355,"s":0,"a":false},{"u":850,"l":127,"s":0,"a":true},{"u":542,"l":83,"s":0,"a":true},{"u":255,"l":45,"s":1,"a":true},{"u":475,"l":215,"s":1,"a":true},{"u":481,"l":204,"s":0,"a":true},{"u":101,"l":65,"s":0,"a":true},{"u":966,"l":874,"s":1,"a":true},{"u":848,"l":550,"s":0,"a":false},{"u":524,"l":505,"s":0,"a":false},{"u":832,"l":342,"s":1,"a":false},{"u":500,"l":184,"s":0,"a":false},{"u":773,"l":726,"s":1,"a":false},{"u":444,"l":228,"s":1,"a":true},{"u":425,"l":382,"s":0,"a":true},{"u":963,"l":748,"s":0,"a":true},{"u":977,"l":243,"s":0,"a":false},{"u":830,"l":80,"s":0,"a":false},{"u":880,"l":143,"s":1,"a":false},{"u":813,"l":350,"s":1,"a":true},{"u":920,"l":47,"s":0,"a":false},{"u":467,"l":288,"s":0,"a":false},{"u":778,"l":595,"s":0,"a":false},{"u":806,"l":271,"s":0,"a":true},{"u":830,"l":599,"s":0,"a":true},{"u":485,"l":120,"s":0,"a":false},{"u":574,"l":441,"s":1,"a":true},{"u":649,"l":568,"s":0,"a":false},{"u":786,"l":603,"s":0,"a":true},{"u":532,"l":180,"s":1,"a":true},{"u":677,"l":30,"s":1,"a":true},{"u":634,"l":136,"s":1,"a":false},{"u":574,"l":13,"s":0,"a":false},{"u":547,"l":391,"s":1,"a":false},{"u":634,"l":297,"s":1,"a":false},{"u":159,"l":29,"s":0,"a":false},{"u":138,"l":23,"s":0,"a":true},{"u":980,"l":247,"s":0,"a":false},{"u":343,"l":142,"s":0,"a":false},{"u":563,"l":375,"s":1,"a":true},{"u":938,"l":859,"s":1,"a":true},{"u":603,"l":74,"s":0,"a":false},{"u":543,"l":425,"s":1,"a":false},{"u":461,"l":233,"s":1,"a":true},{"u":831,"l":84,"s":1,"a":true},{"u":855,"l":305,"s":0,"a":false},{"u":592,"l":302,"s":0,"a":false},{"u":976,"l":677,"s":0,"a":true},{"u":136,"l":71,"s":0,"a":true},{"u":633,"l":184,"s":1,"a":false},{"u":889,"l":621,"s":1,"a":true},{"u":944,"l":543,"s":0,"a":true},{"u":619,"l":605,"s":0,"a":false},{"u":612,"l":365,"s":1,"a":true},{"u":291,"l":272,"s":0,"a":true},{"u":382,"l":151,"s":0,"a":false},{"u":738,"l":104,"s":1,"a":false},{"u":903,"l":316,"s":1,"a":true},{"u":220,"l":32,"s":1,"a":false},{"u":720,"l":139,"s":1,"a":false},{"u":483,"l":146,"s":1,"a":true},{"u":206,"l":53,"s":1,"a":false},{"u":733,"l":569,"s":1,"a":true},{"u":715,"l":181,"s":1,"a":true},{"u":873,"l":605,"s":0,"a":false},{"u":812,"l":440,"s":1,"a":true},{"u":358,"l":257,"s":0,"a":true},{"u":759,"l":285,"s":0,"a":false},{"u":619,"l":597,"s":0,"a":false},{"u":882,"l":83,"s":0,"a":false},{"u":667,"l":474,"s":1,"a":true},{"u":238,"l":44,"s":0,"a":false},{"u":727,"l":571,"s":0,"a":false},{"u":402,"l":235,"s":1,"a":false},{"u":453,"l":393,"s":0,"a":true},{"u":700,"l":86,"s":0,"a":true},{"u":930,"l":91,"s":1,"a":true},{"u":899,"l":589,"s":1,"a":false},{"u":858,"l":26,"s":1,"a":true},{"u":809,"l":96,"s":1,"a":true},{"u":800,"l":112,"s":0,"a":true},{"u":997,"l":762,"s":0,"a":true},{"u":814,"l":507,"s":1,"a":false},{"u":601,"l":424,"s":0,"a":false},{"u":927,"l":405,"s":0,"a":true},{"u":713,"l":637,"s":1,"a":true},{"u":799,"l":447,"s":0,"a":false},{"u":623,"l":23,"s":0,"a":false},{"u":874,"l":334,"s":1,"a":true},{"u":934,"l":570,"s":1,"a":false},{"u":598,"l":419,"s":1,"a":false},{"u":891,"l":521,"s":0,"a":false},{"u":481,"l":182,"s":0,"a":true},{"u":595,"l":507,"s":1,"a":true},{"u":678,"l":621,"s":1,"a":false},{"u":509,"l":41,"s":0,"a":false},{"u":627,"l":67,"s":1,"a":false},{"u":947,"l":858,"s":1,"a":false},{"u":797,"l":475,"s":0,"a":true},{"u":934,"l":434,"s":0,"a":true},{"u":710,"l":371,"s":1,"a":false},{"u":756,"l":459,"s":0,"a":false},{"u":226,"l":162,"s":1,"a":false},{"u":460,"l":313,"s":1,"a":false},{"u":326,"l":132,"s":1,"a":false},{"u":937,"l":249,"s":1,"a":false},{"u":968,"l":232,"s":1,"a":true},{"u":998,"l":358,"s":0,"a":false},{"u":857,"l":357,"s":1,"a":false},{"u":385,"l":357,"s":1,"a":true},{"u":431,"l":284,"s":1,"a":false},{"u":136,"l":100,"s":1,"a":true},{"u":525,"l":13,"s":0,"a":false},{"u":817,"l":127,"s":1,"a":true},{"u":956,"l":667,"s":1,"a":true},{"u":972,"l":21,"s":0,"a":false},{"u":658,"l":294,"s":1,"a":false},{"u":872,"l":368,"s":0,"a":false},{"u":976,"l":750,"s":0,"a":false},{"u":354,"l":283,"s":1,"a":true},{"u":952,"l":862,"s":0,"a":true},{"u":297,"l":117,"s":1,"a":true},{"u":380,"l":216,"s":0,"a":false},{"u":571,"l":469,"s":1,"a":false},{"u":360,"l":99,"s":0,"a":false},{"u":996,"l":276,"s":1,"a":false},{"u":960,"l":457,"s":1,"a":false},{"u":942,"l":937,"s":1,"a":false},{"u":833,"l":568,"s":0,"a":false},{"u":754,"l":383,"s":0,"a":false},{"u":931,"l":734,"s":0,"a":true},{"u":757,"l":564,"s":0,"a":true},{"u":175,"l":13,"s":1,"a":true},{"u":434,"l":85,"s":1,"a":false},{"u":673,"l":541,"s":1,"a":false},{"u":948,"l":620,"s":0,"a":true},{"u":807,"l":196,"s":0,"a":true},{"u":406,"l":331,"s":1,"a":true},{"u":784,"l":607,"s":1,"a":true},{"u":670,"l":232,"s":1,"a":true},{"u":319,"l":124,"s":0,"a":false},{"u":999,"l":829,"s":1,"a":true},{"u":955,"l":567,"s":0,"a":true},{"u":358,"l":161,"s":0,"a":true},{"u":934,"l":586,"s":0,"a":false},{"u":482,"l":191,"s":0,"a":false},{"u":934,"l":816,"s":0,"a":false},{"u":103,"l":37,"s":1,"a":false},{"u":523,"l":88,"s":1,"a":true},{"u":615,"l":345,"s":0,"a":false},{"u":321,"l":63,"s":0,"a":false},{"u":896,"l":614,"s":1,"a":false},{"u":601,"l":46,"s":0,"a":false},{"u":405,"l":259,"s":0,"a":true},{"u":122,"l":51,"s":0,"a":false},{"u":983,"l":542,"s":0,"a":true},{"u":624,"l":506,"s":1,"a":false},{"u":698,"l":436,"s":0,"a":true},{"u":950,"l":413,"s":0,"a":true},{"u":307,"l":167,"s":1,"a":true},{"u":598,"l":133,"s":0,"a":false},{"u":946,"l":840,"s":1,"a":false},{"u":737,"l":449,"s":0,"a":false},{"u":622,"l":14,"s":0,"a":false},{"u":717,"l":89,"s":1,"a":false},{"u":783,"l":324,"s":0,"a":false},{"u":487,"l":359,"s":1,"a":true},{"u":898,"l":459,"s":1,"a":false},{"u":660,"l":639,"s":1,"a":false},{"u":851,"l":673,"s":0,"a":true},{"u":813,"l":727,"s":1,"a":false},{"u":997,"l":526,"s":0,"a":true},{"u":747,"l":205,"s":0,"a":false},{"u":537,"l":405,"s":1,"a":true},{"u":341,"l":239,"s":0,"a":false},{"u":692,"l":166,"s":1,"a":false},{"u":951,"l":211,"s":1,"a":true},{"u":683,"l":64,"s":0,"a":false},{"u":385,"l":218,"s":0,"a":true},{"u":975,"l":693,"s":0,"a":false},{"u":548,"l":337,"s":0,"a":true},{"u":941,"l":824,"s":1,"a":false},{"u":991,"l":778,"s":0,"a":false},{"u":533,"l":137,"s":1,"a":true},{"u":100,"l":62,"s":1,"a":false},{"u":624,"l":18,"s":1,"a":true},{"u":987,"l":219,"s":1,"a":true},{"u":562,"l":337,"s":0,"a":true},{"u":521,"l":163,"s":0,"a":true},{"u":550,"l":324,"s":0,"a":true},{"u":500,"l":197,"s":1,"a":false},{"u":758,"l":406,"s":0,"a":true},{"u":108,"l":94,"s":0,"a":true},{"u":858,"l":201,"s":0,"a":false},{"u":415,"l":322,"s":0,"a":false},{"u":748,"l":510,"s":1,"a":true},{"u":975,"l":260,"s":0,"a":false},{"u":986,"l":975,"s":0,"a":false},{"u":150,"l":98,"s":1,"a":true},{"u":999,"l":872,"s":0,"a":false},{"u":998,"l":520,"s":0,"a":false},{"u":905,"l":904,"s":1,"a":false},{"u":994,"l":969,"s":0,"a":false},{"u":302,"l":244,"s":1,"a":false},{"u":218,"l":215,"s":1,"a":true},{"u":312,"l":232,"s":0,"a":false},{"u":634,"l":563,"s":0,"a":true},{"u":799,"l":756,"s":0,"a":false},{"u":723,"l":596,"s":1,"a":true},{"u":895,"l":278,"s":0,"a":false},{"u":164,"l":109,"s":0,"a":true},{"u":796,"l":298,"s":1,"a":true},{"u":353,"l":28,"s":0,"a":false},{"u":210,"l":84,"s":0,"a":false},{"u":740,"l":70,"s":0,"a":true},{"u":252,"l":69,"s":0,"a":true},{"u":276,"l":209,"s":0,"a":true},{"u":536,"l":122,"s":0,"a":true},{"u":388,"l":339,"s":0,"a":false},{"u":628,"l":499,"s":0,"a":false},{"u":474,"l":188,"s":0,"a":true},{"u":531,"l":291,"s":0,"a":true},{"u":711,"l":397,"s":1,"a":false},{"u":903,"l":653,"s":1,"a":false},{"u":453,"l":363,"s":0,"a":true},{"u":290,"l":148,"s":0,"a":true},{"u":577,"l":489,"s":0,"a":false},{"u":949,"l":742,"s":0,"a":false},{"u":902,"l":898,"s":1,"a":false},{"u":803,"l":20,"s":0,"a":false},{"u":930,"l":810,"s":1,"a":true},{"u":812,"l":137,"s":0,"a":false},{"u":886,"l":772,"s":0,"a":true},{"u":986,"l":595,"s":0,"a":false},{"u":668,"l":58,"s":1,"a":true},{"u":943,"l":93,"s":1,"a":true},{"u":303,"l":165,"s":0,"a":true},{"u":691,"l":482,"s":0,"a":true},{"u":792,"l":685,"s":0,"a":true},{"u":690,"l":614,"s":0,"a":true},{"u":668,"l":591,"s":1,"a":true},{"u":572,"l":354,"s":1,"a":false},{"u":938,"l":420,"s":1,"a":true},{"u":981,"l":319,"s":0,"a":false},{"u":297,"l":293,"s":0,"a":false},{"u":960,"l":159,"s":1,"a":true},{"u":983,"l":914,"s":1,"a":true},{"u":809,"l":750,"s":1,"a":true},{"u":674,"l":241,"s":0,"a":true},{"u":864,"l":65,"s":1,"a":false},{"u":893,"l":411,"s":1,"a":true},{"u":973,"l":847,"s":1,"a":true},{"u":502,"l":109,"s":1,"a":false},{"u":890,"l":91,"s":0,"a":true},{"u":962,"l":386,"s":0,"a":true},{"u":812,"l":638,"s":0,"a":false},{"u":867,"l":56,"s":1,"a":false},{"u":510,"l":240,"s":0,"a":false},{"u":946,"l":917,"s":1,"a":true},{"u":665,"l":320,"s":1,"a":true},{"u":242,"l":119,"s":1,"a":false},{"u":518,"l":102,"s":1,"a":false},{"u":298,"l":57,"s":0,"a":true},{"u":936,"l":96,"s":1,"a":true},{"u":622,"l":59,"s":1,"a":true},{"u":374,"l":231,"s":1,"a":false},{"u":743,"l":717,"s":0,"a":true},{"u":758,"l":574,"s":0,"a":false},{"u":971,"l":909,"s":1,"a":true},{"u":972,"l":502,"s":1,"a":true},{"u":917,"l":201,"s":0,"a":true},{"u":988,"l":507,"s":1,"a":true},{"u":841,"l":792,"s":0,"a":false},{"u":612,"l":479,"s":0,"a":true},{"u":952,"l":235,"s":0,"a":false},{"u":979,"l":485,"s":1,"a":false},{"u":731,"l":532,"s":0,"a":false},{"u":703,"l":165,"s":1,"a":true},{"u":944,"l":369,"s":1,"a":false},{"u":786,"l":465,"s":1,"a":false},{"u":731,"l":131,"s":0,"a":false},{"u":381,"l":115,"s":0,"a":true},{"u":474,"l":102,"s":0,"a":true},{"u":619,"l":88,"s":1,"a":false},{"u":669,"l":503,"s":1,"a":false},{"u":32,"l":24,"s":1,"a":false},{"u":271,"l":167,"s":1,"a":true},{"u":850,"l":571,"s":0,"a":false},{"u":423,"l":369,"s":1,"a":false},{"u":856,"l":335,"s":0,"a":false},{"u":913,"l":242,"s":1,"a":true},{"u":668,"l":280,"s":0,"a":true},{"u":329,"l":138,"s":1,"a":false},{"u":737,"l":127,"s":0,"a":true},{"u":885,"l":329,"s":1,"a":true},{"u":480,"l":192,"s":0,"a":false},{"u":613,"l":401,"s":1,"a":true},{"u":690,"l":567,"s":0,"a":true},{"u":408,"l":374,"s":0,"a":true},{"u":527,"l":200,"s":0,"a":true},{"u":658,"l":253,"s":0,"a":true},{"u":605,"l":333,"s":0,"a":true},{"u":713,"l":646,"s":1,"a":false},{"u":382,"l":61,"s":1,"a":false},{"u":752,"l":628,"s":1,"a":false},{"u":860,"l":93,"s":0,"a":true},{"u":801,"l":106,"s":0,"a":true},{"u":452,"l":87,"s":0,"a":true},{"u":639,"l":339,"s":1,"a":true},{"u":770,"l":293,"s":0,"a":false},{"u":582,"l":382,"s":0,"a":true},{"u":516,"l":484,"s":0,"a":false},{"u":965,"l":666,"s":1,"a":false},{"u":517,"l":200,"s":1,"a":false},{"u":950,"l":21,"s":0,"a":false},{"u":906,"l":154,"s":0,"a":true},{"u":553,"l":137,"s":1,"a":false},{"u":941,"l":273,"s":1,"a":false},{"u":488,"l":312,"s":0,"a":false},{"u":923,"l":690,"s":0,"a":true},{"u":723,"l":279,"s":1,"a":false},{"u":893,"l":189,"s":1,"a":true},{"u":816,"l":256,"s":1,"a":false},{"u":429,"l":135,"s":1,"a":true},{"u":588,"l":30,"s":0,"a":false},{"u":574,"l":19,"s":1,"a":true},{"u":694,"l":45,"s":1,"a":false},{"u":664,"l":531,"s":1,"a":true},{"u":479,"l":23,"s":0,"a":false},{"u":593,"l":341,"s":0,"a":true},{"u":365,"l":255,"s":0,"a":true},{"u":966,"l":10,"s":1,"a":false},{"u":537,"l":281,"s":0,"a":true},{"u":949,"l":627,"s":0,"a":false},{"u":836,"l":272,"s":0,"a":true},{"u":273,"l":112,"s":1,"a":false},{"u":622,"l":415,"s":0,"a":true},{"u":698,"l":94,"s":1,"a":true},{"u":116,"l":47,"s":1,"a":false},{"u":460,"l":72,"s":0,"a":false},{"u":696,"l":546,"s":1,"a":true},{"u":873,"l":42,"s":0,"a":true},{"u":628,"l":479,"s":0,"a":false},{"u":564,"l":361,"s":0,"a":true},{"u":627,"l":116,"s":1,"a":false},{"u":308,"l":141,"s":1,"a":true},{"u":342,"l":12,"s":0,"a":false},{"u":741,"l":451,"s":1,"a":false},{"u":361,"l":238,"s":0,"a":true},{"u":938,"l":498,"s":0,"a":true},{"u":716,"l":115,"s":1,"a":true},{"u":701,"l":480,"s":0,"a":true},{"u":904,"l":672,"s":1,"a":false},{"u":991,"l":217,"s":1,"a":true},{"u":978,"l":145,"s":1,"a":true},{"u":371,"l":150,"s":0,"a":true},{"u":945,"l":796,"s":1,"a":true},{"u":706,"l":371,"s":0,"a":true},{"u":409,"l":1,"s":1,"a":false},{"u":871,"l":458,"s":1,"a":false},{"u":862,"l":210,"s":1,"a":true},{"u":891,"l":447,"s":1,"a":true},{"u":833,"l":93,"s":0,"a":true},{"u":640,"l":23,"s":0,"a":false},{"u":181,"l":84,"s":1,"a":true},{"u":573,"l":177,"s":1,"a":true},{"u":772,"l":589,"s":1,"a":false},{"u":820,"l":726,"s":0,"a":false},{"u":639,"l":52,"s":0,"a":false},{"u":687,"l":330,"s":0,"a":true},{"u":347,"l":137,"s":1,"a":false},{"u":693,"l":292,"s":0,"a":false},{"u":803,"l":446,"s":1,"a":false},{"u":935,"l":409,"s":1,"a":true},{"u":590,"l":192,"s":0,"a":true},{"u":524,"l":166,"s":1,"a":true},{"u":418,"l":12,"s":0,"a":true},{"u":248,"l":53,"s":0,"a":false},{"u":680,"l":40,"s":1,"a":false},{"u":588,"l":189,"s":1,"a":true},{"u":116,"l":84,"s":0,"a":false},{"u":380,"l":270,"s":0,"a":true},{"u":987,"l":476,"s":0,"a":true},{"u":315,"l":223,"s":1,"a":true},{"u":365,"l":303,"s":0,"a":true},{"u":950,"l":656,"s":1,"a":false},{"u":167,"l":1,"s":0,"a":true},{"u":980,"l":70,"s":1,"a":false},{"u":975,"l":457,"s":0,"a":false},{"u":903,"l":757,"s":1,"a":true},{"u":893,"l":604,"s":0,"a":true},{"u":655,"l":84,"s":0,"a":true},{"u":931,"l":913,"s":0,"a":true},{"u":377,"l":273,"s":0,"a":false},{"u":447,"l":375,"s":0,"a":true},{"u":396,"l":287,"s":0,"a":true},{"u":671,"l":440,"s":1,"a":false},{"u":877,"l":108,"s":0,"a":false},{"u":965,"l":606,"s":1,"a":true},{"u":564,"l":470,"s":1,"a":true},{"u":182,"l":114,"s":1,"a":false},{"u":779,"l":700,"s":0,"a":true},{"u":622,"l":56,"s":1,"a":false},{"u":11,"l":4,"s":1,"a":true},{"u":970,"l":827,"s":1,"a":false},{"u":854,"l":389,"s":1,"a":true},{"u":722,"l":285,"s":1,"a":true},{"u":954,"l":245,"s":1,"a":false},{"u":963,"l":61,"s":0,"a":false},{"u":790,"l":772,"s":1,"a":true},{"u":145,"l":57,"s":1,"a":false},{"u":705,"l":252,"s":0,"a":false},{"u":949,"l":251,"s":0,"a":false},{"u":716,"l":378,"s":1,"a":false},{"u":857,"l":432,"s":1,"a":false},{"u":98,"l":52,"s":0,"a":true},{"u":819,"l":364,"s":0,"a":true},{"u":984,"l":236,"s":0,"a":true},{"u":861,"l":535,"s":0,"a":true},{"u":860,"l":169,"s":0,"a":true},{"u":557,"l":479,"s":1,"a":false},{"u":955,"l":466,"s":1,"a":false},{"u":529,"l":28,"s":0,"a":false},{"u":410,"l":70,"s":1,"a":false},{"u":947,"l":14,"s":0,"a":false},{"u":856,"l":303,"s":1,"a":false},{"u":815,"l":303,"s":1,"a":true},{"u":587,"l":346,"s":1,"a":false},{"u":710,"l":320,"s":0,"a":false},{"u":946,"l":722,"s":0,"a":true},{"u":972,"l":331,"s":1,"a":true},{"u":498,"l":29,"s":0,"a":true},{"u":584,"l":149,"s":1,"a":false},{"u":799,"l":234,"s":0,"a":false},{"u":513,"l":195,"s":0,"a":true},{"u":873,"l":187,"s":1,"a":true},{"u":954,"l":801,"s":1,"a":false},{"u":335,"l":195,"s":0,"a":false},{"u":806,"l":797,"s":0,"a":true},{"u":840,"l":143,"s":0,"a":true},{"u":946,"l":919,"s":1,"a":true},{"u":958,"l":575,"s":1,"a":false},{"u":859,"l":64,"s":1,"a":false},{"u":755,"l":485,"s":0,"a":false},{"u":286,"l":252,"s":0,"a":true},{"u":591,"l":413,"s":1,"a":false},{"u":881,"l":309,"s":0,"a":false},{"u":680,"l":99,"s":0,"a":true},{"u":865,"l":150,"s":0,"a":false},{"u":935,"l":492,"s":0,"a":false},{"u":896,"l":645,"s":1,"a":false},{"u":431,"l":174,"s":0,"a":false},{"u":962,"l":666,"s":0,"a":true},{"u":819,"l":194,"s":1,"a":false},{"u":619,"l":210,"s":1,"a":true},{"u":312,"l":230,"s":0,"a":false},{"u":747,"l":138,"s":0,"a":true},{"u":850,"l":835,"s":0,"a":false},{"u":712,"l":381,"s":1,"a":true},{"u":628,"l":528,"s":0,"a":true},{"u":974,"l":917,"s":0,"a":true},{"u":286,"l":105,"s":1,"a":true},{"u":782,"l":656,"s":0,"a":false},{"u":906,"l":320,"s":1,"a":false},{"u":757,"l":736,"s":0,"a":false},{"u":544,"l":207,"s":1,"a":true},{"u":736,"l":150,"s":0,"a":true},{"u":441,"l":220,"s":0,"a":true},{"u":355,"l":107,"s":1,"a":true},{"u":185,"l":50,"s":1,"a":true},{"u":412,"l":376,"s":0,"a":false},{"u":539,"l":450,"s":1,"a":true},{"u":525,"l":387,"s":0,"a":false},{"u":817,"l":158,"s":1,"a":true},{"u":828,"l":558,"s":0,"a":true},{"u":855,"l":576,"s":0,"a":false},{"u":168,"l":151,"s":1,"a":false},{"u":234,"l":205,"s":1,"a":true},{"u":596,"l":448,"s":0,"a":true},{"u":964,"l":887,"s":0,"a":false},{"u":869,"l":770,"s":0,"a":true},{"u":636,"l":308,"s":1,"a":false},{"u":354,"l":11,"s":1,"a":true},{"u":954,"l":527,"s":0,"a":false},{"u":575,"l":90,"s":1,"a":true},{"u":477,"l":442,"s":0,"a":true},{"u":842,"l":122,"s":0,"a":false},{"u":157,"l":129,"s":0,"a":false},{"u":529,"l":476,"s":1,"a":true},{"u":277,"l":54,"s":0,"a":true},{"u":890,"l":146,"s":1,"a":true},{"u":252,"l":250,"s":1,"a":false},{"u":984,"l":978,"s":1,"a":false},{"u":108,"l":71,"s":0,"a":false},{"u":328,"l":232,"s":1,"a":true},{"u":188,"l":186,"s":0,"a":true},{"u":875,"l":111,"s":0,"a":true},{"u":394,"l":372,"s":1,"a":false},{"u":559,"l":432,"s":1,"a":true},{"u":336,"l":85,"s":0,"a":false},{"u":695,"l":54,"s":0,"a":true},{"u":184,"l":33,"s":0,"a":false},{"u":464,"l":410,"s":1,"a":true},{"u":407,"l":126,"s":0,"a":true},{"u":420,"l":12,"s":1,"a":true},{"u":593,"l":126,"s":1,"a":false},{"u":407,"l":151,"s":0,"a":false},{"u":603,"l":289,"s":0,"a":true},{"u":664,"l":274,"s":1,"a":false},{"u":380,"l":353,"s":1,"a":true},{"u":397,"l":362,"s":1,"a":false},{"u":591,"l":337,"s":1,"a":false},{"u":908,"l":271,"s":1,"a":true},{"u":916,"l":21,"s":0,"a":false},{"u":278,"l":182,"s":0,"a":true},{"u":633,"l":484,"s":0,"a":false},{"u":765,"l":637,"s":1,"a":false},{"u":897,"l":539,"s":0,"a":true},{"u":963,"l":441,"s":1,"a":false},{"u":902,"l":47,"s":1,"a":true},{"u":980,"l":818,"s":0,"a":false},{"u":905,"l":144,"s":1,"a":false},{"u":716,"l":551,"s":0,"a":true},{"u":849,"l":60,"s":0,"a":true},{"u":497,"l":333,"s":0,"a":true},{"u":801,"l":46,"s":0,"a":true},{"u":709,"l":410,"s":1,"a":true},{"u":553,"l":442,"s":1,"a":false},{"u":927,"l":312,"s":0,"a":false},{"u":438,"l":216,"s":0,"a":true},{"u":492,"l":297,"s":0,"a":false},{"u":785,"l":669,"s":0,"a":false},{"u":886,"l":745,"s":0,"a":false},{"u":870,"l":49,"s":1,"a":true},{"u":852,"l":749,"s":1,"a":false},{"u":735,"l":378,"s":0,"a":true},{"u":805,"l":435,"s":1,"a":true},{"u":850,"l":319,"s":0,"a":false},{"u":982,"l":883,"s":1,"a":true},{"u":989,"l":417,"s":0,"a":true},{"u":922,"l":868,"s":1,"a":true},{"u":311,"l":244,"s":0,"a":true},{"u":861,"l":502,"s":0,"a":true},{"u":703,"l":458,"s":1,"a":false},{"u":729,"l":422,"s":1,"a":true},{"u":707,"l":411,"s":1,"a":false},{"u":535,"l":473,"s":0,"a":true},{"u":460,"l":260,"s":1,"a":true},{"u":670,"l":303,"s":1,"a":true},{"u":593,"l":25,"s":0,"a":true},{"u":820,"l":279,"s":1,"a":true},{"u":356,"l":79,"s":0,"a":false},{"u":801,"l":344,"s":1,"a":true},{"u":584,"l":153,"s":1,"a":true},{"u":957,"l":302,"s":1,"a":false},{"u":976,"l":375,"s":0,"a":true},{"u":604,"l":317,"s":0,"a":true},{"u":501,"l":227,"s":1,"a":true},{"u":308,"l":286,"s":1,"a":true},{"u":970,"l":342,"s":0,"a":true},{"u":735,"l":274,"s":1,"a":false},{"u":834,"l":104,"s":0,"a":false},{"u":835,"l":575,"s":0,"a":true},{"u":386,"l":164,"s":0,"a":false},{"u":492,"l":306,"s":0,"a":true},{"u":564,"l":190,"s":1,"a":true},{"u":942,"l":848,"s":0,"a":false},{"u":775,"l":258,"s":0,"a":false},{"u":631,"l":345,"s":1,"a":false},{"u":585,"l":269,"s":1,"a":true},{"u":238,"l":123,"s":0,"a":true},{"u":855,"l":280,"s":1,"a":false},{"u":252,"l":167,"s":0,"a":false},{"u":743,"l":125,"s":1,"a":false},{"u":959,"l":453,"s":1,"a":true},{"u":492,"l":472,"s":1,"a":true},{"u":919,"l":48,"s":0,"a":false},{"u":882,"l":87,"s":0,"a":true},{"u":679,"l":400,"s":0,"a":true},{"u":315,"l":58,"s":0,"a":false},{"u":494,"l":143,"s":0,"a":true},{"u":295,"l":212,"s":0,"a":false},{"u":792,"l":7,"s":0,"a":false},{"u":354,"l":191,"s":1,"a":false},{"u":987,"l":897,"s":0,"a":true},{"u":649,"l":268,"s":1,"a":true},{"u":457,"l":146,"s":1,"a":false},{"u":962,"l":313,"s":0,"a":true},{"u":842,"l":457,"s":1,"a":false},{"u":937,"l":89,"s":1,"a":false},{"u":923,"l":154,"s":0,"a":true},{"u":973,"l":601,"s":1,"a":false},{"u":614,"l":66,"s":1,"a":false},{"u":991,"l":432,"s":1,"a":true},{"u":332,"l":47,"s":1,"a":true},{"u":742,"l":683,"s":0,"a":false},{"u":980,"l":155,"s":0,"a":true},{"u":176,"l":15,"s":0,"a":true},{"u":217,"l":120,"s":1,"a":true},{"u":743,"l":690,"s":1,"a":false},{"u":289,"l":88,"s":1,"a":false},{"u":853,"l":416,"s":1,"a":false},{"u":356,"l":144,"s":1,"a":false},{"u":411,"l":369,"s":1,"a":false},{"u":929,"l":273,"s":1,"a":true},{"u":769,"l":686,"s":0,"a":true},{"u":510,"l":375,"s":0,"a":false},{"u":437,"l":254,"s":1,"a":true},{"u":577,"l":167,"s":0,"a":false},{"u":782,"l":775,"s":0,"a":true},{"u":675,"l":607,"s":0,"a":true},{"u":927,"l":120,"s":0,"a":false},{"u":887,"l":678,"s":1,"a":true},{"u":398,"l":30,"s":0,"a":false},{"u":651,"l":593,"s":1,"a":false},{"u":504,"l":330,"s":1,"a":true},{"u":251,"l":70,"s":0,"a":false},{"u":883,"l":23,"s":0,"a":false},{"u":993,"l":503,"s":0,"a":true},{"u":590,"l":350,"s":1,"a":true},{"u":736,"l":144,"s":1,"a":false},{"u":866,"l":602,"s":0,"a":true},{"u":708,"l":293,"s":1,"a":false},{"u":737,"l":620,"s":1,"a":true},{"u":814,"l":622,"s":0,"a":false},{"u":234,"l":22,"s":1,"a":false},{"u":512,"l":1,"s":0,"a":true},{"u":578,"l":527,"s":0,"a":false},{"u":746,"l":640,"s":0,"a":true},{"u":975,"l":208,"s":0,"a":false},{"u":805,"l":119,"s":1,"a":true},{"u":866,"l":735,"s":0,"a":false},{"u":380,"l":366,"s":1,"a":true},{"u":710,"l":403,"s":0,"a":true},{"u":822,"l":194,"s":0,"a":true},{"u":814,"l":172,"s":1,"a":true},{"u":740,"l":334,"s":0,"a":true},{"u":289,"l":105,"s":1,"a":false},{"u":759,"l":614,"s":0,"a":false},{"u":731,"l":153,"s":1,"a":false},{"u":926,"l":795,"s":1,"a":true},{"u":970,"l":891,"s":1,"a":false},{"u":966,"l":61,"s":1,"a":false},{"u":997,"l":378,"s":0,"a":false},{"u":995,"l":147,"s":0,"a":false},{"u":449,"l":352,"s":1,"a":false},{"u":494,"l":466,"s":1,"a":false},{"u":113,"l":82,"s":1,"a":false},{"u":514,"l":33,"s":1,"a":true},{"u":918,"l":671,"s":0,"a":false},{"u":830,"l":563,"s":0,"a":false},{"u":213,"l":47,"s":0,"a":true},{"u":405,"l":2,"s":1,"a":true},{"u":599,"l":298,"s":0,"a":true},{"u":617,"l":258,"s":0,"a":true},{"u":391,"l":8,"s":0,"a":true},{"u":626,"l":483,"s":1,"a":false},{"u":720,"l":60,"s":1,"a":false},{"u":922,"l":560,"s":0,"a":false},{"u":892,"l":353,"s":0,"a":false},{"u":866,"l":457,"s":0,"a":true},{"u":868,"l":363,"s":0,"a":true},{"u":622,"l":508,"s":1,"a":true},{"u":266,"l":264,"s":0,"a":false},{"u":688,"l":629,"s":0,"a":true},{"u":892,"l":157,"s":0,"a":false},{"u":317,"l":315,"s":0,"a":true},{"u":891,"l":361,"s":0,"a":true},{"u":912,"l":243,"s":1,"a":true},{"u":790,"l":416,"s":0,"a":false},{"u":872,"l":755,"s":1,"a":false},{"u":243,"l":30,"s":0,"a":true},{"u":512,"l":302,"s":1,"a":false},{"u":243,"l":132,"s":1,"a":true},{"u":667,"l":234,"s":0,"a":true},{"u":270,"l":234,"s":1,"a":false},{"u":552,"l":315,"s":0,"a":true},{"u":777,"l":457,"s":1,"a":true},{"u":140,"l":57,"s":1,"a":false},{"u":898,"l":679,"s":0,"a":false},{"u":826,"l":533,"s":1,"a":true},{"u":800,"l":406,"s":1,"a":true},{"u":771,"l":592,"s":0,"a":true},{"u":578,"l":328,"s":0,"a":false},{"u":805,"l":457,"s":1,"a":true},{"u":524,"l":405,"s":1,"a":true},{"u":475,"l":340,"s":1,"a":true},{"u":797,"l":425,"s":1,"a":true},{"u":846,"l":238,"s":0,"a":true},{"u":896,"l":380,"s":0,"a":true},{"u":900,"l":583,"s":0,"a":false},{"u":446,"l":284,"s":1,"a":false},{"u":791,"l":9,"s":1,"a":false},{"u":618,"l":264,"s":0,"a":false},{"u":719,"l":439,"s":1,"a":true},{"u":995,"l":926,"s":0,"a":false},{"u":678,"l":414,"s":1,"a":true},{"u":461,"l":288,"s":1,"a":true},{"u":107,"l":99,"s":1,"a":true},{"u":358,"l":152,"s":1,"a":false},{"u":915,"l":509,"s":1,"a":true},{"u":799,"l":776,"s":0,"a":true},{"u":807,"l":135,"s":1,"a":true},{"u":873,"l":619,"s":0,"a":false},{"u":795,"l":32,"s":1,"a":false},{"u":379,"l":166,"s":0,"a":true},{"u":632,"l":189,"s":1,"a":true},{"u":457,"l":369,"s":1,"a":false},{"u":372,"l":125,"s":1,"a":false},{"u":391,"l":8,"s":0,"a":false},{"u":429,"l":77,"s":0,"a":false},{"u":583,"l":66,"s":1,"a":true},{"u":369,"l":233,"s":0,"a":true},{"u":723,"l":480,"s":0,"a":false},{"u":811,"l":527,"s":0,"a":false},{"u":521,"l":474,"s":1,"a":false},{"u":751,"l":587,"s":1,"a":true},{"u":626,"l":150,"s":0,"a":false},{"u":576,"l":336,"s":0,"a":true},{"u":524,"l":127,"s":1,"a":true},{"u":759,"l":756,"s":1,"a":true},{"u":228,"l":76,"s":0,"a":false},{"u":976,"l":55,"s":0,"a":true},{"u":635,"l":581,"s":0,"a":true},{"u":666,"l":286,"s":1,"a":false},{"u":855,"l":419,"s":0,"a":false},{"u":409,"l":350,"s":1,"a":true},{"u":402,"l":246,"s":0,"a":true},{"u":614,"l":521,"s":1,"a":false},{"u":536,"l":433,"s":1,"a":true},{"u":667,"l":349,"s":0,"a":false},{"u":479,"l":123,"s":0,"a":true},{"u":512,"l":327,"s":1,"a":false},{"u":310,"l":20,"s":1,"a":true},{"u":933,"l":710,"s":0,"a":false},{"u":663,"l":635,"s":1,"a":true},{"u":890,"l":402,"s":1,"a":false},{"u":308,"l":47,"s":0,"a":false},{"u":509,"l":254,"s":1,"a":true},{"u":821,"l":509,"s":1,"a":false},{"u":194,"l":192,"s":1,"a":true},{"u":684,"l":94,"s":0,"a":false},{"u":495,"l":27,"s":0,"a":true},{"u":639,"l":527,"s":1,"a":false},{"u":904,"l":351,"s":0,"a":true},{"u":725,"l":446,"s":0,"a":false},{"u":844,"l":307,"s":1,"a":true},{"u":482,"l":237,"s":1,"a":false},{"u":818,"l":31,"s":0,"a":true},{"u":937,"l":607,"s":1,"a":false},{"u":727,"l":45,"s":1,"a":false},{"u":639,"l":253,"s":1,"a":true},{"u":775,"l":698,"s":0,"a":false},{"u":298,"l":187,"s":0,"a":false},{"u":937,"l":610,"s":0,"a":false},{"u":510,"l":151,"s":1,"a":false},{"u":887,"l":845,"s":0,"a":false},{"u":662,"l":554,"s":1,"a":false},{"u":731,"l":590,"s":1,"a":false},{"u":719,"l":305,"s":1,"a":true},{"u":963,"l":571,"s":1,"a":true},{"u":220,"l":218,"s":0,"a":true},{"u":712,"l":124,"s":1,"a":false},{"u":974,"l":949,"s":1,"a":false},{"u":413,"l":121,"s":0,"a":false},{"u":569,"l":365,"s":0,"a":false},{"u":441,"l":213,"s":1,"a":true},{"u":492,"l":401,"s":1,"a":false},{"u":252,"l":18,"s":1,"a":true},{"u":588,"l":404,"s":0,"a":false},{"u":986,"l":980,"s":1,"a":false},{"u":970,"l":46,"s":0,"a":false},{"u":809,"l":716,"s":0,"a":true},{"u":754,"l":81,"s":0,"a":false},{"u":719,"l":125,"s":1,"a":true},{"u":839,"l":8,"s":0,"a":true},{"u":749,"l":164,"s":0,"a":false},{"u":700,"l":646,"s":1,"a":false},{"u":978,"l":349,"s":1,"a":true},{"u":864,"l":628,"s":0,"a":false},{"u":794,"l":577,"s":1,"a":true},{"u":509,"l":97,"s":0,"a":false},{"u":647,"l":295,"s":0,"a":false},{"u":679,"l":114,"s":0,"a":true},{"u":676,"l":368,"s":1,"a":false},{"u":678,"l":352,"s":0,"a":true},{"u":435,"l":149,"s":1,"a":false},{"u":837,"l":379,"s":1,"a":false},{"u":734,"l":513,"s":1,"a":true},{"u":692,"l":114,"s":0,"a":true},{"u":901,"l":366,"s":0,"a":true},{"u":678,"l":341,"s":1,"a":true},{"u":460,"l":20,"s":0,"a":true},{"u":820,"l":29,"s":0,"a":false},{"u":744,"l":487,"s":1,"a":false},{"u":922,"l":244,"s":1,"a":false},{"u":395,"l":1,"s":1,"a":false},{"u":886,"l":47,"s":0,"a":true},{"u":866,"l":657,"s":0,"a":true},{"u":559,"l":276,"s":0,"a":true},{"u":741,"l":367,"s":1,"a":true},{"u":543,"l":57,"s":1,"a":true},{"u":590,"l":127,"s":0,"a":true},{"u":614,"l":41,"s":1,"a":false},{"u":701,"l":520,"s":1,"a":true},{"u":946,"l":787,"s":0,"a":false},{"u":840,"l":752,"s":1,"a":false},{"u":127,"l":17,"s":1,"a":false},{"u":617,"l":252,"s":0,"a":false},{"u":867,"l":419,"s":1,"a":false},{"u":712,"l":414,"s":0,"a":false},{"u":942,"l":208,"s":0,"a":false},{"u":537,"l":528,"s":0,"a":true},{"u":624,"l":24,"s":0,"a":false},{"u":694,"l":395,"s":1,"a":false},{"u":753,"l":247,"s":1,"a":false},{"u":381,"l":168,"s":0,"a":true},{"u":310,"l":176,"s":0,"a":false},{"u":494,"l":283,"s":0,"a":false},{"u":956,"l":417,"s":0,"a":true},{"u":976,"l":934,"s":1,"a":true},{"u":390,"l":270,"s":1,"a":false},{"u":571,"l":3,"s":0,"a":true},{"u":962,"l":379,"s":1,"a":true},{"u":630,"l":487,"s":1,"a":true},{"u":750,"l":730,"s":0,"a":false},{"u":430,"l":35,"s":1,"a":true},{"u":883,"l":782,"s":0,"a":true},{"u":870,"l":707,"s":0,"a":false},{"u":582,"l":85,"s":1,"a":false},{"u":829,"l":12,"s":0,"a":true},{"u":388,"l":257,"s":1,"a":true},{"u":997,"l":512,"s":0,"a":false},{"u":644,"l":104,"s":0,"a":true},{"u":866,"l":212,"s":0,"a":false},{"u":645,"l":153,"s":1,"a":false},{"u":968,"l":845,"s":0,"a":true},{"u":517,"l":27,"s":0,"a":true},{"u":986,"l":20,"s":0,"a":true},{"u":795,"l":335,"s":0,"a":false},{"u":481,"l":429,"s":1,"a":true},{"u":120,"l":32,"s":0,"a":false},{"u":661,"l":579,"s":0,"a":false},{"u":873,"l":628,"s":1,"a":true},{"u":906,"l":791,"s":1,"a":true},{"u":734,"l":546,"s":0,"a":false},{"u":602,"l":240,"s":0,"a":true},{"u":485,"l":385,"s":0,"a":true},{"u":459,"l":114,"s":0,"a":false},{"u":677,"l":646,"s":0,"a":false},{"u":776,"l":634,"s":0,"a":false},{"u":576,"l":248,"s":1,"a":false},{"u":851,"l":633,"s":1,"a":false},{"u":428,"l":72,"s":1,"a":false},{"u":776,"l":603,"s":0,"a":true},{"u":630,"l":218,"s":1,"a":false},{"u":453,"l":433,"s":1,"a":true},{"u":133,"l":17,"s":1,"a":false},{"u":519,"l":196,"s":0,"a":false},{"u":874,"l":707,"s":0,"a":false},{"u":386,"l":319,"s":1,"a":false},{"u":713,"l":386,"s":1,"a":true},{"u":471,"l":200,"s":1,"a":false},{"u":744,"l":592,"s":1,"a":true},{"u":742,"l":664,"s":1,"a":false},{"u":645,"l":314,"s":1,"a":true},{"u":361,"l":124,"s":0,"a":true},{"u":787,"l":316,"s":0,"a":true},{"u":462,"l":247,"s":1,"a":true},{"u":700,"l":38,"s":1,"a":false},{"u":79,"l":28,"s":1,"a":false},{"u":961,"l":814,"s":0,"a":true},{"u":960,"l":475,"s":1,"a":true},{"u":434,"l":369,"s":0,"a":true},{"u":658,"l":470,"s":0,"a":true},{"u":663,"l":344,"s":0,"a":true},{"u":704,"l":642,"s":1,"a":false},{"u":731,"l":457,"s":0,"a":true},{"u":362,"l":247,"s":1,"a":false},{"u":400,"l":213,"s":1,"a":true},{"u":325,"l":317,"s":1,"a":true},{"u":791,"l":33,"s":1,"a":false},{"u":790,"l":444,"s":1,"a":true},{"u":563,"l":213,"s":0,"a":true},{"u":804,"l":167,"s":0,"a":true},{"u":777,"l":91,"s":1,"a":true},{"u":551,"l":175,"s":1,"a":false},{"u":975,"l":24,"s":0,"a":false},{"u":529,"l":200,"s":0,"a":false},{"u":955,"l":333,"s":0,"a":true},{"u":774,"l":236,"s":1,"a":false},{"u":402,"l":58,"s":0,"a":true},{"u":868,"l":859,"s":1,"a":true},{"u":835,"l":605,"s":0,"a":false},{"u":354,"l":101,"s":1,"a":false},{"u":642,"l":532,"s":0,"a":false},{"u":327,"l":259,"s":1,"a":true},{"u":282,"l":98,"s":1,"a":false},{"u":934,"l":913,"s":0,"a":true},{"u":980,"l":262,"s":1,"a":true},{"u":606,"l":502,"s":1,"a":true},{"u":928,"l":567,"s":1,"a":false},{"u":587,"l":562,"s":0,"a":true},{"u":382,"l":173,"s":1,"a":true},{"u":231,"l":50,"s":0,"a":true},{"u":775,"l":175,"s":0,"a":false},{"u":819,"l":505,"s":1,"a":false},{"u":644,"l":641,"s":0,"a":true},{"u":243,"l":123,"s":1,"a":false},{"u":698,"l":605,"s":1,"a":true},{"u":424,"l":199,"s":1,"a":false},{"u":589,"l":155,"s":0,"a":true},{"u":699,"l":167,"s":0,"a":true},{"u":911,"l":813,"s":1,"a":false},{"u":826,"l":793,"s":1,"a":false},{"u":776,"l":313,"s":0,"a":false},{"u":621,"l":262,"s":0,"a":false},{"u":973,"l":603,"s":1,"a":false},{"u":892,"l":472,"s":1,"a":false},{"u":887,"l":616,"s":1,"a":true},{"u":665,"l":585,"s":0,"a":true},{"u":572,"l":82,"s":1,"a":true},{"u":213,"l":197,"s":0,"a":false},{"u":588,"l":411,"s":1,"a":true},{"u":799,"l":498,"s":1,"a":false},{"u":683,"l":558,"s":1,"a":true},{"u":854,"l":677,"s":0,"a":false},{"u":951,"l":291,"s":1,"a":true},{"u":855,"l":135,"s":1,"a":false},{"u":961,"l":474,"s":1,"a":true},{"u":720,"l":120,"s":0,"a":false},{"u":843,"l":646,"s":0,"a":false},{"u":772,"l":41,"s":0,"a":false},{"u":83,"l":62,"s":0,"a":true},{"u":659,"l":496,"s":0,"a":true},{"u":422,"l":261,"s":0,"a":false},{"u":899,"l":304,"s":1,"a":true},{"u":596,"l":414,"s":1,"a":true},{"u":528,"l":517,"s":1,"a":false},{"u":927,"l":380,"s":0,"a":false},{"u":841,"l":234,"s":1,"a":true},{"u":309,"l":211,"s":1,"a":true},{"u":869,"l":62,"s":1,"a":false},{"u":625,"l":534,"s":1,"a":true},{"u":548,"l":264,"s":1,"a":false},{"u":871,"l":793,"s":0,"a":false},{"u":958,"l":884,"s":0,"a":true},{"u":865,"l":838,"s":1,"a":false},{"u":752,"l":675,"s":1,"a":false},{"u":749,"l":349,"s":1,"a":true},{"u":766,"l":366,"s":0,"a":false},{"u":627,"l":506,"s":0,"a":false},{"u":244,"l":167,"s":0,"a":false},{"u":650,"l":215,"s":1,"a":false},{"u":801,"l":541,"s":1,"a":false},{"u":622,"l":118,"s":0,"a":true},{"u":864,"l":521,"s":1,"a":true},{"u":238,"l":210,"s":1,"a":true},{"u":917,"l":733,"s":0,"a":false},{"u":989,"l":908,"s":0,"a":false},{"u":658,"l":405,"s":0,"a":true},{"u":527,"l":321,"s":0,"a":false},{"u":937,"l":470,"s":1,"a":true},{"u":432,"l":160,"s":0,"a":false},{"u":232,"l":180,"s":1,"a":false},{"u":643,"l":320,"s":0,"a":false},{"u":412,"l":140,"s":1,"a":true},{"u":638,"l":471,"s":0,"a":true},{"u":257,"l":80,"s":0,"a":true},{"u":757,"l":86,"s":1,"a":false},{"u":309,"l":1,"s":0,"a":true},{"u":912,"l":438,"s":0,"a":false},{"u":870,"l":547,"s":1,"a":true},{"u":274,"l":242,"s":0,"a":true},{"u":616,"l":459,"s":1,"a":false},{"u":681,"l":502,"s":0,"a":true},{"u":730,"l":424,"s":1,"a":false},{"u":806,"l":646,"s":1,"a":true},{"u":658,"l":388,"s":0,"a":true},{"u":640,"l":352,"s":0,"a":false},{"u":967,"l":189,"s":0,"a":true},{"u":901,"l":472,"s":1,"a":false},{"u":387,"l":243,"s":1,"a":true},{"u":197,"l":48,"s":0,"a":true},{"u":244,"l":68,"s":0,"a":false},{"u":249,"l":131,"s":1,"a":true},{"u":672,"l":346,"s":0,"a":false},{"u":698,"l":214,"s":0,"a":false},{"u":736,"l":324,"s":0,"a":true},{"u":606,"l":35,"s":0,"a":true},{"u":967,"l":930,"s":1,"a":false},{"u":521,"l":258,"s":1,"a":true},{"u":684,"l":347,"s":0,"a":false},{"u":858,"l":384,"s":1,"a":true},{"u":965,"l":521,"s":1,"a":false},{"u":917,"l":636,"s":0,"a":true},{"u":785,"l":647,"s":0,"a":false},{"u":578,"l":531,"s":0,"a":true},{"u":336,"l":30,"s":0,"a":false},{"u":785,"l":342,"s":1,"a":true},{"u":350,"l":34,"s":1,"a":true},{"u":592,"l":196,"s":1,"a":false},{"u":848,"l":256,"s":1,"a":true},{"u":757,"l":739,"s":0,"a":true},{"u":732,"l":407,"s":1,"a":false},{"u":435,"l":146,"s":1,"a":true},{"u":671,"l":117,"s":1,"a":false},{"u":394,"l":148,"s":0,"a":true},{"u":760,"l":593,"s":0,"a":false},{"u":541,"l":499,"s":0,"a":false},{"u":897,"l":217,"s":0,"a":true},{"u":506,"l":273,"s":0,"a":false},{"u":977,"l":372,"s":1,"a":false},{"u":734,"l":138,"s":1,"a":true},{"u":787,"l":179,"s":0,"a":false},{"u":354,"l":242,"s":0,"a":true},{"u":663,"l":487,"s":1,"a":true},{"u":706,"l":332,"s":1,"a":true},{"u":442,"l":307,"s":0,"a":false},{"u":491,"l":204,"s":1,"a":true},{"u":868,"l":336,"s":1,"a":false},{"u":910,"l":406,"s":0,"a":true},{"u":574,"l":104,"s":0,"a":true},{"u":841,"l":673,"s":0,"a":true},{"u":886,"l":495,"s":1,"a":true},{"u":352,"l":331,"s":1,"a":true},{"u":986,"l":42,"s":1,"a":true},{"u":810,"l":542,"s":1,"a":true},{"u":256,"l":4,"s":0,"a":false},{"u":631,"l":28,"s":0,"a":true},{"u":910,"l":848,"s":0,"a":false},{"u":452,"l":242,"s":1,"a":true},{"u":575,"l":288,"s":1,"a":true},{"u":874,"l":45,"s":0,"a":true},{"u":604,"l":561,"s":1,"a":true},{"u":845,"l":288,"s":0,"a":true},{"u":900,"l":214,"s":1,"a":false},{"u":943,"l":645,"s":1,"a":false},{"u":933,"l":7,"s":1,"a":true},{"u":945,"l":273,"s":1,"a":true},{"u":814,"l":511,"s":1,"a":true},{"u":887,"l":450,"s":1,"a":false},{"u":438,"l":267,"s":0,"a":false},{"u":684,"l":350,"s":0,"a":true},{"u":329,"l":231,"s":1,"a":true},{"u":721,"l":715,"s":1,"a":false},{"u":859,"l":679,"s":0,"a":true},{"u":495,"l":419,"s":0,"a":false},{"u":780,"l":7,"s":1,"a":true},{"u":916,"l":302,"s":1,"a":false},{"u":600,"l":113,"s":1,"a":true},{"u":913,"l":238,"s":1,"a":true},{"u":675,"l":407,"s":1,"a":false},{"u":627,"l":136,"s":1,"a":true},{"u":955,"l":771,"s":0,"a":true},{"u":798,"l":154,"s":1,"a":false},{"u":748,"l":199,"s":1,"a":true},{"u":270,"l":260,"s":0,"a":false},{"u":574,"l":343,"s":0,"a":true},{"u":668,"l":140,"s":1,"a":false},{"u":885,"l":677,"s":0,"a":true},{"u":807,"l":721,"s":0,"a":false},{"u":638,"l":222,"s":1,"a":true},{"u":846,"l":322,"s":1,"a":true},{"u":672,"l":467,"s":0,"a":false},{"u":238,"l":109,"s":0,"a":true},{"u":959,"l":744,"s":0,"a":true},{"u":837,"l":355,"s":0,"a":false},{"u":953,"l":492,"s":1,"a":false},{"u":755,"l":525,"s":0,"a":false},{"u":367,"l":64,"s":1,"a":true},{"u":933,"l":479,"s":0,"a":false},{"u":751,"l":184,"s":0,"a":false},{"u":833,"l":39,"s":1,"a":false},{"u":766,"l":614,"s":0,"a":true},{"u":839,"l":192,"s":0,"a":false},{"u":810,"l":496,"s":1,"a":true},{"u":927,"l":577,"s":1,"a":false},{"u":536,"l":166,"s":0,"a":false},{"u":611,"l":286,"s":0,"a":false},{"u":452,"l":101,"s":1,"a":false},{"u":831,"l":370,"s":0,"a":true},{"u":758,"l":344,"s":1,"a":true},{"u":805,"l":296,"s":0,"a":false},{"u":627,"l":452,"s":0,"a":false},{"u":640,"l":457,"s":1,"a":true},{"u":566,"l":398,"s":0,"a":false},{"u":389,"l":221,"s":1,"a":true},{"u":444,"l":194,"s":1,"a":true},{"u":745,"l":39,"s":0,"a":false},{"u":968,"l":724,"s":0,"a":false},{"u":529,"l":470,"s":0,"a":false},{"u":668,"l":273,"s":0,"a":false},{"u":375,"l":149,"s":1,"a":false},{"u":869,"l":525,"s":0,"a":false},{"u":947,"l":723,"s":1,"a":false},{"u":520,"l":362,"s":1,"a":false},{"u":656,"l":580,"s":0,"a":true},{"u":980,"l":539,"s":0,"a":true},{"u":439,"l":263,"s":0,"a":false},{"u":409,"l":407,"s":0,"a":true},{"u":317,"l":201,"s":1,"a":false},{"u":846,"l":383,"s":1,"a":false},{"u":388,"l":315,"s":0,"a":true},{"u":503,"l":335,"s":0,"a":false},{"u":714,"l":210,"s":1,"a":false},{"u":844,"l":743,"s":1,"a":true},{"u":650,"l":150,"s":1,"a":false},{"u":964,"l":67,"s":0,"a":false},{"u":972,"l":350,"s":1,"a":false},{"u":185,"l":96,"s":0,"a":true},{"u":892,"l":341,"s":1,"a":true},{"u":462,"l":48,"s":1,"a":true},{"u":733,"l":355,"s":0,"a":false},{"u":975,"l":196,"s":1,"a":true},{"u":980,"l":26,"s":1,"a":true},{"u":399,"l":309,"s":0,"a":true},{"u":495,"l":493,"s":0,"a":false},{"u":956,"l":588,"s":1,"a":false},{"u":991,"l":66,"s":1,"a":false},{"u":333,"l":294,"s":0,"a":false},{"u":814,"l":619,"s":1,"a":false},{"u":901,"l":601,"s":1,"a":false},{"u":530,"l":178,"s":0,"a":true},{"u":263,"l":2,"s":1,"a":false},{"u":444,"l":117,"s":0,"a":false},{"u":311,"l":68,"s":1,"a":false},{"u":662,"l":124,"s":1,"a":false},{"u":544,"l":166,"s":1,"a":true},{"u":949,"l":232,"s":0,"a":false},{"u":142,"l":25,"s":1,"a":false},{"u":260,"l":211,"s":0,"a":false},{"u":764,"l":330,"s":1,"a":true},{"u":588,"l":179,"s":0,"a":true},{"u":766,"l":595,"s":0,"a":false},{"u":667,"l":25,"s":0,"a":true},{"u":812,"l":473,"s":0,"a":false},{"u":763,"l":609,"s":0,"a":false},{"u":932,"l":309,"s":1,"a":true},{"u":605,"l":8,"s":0,"a":true},{"u":318,"l":173,"s":0,"a":false},{"u":409,"l":71,"s":0,"a":false},{"u":754,"l":205,"s":1,"a":false},{"u":953,"l":856,"s":0,"a":false},{"u":648,"l":177,"s":0,"a":true},{"u":494,"l":190,"s":1,"a":true},{"u":440,"l":138,"s":0,"a":true},{"u":646,"l":136,"s":0,"a":false},{"u":943,"l":493,"s":0,"a":false},{"u":857,"l":80,"s":1,"a":false},{"u":956,"l":818,"s":1,"a":true},{"u":629,"l":558,"s":0,"a":true},{"u":634,"l":527,"s":0,"a":true},{"u":931,"l":82,"s":1,"a":true},{"u":172,"l":123,"s":1,"a":true},{"u":985,"l":201,"s":1,"a":false},{"u":249,"l":50,"s":1,"a":true},{"u":957,"l":634,"s":0,"a":false},{"u":915,"l":799,"s":1,"a":true},{"u":628,"l":218,"s":1,"a":false},{"u":994,"l":780,"s":1,"a":true},{"u":980,"l":577,"s":1,"a":true},{"u":400,"l":113,"s":0,"a":false},{"u":324,"l":190,"s":1,"a":true},{"u":321,"l":289,"s":1,"a":true},{"u":226,"l":222,"s":1,"a":false},{"u":343,"l":228,"s":1,"a":false},{"u":658,"l":37,"s":1,"a":true},{"u":642,"l":400,"s":0,"a":false},{"u":970,"l":173,"s":0,"a":false},{"u":786,"l":699,"s":1,"a":true},{"u":729,"l":615,"s":1,"a":false},{"u":881,"l":420,"s":0,"a":true},{"u":548,"l":108,"s":0,"a":true},{"u":722,"l":289,"s":1,"a":true},{"u":495,"l":197,"s":0,"a":true},{"u":951,"l":738,"s":0,"a":true},{"u":993,"l":150,"s":0,"a":false},{"u":618,"l":138,"s":0,"a":true},{"u":457,"l":346,"s":1,"a":false},{"u":671,"l":535,"s":0,"a":false},{"u":888,"l":312,"s":1,"a":false},{"u":720,"l":122,"s":0,"a":false},{"u":569,"l":164,"s":1,"a":true},{"u":866,"l":137,"s":1,"a":true},{"u":952,"l":38,"s":1,"a":true},{"u":911,"l":135,"s":1,"a":false},{"u":604,"l":531,"s":1,"a":true},{"u":560,"l":308,"s":1,"a":false},{"u":744,"l":484,"s":0,"a":false},{"u":695,"l":374,"s":1,"a":false},{"u":879,"l":107,"s":0,"a":false},{"u":960,"l":557,"s":1,"a":false},{"u":357,"l":198,"s":1,"a":false},{"u":814,"l":463,"s":0,"a":true},{"u":666,"l":562,"s":1,"a":false},{"u":405,"l":393,"s":1,"a":true},{"u":302,"l":178,"s":1,"a":true},{"u":871,"l":150,"s":1,"a":false},{"u":513,"l":174,"s":1,"a":true},{"u":140,"l":43,"s":1,"a":false},{"u":969,"l":148,"s":0,"a":true},{"u":976,"l":583,"s":1,"a":true},{"u":844,"l":270,"s":1,"a":true},{"u":365,"l":258,"s":1,"a":false},{"u":679,"l":150,"s":1,"a":false},{"u":771,"l":96,"s":0,"a":false},{"u":971,"l":209,"s":1,"a":true},{"u":522,"l":129,"s":0,"a":true},{"u":704,"l":441,"s":1,"a":true},{"u":719,"l":465,"s":1,"a":false},{"u":646,"l":525,"s":0,"a":true},{"u":541,"l":237,"s":1,"a":false},{"u":138,"l":105,"s":1,"a":false},{"u":164,"l":155,"s":1,"a":false},{"u":521,"l":158,"s":1,"a":true},{"u":587,"l":69,"s":0,"a":true},{"u":926,"l":452,"s":1,"a":false},{"u":528,"l":404,"s":1,"a":true},{"u":259,"l":134,"s":1,"a":true},{"u":589,"l":511,"s":0,"a":false},{"u":418,"l":395,"s":1,"a":true},{"u":842,"l":783,"s":1,"a":false},{"u":640,"l":303,"s":0,"a":false},{"u":911,"l":240,"s":0,"a":true},{"u":566,"l":505,"s":1,"a":true},{"u":845,"l":844,"s":0,"a":false},{"u":395,"l":245,"s":1,"a":true},{"u":670,"l":135,"s":1,"a":true},{"u":386,"l":123,"s":1,"a":false},{"u":588,"l":115,"s":0,"a":false},{"u":619,"l":398,"s":0,"a":false},{"u":735,"l":614,"s":0,"a":false},{"u":416,"l":390,"s":0,"a":false},{"u":468,"l":292,"s":0,"a":false},{"u":690,"l":232,"s":1,"a":true},{"u":422,"l":59,"s":1,"a":true},{"u":739,"l":351,"s":0,"a":true},{"u":849,"l":752,"s":0,"a":false},{"u":711,"l":707,"s":1,"a":true},{"u":939,"l":444,"s":1,"a":true},{"u":836,"l":790,"s":1,"a":false},{"u":932,"l":828,"s":0,"a":false},{"u":491,"l":349,"s":1,"a":true},{"u":467,"l":235,"s":0,"a":true},{"u":892,"l":555,"s":1,"a":false},{"u":604,"l":118,"s":0,"a":false},{"u":403,"l":239,"s":1,"a":true},{"u":831,"l":666,"s":1,"a":true},{"u":264,"l":218,"s":0,"a":false},{"u":857,"l":102,"s":0,"a":false},{"u":376,"l":61,"s":1,"a":false},{"u":863,"l":778,"s":1,"a":false},{"u":554,"l":191,"s":1,"a":true},{"u":597,"l":482,"s":0,"a":true},{"u":866,"l":42,"s":0,"a":false},{"u":703,"l":82,"s":0,"a":true},{"u":781,"l":311,"s":1,"a":true},{"u":654,"l":296,"s":0,"a":false},{"u":989,"l":121,"s":0,"a":true},{"u":136,"l":118,"s":1,"a":false},{"u":936,"l":817,"s":1,"a":false},{"u":818,"l":244,"s":1,"a":false},{"u":880,"l":828,"s":0,"a":true},{"u":410,"l":171,"s":0,"a":true},{"u":991,"l":951,"s":0,"a":false},{"u":655,"l":306,"s":0,"a":true},{"u":915,"l":754,"s":0,"a":false},{"u":839,"l":407,"s":0,"a":true},{"u":693,"l":407,"s":1,"a":true},{"u":995,"l":227,"s":0,"a":true},{"u":570,"l":296,"s":1,"a":true},{"u":869,"l":261,"s":1,"a":true},{"u":439,"l":148,"s":0,"a":false},{"u":598,"l":220,"s":1,"a":true},{"u":933,"l":428,"s":1,"a":false},{"u":859,"l":115,"s":1,"a":false},{"u":505,"l":383,"s":0,"a":true},{"u":759,"l":672,"s":0,"a":false},{"u":413,"l":229,"s":1,"a":false},{"u":819,"l":621,"s":0,"a":false},{"u":651,"l":317,"s":0,"a":true},{"u":968,"l":60,"s":1,"a":false},{"u":956,"l":299,"s":1,"a":false},{"u":340,"l":202,"s":1,"a":false},{"u":949,"l":932,"s":1,"a":true},{"u":450,"l":65,"s":0,"a":false},{"u":698,"l":170,"s":0,"a":true},{"u":564,"l":126,"s":0,"a":false},{"u":892,"l":411,"s":1,"a":true},{"u":665,"l":620,"s":1,"a":false},{"u":981,"l":787,"s":0,"a":true},{"u":747,"l":386,"s":1,"a":true},{"u":302,"l":198,"s":1,"a":true},{"u":730,"l":318,"s":1,"a":false},{"u":543,"l":308,"s":0,"a":false},{"u":620,"l":72,"s":1,"a":false},{"u":961,"l":684,"s":0,"a":false},{"u":655,"l":514,"s":0,"a":false},{"u":962,"l":892,"s":1,"a":true},{"u":606,"l":594,"s":0,"a":false},{"u":569,"l":131,"s":1,"a":false},{"u":804,"l":539,"s":0,"a":false},{"u":815,"l":541,"s":1,"a":false},{"u":515,"l":43,"s":0,"a":false},{"u":390,"l":216,"s":0,"a":true},{"u":855,"l":143,"s":1,"a":true},{"u":801,"l":194,"s":1,"a":false},{"u":996,"l":753,"s":1,"a":true},{"u":957,"l":326,"s":1,"a":true},{"u":508,"l":21,"s":0,"a":false},{"u":474,"l":327,"s":0,"a":true},{"u":870,"l":104,"s":0,"a":false},{"u":904,"l":221,"s":1,"a":false},{"u":585,"l":381,"s":1,"a":true},{"u":646,"l":281,"s":1,"a":false},{"u":597,"l":589,"s":1,"a":true},{"u":573,"l":382,"s":1,"a":false},{"u":842,"l":221,"s":1,"a":true},{"u":337,"l":219,"s":1,"a":false},{"u":666,"l":544,"s":1,"a":true},{"u":629,"l":485,"s":1,"a":false},{"u":616,"l":498,"s":1,"a":false},{"u":469,"l":259,"s":1,"a":true},{"u":541,"l":305,"s":1,"a":false},{"u":615,"l":96,"s":1,"a":true},{"u":885,"l":207,"s":1,"a":false},{"u":976,"l":81,"s":0,"a":false},{"u":953,"l":166,"s":1,"a":false},{"u":931,"l":881,"s":1,"a":true},{"u":809,"l":245,"s":1,"a":false},{"u":514,"l":222,"s":0,"a":false},{"u":764,"l":480,"s":0,"a":true},{"u":547,"l":303,"s":1,"a":true},{"u":790,"l":343,"s":0,"a":true},{"u":434,"l":229,"s":0,"a":false},{"u":862,"l":361,"s":0,"a":false},{"u":566,"l":116,"s":0,"a":false},{"u":539,"l":16,"s":0,"a":true},{"u":195,"l":109,"s":0,"a":true},{"u":374,"l":256,"s":0,"a":true},{"u":940,"l":537,"s":0,"a":false},{"u":885,"l":868,"s":1,"a":true},{"u":720,"l":352,"s":0,"a":true},{"u":697,"l":91,"s":1,"a":true},{"u":959,"l":579,"s":1,"a":false},{"u":826,"l":208,"s":1,"a":false},{"u":812,"l":580,"s":1,"a":true},{"u":532,"l":254,"s":1,"a":false},{"u":415,"l":140,"s":0,"a":false},{"u":246,"l":125,"s":1,"a":false},{"u":955,"l":76,"s":1,"a":false},{"u":625,"l":582,"s":1,"a":false},{"u":759,"l":228,"s":0,"a":true},{"u":955,"l":716,"s":0,"a":false},{"u":142,"l":2,"s":0,"a":true},{"u":790,"l":556,"s":0,"a":true},{"u":839,"l":768,"s":0,"a":true},{"u":712,"l":386,"s":0,"a":false},{"u":395,"l":303,"s":1,"a":false},{"u":781,"l":776,"s":0,"a":true},{"u":805,"l":326,"s":0,"a":true},{"u":752,"l":676,"s":0,"a":false},{"u":775,"l":182,"s":0,"a":true},{"u":372,"l":269,"s":1,"a":false},{"u":687,"l":312,"s":1,"a":false},{"u":696,"l":438,"s":0,"a":true},{"u":737,"l":617,"s":1,"a":false},{"u":717,"l":166,"s":1,"a":false},{"u":412,"l":166,"s":1,"a":false},{"u":498,"l":178,"s":0,"a":true},{"u":970,"l":519,"s":0,"a":false},{"u":254,"l":210,"s":0,"a":true},{"u":740,"l":701,"s":1,"a":false},{"u":720,"l":407,"s":0,"a":true},{"u":647,"l":453,"s":0,"a":false},{"u":743,"l":130,"s":1,"a":true},{"u":774,"l":207,"s":0,"a":false},{"u":328,"l":323,"s":1,"a":true},{"u":671,"l":359,"s":0,"a":true},{"u":648,"l":49,"s":1,"a":false},{"u":864,"l":297,"s":1,"a":true},{"u":730,"l":204,"s":1,"a":false},{"u":436,"l":33,"s":1,"a":false},{"u":739,"l":66,"s":0,"a":true},{"u":684,"l":632,"s":1,"a":false},{"u":794,"l":728,"s":0,"a":false},{"u":641,"l":85,"s":0,"a":false},{"u":321,"l":84,"s":0,"a":false},{"u":995,"l":466,"s":1,"a":true},{"u":181,"l":63,"s":1,"a":true},{"u":239,"l":126,"s":0,"a":false},{"u":376,"l":193,"s":1,"a":false},{"u":173,"l":39,"s":0,"a":true},{"u":157,"l":137,"s":0,"a":false},{"u":505,"l":169,"s":1,"a":true},{"u":785,"l":322,"s":0,"a":true},{"u":741,"l":454,"s":1,"a":true},{"u":586,"l":94,"s":1,"a":true},{"u":963,"l":57,"s":0,"a":false},{"u":762,"l":443,"s":1,"a":false},{"u":970,"l":693,"s":1,"a":true},{"u":617,"l":554,"s":1,"a":true},{"u":830,"l":523,"s":1,"a":false},{"u":517,"l":270,"s":1,"a":true},{"u":742,"l":432,"s":1,"a":true},{"u":504,"l":248,"s":0,"a":true},{"u":964,"l":51,"s":0,"a":false},{"u":993,"l":886,"s":0,"a":false},{"u":832,"l":582,"s":1,"a":true},{"u":921,"l":392,"s":1,"a":true},{"u":877,"l":191,"s":1,"a":false},{"u":898,"l":730,"s":0,"a":false},{"u":692,"l":3,"s":0,"a":true},{"u":898,"l":743,"s":0,"a":true},{"u":985,"l":469,"s":1,"a":false},{"u":456,"l":61,"s":1,"a":false},{"u":87,"l":33,"s":1,"a":false},{"u":935,"l":23,"s":1,"a":false},{"u":374,"l":350,"s":0,"a":true},{"u":224,"l":149,"s":1,"a":false},{"u":590,"l":284,"s":0,"a":false},{"u":265,"l":107,"s":1,"a":true},{"u":794,"l":698,"s":1,"a":false},{"u":883,"l":67,"s":0,"a":true},{"u":542,"l":38,"s":1,"a":true},{"u":637,"l":140,"s":0,"a":true},{"u":657,"l":296,"s":1,"a":false},{"u":759,"l":396,"s":0,"a":false},{"u":728,"l":179,"s":1,"a":true},{"u":195,"l":40,"s":0,"a":true},{"u":607,"l":391,"s":0,"a":false},{"u":872,"l":182,"s":0,"a":true},{"u":954,"l":386,"s":1,"a":false},{"u":739,"l":340,"s":1,"a":false},{"u":892,"l":110,"s":0,"a":false},{"u":567,"l":137,"s":1,"a":true},{"u":358,"l":109,"s":1,"a":false},{"u":727,"l":525,"s":1,"a":false},{"u":597,"l":262,"s":1,"a":true},{"u":646,"l":439,"s":1,"a":false},{"u":775,"l":659,"s":1,"a":true},{"u":858,"l":22,"s":0,"a":false},{"u":921,"l":426,"s":1,"a":false},{"u":517,"l":77,"s":1,"a":true},{"u":614,"l":60,"s":1,"a":true},{"u":959,"l":934,"s":0,"a":true},{"u":606,"l":183,"s":0,"a":false},{"u":243,"l":52,"s":0,"a":true},{"u":386,"l":292,"s":1,"a":true},{"u":852,"l":516,"s":1,"a":true},{"u":582,"l":431,"s":0,"a":false},{"u":325,"l":258,"s":1,"a":true},{"u":623,"l":245,"s":1,"a":false},{"u":985,"l":52,"s":1,"a":true},{"u":912,"l":303,"s":1,"a":false},{"u":600,"l":299,"s":1,"a":true},{"u":834,"l":158,"s":1,"a":false},{"u":793,"l":18,"s":1,"a":true},{"u":639,"l":562,"s":0,"a":true},{"u":198,"l":114,"s":0,"a":true},{"u":996,"l":441,"s":0,"a":true},{"u":739,"l":32,"s":0,"a":true},{"u":227,"l":178,"s":1,"a":false},{"u":845,"l":123,"s":0,"a":false},{"u":875,"l":312,"s":0,"a":false},{"u":840,"l":613,"s":0,"a":true},{"u":793,"l":463,"s":0,"a":false},{"u":709,"l":629,"s":0,"a":false},{"u":722,"l":435,"s":1,"a":false},{"u":45,"l":20,"s":1,"a":false},{"u":874,"l":229,"s":0,"a":false},{"u":434,"l":71,"s":1,"a":true},{"u":988,"l":885,"s":1,"a":true},{"u":189,"l":76,"s":1,"a":true},{"u":655,"l":129,"s":0,"a":true},{"u":861,"l":122,"s":0,"a":true},{"u":466,"l":388,"s":0,"a":false},{"u":202,"l":56,"s":1,"a":true},{"u":356,"l":37,"s":1,"a":true},{"u":769,"l":247,"s":1,"a":true},{"u":608,"l":572,"s":0,"a":false},{"u":766,"l":446,"s":1,"a":true},{"u":299,"l":107,"s":0,"a":true},{"u":488,"l":24,"s":1,"a":true},{"u":923,"l":863,"s":1,"a":false},{"u":965,"l":741,"s":1,"a":false},{"u":854,"l":627,"s":1,"a":true},{"u":597,"l":388,"s":0,"a":false},{"u":607,"l":591,"s":1,"a":false},{"u":528,"l":291,"s":0,"a":true},{"u":959,"l":160,"s":1,"a":false},{"u":461,"l":95,"s":1,"a":true},{"u":640,"l":240,"s":1,"a":false},{"u":899,"l":425,"s":1,"a":false},{"u":782,"l":504,"s":1,"a":false},{"u":615,"l":466,"s":1,"a":false},{"u":911,"l":786,"s":0,"a":false},{"u":176,"l":25,"s":1,"a":false},{"u":817,"l":115,"s":0,"a":true},{"u":347,"l":115,"s":0,"a":true},{"u":635,"l":489,"s":0,"a":true},{"u":782,"l":670,"s":1,"a":true},{"u":970,"l":11,"s":0,"a":true},{"u":531,"l":110,"s":0,"a":true},{"u":556,"l":212,"s":0,"a":false},{"u":972,"l":940,"s":1,"a":false},{"u":488,"l":15,"s":1,"a":false},{"u":957,"l":174,"s":0,"a":false},{"u":819,"l":305,"s":1,"a":false},{"u":376,"l":94,"s":0,"a":true},{"u":951,"l":462,"s":0,"a":false},{"u":993,"l":700,"s":1,"a":false},{"u":928,"l":701,"s":0,"a":true},{"u":941,"l":148,"s":0,"a":true},{"u":685,"l":425,"s":1,"a":true},{"u":199,"l":53,"s":0,"a":false},{"u":725,"l":108,"s":0,"a":true},{"u":312,"l":183,"s":1,"a":true},{"u":826,"l":104,"s":0,"a":false},{"u":713,"l":468,"s":0,"a":false},{"u":847,"l":654,"s":0,"a":true},{"u":583,"l":25,"s":0,"a":false},{"u":484,"l":385,"s":0,"a":false},{"u":625,"l":522,"s":1,"a":false},{"u":830,"l":233,"s":0,"a":true},{"u":226,"l":40,"s":0,"a":true},{"u":935,"l":443,"s":1,"a":false},{"u":145,"l":77,"s":0,"a":false},{"u":565,"l":405,"s":0,"a":true},{"u":937,"l":887,"s":0,"a":false},{"u":442,"l":250,"s":1,"a":false},{"u":486,"l":409,"s":1,"a":true},{"u":727,"l":569,"s":0,"a":true},{"u":484,"l":102,"s":1,"a":false},{"u":653,"l":626,"s":1,"a":false},{"u":274,"l":161,"s":0,"a":true},{"u":952,"l":129,"s":0,"a":false},{"u":573,"l":70,"s":0,"a":false},{"u":489,"l":360,"s":0,"a":true},{"u":999,"l":493,"s":1,"a":false},{"u":529,"l":386,"s":1,"a":true},{"u":878,"l":37,"s":1,"a":false},{"u":262,"l":102,"s":0,"a":true},{"u":808,"l":446,"s":0,"a":false},{"u":519,"l":344,"s":0,"a":false},{"u":839,"l":94,"s":0,"a":false},{"u":496,"l":20,"s":0,"a":true},{"u":924,"l":544,"s":1,"a":true},{"u":923,"l":656,"s":1,"a":true},{"u":606,"l":446,"s":0,"a":false},{"u":950,"l":487,"s":0,"a":true},{"u":687,"l":217,"s":1,"a":false},{"u":745,"l":474,"s":0,"a":false},{"u":634,"l":565,"s":1,"a":true},{"u":167,"l":65,"s":0,"a":false},{"u":500,"l":434,"s":1,"a":false},{"u":855,"l":288,"s":1,"a":false},{"u":551,"l":226,"s":0,"a":false},{"u":405,"l":69,"s":0,"a":false},{"u":412,"l":370,"s":1,"a":false},{"u":604,"l":203,"s":1,"a":false},{"u":703,"l":40,"s":1,"a":false},{"u":975,"l":242,"s":0,"a":true},{"u":961,"l":11,"s":1,"a":false},{"u":739,"l":48,"s":1,"a":false},{"u":913,"l":253,"s":0,"a":true},{"u":278,"l":211,"s":0,"a":false},{"u":897,"l":514,"s":0,"a":false},{"u":864,"l":763,"s":0,"a":false},{"u":569,"l":159,"s":1,"a":true},{"u":662,"l":590,"s":0,"a":false},{"u":638,"l":497,"s":1,"a":true},{"u":986,"l":276,"s":0,"a":true},{"u":992,"l":810,"s":0,"a":true},{"u":813,"l":596,"s":0,"a":true},{"u":407,"l":12,"s":0,"a":true},{"u":810,"l":370,"s":1,"a":true},{"u":738,"l":430,"s":0,"a":false},{"u":947,"l":879,"s":0,"a":true},{"u":115,"l":46,"s":0,"a":false},{"u":932,"l":873,"s":1,"a":true},{"u":72,"l":30,"s":1,"a":true},{"u":964,"l":77,"s":0,"a":false},{"u":758,"l":452,"s":1,"a":false},{"u":846,"l":441,"s":0,"a":false},{"u":748,"l":708,"s":1,"a":false},{"u":626,"l":371,"s":1,"a":true},{"u":362,"l":191,"s":1,"a":true},{"u":325,"l":186,"s":0,"a":true},{"u":866,"l":70,"s":1,"a":false},{"u":489,"l":231,"s":1,"a":false},{"u":399,"l":368,"s":0,"a":false},{"u":974,"l":199,"s":0,"a":false},{"u":285,"l":17,"s":1,"a":false},{"u":736,"l":648,"s":0,"a":false},{"u":598,"l":436,"s":0,"a":false},{"u":370,"l":77,"s":1,"a":false},{"u":814,"l":788,"s":1,"a":false},{"u":504,"l":45,"s":0,"a":true},{"u":839,"l":478,"s":0,"a":false},{"u":631,"l":114,"s":0,"a":false},{"u":944,"l":696,"s":0,"a":false},{"u":545,"l":13,"s":1,"a":true},{"u":430,"l":345,"s":0,"a":false},{"u":588,"l":308,"s":0,"a":false},{"u":876,"l":313,"s":1,"a":true},{"u":483,"l":294,"s":0,"a":true},{"u":526,"l":25,"s":1,"a":true},{"u":987,"l":878,"s":1,"a":false},{"u":937,"l":736,"s":1,"a":true},{"u":601,"l":143,"s":0,"a":true},{"u":828,"l":754,"s":1,"a":false},{"u":351,"l":210,"s":1,"a":false},{"u":501,"l":497,"s":0,"a":false},{"u":324,"l":224,"s":1,"a":false},{"u":474,"l":378,"s":0,"a":true},{"u":945,"l":132,"s":0,"a":true},{"u":883,"l":865,"s":1,"a":false},{"u":785,"l":339,"s":1,"a":true},{"u":989,"l":456,"s":0,"a":true},{"u":564,"l":436,"s":0,"a":false},{"u":47,"l":35,"s":0,"a":true},{"u":586,"l":92,"s":1,"a":true},{"u":993,"l":706,"s":1,"a":false},{"u":496,"l":448,"s":1,"a":true},{"u":860,"l":393,"s":0,"a":true},{"u":665,"l":49,"s":0,"a":true},{"u":972,"l":795,"s":1,"a":true},{"u":799,"l":603,"s":0,"a":true},{"u":685,"l":277,"s":0,"a":true},{"u":920,"l":171,"s":0,"a":true},{"u":665,"l":90,"s":0,"a":false},{"u":933,"l":551,"s":1,"a":false},{"u":925,"l":584,"s":0,"a":true},{"u":729,"l":681,"s":0,"a":false},{"u":786,"l":437,"s":0,"a":false},{"u":461,"l":274,"s":1,"a":true},{"u":524,"l":343,"s":1,"a":false},{"u":878,"l":254,"s":0,"a":false},{"u":990,"l":33,"s":0,"a":false},{"u":405,"l":135,"s":0,"a":false},{"u":433,"l":234,"s":1,"a":true},{"u":994,"l":745,"s":0,"a":true},{"u":665,"l":246,"s":0,"a":false},{"u":824,"l":439,"s":0,"a":true},{"u":979,"l":26,"s":1,"a":false},{"u":573,"l":40,"s":0,"a":false},{"u":959,"l":512,"s":0,"a":true},{"u":985,"l":751,"s":0,"a":false},{"u":391,"l":165,"s":1,"a":false},{"u":198,"l":153,"s":1,"a":false},{"u":879,"l":539,"s":1,"a":false},{"u":931,"l":207,"s":1,"a":true},{"u":659,"l":595,"s":1,"a":false},{"u":802,"l":695,"s":1,"a":false},{"u":499,"l":24,"s":0,"a":true},{"u":815,"l":150,"s":0,"a":true},{"u":857,"l":391,"s":1,"a":false},{"u":791,"l":334,"s":1,"a":false},{"u":824,"l":368,"s":0,"a":false},{"u":894,"l":356,"s":1,"a":true},{"u":916,"l":436,"s":0,"a":true},{"u":718,"l":137,"s":1,"a":false},{"u":103,"l":95,"s":1,"a":true},{"u":735,"l":110,"s":1,"a":false},{"u":934,"l":812,"s":0,"a":true},{"u":938,"l":292,"s":1,"a":true},{"u":967,"l":457,"s":1,"a":true},{"u":721,"l":476,"s":1,"a":true},{"u":537,"l":246,"s":0,"a":false},{"u":699,"l":150,"s":1,"a":false},{"u":927,"l":853,"s":1,"a":false},{"u":902,"l":330,"s":1,"a":true},{"u":993,"l":223,"s":1,"a":false},{"u":935,"l":382,"s":0,"a":true},{"u":313,"l":85,"s":1,"a":false},{"u":217,"l":139,"s":1,"a":false},{"u":407,"l":284,"s":0,"a":true},{"u":689,"l":57,"s":0,"a":false},{"u":352,"l":230,"s":0,"a":false},{"u":432,"l":114,"s":1,"a":false},{"u":744,"l":545,"s":1,"a":true},{"u":645,"l":587,"s":1,"a":true},{"u":439,"l":68,"s":0,"a":false},{"u":199,"l":57,"s":0,"a":true},{"u":653,"l":487,"s":0,"a":true},{"u":887,"l":633,"s":0,"a":true},{"u":784,"l":391,"s":1,"a":false},{"u":778,"l":676,"s":1,"a":true},{"u":331,"l":68,"s":0,"a":true},{"u":824,"l":411,"s":0,"a":true},{"u":996,"l":552,"s":1,"a":false},{"u":791,"l":42,"s":1,"a":false},{"u":897,"l":201,"s":1,"a":false},{"u":887,"l":739,"s":1,"a":false},{"u":772,"l":155,"s":0,"a":false},{"u":758,"l":110,"s":0,"a":true},{"u":700,"l":295,"s":0,"a":false},{"u":614,"l":448,"s":0,"a":true},{"u":261,"l":156,"s":1,"a":true},{"u":529,"l":306,"s":0,"a":false},{"u":570,"l":290,"s":0,"a":false},{"u":841,"l":551,"s":1,"a":true},{"u":878,"l":5,"s":0,"a":true},{"u":573,"l":90,"s":1,"a":false},{"u":389,"l":287,"s":1,"a":false},{"u":193,"l":109,"s":1,"a":true},{"u":883,"l":845,"s":0,"a":false},{"u":107,"l":86,"s":1,"a":true},{"u":743,"l":118,"s":0,"a":true},{"u":999,"l":224,"s":0,"a":true},{"u":872,"l":4,"s":1,"a":false},{"u":469,"l":87,"s":1,"a":true},{"u":261,"l":40,"s":1,"a":false},{"u":603,"l":97,"s":1,"a":true},{"u":837,"l":826,"s":1,"a":false},{"u":702,"l":343,"s":0,"a":false},{"u":457,"l":283,"s":0,"a":true},{"u":224,"l":173,"s":1,"a":false},{"u":315,"l":149,"s":0,"a":true},{"u":607,"l":529,"s":0,"a":false},{"u":449,"l":210,"s":1,"a":true},{"u":816,"l":379,"s":1,"a":false},{"u":657,"l":580,"s":0,"a":true},{"u":430,"l":381,"s":0,"a":true},{"u":608,"l":276,"s":1,"a":false},{"u":278,"l":55,"s":0,"a":false},{"u":218,"l":83,"s":0,"a":false},{"u":930,"l":609,"s":1,"a":true},{"u":346,"l":256,"s":1,"a":false},{"u":508,"l":191,"s":0,"a":false},{"u":368,"l":144,"s":1,"a":true},{"u":898,"l":323,"s":1,"a":true},{"u":428,"l":272,"s":0,"a":true},{"u":603,"l":446,"s":0,"a":true},{"u":814,"l":78,"s":0,"a":false},{"u":131,"l":128,"s":1,"a":true},{"u":905,"l":167,"s":1,"a":true},{"u":198,"l":38,"s":0,"a":false},{"u":434,"l":386,"s":0,"a":true},{"u":554,"l":321,"s":1,"a":true},{"u":552,"l":485,"s":1,"a":true},{"u":327,"l":266,"s":0,"a":false},{"u":872,"l":557,"s":1,"a":false},{"u":967,"l":328,"s":0,"a":false},{"u":990,"l":357,"s":1,"a":true},{"u":376,"l":145,"s":1,"a":false},{"u":892,"l":86,"s":1,"a":true},{"u":778,"l":362,"s":1,"a":true},{"u":735,"l":165,"s":0,"a":true},{"u":821,"l":44,"s":1,"a":true},{"u":397,"l":353,"s":1,"a":true},{"u":868,"l":135,"s":1,"a":false},{"u":781,"l":398,"s":1,"a":false},{"u":854,"l":211,"s":1,"a":true},{"u":886,"l":587,"s":1,"a":true},{"u":923,"l":684,"s":1,"a":false},{"u":924,"l":199,"s":1,"a":false},{"u":773,"l":199,"s":1,"a":false},{"u":960,"l":928,"s":0,"a":false},{"u":205,"l":110,"s":0,"a":true},{"u":463,"l":232,"s":1,"a":true},{"u":555,"l":375,"s":1,"a":false},{"u":909,"l":119,"s":1,"a":true},{"u":684,"l":412,"s":0,"a":false},{"u":930,"l":410,"s":1,"a":false},{"u":953,"l":859,"s":1,"a":true},{"u":302,"l":275,"s":0,"a":false},{"u":755,"l":199,"s":0,"a":false},{"u":696,"l":617,"s":0,"a":true},{"u":692,"l":298,"s":1,"a":true},{"u":599,"l":450,"s":0,"a":true},{"u":389,"l":77,"s":1,"a":false},{"u":548,"l":59,"s":1,"a":true},{"u":710,"l":24,"s":0,"a":false},{"u":898,"l":52,"s":0,"a":false},{"u":509,"l":92,"s":1,"a":true},{"u":727,"l":142,"s":1,"a":true},{"u":353,"l":293,"s":1,"a":false},{"u":579,"l":87,"s":0,"a":false},{"u":96,"l":59,"s":0,"a":false},{"u":167,"l":136,"s":0,"a":false},{"u":482,"l":333,"s":1,"a":true},{"u":718,"l":83,"s":0,"a":true},{"u":713,"l":55,"s":1,"a":true},{"u":947,"l":141,"s":0,"a":false},{"u":812,"l":513,"s":0,"a":true},{"u":801,"l":481,"s":1,"a":false},{"u":841,"l":721,"s":0,"a":true},{"u":917,"l":803,"s":1,"a":false},{"u":299,"l":262,"s":1,"a":false},{"u":446,"l":427,"s":1,"a":false},{"u":915,"l":664,"s":0,"a":true},{"u":603,"l":375,"s":0,"a":false},{"u":394,"l":131,"s":0,"a":false},{"u":973,"l":258,"s":1,"a":true},{"u":356,"l":88,"s":0,"a":false},{"u":904,"l":550,"s":0,"a":false},{"u":982,"l":964,"s":1,"a":true},{"u":864,"l":171,"s":0,"a":true},{"u":901,"l":812,"s":0,"a":true},{"u":596,"l":373,"s":1,"a":true},{"u":476,"l":411,"s":0,"a":false},{"u":532,"l":148,"s":1,"a":true},{"u":628,"l":431,"s":1,"a":false},{"u":507,"l":88,"s":1,"a":false},{"u":837,"l":418,"s":1,"a":false},{"u":241,"l":178,"s":1,"a":true},{"u":928,"l":117,"s":1,"a":true},{"u":630,"l":79,"s":0,"a":true},{"u":795,"l":646,"s":0,"a":true},{"u":674,"l":622,"s":1,"a":true},{"u":635,"l":634,"s":1,"a":true},{"u":427,"l":368,"s":1,"a":false},{"u":668,"l":473,"s":0,"a":true},{"u":828,"l":527,"s":1,"a":false},{"u":768,"l":150,"s":0,"a":false},{"u":668,"l":361,"s":0,"a":true},{"u":981,"l":246,"s":1,"a":true},{"u":995,"l":947,"s":0,"a":false},{"u":978,"l":412,"s":1,"a":true},{"u":555,"l":502,"s":1,"a":true},{"u":772,"l":457,"s":0,"a":true},{"u":856,"l":728,"s":0,"a":true},{"u":404,"l":263,"s":1,"a":true},{"u":636,"l":208,"s":0,"a":false},{"u":252,"l":209,"s":0,"a":false},{"u":986,"l":830,"s":1,"a":false},{"u":979,"l":43,"s":1,"a":false},{"u":907,"l":168,"s":1,"a":true},{"u":512,"l":91,"s":0,"a":false},{"u":608,"l":335,"s":1,"a":false},{"u":188,"l":43,"s":0,"a":false},{"u":909,"l":652,"s":1,"a":false},{"u":995,"l":151,"s":0,"a":false},{"u":764,"l":745,"s":0,"a":true},{"u":872,"l":114,"s":0,"a":true},{"u":823,"l":811,"s":1,"a":false},{"u":790,"l":361,"s":1,"a":true},{"u":818,"l":727,"s":1,"a":false},{"u":819,"l":1,"s":1,"a":true},{"u":673,"l":151,"s":1,"a":true},{"u":659,"l":314,"s":0,"a":false},{"u":982,"l":113,"s":1,"a":true},{"u":862,"l":397,"s":0,"a":true},{"u":490,"l":423,"s":1,"a":true},{"u":597,"l":558,"s":0,"a":false},{"u":974,"l":236,"s":1,"a":true},{"u":275,"l":262,"s":0,"a":true},{"u":687,"l":597,"s":1,"a":true},{"u":150,"l":53,"s":0,"a":false},{"u":814,"l":347,"s":1,"a":false},{"u":228,"l":103,"s":0,"a":true},{"u":761,"l":472,"s":0,"a":true},{"u":584,"l":398,"s":0,"a":false},{"u":568,"l":315,"s":1,"a":true},{"u":911,"l":273,"s":1,"a":false},{"u":802,"l":610,"s":1,"a":false},{"u":562,"l":348,"s":1,"a":true},{"u":815,"l":640,"s":1,"a":true},{"u":296,"l":53,"s":0,"a":true},{"u":524,"l":210,"s":1,"a":true},{"u":326,"l":266,"s":1,"a":true},{"u":994,"l":47,"s":1,"a":false},{"u":514,"l":403,"s":0,"a":true},{"u":949,"l":178,"s":0,"a":true},{"u":969,"l":140,"s":0,"a":true},{"u":811,"l":522,"s":1,"a":false},{"u":166,"l":123,"s":0,"a":true},{"u":579,"l":398,"s":1,"a":true},{"u":858,"l":720,"s":1,"a":true},{"u":641,"l":629,"s":0,"a":true},{"u":690,"l":598,"s":0,"a":false},{"u":816,"l":613,"s":1,"a":false},{"u":308,"l":54,"s":0,"a":false},{"u":139,"l":5,"s":0,"a":true},{"u":705,"l":360,"s":1,"a":true},{"u":521,"l":334,"s":1,"a":false},{"u":544,"l":268,"s":1,"a":false},{"u":828,"l":248,"s":1,"a":false},{"u":674,"l":104,"s":1,"a":true},{"u":965,"l":311,"s":1,"a":false},{"u":830,"l":20,"s":1,"a":false},{"u":401,"l":354,"s":0,"a":true},{"u":194,"l":26,"s":0,"a":false},{"u":32,"l":5,"s":1,"a":true},{"u":516,"l":471,"s":1,"a":true},{"u":535,"l":390,"s":0,"a":false},{"u":87,"l":86,"s":0,"a":true},{"u":850,"l":332,"s":1,"a":true},{"u":698,"l":576,"s":0,"a":true},{"u":906,"l":854,"s":1,"a":false},{"u":718,"l":118,"s":1,"a":false},{"u":470,"l":317,"s":0,"a":true},{"u":970,"l":132,"s":1,"a":true},{"u":842,"l":703,"s":0,"a":true},{"u":853,"l":610,"s":0,"a":false},{"u":787,"l":575,"s":1,"a":true},{"u":768,"l":348,"s":0,"a":false},{"u":979,"l":155,"s":0,"a":false},{"u":900,"l":861,"s":0,"a":false},{"u":508,"l":414,"s":1,"a":false},{"u":117,"l":53,"s":0,"a":true},{"u":131,"l":58,"s":1,"a":false},{"u":232,"l":207,"s":0,"a":false},{"u":683,"l":176,"s":1,"a":false},{"u":947,"l":527,"s":0,"a":false},{"u":577,"l":483,"s":0,"a":true},{"u":897,"l":802,"s":0,"a":false},{"u":667,"l":334,"s":0,"a":true},{"u":602,"l":366,"s":1,"a":false},{"u":885,"l":22,"s":0,"a":true},{"u":977,"l":501,"s":1,"a":true},{"u":990,"l":674,"s":1,"a":false},{"u":553,"l":67,"s":1,"a":false},{"u":811,"l":676,"s":1,"a":true},{"u":743,"l":45,"s":1,"a":false},{"u":666,"l":197,"s":1,"a":false},{"u":437,"l":409,"s":1,"a":true},{"u":98,"l":24,"s":1,"a":false},{"u":771,"l":68,"s":1,"a":false},{"u":709,"l":438,"s":0,"a":true},{"u":594,"l":115,"s":1,"a":false},{"u":435,"l":258,"s":1,"a":false},{"u":580,"l":559,"s":0,"a":true},{"u":724,"l":491,"s":0,"a":false},{"u":593,"l":33,"s":0,"a":false},{"u":549,"l":78,"s":0,"a":false},{"u":878,"l":502,"s":1,"a":true},{"u":766,"l":288,"s":0,"a":false},{"u":949,"l":239,"s":0,"a":false},{"u":361,"l":318,"s":1,"a":false},{"u":736,"l":604,"s":1,"a":false},{"u":996,"l":638,"s":1,"a":false},{"u":757,"l":144,"s":0,"a":false},{"u":775,"l":180,"s":1,"a":false},{"u":753,"l":58,"s":1,"a":false},{"u":932,"l":930,"s":1,"a":false},{"u":239,"l":145,"s":1,"a":true},{"u":822,"l":748,"s":1,"a":false},{"u":614,"l":21,"s":1,"a":false},{"u":192,"l":42,"s":0,"a":true},{"u":931,"l":909,"s":1,"a":false},{"u":396,"l":287,"s":1,"a":false},{"u":524,"l":315,"s":1,"a":false},{"u":331,"l":144,"s":1,"a":false},{"u":488,"l":49,"s":1,"a":false},{"u":395,"l":107,"s":0,"a":false},{"u":203,"l":69,"s":1,"a":true},{"u":533,"l":384,"s":0,"a":true},{"u":790,"l":311,"s":0,"a":false},{"u":652,"l":154,"s":1,"a":false},{"u":388,"l":173,"s":1,"a":false},{"u":573,"l":558,"s":1,"a":true},{"u":837,"l":617,"s":1,"a":true},{"u":170,"l":82,"s":1,"a":true},{"u":130,"l":59,"s":0,"a":false},{"u":483,"l":266,"s":0,"a":false},{"u":478,"l":223,"s":1,"a":false},{"u":978,"l":336,"s":1,"a":true},{"u":756,"l":80,"s":0,"a":true},{"u":597,"l":449,"s":1,"a":true},{"u":704,"l":420,"s":1,"a":true},{"u":533,"l":202,"s":0,"a":false},{"u":872,"l":218,"s":0,"a":false},{"u":895,"l":330,"s":1,"a":false},{"u":727,"l":512,"s":0,"a":false},{"u":688,"l":191,"s":0,"a":true},{"u":981,"l":142,"s":0,"a":true},{"u":225,"l":121,"s":1,"a":true},{"u":581,"l":419,"s":0,"a":true},{"u":610,"l":242,"s":0,"a":true},{"u":973,"l":381,"s":0,"a":false},{"u":677,"l":474,"s":0,"a":true},{"u":939,"l":395,"s":1,"a":true},{"u":927,"l":281,"s":1,"a":false},{"u":986,"l":361,"s":0,"a":false},{"u":964,"l":704,"s":1,"a":false},{"u":965,"l":477,"s":0,"a":false},{"u":479,"l":268,"s":0,"a":false},{"u":901,"l":460,"s":0,"a":true},{"u":570,"l":511,"s":0,"a":false},{"u":875,"l":864,"s":0,"a":false},{"u":889,"l":365,"s":1,"a":true},{"u":957,"l":271,"s":0,"a":true},{"u":981,"l":297,"s":0,"a":true},{"u":846,"l":528,"s":0,"a":false},{"u":723,"l":164,"s":0,"a":true},{"u":366,"l":360,"s":1,"a":false},{"u":852,"l":93,"s":1,"a":true},{"u":128,"l":20,"s":1,"a":true},{"u":759,"l":39,"s":1,"a":true},{"u":644,"l":172,"s":0,"a":true},{"u":835,"l":129,"s":0,"a":true},{"u":533,"l":218,"s":0,"a":false},{"u":303,"l":294,"s":0,"a":false},{"u":555,"l":103,"s":0,"a":false},{"u":935,"l":447,"s":1,"a":false},{"u":982,"l":866,"s":1,"a":false},{"u":820,"l":202,"s":1,"a":false},{"u":780,"l":372,"s":0,"a":true},{"u":315,"l":256,"s":0,"a":false},{"u":968,"l":417,"s":1,"a":false},{"u":978,"l":143,"s":1,"a":true},{"u":542,"l":112,"s":0,"a":true},{"u":692,"l":314,"s":0,"a":true},{"u":716,"l":185,"s":0,"a":false},{"u":836,"l":767,"s":0,"a":false},{"u":820,"l":397,"s":1,"a":true},{"u":956,"l":123,"s":0,"a":true},{"u":695,"l":186,"s":1,"a":true},{"u":847,"l":686,"s":0,"a":true},{"u":678,"l":435,"s":0,"a":false},{"u":500,"l":293,"s":0,"a":true},{"u":614,"l":41,"s":1,"a":true},{"u":461,"l":375,"s":0,"a":true},{"u":733,"l":551,"s":0,"a":true},{"u":370,"l":115,"s":1,"a":false},{"u":520,"l":253,"s":1,"a":true},{"u":919,"l":548,"s":1,"a":false},{"u":317,"l":224,"s":1,"a":false},{"u":874,"l":673,"s":1,"a":false},{"u":701,"l":224,"s":0,"a":false},{"u":505,"l":76,"s":1,"a":false},{"u":217,"l":123,"s":0,"a":false},{"u":846,"l":616,"s":1,"a":true},{"u":855,"l":561,"s":1,"a":false},{"u":900,"l":402,"s":1,"a":true},{"u":602,"l":14,"s":0,"a":false},{"u":902,"l":860,"s":1,"a":false},{"u":502,"l":313,"s":1,"a":false},{"u":858,"l":462,"s":1,"a":true},{"u":906,"l":182,"s":0,"a":false},{"u":971,"l":263,"s":1,"a":false},{"u":678,"l":668,"s":1,"a":true},{"u":478,"l":49,"s":1,"a":false},{"u":512,"l":322,"s":0,"a":false},{"u":437,"l":384,"s":1,"a":true},{"u":316,"l":38,"s":1,"a":true},{"u":952,"l":834,"s":1,"a":false},{"u":554,"l":28,"s":1,"a":false},{"u":440,"l":243,"s":0,"a":false},{"u":434,"l":421,"s":1,"a":true},{"u":848,"l":795,"s":0,"a":true},{"u":915,"l":428,"s":1,"a":true},{"u":819,"l":346,"s":0,"a":false},{"u":621,"l":456,"s":0,"a":true},{"u":520,"l":500,"s":1,"a":false},{"u":989,"l":966,"s":1,"a":false},{"u":806,"l":204,"s":0,"a":true},{"u":240,"l":94,"s":0,"a":true},{"u":354,"l":20,"s":1,"a":false},{"u":277,"l":215,"s":1,"a":true},{"u":790,"l":600,"s":1,"a":false},{"u":671,"l":317,"s":0,"a":true},{"u":332,"l":278,"s":1,"a":true},{"u":228,"l":63,"s":0,"a":true},{"u":980,"l":638,"s":0,"a":true},{"u":819,"l":549,"s":0,"a":true},{"u":284,"l":195,"s":1,"a":true},{"u":364,"l":290,"s":1,"a":false},{"u":177,"l":112,"s":0,"a":false},{"u":724,"l":495,"s":0,"a":false},{"u":857,"l":386,"s":1,"a":false},{"u":546,"l":339,"s":0,"a":true},{"u":975,"l":804,"s":0,"a":false},{"u":933,"l":714,"s":0,"a":false},{"u":936,"l":375,"s":1,"a":true},{"u":826,"l":7,"s":1,"a":false},{"u":726,"l":176,"s":0,"a":true},{"u":731,"l":504,"s":1,"a":false},{"u":955,"l":954,"s":0,"a":true},{"u":294,"l":92,"s":0,"a":true},{"u":202,"l":86,"s":0,"a":true},{"u":928,"l":837,"s":1,"a":false},{"u":472,"l":212,"s":1,"a":true},{"u":729,"l":149,"s":0,"a":false},{"u":441,"l":64,"s":0,"a":false},{"u":158,"l":25,"s":1,"a":false},{"u":906,"l":789,"s":1,"a":false},{"u":746,"l":382,"s":1,"a":true},{"u":589,"l":587,"s":1,"a":false},{"u":527,"l":254,"s":0,"a":false},{"u":984,"l":348,"s":0,"a":false},{"u":161,"l":1,"s":0,"a":true},{"u":201,"l":7,"s":0,"a":false},{"u":860,"l":124,"s":1,"a":false},{"u":386,"l":370,"s":0,"a":true},{"u":518,"l":507,"s":1,"a":true},{"u":886,"l":96,"s":0,"a":true},{"u":280,"l":12,"s":0,"a":true},{"u":517,"l":364,"s":1,"a":true},{"u":916,"l":282,"s":0,"a":false},{"u":640,"l":202,"s":1,"a":true},{"u":882,"l":545,"s":0,"a":false},{"u":522,"l":7,"s":1,"a":false},{"u":918,"l":459,"s":0,"a":true},{"u":580,"l":467,"s":1,"a":true},{"u":813,"l":187,"s":1,"a":false},{"u":788,"l":127,"s":1,"a":false},{"u":770,"l":111,"s":1,"a":false},{"u":451,"l":121,"s":1,"a":false},{"u":620,"l":393,"s":1,"a":true},{"u":702,"l":36,"s":1,"a":false},{"u":710,"l":491,"s":1,"a":true},{"u":746,"l":556,"s":1,"a":true},{"u":975,"l":944,"s":1,"a":true},{"u":811,"l":4,"s":1,"a":true},{"u":64,"l":25,"s":0,"a":false},{"u":406,"l":16,"s":1,"a":true},{"u":729,"l":535,"s":1,"a":true},{"u":806,"l":166,"s":1,"a":true},{"u":566,"l":534,"s":1,"a":true},{"u":796,"l":332,"s":0,"a":true},{"u":588,"l":259,"s":0,"a":false},{"u":635,"l":220,"s":1,"a":false},{"u":780,"l":159,"s":0,"a":true},{"u":948,"l":654,"s":1,"a":true},{"u":354,"l":345,"s":0,"a":false},{"u":648,"l":408,"s":0,"a":true},{"u":854,"l":269,"s":0,"a":true},{"u":941,"l":710,"s":0,"a":true},{"u":507,"l":289,"s":0,"a":true},{"u":656,"l":255,"s":1,"a":false},{"u":35,"l":32,"s":1,"a":true},{"u":358,"l":328,"s":1,"a":false},{"u":426,"l":35,"s":1,"a":true},{"u":986,"l":950,"s":0,"a":false},{"u":462,"l":209,"s":0,"a":false},{"u":706,"l":11,"s":0,"a":true},{"u":838,"l":271,"s":0,"a":true},{"u":282,"l":125,"s":1,"a":false},{"u":713,"l":524,"s":1,"a":true},{"u":330,"l":110,"s":0,"a":true},{"u":908,"l":57,"s":0,"a":true},{"u":953,"l":91,"s":1,"a":false},{"u":864,"l":299,"s":1,"a":false},{"u":659,"l":305,"s":1,"a":true},{"u":504,"l":337,"s":0,"a":true},{"u":788,"l":591,"s":0,"a":true},{"u":958,"l":274,"s":0,"a":true},{"u":603,"l":2,"s":1,"a":false},{"u":735,"l":665,"s":0,"a":false},{"u":952,"l":797,"s":1,"a":true},{"u":829,"l":37,"s":1,"a":true},{"u":891,"l":890,"s":0,"a":true},{"u":982,"l":99,"s":0,"a":true},{"u":950,"l":334,"s":1,"a":true},{"u":892,"l":344,"s":0,"a":true},{"u":892,"l":214,"s":0,"a":false},{"u":649,"l":334,"s":1,"a":false},{"u":707,"l":118,"s":0,"a":false},{"u":942,"l":235,"s":0,"a":true},{"u":529,"l":317,"s":0,"a":true},{"u":634,"l":513,"s":1,"a":true},{"u":619,"l":496,"s":1,"a":true},{"u":886,"l":451,"s":0,"a":true},{"u":170,"l":60,"s":0,"a":true},{"u":834,"l":39,"s":1,"a":true},{"u":831,"l":497,"s":0,"a":true},{"u":880,"l":699,"s":1,"a":true},{"u":859,"l":853,"s":0,"a":true},{"u":925,"l":721,"s":1,"a":true},{"u":706,"l":45,"s":0,"a":false},{"u":924,"l":100,"s":0,"a":false},{"u":319,"l":258,"s":1,"a":true},{"u":243,"l":109,"s":1,"a":false},{"u":910,"l":202,"s":1,"a":true},{"u":919,"l":838,"s":1,"a":false},{"u":684,"l":147,"s":0,"a":false},{"u":962,"l":765,"s":1,"a":true},{"u":949,"l":623,"s":0,"a":false},{"u":448,"l":446,"s":0,"a":false},{"u":151,"l":34,"s":0,"a":true},{"u":810,"l":132,"s":1,"a":false},{"u":278,"l":228,"s":0,"a":true},{"u":874,"l":144,"s":0,"a":false},{"u":821,"l":708,"s":0,"a":true},{"u":319,"l":258,"s":1,"a":false},{"u":550,"l":400,"s":0,"a":true},{"u":818,"l":129,"s":0,"a":true},{"u":422,"l":219,"s":0,"a":false},{"u":916,"l":58,"s":0,"a":false},{"u":836,"l":190,"s":0,"a":true},{"u":863,"l":377,"s":0,"a":false},{"u":825,"l":54,"s":0,"a":false},{"u":436,"l":23,"s":0,"a":false},{"u":214,"l":119,"s":1,"a":true},{"u":452,"l":413,"s":0,"a":false},{"u":495,"l":320,"s":1,"a":true},{"u":819,"l":112,"s":0,"a":true},{"u":871,"l":442,"s":1,"a":true},{"u":833,"l":185,"s":0,"a":true},{"u":323,"l":144,"s":1,"a":true},{"u":755,"l":424,"s":0,"a":false},{"u":586,"l":73,"s":1,"a":true},{"u":397,"l":375,"s":0,"a":false},{"u":51,"l":47,"s":1,"a":true},{"u":399,"l":236,"s":0,"a":true},{"u":631,"l":451,"s":0,"a":true},{"u":544,"l":372,"s":0,"a":true},{"u":384,"l":374,"s":1,"a":false},{"u":574,"l":498,"s":0,"a":true},{"u":399,"l":266,"s":0,"a":false},{"u":676,"l":673,"s":0,"a":false},{"u":278,"l":185,"s":1,"a":false},{"u":431,"l":86,"s":1,"a":true},{"u":312,"l":112,"s":1,"a":false},{"u":306,"l":282,"s":0,"a":false},{"u":757,"l":391,"s":1,"a":true},{"u":476,"l":280,"s":1,"a":true},{"u":706,"l":704,"s":0,"a":true},{"u":601,"l":571,"s":0,"a":false},{"u":795,"l":766,"s":1,"a":true},{"u":121,"l":55,"s":0,"a":false},{"u":654,"l":418,"s":1,"a":true},{"u":259,"l":137,"s":1,"a":false},{"u":385,"l":71,"s":1,"a":false},{"u":765,"l":755,"s":1,"a":true},{"u":981,"l":681,"s":1,"a":false},{"u":48,"l":6,"s":1,"a":false},{"u":641,"l":72,"s":1,"a":true},{"u":943,"l":123,"s":1,"a":true},{"u":624,"l":178,"s":0,"a":false},{"u":659,"l":280,"s":1,"a":false},{"u":358,"l":132,"s":1,"a":true},{"u":627,"l":450,"s":1,"a":false},{"u":584,"l":413,"s":0,"a":false},{"u":882,"l":639,"s":1,"a":true},{"u":837,"l":155,"s":1,"a":true},{"u":504,"l":269,"s":0,"a":true},{"u":645,"l":478,"s":1,"a":false},{"u":977,"l":926,"s":1,"a":false},{"u":811,"l":369,"s":0,"a":true},{"u":469,"l":51,"s":1,"a":true},{"u":892,"l":328,"s":1,"a":false},{"u":999,"l":652,"s":1,"a":true},{"u":952,"l":97,"s":1,"a":false},{"u":945,"l":665,"s":0,"a":true},{"u":860,"l":184,"s":1,"a":true},{"u":869,"l":109,"s":0,"a":true},{"u":558,"l":523,"s":0,"a":true},{"u":666,"l":481,"s":0,"a":false},{"u":892,"l":216,"s":0,"a":true},{"u":301,"l":226,"s":0,"a":false},{"u":450,"l":250,"s":1,"a":false},{"u":777,"l":771,"s":0,"a":true},{"u":602,"l":222,"s":0,"a":true},{"u":826,"l":582,"s":1,"a":false},{"u":524,"l":294,"s":0,"a":false},{"u":855,"l":768,"s":1,"a":true},{"u":677,"l":399,"s":0,"a":false},{"u":491,"l":174,"s":0,"a":false},{"u":618,"l":237,"s":1,"a":false},{"u":456,"l":236,"s":0,"a":false},{"u":524,"l":145,"s":0,"a":true},{"u":675,"l":530,"s":1,"a":false},{"u":913,"l":484,"s":1,"a":false},{"u":932,"l":734,"s":1,"a":false},{"u":193,"l":102,"s":0,"a":false},{"u":977,"l":934,"s":1,"a":true},{"u":426,"l":276,"s":1,"a":false},{"u":284,"l":85,"s":1,"a":false},{"u":586,"l":107,"s":1,"a":true},{"u":942,"l":281,"s":0,"a":false},{"u":984,"l":112,"s":1,"a":true},{"u":486,"l":156,"s":0,"a":false},{"u":982,"l":161,"s":1,"a":true},{"u":562,"l":390,"s":0,"a":false},{"u":123,"l":94,"s":0,"a":true},{"u":390,"l":163,"s":0,"a":true},{"u":644,"l":5,"s":1,"a":false},{"u":647,"l":221,"s":0,"a":false},{"u":531,"l":241,"s":1,"a":true},{"u":585,"l":578,"s":0,"a":false},{"u":665,"l":423,"s":1,"a":false},{"u":919,"l":599,"s":0,"a":false},{"u":742,"l":45,"s":0,"a":false},{"u":235,"l":104,"s":1,"a":true},{"u":334,"l":81,"s":0,"a":true},{"u":588,"l":421,"s":0,"a":false},{"u":479,"l":168,"s":1,"a":true},{"u":528,"l":343,"s":1,"a":true},{"u":531,"l":369,"s":0,"a":true},{"u":570,"l":276,"s":0,"a":true},{"u":753,"l":366,"s":1,"a":false},{"u":796,"l":733,"s":1,"a":false},{"u":440,"l":308,"s":0,"a":false},{"u":609,"l":347,"s":1,"a":false},{"u":657,"l":623,"s":1,"a":false},{"u":802,"l":473,"s":1,"a":false},{"u":951,"l":162,"s":0,"a":false},{"u":555,"l":121,"s":0,"a":true},{"u":734,"l":326,"s":1,"a":true},{"u":994,"l":129,"s":0,"a":false},{"u":704,"l":551,"s":0,"a":false},{"u":900,"l":421,"s":1,"a":false},{"u":760,"l":190,"s":1,"a":true},{"u":640,"l":11,"s":0,"a":false},{"u":305,"l":263,"s":0,"a":true},{"u":678,"l":454,"s":0,"a":false},{"u":851,"l":424,"s":1,"a":false},{"u":661,"l":575,"s":0,"a":false},{"u":751,"l":265,"s":1,"a":false},{"u":525,"l":203,"s":0,"a":true},{"u":554,"l":208,"s":1,"a":true},{"u":877,"l":55,"s":1,"a":true},{"u":797,"l":580,"s":0,"a":false},{"u":785,"l":15,"s":1,"a":true},{"u":391,"l":44,"s":1,"a":true},{"u":432,"l":349,"s":0,"a":true},{"u":797,"l":571,"s":0,"a":false},{"u":504,"l":4,"s":1,"a":true},{"u":382,"l":185,"s":0,"a":false},{"u":834,"l":108,"s":0,"a":false},{"u":986,"l":683,"s":1,"a":false},{"u":931,"l":529,"s":1,"a":false},{"u":260,"l":149,"s":0,"a":false},{"u":946,"l":712,"s":0,"a":true},{"u":713,"l":147,"s":0,"a":true},{"u":973,"l":228,"s":1,"a":false},{"u":649,"l":560,"s":0,"a":false},{"u":999,"l":883,"s":0,"a":true},{"u":678,"l":488,"s":1,"a":true},{"u":878,"l":666,"s":0,"a":false},{"u":737,"l":70,"s":0,"a":true},{"u":687,"l":313,"s":0,"a":false},{"u":289,"l":119,"s":1,"a":true},{"u":598,"l":346,"s":0,"a":true},{"u":644,"l":140,"s":0,"a":false},{"u":864,"l":52,"s":0,"a":true},{"u":311,"l":34,"s":1,"a":true},{"u":605,"l":436,"s":1,"a":true},{"u":588,"l":523,"s":0,"a":true},{"u":938,"l":535,"s":1,"a":false},{"u":806,"l":320,"s":1,"a":false},{"u":852,"l":496,"s":0,"a":true},{"u":596,"l":375,"s":0,"a":true},{"u":996,"l":974,"s":0,"a":false},{"u":651,"l":233,"s":0,"a":true},{"u":681,"l":196,"s":0,"a":true},{"u":975,"l":723,"s":0,"a":false},{"u":729,"l":479,"s":0,"a":true},{"u":856,"l":735,"s":0,"a":true},{"u":876,"l":447,"s":0,"a":true},{"u":774,"l":390,"s":0,"a":false},{"u":603,"l":155,"s":1,"a":false},{"u":853,"l":537,"s":1,"a":false},{"u":639,"l":494,"s":1,"a":true},{"u":892,"l":678,"s":1,"a":false},{"u":670,"l":264,"s":0,"a":false},{"u":788,"l":282,"s":1,"a":false},{"u":873,"l":253,"s":1,"a":false},{"u":704,"l":627,"s":1,"a":false},{"u":941,"l":506,"s":1,"a":true},{"u":537,"l":512,"s":1,"a":true},{"u":972,"l":218,"s":0,"a":true},{"u":889,"l":472,"s":1,"a":false},{"u":576,"l":343,"s":1,"a":true},{"u":764,"l":186,"s":1,"a":false},{"u":934,"l":343,"s":0,"a":true},{"u":261,"l":43,"s":0,"a":false},{"u":665,"l":100,"s":1,"a":true},{"u":404,"l":231,"s":0,"a":true},{"u":419,"l":223,"s":0,"a":true},{"u":164,"l":68,"s":1,"a":true},{"u":856,"l":72,"s":0,"a":false},{"u":793,"l":628,"s":0,"a":true},{"u":777,"l":202,"s":1,"a":true},{"u":715,"l":615,"s":0,"a":true},{"u":837,"l":527,"s":0,"a":true},{"u":850,"l":518,"s":0,"a":true},{"u":677,"l":125,"s":1,"a":false},{"u":608,"l":543,"s":0,"a":true},{"u":941,"l":15,"s":1,"a":false},{"u":374,"l":200,"s":0,"a":true},{"u":28,"l":19,"s":1,"a":false},{"u":907,"l":798,"s":1,"a":true},{"u":697,"l":520,"s":0,"a":true},{"u":815,"l":791,"s":1,"a":false},{"u":625,"l":434,"s":1,"a":false},{"u":957,"l":462,"s":1,"a":true},{"u":842,"l":427,"s":1,"a":false},{"u":879,"l":807,"s":1,"a":false},{"u":263,"l":145,"s":1,"a":false},{"u":838,"l":302,"s":0,"a":false},{"u":598,"l":36,"s":0,"a":true},{"u":740,"l":154,"s":0,"a":true},{"u":440,"l":98,"s":0,"a":true},{"u":401,"l":278,"s":1,"a":false},{"u":717,"l":37,"s":0,"a":false},{"u":986,"l":531,"s":1,"a":true},{"u":907,"l":579,"s":0,"a":true},{"u":771,"l":499,"s":0,"a":true},{"u":299,"l":64,"s":1,"a":false},{"u":349,"l":87,"s":0,"a":false},{"u":503,"l":274,"s":1,"a":true},{"u":559,"l":443,"s":0,"a":true},{"u":697,"l":201,"s":1,"a":false},{"u":927,"l":926,"s":1,"a":true},{"u":585,"l":165,"s":0,"a":true},{"u":351,"l":232,"s":1,"a":false},{"u":923,"l":282,"s":1,"a":false},{"u":910,"l":583,"s":0,"a":true},{"u":746,"l":631,"s":0,"a":true},{"u":807,"l":804,"s":0,"a":true},{"u":392,"l":40,"s":1,"a":false},{"u":945,"l":565,"s":0,"a":false},{"u":309,"l":176,"s":1,"a":false},{"u":891,"l":825,"s":0,"a":true},{"u":707,"l":156,"s":0,"a":false},{"u":473,"l":43,"s":1,"a":false},{"u":618,"l":90,"s":1,"a":false},{"u":581,"l":489,"s":0,"a":false},{"u":974,"l":628,"s":0,"a":true},{"u":637,"l":107,"s":0,"a":true},{"u":883,"l":873,"s":1,"a":false},{"u":713,"l":185,"s":1,"a":true},{"u":361,"l":293,"s":1,"a":false},{"u":308,"l":123,"s":1,"a":true},{"u":475,"l":206,"s":1,"a":false},{"u":280,"l":49,"s":0,"a":false},{"u":760,"l":3,"s":1,"a":true},{"u":842,"l":556,"s":1,"a":false},{"u":738,"l":620,"s":1,"a":false},{"u":276,"l":96,"s":0,"a":false},{"u":836,"l":738,"s":1,"a":true},{"u":562,"l":24,"s":1,"a":false},{"u":463,"l":175,"s":1,"a":true},{"u":889,"l":186,"s":1,"a":true},{"u":878,"l":588,"s":0,"a":false},{"u":768,"l":227,"s":1,"a":false},{"u":835,"l":499,"s":1,"a":false},{"u":246,"l":11,"s":1,"a":false},{"u":659,"l":50,"s":1,"a":false},{"u":625,"l":521,"s":0,"a":true},{"u":998,"l":201,"s":0,"a":false},{"u":672,"l":351,"s":1,"a":true},{"u":732,"l":465,"s":1,"a":true},{"u":786,"l":261,"s":0,"a":true},{"u":512,"l":79,"s":0,"a":false},{"u":889,"l":837,"s":0,"a":true},{"u":907,"l":380,"s":1,"a":true},{"u":760,"l":594,"s":0,"a":false},{"u":676,"l":510,"s":0,"a":true},{"u":320,"l":87,"s":0,"a":true},{"u":372,"l":342,"s":1,"a":false},{"u":861,"l":603,"s":0,"a":true},{"u":799,"l":729,"s":1,"a":true},{"u":465,"l":457,"s":0,"a":true},{"u":522,"l":101,"s":1,"a":false},{"u":891,"l":236,"s":0,"a":false},{"u":783,"l":167,"s":1,"a":false},{"u":476,"l":406,"s":0,"a":false},{"u":492,"l":246,"s":0,"a":false},{"u":310,"l":122,"s":1,"a":true},{"u":629,"l":152,"s":0,"a":false},{"u":302,"l":268,"s":0,"a":false},{"u":637,"l":86,"s":0,"a":true},{"u":529,"l":207,"s":0,"a":false},{"u":592,"l":113,"s":1,"a":true},{"u":950,"l":742,"s":1,"a":false},{"u":308,"l":145,"s":1,"a":false},{"u":285,"l":2,"s":0,"a":true},{"u":717,"l":46,"s":1,"a":true},{"u":373,"l":162,"s":0,"a":true},{"u":342,"l":45,"s":1,"a":true},{"u":937,"l":605,"s":1,"a":true},{"u":612,"l":447,"s":1,"a":true},{"u":900,"l":97,"s":1,"a":true},{"u":490,"l":245,"s":0,"a":false},{"u":848,"l":443,"s":0,"a":true},{"u":389,"l":279,"s":1,"a":false},{"u":843,"l":177,"s":1,"a":false},{"u":702,"l":398,"s":1,"a":false},{"u":535,"l":345,"s":0,"a":true},{"u":919,"l":162,"s":1,"a":false},{"u":359,"l":126,"s":0,"a":false},{"u":915,"l":893,"s":1,"a":false},{"u":653,"l":371,"s":0,"a":false},{"u":264,"l":27,"s":0,"a":false},{"u":305,"l":56,"s":1,"a":true},{"u":431,"l":279,"s":1,"a":false},{"u":753,"l":221,"s":0,"a":false},{"u":985,"l":913,"s":1,"a":false},{"u":836,"l":761,"s":0,"a":true},{"u":532,"l":299,"s":0,"a":false},{"u":879,"l":686,"s":0,"a":false},{"u":730,"l":687,"s":1,"a":true},{"u":808,"l":528,"s":1,"a":true},{"u":637,"l":375,"s":0,"a":false},{"u":762,"l":54,"s":0,"a":false},{"u":573,"l":442,"s":0,"a":true},{"u":637,"l":497,"s":1,"a":false},{"u":976,"l":360,"s":0,"a":true},{"u":896,"l":385,"s":0,"a":true},{"u":616,"l":377,"s":1,"a":false},{"u":917,"l":49,"s":0,"a":false},{"u":713,"l":688,"s":1,"a":false},{"u":415,"l":252,"s":1,"a":true},{"u":800,"l":50,"s":0,"a":true},{"u":475,"l":253,"s":1,"a":false},{"u":872,"l":291,"s":0,"a":false},{"u":166,"l":37,"s":0,"a":false},{"u":301,"l":216,"s":1,"a":false},{"u":787,"l":514,"s":1,"a":true},{"u":905,"l":574,"s":0,"a":false},{"u":694,"l":269,"s":0,"a":false},{"u":335,"l":306,"s":0,"a":true},{"u":805,"l":39,"s":1,"a":false},{"u":488,"l":206,"s":0,"a":false},{"u":229,"l":149,"s":0,"a":false},{"u":281,"l":259,"s":0,"a":true},{"u":504,"l":287,"s":0,"a":true},{"u":868,"l":113,"s":1,"a":true},{"u":706,"l":687,"s":1,"a":false},{"u":881,"l":863,"s":0,"a":true},{"u":623,"l":550,"s":0,"a":true},{"u":886,"l":156,"s":0,"a":true},{"u":599,"l":140,"s":0,"a":false},{"u":982,"l":830,"s":0,"a":true},{"u":459,"l":324,"s":0,"a":false},{"u":981,"l":70,"s":1,"a":false},{"u":988,"l":13,"s":0,"a":false},{"u":580,"l":270,"s":1,"a":true},{"u":221,"l":201,"s":0,"a":false},{"u":252,"l":183,"s":1,"a":false},{"u":433,"l":297,"s":0,"a":true},{"u":966,"l":644,"s":0,"a":false},{"u":948,"l":165,"s":0,"a":true},{"u":760,"l":97,"s":0,"a":true},{"u":428,"l":170,"s":1,"a":true},{"u":981,"l":498,"s":0,"a":true},{"u":946,"l":129,"s":0,"a":false},{"u":56,"l":5,"s":0,"a":true},{"u":988,"l":779,"s":1,"a":false},{"u":513,"l":87,"s":0,"a":false},{"u":843,"l":805,"s":1,"a":true},{"u":905,"l":1,"s":1,"a":true},{"u":533,"l":165,"s":1,"a":true},{"u":848,"l":109,"s":0,"a":false},{"u":738,"l":452,"s":0,"a":true},{"u":525,"l":263,"s":1,"a":false},{"u":791,"l":462,"s":0,"a":false},{"u":893,"l":362,"s":0,"a":false},{"u":746,"l":690,"s":1,"a":false},{"u":974,"l":309,"s":1,"a":false},{"u":770,"l":109,"s":0,"a":false},{"u":451,"l":313,"s":1,"a":true},{"u":436,"l":212,"s":0,"a":true},{"u":316,"l":294,"s":0,"a":true},{"u":648,"l":359,"s":1,"a":false},{"u":517,"l":445,"s":0,"a":true},{"u":886,"l":667,"s":0,"a":false},{"u":169,"l":167,"s":1,"a":true},{"u":797,"l":740,"s":0,"a":false},{"u":203,"l":159,"s":1,"a":false},{"u":346,"l":118,"s":0,"a":false},{"u":686,"l":418,"s":0,"a":true},{"u":491,"l":288,"s":1,"a":true},{"u":659,"l":654,"s":0,"a":false},{"u":901,"l":18,"s":0,"a":false},{"u":649,"l":507,"s":1,"a":true},{"u":888,"l":30,"s":0,"a":false},{"u":719,"l":53,"s":0,"a":false},{"u":312,"l":166,"s":0,"a":false},{"u":636,"l":250,"s":1,"a":true},{"u":942,"l":940,"s":1,"a":false},{"u":151,"l":123,"s":0,"a":false},{"u":694,"l":561,"s":0,"a":true},{"u":679,"l":75,"s":0,"a":true},{"u":791,"l":700,"s":0,"a":false},{"u":540,"l":378,"s":1,"a":false},{"u":652,"l":473,"s":1,"a":true},{"u":933,"l":306,"s":1,"a":true},{"u":722,"l":677,"s":0,"a":false},{"u":624,"l":95,"s":0,"a":false},{"u":596,"l":282,"s":1,"a":false},{"u":998,"l":372,"s":1,"a":true},{"u":937,"l":839,"s":0,"a":false},{"u":984,"l":921,"s":0,"a":false},{"u":827,"l":411,"s":1,"a":true},{"u":622,"l":264,"s":0,"a":true},{"u":624,"l":201,"s":0,"a":true},{"u":770,"l":213,"s":0,"a":false},{"u":833,"l":183,"s":0,"a":false},{"u":930,"l":30,"s":1,"a":true},{"u":998,"l":107,"s":1,"a":false},{"u":851,"l":616,"s":1,"a":true},{"u":497,"l":173,"s":0,"a":true},{"u":222,"l":208,"s":0,"a":true},{"u":930,"l":401,"s":1,"a":false},{"u":904,"l":53,"s":1,"a":false},{"u":724,"l":683,"s":1,"a":true},{"u":710,"l":516,"s":1,"a":true},{"u":354,"l":61,"s":1,"a":true},{"u":458,"l":227,"s":0,"a":false},{"u":776,"l":396,"s":1,"a":false},{"u":968,"l":331,"s":1,"a":true},{"u":602,"l":276,"s":0,"a":true},{"u":520,"l":424,"s":1,"a":true},{"u":964,"l":150,"s":0,"a":true},{"u":784,"l":20,"s":1,"a":true},{"u":767,"l":243,"s":1,"a":false},{"u":82,"l":5,"s":1,"a":true},{"u":900,"l":822,"s":1,"a":false},{"u":581,"l":68,"s":0,"a":true},{"u":711,"l":151,"s":0,"a":false},{"u":581,"l":490,"s":0,"a":true},{"u":894,"l":203,"s":0,"a":true},{"u":909,"l":736,"s":1,"a":false},{"u":868,"l":388,"s":1,"a":true},{"u":855,"l":583,"s":1,"a":false},{"u":708,"l":113,"s":0,"a":true},{"u":842,"l":818,"s":0,"a":false},{"u":764,"l":441,"s":1,"a":true},{"u":433,"l":55,"s":0,"a":false},{"u":856,"l":732,"s":0,"a":false},{"u":548,"l":520,"s":0,"a":true},{"u":639,"l":142,"s":0,"a":false},{"u":179,"l":18,"s":1,"a":false},{"u":535,"l":205,"s":0,"a":true},{"u":922,"l":794,"s":0,"a":false},{"u":764,"l":263,"s":1,"a":false},{"u":878,"l":630,"s":1,"a":false},{"u":928,"l":704,"s":1,"a":false},{"u":468,"l":175,"s":0,"a":false},{"u":914,"l":883,"s":1,"a":false},{"u":779,"l":190,"s":1,"a":true},{"u":452,"l":207,"s":1,"a":false},{"u":373,"l":253,"s":1,"a":true},{"u":670,"l":296,"s":0,"a":false},{"u":794,"l":680,"s":1,"a":true},{"u":732,"l":32,"s":1,"a":false},{"u":449,"l":384,"s":1,"a":true},{"u":351,"l":13,"s":0,"a":true},{"u":701,"l":211,"s":0,"a":false},{"u":218,"l":186,"s":0,"a":false},{"u":180,"l":75,"s":0,"a":true},{"u":587,"l":118,"s":1,"a":false},{"u":859,"l":127,"s":0,"a":false},{"u":706,"l":91,"s":0,"a":false},{"u":365,"l":243,"s":1,"a":true},{"u":513,"l":171,"s":0,"a":true},{"u":748,"l":116,"s":1,"a":false},{"u":567,"l":271,"s":1,"a":true},{"u":751,"l":510,"s":1,"a":true},{"u":647,"l":623,"s":1,"a":false},{"u":970,"l":8,"s":1,"a":true},{"u":730,"l":62,"s":1,"a":true},{"u":428,"l":350,"s":0,"a":true},{"u":805,"l":319,"s":0,"a":false},{"u":674,"l":607,"s":0,"a":true},{"u":498,"l":324,"s":0,"a":true},{"u":988,"l":524,"s":0,"a":true},{"u":610,"l":329,"s":0,"a":false},{"u":643,"l":381,"s":1,"a":false},{"u":105,"l":20,"s":1,"a":false},{"u":385,"l":261,"s":1,"a":false},{"u":605,"l":302,"s":0,"a":false},{"u":869,"l":767,"s":0,"a":true},{"u":876,"l":40,"s":1,"a":true},{"u":571,"l":72,"s":0,"a":false},{"u":811,"l":161,"s":0,"a":false},{"u":202,"l":52,"s":0,"a":false},{"u":909,"l":816,"s":0,"a":false},{"u":923,"l":726,"s":0,"a":false},{"u":576,"l":342,"s":1,"a":true},{"u":547,"l":301,"s":1,"a":false},{"u":85,"l":18,"s":0,"a":false},{"u":443,"l":2,"s":0,"a":false},{"u":678,"l":173,"s":1,"a":false},{"u":959,"l":852,"s":1,"a":false},{"u":435,"l":119,"s":1,"a":false},{"u":178,"l":37,"s":1,"a":false},{"u":987,"l":1,"s":0,"a":true},{"u":535,"l":268,"s":0,"a":true},{"u":674,"l":92,"s":0,"a":false},{"u":245,"l":137,"s":1,"a":true},{"u":919,"l":431,"s":0,"a":false},{"u":754,"l":164,"s":0,"a":true},{"u":795,"l":497,"s":0,"a":false},{"u":992,"l":272,"s":1,"a":true},{"u":775,"l":614,"s":1,"a":false},{"u":75,"l":39,"s":0,"a":false},{"u":269,"l":102,"s":1,"a":true},{"u":667,"l":588,"s":0,"a":true},{"u":781,"l":434,"s":0,"a":false},{"u":469,"l":55,"s":1,"a":false},{"u":324,"l":225,"s":0,"a":true},{"u":484,"l":237,"s":0,"a":true},{"u":663,"l":266,"s":0,"a":true},{"u":952,"l":833,"s":0,"a":false},{"u":806,"l":598,"s":0,"a":false},{"u":587,"l":179,"s":1,"a":false},{"u":539,"l":27,"s":1,"a":false},{"u":744,"l":576,"s":1,"a":false},{"u":609,"l":494,"s":0,"a":false},{"u":653,"l":418,"s":1,"a":true},{"u":902,"l":840,"s":0,"a":true},{"u":818,"l":497,"s":0,"a":false},{"u":823,"l":101,"s":1,"a":false},{"u":813,"l":799,"s":1,"a":false},{"u":920,"l":827,"s":0,"a":false},{"u":677,"l":56,"s":0,"a":true},{"u":477,"l":260,"s":1,"a":false},{"u":998,"l":809,"s":1,"a":true},{"u":857,"l":177,"s":0,"a":true},{"u":272,"l":30,"s":0,"a":false},{"u":954,"l":100,"s":1,"a":false},{"u":651,"l":390,"s":1,"a":true},{"u":725,"l":260,"s":1,"a":false},{"u":123,"l":25,"s":0,"a":true},{"u":571,"l":232,"s":1,"a":false},{"u":629,"l":362,"s":0,"a":true},{"u":962,"l":765,"s":1,"a":false},{"u":819,"l":702,"s":1,"a":true},{"u":904,"l":703,"s":1,"a":true},{"u":415,"l":139,"s":0,"a":true},{"u":930,"l":188,"s":0,"a":false},{"u":832,"l":406,"s":1,"a":false},{"u":722,"l":534,"s":1,"a":true},{"u":984,"l":852,"s":1,"a":true},{"u":959,"l":318,"s":1,"a":true},{"u":578,"l":571,"s":1,"a":false},{"u":646,"l":341,"s":1,"a":true},{"u":449,"l":123,"s":1,"a":true},{"u":841,"l":292,"s":0,"a":false},{"u":148,"l":96,"s":0,"a":true},{"u":583,"l":547,"s":1,"a":false},{"u":395,"l":373,"s":0,"a":false},{"u":964,"l":479,"s":0,"a":false},{"u":928,"l":121,"s":0,"a":false},{"u":738,"l":189,"s":1,"a":false},{"u":973,"l":375,"s":0,"a":true},{"u":402,"l":330,"s":1,"a":false},{"u":972,"l":435,"s":1,"a":false},{"u":800,"l":44,"s":1,"a":true},{"u":836,"l":689,"s":0,"a":true},{"u":584,"l":407,"s":1,"a":false},{"u":575,"l":332,"s":0,"a":false},{"u":758,"l":707,"s":1,"a":false},{"u":912,"l":862,"s":0,"a":false},{"u":500,"l":337,"s":1,"a":true},{"u":629,"l":12,"s":0,"a":true},{"u":410,"l":262,"s":1,"a":true},{"u":901,"l":29,"s":1,"a":false},{"u":601,"l":89,"s":0,"a":false},{"u":666,"l":60,"s":0,"a":false},{"u":515,"l":500,"s":0,"a":false},{"u":303,"l":234,"s":1,"a":false},{"u":997,"l":305,"s":0,"a":true},{"u":698,"l":76,"s":0,"a":false},{"u":662,"l":5,"s":0,"a":false},{"u":478,"l":112,"s":0,"a":true},{"u":844,"l":413,"s":1,"a":true},{"u":735,"l":460,"s":0,"a":true},{"u":583,"l":269,"s":0,"a":false},{"u":941,"l":732,"s":0,"a":true},{"u":709,"l":13,"s":1,"a":true},{"u":801,"l":105,"s":1,"a":true},{"u":907,"l":691,"s":1,"a":true},{"u":812,"l":581,"s":0,"a":true},{"u":689,"l":558,"s":1,"a":false},{"u":735,"l":299,"s":0,"a":true},{"u":768,"l":757,"s":1,"a":false},{"u":991,"l":359,"s":1,"a":true},{"u":703,"l":213,"s":0,"a":true},{"u":732,"l":260,"s":0,"a":false},{"u":262,"l":220,"s":0,"a":true},{"u":809,"l":299,"s":1,"a":true},{"u":663,"l":257,"s":1,"a":true},{"u":632,"l":38,"s":1,"a":true},{"u":781,"l":65,"s":0,"a":true},{"u":858,"l":628,"s":1,"a":true},{"u":945,"l":929,"s":1,"a":false},{"u":487,"l":30,"s":0,"a":false},{"u":751,"l":506,"s":0,"a":true},{"u":892,"l":239,"s":1,"a":false},{"u":996,"l":158,"s":1,"a":false},{"u":928,"l":729,"s":0,"a":true},{"u":345,"l":72,"s":1,"a":true},{"u":901,"l":513,"s":1,"a":true},{"u":808,"l":530,"s":0,"a":true},{"u":820,"l":315,"s":0,"a":false},{"u":844,"l":333,"s":0,"a":false},{"u":785,"l":28,"s":1,"a":true},{"u":607,"l":478,"s":0,"a":true},{"u":606,"l":123,"s":0,"a":true},{"u":768,"l":128,"s":0,"a":true},{"u":636,"l":425,"s":0,"a":true},{"u":173,"l":125,"s":1,"a":false},{"u":805,"l":429,"s":0,"a":true},{"u":697,"l":234,"s":0,"a":true},{"u":879,"l":705,"s":1,"a":false},{"u":838,"l":310,"s":1,"a":true},{"u":547,"l":95,"s":0,"a":true},{"u":590,"l":382,"s":1,"a":true},{"u":895,"l":248,"s":0,"a":true},{"u":353,"l":295,"s":0,"a":false},{"u":294,"l":191,"s":0,"a":true},{"u":921,"l":380,"s":0,"a":false},{"u":411,"l":57,"s":0,"a":true},{"u":603,"l":120,"s":1,"a":false},{"u":640,"l":331,"s":0,"a":true},{"u":823,"l":55,"s":1,"a":false},{"u":806,"l":686,"s":0,"a":false},{"u":843,"l":306,"s":0,"a":true},{"u":933,"l":503,"s":1,"a":true},{"u":613,"l":85,"s":0,"a":true},{"u":259,"l":6,"s":0,"a":false},{"u":155,"l":61,"s":1,"a":true},{"u":877,"l":474,"s":1,"a":true},{"u":559,"l":180,"s":1,"a":false},{"u":730,"l":251,"s":1,"a":false},{"u":888,"l":623,"s":1,"a":false},{"u":96,"l":94,"s":1,"a":false},{"u":604,"l":446,"s":1,"a":true},{"u":236,"l":170,"s":0,"a":true},{"u":896,"l":228,"s":1,"a":true},{"u":865,"l":721,"s":1,"a":true},{"u":146,"l":40,"s":0,"a":false},{"u":776,"l":672,"s":0,"a":true},{"u":707,"l":1,"s":1,"a":true},{"u":861,"l":683,"s":0,"a":false},{"u":746,"l":296,"s":0,"a":true},{"u":961,"l":185,"s":0,"a":false},{"u":889,"l":577,"s":1,"a":true},{"u":838,"l":470,"s":0,"a":false},{"u":793,"l":23,"s":1,"a":false},{"u":996,"l":245,"s":1,"a":false},{"u":959,"l":47,"s":1,"a":false},{"u":356,"l":76,"s":1,"a":false},{"u":661,"l":396,"s":0,"a":true},{"u":479,"l":427,"s":1,"a":true},{"u":355,"l":177,"s":1,"a":true},{"u":43,"l":2,"s":1,"a":false},{"u":881,"l":738,"s":0,"a":false},{"u":602,"l":51,"s":1,"a":true},{"u":667,"l":463,"s":1,"a":true},{"u":928,"l":743,"s":1,"a":false},{"u":860,"l":156,"s":0,"a":true},{"u":871,"l":516,"s":1,"a":true},{"u":800,"l":166,"s":0,"a":false},{"u":901,"l":879,"s":1,"a":false},{"u":811,"l":696,"s":0,"a":true},{"u":773,"l":648,"s":0,"a":false},{"u":852,"l":698,"s":0,"a":false},{"u":732,"l":294,"s":0,"a":true},{"u":376,"l":71,"s":0,"a":false},{"u":899,"l":244,"s":0,"a":true},{"u":674,"l":487,"s":1,"a":true},{"u":800,"l":212,"s":1,"a":false},{"u":618,"l":365,"s":1,"a":true},{"u":663,"l":607,"s":0,"a":true},{"u":956,"l":797,"s":0,"a":false},{"u":137,"l":2,"s":1,"a":true},{"u":887,"l":346,"s":0,"a":true},{"u":614,"l":473,"s":0,"a":true},{"u":929,"l":441,"s":0,"a":false},{"u":587,"l":288,"s":1,"a":true},{"u":452,"l":296,"s":1,"a":true},{"u":897,"l":511,"s":0,"a":true},{"u":724,"l":520,"s":0,"a":true},{"u":582,"l":179,"s":1,"a":false},{"u":955,"l":690,"s":0,"a":false},{"u":340,"l":285,"s":1,"a":true},{"u":966,"l":922,"s":0,"a":false},{"u":62,"l":43,"s":1,"a":false},{"u":803,"l":561,"s":0,"a":false},{"u":873,"l":523,"s":0,"a":true},{"u":694,"l":282,"s":1,"a":false},{"u":636,"l":247,"s":0,"a":false},{"u":790,"l":13,"s":1,"a":true},{"u":795,"l":174,"s":0,"a":false},{"u":373,"l":341,"s":1,"a":false},{"u":896,"l":534,"s":0,"a":false},{"u":581,"l":158,"s":1,"a":false},{"u":604,"l":113,"s":0,"a":true},{"u":646,"l":131,"s":0,"a":false},{"u":868,"l":159,"s":1,"a":false},{"u":311,"l":209,"s":1,"a":true},{"u":512,"l":410,"s":0,"a":true},{"u":730,"l":116,"s":1,"a":true},{"u":495,"l":217,"s":0,"a":true},{"u":600,"l":127,"s":1,"a":true},{"u":425,"l":356,"s":0,"a":false},{"u":810,"l":747,"s":0,"a":false},{"u":788,"l":629,"s":0,"a":false},{"u":968,"l":933,"s":0,"a":false},{"u":444,"l":175,"s":0,"a":false},{"u":799,"l":99,"s":0,"a":true},{"u":939,"l":414,"s":1,"a":true},{"u":627,"l":239,"s":1,"a":true},{"u":743,"l":119,"s":1,"a":false},{"u":607,"l":577,"s":0,"a":true},{"u":133,"l":122,"s":1,"a":false},{"u":980,"l":779,"s":1,"a":true},{"u":776,"l":512,"s":0,"a":false},{"u":252,"l":244,"s":0,"a":true},{"u":613,"l":508,"s":1,"a":true},{"u":777,"l":411,"s":1,"a":false},{"u":534,"l":182,"s":1,"a":true},{"u":648,"l":108,"s":0,"a":true},{"u":887,"l":27,"s":0,"a":false},{"u":359,"l":317,"s":0,"a":false},{"u":590,"l":147,"s":1,"a":true},{"u":778,"l":457,"s":0,"a":true},{"u":649,"l":515,"s":0,"a":true},{"u":821,"l":316,"s":1,"a":true},{"u":441,"l":115,"s":0,"a":false},{"u":613,"l":19,"s":1,"a":true},{"u":602,"l":320,"s":1,"a":false},{"u":874,"l":861,"s":1,"a":false},{"u":750,"l":406,"s":0,"a":true},{"u":493,"l":243,"s":1,"a":true},{"u":735,"l":422,"s":1,"a":false},{"u":386,"l":384,"s":0,"a":true},{"u":917,"l":493,"s":1,"a":true},{"u":672,"l":286,"s":1,"a":false},{"u":479,"l":333,"s":0,"a":false},{"u":962,"l":268,"s":1,"a":false},{"u":404,"l":197,"s":0,"a":false},{"u":569,"l":362,"s":1,"a":true},{"u":572,"l":139,"s":1,"a":true},{"u":894,"l":737,"s":0,"a":false},{"u":796,"l":473,"s":1,"a":true},{"u":384,"l":227,"s":0,"a":false},{"u":954,"l":375,"s":0,"a":false},{"u":626,"l":124,"s":0,"a":true},{"u":599,"l":48,"s":0,"a":true},{"u":840,"l":351,"s":1,"a":false},{"u":435,"l":275,"s":1,"a":false},{"u":818,"l":310,"s":1,"a":true},{"u":254,"l":47,"s":0,"a":true},{"u":735,"l":545,"s":0,"a":true},{"u":665,"l":592,"s":1,"a":false},{"u":618,"l":399,"s":0,"a":false},{"u":568,"l":530,"s":0,"a":true},{"u":656,"l":651,"s":0,"a":false},{"u":761,"l":337,"s":0,"a":false},{"u":601,"l":70,"s":0,"a":true},{"u":762,"l":18,"s":1,"a":true},{"u":624,"l":425,"s":1,"a":false},{"u":666,"l":158,"s":1,"a":true},{"u":727,"l":322,"s":1,"a":false},{"u":959,"l":115,"s":0,"a":false},{"u":319,"l":14,"s":0,"a":false},{"u":772,"l":746,"s":0,"a":true},{"u":678,"l":214,"s":1,"a":false},{"u":515,"l":246,"s":0,"a":false},{"u":534,"l":511,"s":1,"a":false},{"u":628,"l":132,"s":0,"a":false},{"u":971,"l":663,"s":1,"a":true},{"u":437,"l":127,"s":0,"a":false},{"u":720,"l":541,"s":0,"a":false},{"u":864,"l":429,"s":0,"a":false},{"u":913,"l":348,"s":0,"a":true},{"u":119,"l":86,"s":0,"a":false},{"u":991,"l":235,"s":1,"a":false},{"u":491,"l":314,"s":1,"a":false},{"u":860,"l":165,"s":0,"a":false},{"u":700,"l":666,"s":0,"a":false},{"u":973,"l":614,"s":0,"a":false},{"u":775,"l":542,"s":1,"a":false},{"u":788,"l":488,"s":0,"a":false},{"u":988,"l":92,"s":0,"a":false},{"u":668,"l":147,"s":0,"a":true},{"u":853,"l":552,"s":1,"a":true},{"u":509,"l":57,"s":0,"a":false},{"u":467,"l":191,"s":0,"a":true},{"u":685,"l":619,"s":1,"a":true},{"u":622,"l":181,"s":1,"a":false},{"u":956,"l":400,"s":0,"a":false},{"u":919,"l":270,"s":0,"a":true},{"u":322,"l":254,"s":1,"a":true},{"u":648,"l":635,"s":1,"a":false},{"u":781,"l":559,"s":1,"a":false},{"u":960,"l":881,"s":0,"a":true},{"u":311,"l":165,"s":0,"a":false},{"u":406,"l":7,"s":1,"a":false},{"u":399,"l":129,"s":0,"a":true},{"u":610,"l":189,"s":1,"a":true},{"u":844,"l":818,"s":0,"a":true},{"u":521,"l":76,"s":0,"a":false},{"u":299,"l":78,"s":0,"a":false},{"u":895,"l":617,"s":1,"a":true},{"u":530,"l":407,"s":1,"a":false},{"u":976,"l":588,"s":1,"a":false},{"u":422,"l":359,"s":1,"a":false},{"u":939,"l":253,"s":0,"a":true},{"u":830,"l":480,"s":0,"a":false},{"u":513,"l":46,"s":1,"a":true},{"u":924,"l":649,"s":1,"a":false},{"u":472,"l":373,"s":1,"a":true},{"u":783,"l":348,"s":1,"a":true},{"u":628,"l":147,"s":1,"a":false},{"u":984,"l":687,"s":0,"a":false},{"u":804,"l":521,"s":0,"a":false},{"u":911,"l":194,"s":1,"a":false},{"u":800,"l":146,"s":0,"a":true},{"u":606,"l":537,"s":0,"a":true},{"u":558,"l":46,"s":1,"a":true},{"u":965,"l":749,"s":0,"a":true},{"u":389,"l":284,"s":0,"a":false},{"u":136,"l":32,"s":1,"a":false},{"u":692,"l":513,"s":1,"a":true},{"u":944,"l":194,"s":0,"a":true},{"u":700,"l":229,"s":0,"a":false},{"u":531,"l":285,"s":0,"a":true},{"u":555,"l":7,"s":0,"a":true},{"u":565,"l":283,"s":1,"a":false},{"u":455,"l":193,"s":1,"a":true},{"u":537,"l":491,"s":1,"a":true},{"u":997,"l":688,"s":0,"a":false},{"u":854,"l":320,"s":1,"a":true},{"u":400,"l":140,"s":0,"a":true},{"u":776,"l":127,"s":1,"a":false},{"u":899,"l":764,"s":0,"a":false},{"u":851,"l":372,"s":0,"a":true},{"u":527,"l":227,"s":0,"a":true},{"u":320,"l":158,"s":0,"a":false},{"u":938,"l":194,"s":0,"a":true},{"u":587,"l":410,"s":0,"a":false},{"u":573,"l":79,"s":1,"a":true},{"u":366,"l":26,"s":0,"a":false},{"u":723,"l":118,"s":1,"a":true},{"u":629,"l":343,"s":1,"a":false},{"u":438,"l":159,"s":0,"a":false},{"u":489,"l":337,"s":1,"a":true},{"u":990,"l":360,"s":1,"a":false},{"u":452,"l":419,"s":0,"a":false},{"u":526,"l":5,"s":1,"a":true},{"u":848,"l":429,"s":1,"a":true},{"u":659,"l":100,"s":0,"a":true},{"u":416,"l":387,"s":1,"a":false},{"u":993,"l":714,"s":1,"a":true},{"u":399,"l":173,"s":0,"a":true},{"u":605,"l":370,"s":1,"a":true},{"u":648,"l":581,"s":1,"a":false},{"u":633,"l":481,"s":0,"a":true},{"u":848,"l":733,"s":0,"a":false},{"u":903,"l":700,"s":0,"a":true},{"u":858,"l":831,"s":0,"a":false},{"u":657,"l":199,"s":0,"a":false},{"u":931,"l":260,"s":1,"a":true},{"u":971,"l":447,"s":0,"a":true},{"u":774,"l":203,"s":0,"a":true},{"u":928,"l":703,"s":0,"a":false},{"u":855,"l":571,"s":0,"a":false},{"u":688,"l":259,"s":1,"a":false},{"u":533,"l":270,"s":0,"a":false},{"u":710,"l":643,"s":0,"a":true},{"u":920,"l":883,"s":1,"a":true},{"u":784,"l":318,"s":1,"a":false},{"u":664,"l":172,"s":0,"a":false},{"u":907,"l":538,"s":0,"a":true},{"u":945,"l":554,"s":1,"a":false},{"u":955,"l":798,"s":0,"a":false},{"u":608,"l":126,"s":0,"a":true},{"u":644,"l":169,"s":0,"a":false},{"u":957,"l":649,"s":1,"a":true},{"u":900,"l":177,"s":1,"a":false},{"u":568,"l":153,"s":0,"a":true},{"u":667,"l":133,"s":1,"a":true},{"u":919,"l":715,"s":0,"a":true},{"u":700,"l":69,"s":0,"a":true},{"u":605,"l":484,"s":1,"a":false},{"u":818,"l":293,"s":0,"a":true},{"u":580,"l":503,"s":1,"a":true},{"u":919,"l":899,"s":1,"a":false},{"u":657,"l":563,"s":0,"a":true},{"u":230,"l":65,"s":0,"a":true},{"u":394,"l":282,"s":1,"a":false},{"u":971,"l":11,"s":0,"a":true},{"u":609,"l":80,"s":1,"a":false},{"u":854,"l":23,"s":1,"a":false},{"u":865,"l":579,"s":1,"a":false},{"u":461,"l":413,"s":1,"a":true},{"u":708,"l":400,"s":0,"a":false},{"u":499,"l":2,"s":1,"a":false},{"u":926,"l":576,"s":1,"a":true},{"u":721,"l":75,"s":0,"a":false},{"u":981,"l":263,"s":0,"a":true},{"u":950,"l":581,"s":1,"a":true},{"u":618,"l":140,"s":1,"a":true},{"u":736,"l":477,"s":0,"a":true},{"u":105,"l":84,"s":1,"a":false},{"u":900,"l":863,"s":1,"a":false},{"u":854,"l":366,"s":0,"a":true},{"u":728,"l":526,"s":1,"a":true},{"u":939,"l":96,"s":1,"a":true},{"u":845,"l":581,"s":0,"a":true},{"u":901,"l":772,"s":0,"a":true},{"u":529,"l":129,"s":0,"a":true},{"u":841,"l":246,"s":1,"a":false},{"u":111,"l":21,"s":0,"a":true},{"u":466,"l":222,"s":0,"a":true},{"u":614,"l":149,"s":0,"a":true},{"u":660,"l":275,"s":1,"a":false},{"u":546,"l":202,"s":1,"a":false},{"u":892,"l":418,"s":1,"a":false},{"u":608,"l":10,"s":1,"a":false},{"u":581,"l":481,"s":1,"a":false},{"u":661,"l":44,"s":1,"a":true},{"u":600,"l":580,"s":1,"a":true},{"u":765,"l":63,"s":1,"a":false},{"u":865,"l":483,"s":1,"a":false},{"u":908,"l":763,"s":1,"a":false},{"u":514,"l":199,"s":0,"a":false},{"u":825,"l":792,"s":1,"a":false},{"u":717,"l":212,"s":1,"a":false},{"u":625,"l":363,"s":0,"a":false},{"u":468,"l":220,"s":0,"a":true},{"u":907,"l":604,"s":0,"a":true},{"u":530,"l":139,"s":1,"a":false},{"u":888,"l":527,"s":0,"a":false},{"u":234,"l":74,"s":0,"a":true},{"u":509,"l":42,"s":0,"a":false},{"u":538,"l":103,"s":0,"a":false},{"u":666,"l":54,"s":1,"a":true},{"u":559,"l":406,"s":1,"a":false},{"u":932,"l":163,"s":0,"a":false},{"u":195,"l":67,"s":0,"a":true},{"u":954,"l":691,"s":0,"a":true},{"u":694,"l":308,"s":1,"a":false},{"u":750,"l":240,"s":0,"a":false},{"u":916,"l":145,"s":0,"a":true},{"u":430,"l":160,"s":1,"a":true},{"u":970,"l":462,"s":1,"a":false},{"u":916,"l":133,"s":0,"a":false},{"u":998,"l":892,"s":1,"a":false},{"u":902,"l":129,"s":1,"a":true},{"u":154,"l":55,"s":1,"a":true},{"u":516,"l":349,"s":1,"a":false},{"u":983,"l":971,"s":0,"a":false},{"u":970,"l":159,"s":1,"a":true},{"u":698,"l":368,"s":1,"a":true},{"u":707,"l":628,"s":0,"a":false},{"u":859,"l":643,"s":1,"a":true},{"u":742,"l":137,"s":1,"a":false},{"u":896,"l":343,"s":0,"a":true},{"u":389,"l":73,"s":1,"a":false},{"u":748,"l":204,"s":0,"a":true},{"u":533,"l":490,"s":0,"a":false},{"u":933,"l":521,"s":0,"a":false},{"u":499,"l":357,"s":1,"a":false},{"u":829,"l":327,"s":0,"a":true},{"u":820,"l":598,"s":1,"a":false},{"u":891,"l":701,"s":0,"a":false},{"u":869,"l":738,"s":1,"a":false},{"u":493,"l":427,"s":0,"a":false},{"u":889,"l":160,"s":0,"a":true},{"u":480,"l":107,"s":0,"a":true},{"u":520,"l":121,"s":1,"a":false},{"u":754,"l":718,"s":1,"a":false},{"u":111,"l":98,"s":1,"a":true},{"u":325,"l":265,"s":0,"a":true},{"u":696,"l":561,"s":0,"a":false},{"u":976,"l":808,"s":1,"a":true},{"u":849,"l":706,"s":0,"a":false},{"u":862,"l":54,"s":0,"a":true},{"u":682,"l":169,"s":0,"a":false},{"u":777,"l":290,"s":1,"a":true},{"u":691,"l":614,"s":1,"a":false},{"u":999,"l":995,"s":1,"a":false},{"u":952,"l":744,"s":1,"a":false},{"u":989,"l":299,"s":0,"a":false},{"u":864,"l":196,"s":0,"a":true},{"u":463,"l":411,"s":0,"a":false},{"u":740,"l":93,"s":1,"a":false},{"u":817,"l":41,"s":1,"a":false},{"u":506,"l":384,"s":1,"a":true},{"u":854,"l":574,"s":0,"a":true},{"u":585,"l":560,"s":1,"a":false},{"u":350,"l":92,"s":1,"a":true},{"u":320,"l":320,"s":0,"a":false},{"u":712,"l":664,"s":0,"a":true},{"u":639,"l":494,"s":1,"a":true},{"u":964,"l":511,"s":0,"a":false},{"u":604,"l":109,"s":0,"a":true},{"u":566,"l":102,"s":1,"a":true},{"u":767,"l":155,"s":0,"a":true},{"u":436,"l":213,"s":1,"a":true},{"u":115,"l":101,"s":1,"a":true},{"u":328,"l":213,"s":0,"a":true},{"u":643,"l":126,"s":0,"a":false},{"u":782,"l":745,"s":1,"a":false},{"u":641,"l":47,"s":0,"a":false},{"u":810,"l":37,"s":1,"a":true},{"u":410,"l":117,"s":1,"a":true},{"u":775,"l":388,"s":1,"a":false},{"u":977,"l":34,"s":1,"a":true},{"u":746,"l":493,"s":0,"a":false},{"u":997,"l":565,"s":0,"a":false},{"u":656,"l":91,"s":0,"a":true},{"u":500,"l":126,"s":0,"a":false},{"u":830,"l":799,"s":0,"a":false},{"u":617,"l":563,"s":0,"a":false},{"u":707,"l":617,"s":1,"a":false},{"u":916,"l":62,"s":0,"a":true},{"u":788,"l":130,"s":1,"a":true},{"u":637,"l":612,"s":1,"a":false},{"u":815,"l":767,"s":1,"a":true},{"u":867,"l":278,"s":0,"a":true},{"u":660,"l":241,"s":1,"a":true},{"u":807,"l":528,"s":0,"a":false},{"u":778,"l":687,"s":1,"a":true},{"u":679,"l":226,"s":0,"a":true},{"u":769,"l":212,"s":1,"a":true},{"u":675,"l":475,"s":0,"a":true},{"u":794,"l":87,"s":1,"a":true},{"u":999,"l":952,"s":1,"a":false},{"u":331,"l":289,"s":1,"a":true},{"u":506,"l":12,"s":1,"a":false},{"u":782,"l":128,"s":0,"a":true},{"u":540,"l":400,"s":1,"a":false},{"u":980,"l":943,"s":0,"a":true},{"u":375,"l":227,"s":1,"a":false},{"u":105,"l":88,"s":1,"a":false},{"u":981,"l":449,"s":1,"a":true},{"u":895,"l":799,"s":0,"a":true},{"u":615,"l":99,"s":1,"a":false},{"u":841,"l":707,"s":0,"a":false},{"u":518,"l":26,"s":1,"a":false},{"u":228,"l":160,"s":1,"a":true},{"u":752,"l":58,"s":0,"a":false},{"u":964,"l":14,"s":0,"a":true},{"u":496,"l":216,"s":1,"a":false},{"u":138,"l":41,"s":1,"a":true},{"u":895,"l":409,"s":1,"a":true},{"u":995,"l":334,"s":0,"a":false},{"u":250,"l":132,"s":0,"a":true},{"u":574,"l":385,"s":0,"a":false},{"u":534,"l":286,"s":0,"a":true},{"u":764,"l":183,"s":1,"a":false},{"u":634,"l":552,"s":1,"a":true},{"u":998,"l":621,"s":0,"a":false},{"u":662,"l":333,"s":0,"a":true},{"u":270,"l":174,"s":0,"a":true},{"u":664,"l":42,"s":1,"a":false},{"u":995,"l":38,"s":1,"a":false},{"u":917,"l":204,"s":1,"a":true},{"u":569,"l":309,"s":0,"a":true},{"u":719,"l":669,"s":0,"a":false},{"u":673,"l":239,"s":0,"a":false},{"u":980,"l":339,"s":1,"a":false},{"u":851,"l":729,"s":1,"a":false},{"u":953,"l":844,"s":0,"a":false},{"u":950,"l":224,"s":1,"a":true},{"u":420,"l":18,"s":1,"a":true},{"u":839,"l":670,"s":0,"a":false},{"u":854,"l":256,"s":1,"a":false},{"u":745,"l":89,"s":1,"a":false},{"u":834,"l":446,"s":1,"a":true},{"u":644,"l":59,"s":0,"a":true},{"u":496,"l":255,"s":0,"a":false},{"u":396,"l":325,"s":0,"a":false},{"u":112,"l":7,"s":1,"a":false},{"u":795,"l":497,"s":1,"a":false},{"u":670,"l":653,"s":1,"a":true},{"u":598,"l":52,"s":0,"a":false},{"u":793,"l":244,"s":0,"a":false},{"u":975,"l":829,"s":0,"a":true},{"u":575,"l":50,"s":1,"a":true},{"u":960,"l":99,"s":1,"a":true},{"u":261,"l":140,"s":0,"a":false},{"u":693,"l":115,"s":0,"a":true},{"u":266,"l":3,"s":0,"a":false},{"u":573,"l":256,"s":1,"a":true},{"u":310,"l":247,"s":0,"a":false},{"u":550,"l":277,"s":1,"a":false},{"u":745,"l":415,"s":1,"a":true},{"u":947,"l":563,"s":1,"a":false},{"u":189,"l":68,"s":0,"a":false},{"u":857,"l":680,"s":1,"a":false},{"u":851,"l":636,"s":0,"a":false},{"u":979,"l":879,"s":1,"a":true},{"u":463,"l":19,"s":0,"a":true},{"u":567,"l":361,"s":1,"a":true},{"u":711,"l":342,"s":0,"a":true},{"u":677,"l":366,"s":0,"a":true},{"u":699,"l":23,"s":1,"a":false},{"u":304,"l":59,"s":0,"a":false},{"u":703,"l":15,"s":1,"a":false},{"u":974,"l":669,"s":0,"a":false},{"u":428,"l":289,"s":0,"a":false},{"u":505,"l":46,"s":1,"a":true},{"u":646,"l":128,"s":0,"a":false},{"u":720,"l":220,"s":1,"a":true},{"u":731,"l":319,"s":0,"a":false},{"u":698,"l":657,"s":0,"a":true},{"u":501,"l":110,"s":1,"a":false},{"u":774,"l":468,"s":0,"a":false},{"u":390,"l":345,"s":0,"a":false},{"u":364,"l":189,"s":1,"a":true},{"u":560,"l":546,"s":1,"a":false},{"u":675,"l":442,"s":0,"a":false},{"u":409,"l":284,"s":0,"a":true},{"u":709,"l":435,"s":0,"a":false},{"u":610,"l":383,"s":1,"a":false},{"u":908,"l":399,"s":1,"a":false},{"u":873,"l":137,"s":1,"a":true},{"u":891,"l":115,"s":1,"a":false},{"u":524,"l":309,"s":0,"a":true},{"u":499,"l":322,"s":0,"a":false},{"u":530,"l":124,"s":1,"a":false},{"u":919,"l":740,"s":0,"a":true},{"u":687,"l":586,"s":0,"a":true},{"u":446,"l":431,"s":0,"a":false},{"u":868,"l":164,"s":1,"a":false},{"u":894,"l":66,"s":1,"a":false},{"u":824,"l":659,"s":0,"a":false},{"u":994,"l":194,"s":1,"a":false},{"u":389,"l":250,"s":0,"a":true},{"u":711,"l":244,"s":0,"a":false},{"u":359,"l":225,"s":1,"a":true},{"u":343,"l":246,"s":0,"a":false},{"u":162,"l":115,"s":1,"a":true},{"u":522,"l":130,"s":0,"a":false},{"u":319,"l":231,"s":0,"a":true},{"u":870,"l":176,"s":1,"a":false},{"u":892,"l":589,"s":0,"a":false},{"u":901,"l":787,"s":1,"a":false},{"u":524,"l":361,"s":1,"a":false},{"u":297,"l":192,"s":0,"a":true},{"u":704,"l":676,"s":1,"a":true},{"u":479,"l":67,"s":0,"a":true},{"u":770,"l":110,"s":1,"a":false},{"u":784,"l":526,"s":0,"a":false},{"u":882,"l":858,"s":0,"a":true},{"u":796,"l":595,"s":1,"a":true},{"u":259,"l":87,"s":0,"a":false},{"u":709,"l":97,"s":1,"a":true},{"u":697,"l":163,"s":1,"a":true},{"u":693,"l":82,"s":1,"a":true},{"u":782,"l":75,"s":0,"a":false},{"u":562,"l":63,"s":0,"a":false},{"u":967,"l":567,"s":1,"a":false},{"u":877,"l":220,"s":1,"a":true},{"u":607,"l":78,"s":0,"a":false},{"u":642,"l":284,"s":1,"a":true},{"u":838,"l":163,"s":1,"a":false},{"u":403,"l":234,"s":0,"a":false},{"u":769,"l":378,"s":0,"a":true},{"u":708,"l":425,"s":1,"a":true},{"u":269,"l":101,"s":1,"a":false},{"u":445,"l":395,"s":1,"a":true},{"u":363,"l":14,"s":1,"a":false},{"u":627,"l":415,"s":0,"a":true},{"u":794,"l":486,"s":0,"a":false},{"u":907,"l":704,"s":0,"a":true},{"u":642,"l":605,"s":0,"a":true},{"u":400,"l":148,"s":0,"a":true},{"u":913,"l":662,"s":0,"a":true},{"u":48,"l":9,"s":1,"a":false},{"u":800,"l":68,"s":1,"a":false},{"u":619,"l":331,"s":1,"a":true},{"u":996,"l":873,"s":1,"a":false},{"u":730,"l":720,"s":1,"a":false},{"u":313,"l":32,"s":1,"a":true},{"u":812,"l":768,"s":1,"a":false},{"u":752,"l":327,"s":1,"a":true},{"u":682,"l":65,"s":1,"a":false},{"u":571,"l":403,"s":0,"a":false},{"u":913,"l":563,"s":1,"a":false},{"u":911,"l":634,"s":0,"a":false},{"u":938,"l":508,"s":1,"a":false},{"u":752,"l":251,"s":0,"a":true},{"u":678,"l":348,"s":0,"a":true},{"u":842,"l":69,"s":0,"a":true},{"u":549,"l":167,"s":1,"a":false},{"u":975,"l":644,"s":1,"a":false},{"u":838,"l":789,"s":0,"a":false},{"u":742,"l":56,"s":1,"a":false},{"u":660,"l":653,"s":0,"a":false},{"u":222,"l":205,"s":0,"a":false},{"u":893,"l":116,"s":1,"a":true},{"u":801,"l":628,"s":1,"a":true},{"u":987,"l":464,"s":0,"a":false},{"u":559,"l":544,"s":1,"a":true},{"u":124,"l":73,"s":0,"a":true},{"u":934,"l":99,"s":1,"a":false},{"u":417,"l":164,"s":1,"a":true},{"u":597,"l":334,"s":1,"a":false},{"u":458,"l":458,"s":0,"a":true},{"u":712,"l":413,"s":1,"a":false},{"u":478,"l":258,"s":0,"a":false},{"u":886,"l":337,"s":1,"a":false},{"u":464,"l":312,"s":1,"a":false},{"u":323,"l":173,"s":1,"a":true},{"u":982,"l":494,"s":0,"a":true},{"u":812,"l":623,"s":0,"a":false},{"u":476,"l":98,"s":0,"a":true},{"u":906,"l":872,"s":0,"a":false},{"u":639,"l":9,"s":1,"a":true},{"u":819,"l":335,"s":0,"a":false},{"u":940,"l":425,"s":1,"a":true},{"u":803,"l":769,"s":0,"a":false},{"u":850,"l":764,"s":0,"a":false},{"u":911,"l":477,"s":0,"a":true},{"u":701,"l":543,"s":1,"a":false},{"u":892,"l":49,"s":1,"a":false},{"u":949,"l":34,"s":1,"a":true},{"u":95,"l":70,"s":1,"a":true},{"u":693,"l":647,"s":0,"a":false},{"u":667,"l":189,"s":0,"a":true},{"u":127,"l":65,"s":0,"a":true},{"u":900,"l":168,"s":0,"a":true},{"u":555,"l":239,"s":1,"a":true},{"u":340,"l":150,"s":1,"a":true},{"u":870,"l":136,"s":0,"a":false},{"u":799,"l":643,"s":1,"a":true},{"u":280,"l":80,"s":0,"a":false},{"u":587,"l":555,"s":0,"a":false},{"u":866,"l":749,"s":0,"a":true},{"u":404,"l":105,"s":1,"a":true},{"u":754,"l":225,"s":0,"a":false},{"u":812,"l":612,"s":0,"a":false},{"u":422,"l":317,"s":1,"a":true},{"u":932,"l":110,"s":1,"a":true},{"u":150,"l":12,"s":1,"a":true},{"u":775,"l":553,"s":1,"a":false},{"u":899,"l":411,"s":0,"a":false},{"u":504,"l":66,"s":1,"a":false},{"u":356,"l":258,"s":0,"a":true},{"u":660,"l":424,"s":1,"a":true},{"u":87,"l":15,"s":0,"a":false},{"u":754,"l":290,"s":0,"a":true},{"u":401,"l":315,"s":0,"a":true},{"u":248,"l":135,"s":0,"a":true},{"u":778,"l":262,"s":0,"a":true},{"u":737,"l":274,"s":0,"a":false},{"u":945,"l":550,"s":0,"a":false},{"u":967,"l":745,"s":1,"a":true},{"u":545,"l":216,"s":1,"a":false},{"u":881,"l":873,"s":0,"a":true},{"u":128,"l":42,"s":0,"a":true},{"u":775,"l":102,"s":0,"a":true},{"u":910,"l":3,"s":1,"a":true},{"u":932,"l":147,"s":0,"a":true},{"u":743,"l":512,"s":1,"a":false},{"u":973,"l":353,"s":1,"a":true},{"u":712,"l":677,"s":0,"a":false},{"u":738,"l":180,"s":0,"a":true},{"u":577,"l":342,"s":0,"a":true},{"u":654,"l":553,"s":1,"a":true},{"u":890,"l":518,"s":0,"a":true},{"u":452,"l":328,"s":1,"a":false},{"u":901,"l":511,"s":0,"a":true},{"u":890,"l":138,"s":1,"a":false},{"u":116,"l":53,"s":1,"a":false},{"u":924,"l":277,"s":0,"a":false},{"u":700,"l":642,"s":0,"a":true},{"u":994,"l":671,"s":0,"a":false},{"u":829,"l":200,"s":1,"a":false},{"u":796,"l":405,"s":1,"a":false},{"u":396,"l":109,"s":0,"a":true},{"u":693,"l":577,"s":0,"a":true},{"u":354,"l":217,"s":0,"a":true},{"u":889,"l":120,"s":0,"a":true},{"u":708,"l":407,"s":1,"a":true},{"u":904,"l":358,"s":1,"a":true},{"u":378,"l":119,"s":1,"a":false},{"u":770,"l":649,"s":0,"a":false},{"u":895,"l":761,"s":0,"a":true},{"u":762,"l":264,"s":0,"a":true},{"u":183,"l":17,"s":0,"a":true},{"u":392,"l":191,"s":1,"a":false},{"u":910,"l":829,"s":0,"a":false},{"u":688,"l":61,"s":1,"a":false},{"u":906,"l":573,"s":0,"a":true},{"u":342,"l":318,"s":1,"a":false},{"u":880,"l":573,"s":0,"a":false},{"u":775,"l":504,"s":0,"a":false},{"u":992,"l":373,"s":0,"a":false},{"u":924,"l":268,"s":0,"a":true},{"u":584,"l":95,"s":1,"a":true},{"u":731,"l":199,"s":1,"a":true},{"u":743,"l":301,"s":1,"a":false},{"u":819,"l":336,"s":1,"a":true},{"u":97,"l":11,"s":1,"a":false},{"u":793,"l":569,"s":0,"a":false},{"u":77,"l":60,"s":1,"a":false},{"u":935,"l":640,"s":0,"a":true},{"u":158,"l":104,"s":0,"a":true},{"u":905,"l":180,"s":1,"a":true},{"u":925,"l":670,"s":1,"a":true},{"u":476,"l":121,"s":1,"a":false},{"u":738,"l":192,"s":1,"a":true},{"u":824,"l":672,"s":1,"a":false},{"u":246,"l":84,"s":0,"a":true},{"u":981,"l":384,"s":0,"a":true},{"u":850,"l":576,"s":0,"a":false},{"u":471,"l":25,"s":1,"a":true},{"u":618,"l":517,"s":0,"a":true},{"u":947,"l":324,"s":0,"a":false},{"u":304,"l":112,"s":0,"a":false},{"u":667,"l":456,"s":1,"a":true},{"u":941,"l":126,"s":1,"a":false},{"u":430,"l":262,"s":0,"a":false},{"u":981,"l":589,"s":1,"a":false},{"u":940,"l":393,"s":0,"a":true},{"u":745,"l":587,"s":0,"a":false},{"u":859,"l":794,"s":1,"a":false},{"u":881,"l":478,"s":1,"a":true},{"u":944,"l":390,"s":1,"a":false},{"u":819,"l":737,"s":0,"a":false},{"u":38,"l":36,"s":0,"a":true},{"u":638,"l":181,"s":0,"a":false},{"u":944,"l":357,"s":1,"a":true},{"u":506,"l":67,"s":0,"a":true},{"u":672,"l":63,"s":0,"a":true},{"u":842,"l":668,"s":0,"a":false},{"u":950,"l":945,"s":0,"a":false},{"u":670,"l":256,"s":1,"a":false},{"u":995,"l":224,"s":0,"a":false},{"u":908,"l":842,"s":0,"a":true},{"u":224,"l":218,"s":0,"a":false},{"u":525,"l":114,"s":1,"a":true},{"u":935,"l":431,"s":0,"a":false},{"u":647,"l":609,"s":0,"a":true},{"u":930,"l":159,"s":0,"a":true},{"u":644,"l":354,"s":0,"a":false},{"u":703,"l":442,"s":1,"a":true},{"u":794,"l":728,"s":0,"a":true},{"u":942,"l":136,"s":1,"a":false},{"u":962,"l":354,"s":0,"a":true},{"u":949,"l":782,"s":1,"a":false},{"u":814,"l":742,"s":1,"a":false},{"u":518,"l":26,"s":0,"a":true},{"u":330,"l":322,"s":0,"a":true},{"u":346,"l":81,"s":1,"a":true},{"u":839,"l":773,"s":0,"a":true},{"u":796,"l":154,"s":1,"a":true},{"u":793,"l":621,"s":0,"a":true},{"u":914,"l":110,"s":1,"a":true},{"u":884,"l":222,"s":0,"a":false},{"u":955,"l":268,"s":1,"a":true},{"u":828,"l":62,"s":1,"a":true},{"u":950,"l":269,"s":1,"a":false},{"u":554,"l":64,"s":1,"a":true},{"u":879,"l":466,"s":1,"a":true},{"u":218,"l":86,"s":0,"a":false},{"u":631,"l":353,"s":1,"a":false},{"u":631,"l":444,"s":1,"a":true},{"u":780,"l":202,"s":0,"a":false},{"u":675,"l":14,"s":0,"a":false},{"u":346,"l":1,"s":1,"a":false},{"u":812,"l":299,"s":0,"a":true},{"u":900,"l":301,"s":1,"a":true},{"u":706,"l":589,"s":0,"a":false},{"u":694,"l":480,"s":0,"a":true},{"u":763,"l":705,"s":0,"a":true},{"u":744,"l":378,"s":0,"a":true},{"u":846,"l":590,"s":0,"a":false},{"u":791,"l":124,"s":0,"a":true},{"u":313,"l":16,"s":1,"a":true},{"u":914,"l":351,"s":1,"a":false},{"u":900,"l":334,"s":0,"a":true},{"u":203,"l":112,"s":0,"a":false},{"u":608,"l":353,"s":1,"a":false},{"u":875,"l":154,"s":1,"a":false},{"u":284,"l":130,"s":1,"a":true},{"u":760,"l":219,"s":0,"a":false},{"u":485,"l":53,"s":1,"a":true},{"u":468,"l":42,"s":1,"a":true},{"u":501,"l":223,"s":1,"a":true},{"u":656,"l":58,"s":0,"a":true},{"u":880,"l":340,"s":0,"a":false},{"u":987,"l":780,"s":0,"a":false},{"u":411,"l":221,"s":1,"a":true},{"u":631,"l":548,"s":0,"a":true},{"u":535,"l":55,"s":0,"a":false},{"u":568,"l":120,"s":0,"a":false},{"u":160,"l":21,"s":1,"a":false},{"u":547,"l":30,"s":1,"a":false},{"u":246,"l":152,"s":1,"a":true},{"u":657,"l":337,"s":0,"a":false},{"u":487,"l":417,"s":1,"a":false},{"u":709,"l":346,"s":0,"a":false},{"u":807,"l":138,"s":0,"a":false},{"u":732,"l":323,"s":0,"a":true},{"u":870,"l":92,"s":1,"a":false},{"u":747,"l":426,"s":1,"a":false},{"u":495,"l":67,"s":1,"a":false},{"u":789,"l":521,"s":1,"a":false},{"u":844,"l":360,"s":0,"a":false},{"u":910,"l":797,"s":1,"a":true},{"u":959,"l":289,"s":0,"a":false},{"u":585,"l":98,"s":1,"a":true},{"u":891,"l":289,"s":1,"a":true},{"u":915,"l":716,"s":0,"a":false},{"u":398,"l":341,"s":0,"a":true},{"u":939,"l":557,"s":1,"a":false},{"u":792,"l":386,"s":1,"a":false},{"u":913,"l":245,"s":0,"a":false},{"u":221,"l":10,"s":0,"a":true},{"u":925,"l":49,"s":1,"a":false},{"u":891,"l":149,"s":1,"a":false},{"u":545,"l":497,"s":0,"a":false},{"u":415,"l":68,"s":1,"a":false},{"u":954,"l":742,"s":0,"a":true},{"u":884,"l":78,"s":0,"a":false},{"u":352,"l":323,"s":0,"a":true},{"u":988,"l":277,"s":0,"a":true},{"u":992,"l":190,"s":1,"a":true},{"u":473,"l":443,"s":0,"a":true},{"u":437,"l":200,"s":0,"a":true},{"u":938,"l":200,"s":1,"a":false},{"u":938,"l":154,"s":0,"a":true},{"u":452,"l":372,"s":0,"a":false},{"u":701,"l":529,"s":0,"a":true},{"u":636,"l":279,"s":1,"a":false},{"u":407,"l":159,"s":1,"a":false},{"u":652,"l":498,"s":0,"a":false},{"u":687,"l":83,"s":0,"a":true},{"u":772,"l":424,"s":0,"a":true},{"u":518,"l":344,"s":1,"a":false},{"u":237,"l":30,"s":1,"a":false},{"u":921,"l":599,"s":1,"a":true},{"u":387,"l":352,"s":1,"a":false},{"u":468,"l":39,"s":1,"a":false},{"u":731,"l":133,"s":0,"a":false},{"u":338,"l":151,"s":0,"a":true},{"u":716,"l":224,"s":0,"a":false},{"u":616,"l":585,"s":0,"a":true},{"u":405,"l":186,"s":0,"a":false},{"u":180,"l":67,"s":0,"a":false},{"u":396,"l":158,"s":0,"a":false},{"u":814,"l":24,"s":1,"a":true},{"u":986,"l":469,"s":1,"a":true},{"u":808,"l":39,"s":1,"a":false},{"u":867,"l":824,"s":1,"a":true},{"u":807,"l":320,"s":0,"a":true},{"u":839,"l":146,"s":0,"a":false},{"u":245,"l":60,"s":1,"a":false},{"u":964,"l":288,"s":0,"a":false},{"u":756,"l":303,"s":1,"a":false},{"u":866,"l":226,"s":1,"a":false},{"u":627,"l":310,"s":1,"a":true},{"u":900,"l":16,"s":0,"a":false},{"u":794,"l":354,"s":0,"a":true},{"u":983,"l":277,"s":1,"a":true},{"u":976,"l":493,"s":1,"a":false},{"u":789,"l":652,"s":1,"a":true},{"u":478,"l":163,"s":1,"a":true},{"u":903,"l":814,"s":0,"a":true},{"u":372,"l":188,"s":1,"a":true},{"u":831,"l":222,"s":0,"a":false},{"u":991,"l":697,"s":0,"a":false},{"u":909,"l":628,"s":0,"a":false},{"u":426,"l":287,"s":0,"a":true},{"u":955,"l":255,"s":0,"a":false},{"u":657,"l":445,"s":0,"a":false},{"u":850,"l":453,"s":1,"a":false},{"u":562,"l":371,"s":1,"a":false},{"u":863,"l":315,"s":0,"a":false},{"u":778,"l":68,"s":0,"a":true},{"u":540,"l":380,"s":1,"a":false},{"u":329,"l":86,"s":1,"a":false},{"u":946,"l":653,"s":0,"a":false},{"u":626,"l":193,"s":1,"a":false},{"u":948,"l":905,"s":1,"a":false},{"u":784,"l":688,"s":1,"a":false},{"u":690,"l":58,"s":0,"a":true},{"u":896,"l":620,"s":0,"a":false},{"u":968,"l":98,"s":1,"a":true},{"u":597,"l":485,"s":0,"a":true},{"u":630,"l":477,"s":0,"a":false},{"u":577,"l":301,"s":1,"a":true},{"u":378,"l":358,"s":0,"a":false},{"u":357,"l":316,"s":1,"a":false},{"u":323,"l":85,"s":1,"a":true},{"u":235,"l":11,"s":1,"a":false},{"u":447,"l":161,"s":0,"a":true},{"u":158,"l":109,"s":0,"a":false},{"u":357,"l":311,"s":1,"a":false},{"u":411,"l":350,"s":1,"a":false},{"u":612,"l":539,"s":0,"a":false},{"u":591,"l":414,"s":1,"a":false},{"u":808,"l":702,"s":0,"a":false},{"u":924,"l":268,"s":0,"a":true},{"u":309,"l":158,"s":0,"a":true},{"u":708,"l":391,"s":1,"a":false},{"u":427,"l":194,"s":1,"a":false},{"u":787,"l":705,"s":1,"a":false},{"u":999,"l":75,"s":1,"a":false},{"u":885,"l":709,"s":0,"a":false},{"u":840,"l":224,"s":0,"a":true},{"u":550,"l":87,"s":0,"a":true},{"u":862,"l":824,"s":0,"a":false},{"u":377,"l":250,"s":0,"a":false},{"u":730,"l":328,"s":0,"a":true},{"u":923,"l":769,"s":1,"a":true},{"u":838,"l":137,"s":1,"a":false},{"u":663,"l":618,"s":0,"a":false},{"u":95,"l":1,"s":0,"a":false},{"u":679,"l":282,"s":0,"a":true},{"u":994,"l":775,"s":1,"a":false},{"u":411,"l":118,"s":0,"a":false},{"u":676,"l":81,"s":0,"a":false},{"u":965,"l":60,"s":1,"a":true},{"u":948,"l":47,"s":1,"a":false},{"u":749,"l":608,"s":1,"a":false},{"u":502,"l":242,"s":1,"a":true},{"u":858,"l":641,"s":1,"a":true},{"u":796,"l":222,"s":0,"a":true},{"u":790,"l":493,"s":0,"a":false},{"u":357,"l":190,"s":1,"a":false},{"u":959,"l":222,"s":0,"a":false},{"u":601,"l":288,"s":0,"a":true},{"u":957,"l":396,"s":0,"a":true},{"u":727,"l":64,"s":1,"a":true},{"u":747,"l":243,"s":1,"a":false},{"u":256,"l":69,"s":1,"a":false},{"u":730,"l":543,"s":1,"a":false},{"u":698,"l":664,"s":1,"a":false},{"u":951,"l":668,"s":1,"a":true},{"u":588,"l":171,"s":1,"a":false},{"u":573,"l":131,"s":0,"a":false},{"u":691,"l":510,"s":0,"a":true},{"u":906,"l":678,"s":0,"a":false},{"u":642,"l":256,"s":0,"a":false},{"u":890,"l":388,"s":1,"a":false},{"u":955,"l":869,"s":1,"a":true},{"u":155,"l":10,"s":0,"a":false},{"u":927,"l":495,"s":0,"a":true},{"u":415,"l":351,"s":0,"a":false},{"u":884,"l":380,"s":0,"a":false},{"u":569,"l":511,"s":0,"a":false},{"u":348,"l":73,"s":0,"a":true},{"u":822,"l":681,"s":1,"a":false},{"u":641,"l":108,"s":0,"a":false},{"u":554,"l":467,"s":1,"a":true},{"u":713,"l":613,"s":0,"a":false},{"u":956,"l":435,"s":1,"a":false},{"u":453,"l":128,"s":1,"a":true},{"u":417,"l":411,"s":0,"a":true},{"u":875,"l":297,"s":1,"a":false},{"u":723,"l":626,"s":0,"a":true},{"u":486,"l":372,"s":1,"a":true},{"u":728,"l":578,"s":1,"a":true},{"u":984,"l":295,"s":0,"a":false},{"u":368,"l":356,"s":1,"a":true},{"u":692,"l":280,"s":1,"a":true},{"u":817,"l":564,"s":1,"a":true},{"u":815,"l":604,"s":1,"a":true},{"u":320,"l":310,"s":0,"a":true},{"u":627,"l":379,"s":1,"a":true},{"u":874,"l":612,"s":0,"a":true},{"u":767,"l":587,"s":1,"a":true},{"u":441,"l":230,"s":1,"a":true},{"u":410,"l":230,"s":1,"a":false},{"u":768,"l":644,"s":1,"a":true},{"u":321,"l":285,"s":1,"a":false},{"u":723,"l":68,"s":1,"a":true},{"u":723,"l":115,"s":0,"a":false},{"u":511,"l":393,"s":1,"a":false},{"u":101,"l":44,"s":0,"a":false},{"u":371,"l":98,"s":1,"a":false},{"u":918,"l":661,"s":0,"a":false},{"u":982,"l":536,"s":1,"a":true},{"u":505,"l":293,"s":1,"a":false},{"u":911,"l":715,"s":0,"a":true},{"u":942,"l":531,"s":0,"a":false},{"u":709,"l":90,"s":0,"a":false},{"u":968,"l":254,"s":1,"a":true},{"u":929,"l":696,"s":0,"a":false},{"u":691,"l":575,"s":0,"a":true},{"u":342,"l":176,"s":1,"a":false},{"u":518,"l":313,"s":0,"a":false},{"u":419,"l":205,"s":0,"a":false},{"u":722,"l":643,"s":0,"a":false},{"u":224,"l":221,"s":1,"a":true},{"u":882,"l":529,"s":0,"a":true},{"u":936,"l":628,"s":0,"a":true},{"u":779,"l":203,"s":1,"a":false},{"u":620,"l":541,"s":0,"a":false},{"u":208,"l":139,"s":1,"a":true},{"u":641,"l":477,"s":1,"a":true},{"u":633,"l":383,"s":1,"a":false},{"u":383,"l":250,"s":0,"a":true},{"u":597,"l":551,"s":0,"a":false},{"u":639,"l":583,"s":0,"a":true},{"u":998,"l":862,"s":0,"a":false},{"u":675,"l":433,"s":1,"a":true},{"u":525,"l":350,"s":1,"a":false},{"u":980,"l":935,"s":0,"a":true},{"u":929,"l":574,"s":0,"a":false},{"u":442,"l":441,"s":1,"a":true},{"u":175,"l":1,"s":0,"a":true},{"u":557,"l":4,"s":1,"a":true},{"u":107,"l":81,"s":0,"a":false},{"u":894,"l":61,"s":0,"a":true},{"u":662,"l":523,"s":1,"a":true},{"u":971,"l":634,"s":1,"a":false},{"u":706,"l":525,"s":1,"a":true},{"u":989,"l":481,"s":1,"a":true},{"u":443,"l":151,"s":0,"a":true},{"u":923,"l":526,"s":1,"a":true},{"u":645,"l":430,"s":1,"a":true},{"u":889,"l":404,"s":0,"a":false},{"u":622,"l":293,"s":1,"a":true},{"u":798,"l":494,"s":0,"a":false},{"u":381,"l":156,"s":0,"a":false},{"u":818,"l":697,"s":0,"a":false},{"u":646,"l":481,"s":0,"a":false},{"u":900,"l":533,"s":1,"a":false},{"u":133,"l":123,"s":0,"a":true},{"u":949,"l":278,"s":1,"a":true},{"u":860,"l":756,"s":0,"a":false},{"u":350,"l":20,"s":0,"a":true},{"u":767,"l":42,"s":1,"a":false},{"u":872,"l":648,"s":1,"a":true},{"u":902,"l":110,"s":1,"a":false},{"u":583,"l":296,"s":0,"a":true},{"u":275,"l":157,"s":1,"a":true},{"u":842,"l":204,"s":1,"a":false},{"u":679,"l":38,"s":0,"a":false},{"u":946,"l":755,"s":0,"a":true},{"u":544,"l":235,"s":0,"a":false},{"u":321,"l":178,"s":1,"a":true},{"u":689,"l":387,"s":0,"a":true},{"u":888,"l":781,"s":1,"a":false},{"u":173,"l":1,"s":1,"a":false},{"u":459,"l":288,"s":1,"a":false},{"u":606,"l":552,"s":1,"a":false},{"u":446,"l":61,"s":1,"a":false},{"u":848,"l":400,"s":1,"a":false},{"u":762,"l":563,"s":1,"a":true},{"u":883,"l":749,"s":1,"a":false},{"u":854,"l":482,"s":1,"a":false},{"u":561,"l":504,"s":1,"a":true},{"u":889,"l":104,"s":0,"a":true},{"u":455,"l":124,"s":0,"a":false},{"u":850,"l":225,"s":0,"a":true},{"u":496,"l":313,"s":1,"a":true},{"u":658,"l":531,"s":0,"a":true},{"u":940,"l":426,"s":1,"a":false},{"u":924,"l":662,"s":1,"a":false},{"u":498,"l":309,"s":0,"a":true},{"u":293,"l":51,"s":1,"a":false},{"u":883,"l":411,"s":1,"a":true},{"u":876,"l":802,"s":1,"a":true},{"u":594,"l":267,"s":1,"a":false},{"u":497,"l":27,"s":0,"a":true},{"u":740,"l":378,"s":1,"a":false},{"u":899,"l":585,"s":0,"a":false},{"u":777,"l":457,"s":1,"a":true},{"u":922,"l":590,"s":1,"a":false},{"u":146,"l":105,"s":0,"a":true},{"u":871,"l":383,"s":0,"a":false},{"u":862,"l":143,"s":0,"a":true},{"u":331,"l":137,"s":1,"a":true},{"u":808,"l":98,"s":0,"a":false},{"u":909,"l":410,"s":1,"a":false},{"u":908,"l":658,"s":0,"a":false},{"u":543,"l":252,"s":0,"a":true},{"u":338,"l":185,"s":0,"a":false},{"u":500,"l":489,"s":1,"a":false},{"u":482,"l":313,"s":0,"a":true},{"u":66,"l":10,"s":1,"a":false},{"u":100,"l":91,"s":1,"a":true},{"u":352,"l":310,"s":1,"a":true},{"u":574,"l":453,"s":1,"a":false},{"u":759,"l":313,"s":1,"a":false},{"u":891,"l":202,"s":1,"a":true},{"u":438,"l":251,"s":0,"a":false},{"u":821,"l":175,"s":0,"a":false},{"u":636,"l":538,"s":1,"a":false},{"u":239,"l":96,"s":0,"a":false},{"u":502,"l":156,"s":0,"a":false},{"u":213,"l":12,"s":1,"a":false},{"u":957,"l":594,"s":0,"a":false},{"u":860,"l":233,"s":1,"a":false},{"u":360,"l":259,"s":1,"a":true},{"u":781,"l":355,"s":0,"a":true},{"u":957,"l":606,"s":1,"a":false},{"u":779,"l":565,"s":0,"a":true},{"u":870,"l":321,"s":0,"a":true},{"u":421,"l":290,"s":0,"a":true},{"u":568,"l":257,"s":0,"a":true},{"u":834,"l":38,"s":1,"a":false},{"u":376,"l":324,"s":1,"a":false},{"u":556,"l":99,"s":1,"a":true},{"u":993,"l":14,"s":0,"a":true},{"u":970,"l":66,"s":0,"a":false},{"u":842,"l":201,"s":1,"a":true},{"u":969,"l":561,"s":1,"a":false},{"u":275,"l":54,"s":0,"a":false},{"u":690,"l":389,"s":0,"a":false},{"u":636,"l":209,"s":0,"a":false},{"u":469,"l":79,"s":0,"a":false},{"u":174,"l":25,"s":1,"a":false},{"u":639,"l":351,"s":1,"a":true},{"u":922,"l":680,"s":1,"a":true},{"u":511,"l":275,"s":0,"a":true},{"u":589,"l":300,"s":1,"a":false},{"u":248,"l":154,"s":0,"a":true},{"u":991,"l":247,"s":0,"a":false},{"u":511,"l":230,"s":0,"a":false},{"u":309,"l":94,"s":1,"a":false},{"u":343,"l":47,"s":0,"a":false},{"u":660,"l":35,"s":1,"a":false},{"u":900,"l":839,"s":0,"a":true},{"u":773,"l":411,"s":0,"a":true},{"u":807,"l":563,"s":0,"a":true},{"u":482,"l":183,"s":0,"a":true},{"u":958,"l":48,"s":1,"a":true},{"u":732,"l":541,"s":1,"a":true},{"u":499,"l":60,"s":0,"a":false},{"u":939,"l":377,"s":0,"a":true},{"u":157,"l":23,"s":0,"a":false},{"u":845,"l":493,"s":1,"a":false},{"u":860,"l":647,"s":0,"a":true},{"u":554,"l":489,"s":1,"a":false},{"u":762,"l":653,"s":0,"a":false},{"u":779,"l":684,"s":0,"a":true},{"u":411,"l":140,"s":0,"a":false},{"u":784,"l":768,"s":0,"a":true},{"u":475,"l":452,"s":0,"a":false},{"u":824,"l":116,"s":1,"a":true},{"u":381,"l":159,"s":1,"a":true},{"u":589,"l":577,"s":1,"a":false},{"u":889,"l":613,"s":1,"a":false},{"u":382,"l":11,"s":1,"a":false},{"u":749,"l":495,"s":1,"a":true},{"u":612,"l":414,"s":1,"a":false},{"u":568,"l":437,"s":0,"a":true},{"u":146,"l":59,"s":0,"a":false},{"u":717,"l":513,"s":0,"a":false},{"u":140,"l":28,"s":0,"a":true},{"u":331,"l":279,"s":0,"a":false},{"u":930,"l":508,"s":0,"a":false},{"u":705,"l":553,"s":0,"a":false},{"u":419,"l":186,"s":1,"a":false},{"u":983,"l":716,"s":1,"a":false},{"u":371,"l":217,"s":0,"a":true},{"u":89,"l":18,"s":1,"a":false},{"u":390,"l":17,"s":0,"a":true},{"u":904,"l":508,"s":0,"a":true},{"u":682,"l":189,"s":0,"a":false},{"u":909,"l":789,"s":0,"a":false},{"u":681,"l":234,"s":0,"a":false},{"u":640,"l":630,"s":1,"a":true},{"u":808,"l":800,"s":1,"a":true},{"u":183,"l":12,"s":1,"a":false},{"u":174,"l":103,"s":0,"a":true},{"u":467,"l":102,"s":0,"a":false},{"u":789,"l":780,"s":0,"a":false},{"u":883,"l":756,"s":1,"a":true},{"u":759,"l":447,"s":1,"a":true},{"u":911,"l":571,"s":0,"a":false},{"u":473,"l":362,"s":0,"a":false},{"u":745,"l":663,"s":0,"a":true},{"u":898,"l":890,"s":1,"a":false},{"u":455,"l":307,"s":1,"a":false},{"u":875,"l":42,"s":0,"a":false},{"u":611,"l":238,"s":1,"a":false},{"u":520,"l":224,"s":0,"a":false},{"u":996,"l":231,"s":1,"a":false},{"u":492,"l":26,"s":0,"a":false},{"u":174,"l":32,"s":1,"a":false},{"u":936,"l":331,"s":0,"a":false},{"u":680,"l":472,"s":0,"a":false},{"u":726,"l":482,"s":1,"a":false},{"u":459,"l":158,"s":0,"a":false},{"u":846,"l":139,"s":1,"a":true},{"u":549,"l":133,"s":1,"a":false},{"u":458,"l":266,"s":1,"a":true},{"u":959,"l":146,"s":0,"a":false},{"u":822,"l":622,"s":1,"a":false},{"u":121,"l":17,"s":0,"a":false},{"u":565,"l":288,"s":1,"a":true},{"u":302,"l":127,"s":0,"a":false},{"u":474,"l":76,"s":1,"a":true},{"u":683,"l":617,"s":0,"a":true},{"u":689,"l":636,"s":0,"a":false},{"u":987,"l":952,"s":1,"a":true},{"u":913,"l":84,"s":0,"a":true},{"u":803,"l":100,"s":1,"a":false},{"u":815,"l":319,"s":0,"a":false},{"u":605,"l":119,"s":0,"a":true},{"u":945,"l":82,"s":1,"a":false},{"u":573,"l":54,"s":1,"a":true},{"u":936,"l":95,"s":1,"a":false},{"u":640,"l":105,"s":0,"a":true},{"u":306,"l":127,"s":0,"a":false},{"u":550,"l":37,"s":0,"a":false},{"u":565,"l":172,"s":1,"a":true},{"u":312,"l":182,"s":0,"a":false},{"u":629,"l":368,"s":1,"a":false},{"u":826,"l":495,"s":0,"a":false},{"u":642,"l":415,"s":0,"a":true},{"u":716,"l":537,"s":0,"a":true},{"u":702,"l":43,"s":0,"a":false},{"u":670,"l":76,"s":0,"a":false},{"u":837,"l":555,"s":0,"a":false},{"u":747,"l":508,"s":1,"a":false},{"u":186,"l":129,"s":0,"a":true},{"u":688,"l":192,"s":1,"a":false},{"u":812,"l":63,"s":0,"a":false},{"u":711,"l":257,"s":0,"a":false},{"u":162,"l":76,"s":0,"a":true},{"u":829,"l":583,"s":1,"a":true},{"u":863,"l":340,"s":1,"a":false},{"u":551,"l":255,"s":0,"a":false},{"u":991,"l":93,"s":1,"a":true},{"u":632,"l":476,"s":0,"a":false},{"u":505,"l":314,"s":1,"a":false},{"u":629,"l":340,"s":1,"a":true},{"u":187,"l":77,"s":1,"a":true},{"u":348,"l":45,"s":0,"a":false},{"u":808,"l":374,"s":1,"a":false},{"u":668,"l":177,"s":0,"a":true},{"u":235,"l":160,"s":0,"a":false},{"u":503,"l":358,"s":1,"a":true},{"u":636,"l":28,"s":1,"a":false},{"u":542,"l":482,"s":1,"a":false},{"u":621,"l":319,"s":0,"a":false},{"u":963,"l":94,"s":1,"a":false},{"u":751,"l":12,"s":0,"a":false},{"u":842,"l":356,"s":1,"a":false},{"u":704,"l":70,"s":1,"a":false},{"u":677,"l":8,"s":1,"a":true},{"u":484,"l":406,"s":0,"a":true},{"u":750,"l":390,"s":0,"a":false},{"u":520,"l":316,"s":1,"a":false},{"u":905,"l":325,"s":1,"a":true},{"u":994,"l":232,"s":0,"a":false},{"u":533,"l":75,"s":0,"a":true},{"u":869,"l":350,"s":0,"a":false},{"u":755,"l":533,"s":1,"a":true},{"u":663,"l":101,"s":1,"a":true},{"u":912,"l":86,"s":0,"a":true},{"u":373,"l":360,"s":0,"a":true},{"u":595,"l":384,"s":1,"a":true},{"u":733,"l":674,"s":0,"a":false},{"u":713,"l":602,"s":0,"a":false},{"u":869,"l":328,"s":1,"a":false},{"u":838,"l":141,"s":0,"a":false},{"u":619,"l":300,"s":1,"a":true},{"u":818,"l":88,"s":0,"a":false},{"u":676,"l":325,"s":0,"a":true},{"u":935,"l":874,"s":0,"a":true},{"u":699,"l":55,"s":1,"a":false},{"u":853,"l":782,"s":0,"a":false},{"u":799,"l":581,"s":1,"a":true},{"u":459,"l":387,"s":0,"a":true},{"u":882,"l":459,"s":0,"a":true},{"u":848,"l":704,"s":1,"a":false},{"u":375,"l":148,"s":0,"a":false},{"u":484,"l":276,"s":1,"a":false},{"u":576,"l":362,"s":1,"a":true},{"u":244,"l":61,"s":1,"a":false},{"u":286,"l":99,"s":1,"a":true},{"u":280,"l":62,"s":0,"a":true},{"u":797,"l":413,"s":0,"a":true},{"u":882,"l":342,"s":0,"a":true},{"u":865,"l":402,"s":0,"a":true},{"u":801,"l":719,"s":0,"a":true},{"u":785,"l":459,"s":1,"a":true},{"u":275,"l":131,"s":1,"a":true},{"u":784,"l":480,"s":1,"a":false},{"u":303,"l":210,"s":0,"a":true},{"u":556,"l":231,"s":0,"a":true},{"u":638,"l":186,"s":1,"a":false},{"u":695,"l":153,"s":1,"a":false},{"u":950,"l":943,"s":1,"a":true},{"u":865,"l":210,"s":0,"a":false},{"u":637,"l":498,"s":1,"a":true},{"u":474,"l":457,"s":0,"a":false},{"u":978,"l":600,"s":1,"a":true},{"u":118,"l":1,"s":0,"a":true},{"u":571,"l":412,"s":0,"a":false},{"u":640,"l":596,"s":1,"a":true},{"u":361,"l":2,"s":1,"a":true},{"u":913,"l":774,"s":1,"a":false},{"u":698,"l":410,"s":0,"a":false},{"u":775,"l":680,"s":1,"a":false},{"u":638,"l":629,"s":0,"a":false},{"u":593,"l":310,"s":0,"a":false},{"u":415,"l":361,"s":0,"a":false},{"u":430,"l":217,"s":0,"a":true},{"u":825,"l":58,"s":1,"a":true},{"u":453,"l":266,"s":0,"a":true},{"u":421,"l":364,"s":1,"a":false},{"u":254,"l":82,"s":0,"a":false},{"u":925,"l":46,"s":0,"a":true},{"u":676,"l":308,"s":1,"a":false},{"u":821,"l":130,"s":0,"a":true},{"u":762,"l":253,"s":0,"a":false},{"u":799,"l":138,"s":0,"a":true},{"u":537,"l":87,"s":1,"a":true},{"u":371,"l":21,"s":1,"a":false},{"u":859,"l":444,"s":1,"a":false},{"u":564,"l":293,"s":1,"a":true},{"u":940,"l":864,"s":0,"a":false},{"u":689,"l":148,"s":0,"a":false},{"u":424,"l":125,"s":1,"a":false},{"u":386,"l":13,"s":0,"a":true},{"u":798,"l":26,"s":0,"a":false},{"u":827,"l":686,"s":1,"a":true},{"u":868,"l":41,"s":1,"a":true},{"u":425,"l":265,"s":1,"a":false},{"u":257,"l":249,"s":1,"a":false},{"u":766,"l":559,"s":1,"a":true},{"u":529,"l":363,"s":0,"a":true},{"u":536,"l":67,"s":0,"a":true},{"u":272,"l":247,"s":0,"a":true},{"u":506,"l":199,"s":1,"a":true},{"u":486,"l":302,"s":1,"a":false},{"u":805,"l":170,"s":1,"a":false},{"u":501,"l":313,"s":1,"a":true},{"u":755,"l":243,"s":1,"a":false},{"u":652,"l":632,"s":1,"a":false},{"u":701,"l":146,"s":1,"a":false},{"u":789,"l":8,"s":0,"a":false},{"u":800,"l":539,"s":1,"a":true},{"u":109,"l":55,"s":1,"a":true},{"u":637,"l":62,"s":1,"a":false},{"u":485,"l":419,"s":1,"a":false},{"u":841,"l":196,"s":1,"a":true},{"u":831,"l":223,"s":0,"a":true},{"u":807,"l":575,"s":0,"a":true},{"u":653,"l":381,"s":1,"a":true},{"u":973,"l":358,"s":0,"a":true},{"u":988,"l":770,"s":0,"a":true},{"u":501,"l":134,"s":0,"a":true},{"u":959,"l":895,"s":0,"a":false},{"u":867,"l":621,"s":0,"a":false},{"u":551,"l":98,"s":0,"a":true},{"u":385,"l":284,"s":0,"a":true},{"u":822,"l":771,"s":0,"a":false},{"u":654,"l":456,"s":0,"a":true},{"u":285,"l":239,"s":1,"a":false},{"u":519,"l":429,"s":1,"a":true},{"u":841,"l":384,"s":0,"a":false},{"u":757,"l":200,"s":1,"a":true},{"u":607,"l":424,"s":0,"a":true},{"u":301,"l":86,"s":1,"a":false},{"u":854,"l":222,"s":0,"a":false},{"u":971,"l":173,"s":0,"a":false},{"u":351,"l":67,"s":1,"a":true},{"u":726,"l":298,"s":1,"a":true},{"u":885,"l":537,"s":0,"a":true},{"u":391,"l":257,"s":1,"a":false},{"u":842,"l":738,"s":0,"a":true},{"u":882,"l":99,"s":0,"a":false},{"u":617,"l":79,"s":0,"a":false},{"u":880,"l":859,"s":0,"a":false},{"u":545,"l":455,"s":0,"a":true},{"u":880,"l":478,"s":1,"a":false},{"u":592,"l":587,"s":0,"a":true},{"u":676,"l":207,"s":1,"a":true},{"u":603,"l":531,"s":0,"a":false},{"u":786,"l":651,"s":1,"a":true},{"u":741,"l":113,"s":1,"a":true},{"u":247,"l":183,"s":0,"a":false},{"u":639,"l":623,"s":0,"a":false},{"u":138,"l":10,"s":1,"a":true},{"u":998,"l":521,"s":0,"a":false},{"u":530,"l":89,"s":1,"a":true},{"u":849,"l":688,"s":1,"a":true},{"u":483,"l":410,"s":0,"a":true},{"u":916,"l":621,"s":0,"a":false},{"u":799,"l":233,"s":1,"a":false},{"u":999,"l":441,"s":1,"a":true},{"u":648,"l":271,"s":0,"a":false},{"u":935,"l":459,"s":1,"a":false},{"u":702,"l":445,"s":0,"a":true},{"u":851,"l":259,"s":0,"a":false},{"u":849,"l":811,"s":0,"a":false},{"u":460,"l":201,"s":1,"a":true},{"u":851,"l":365,"s":0,"a":true},{"u":938,"l":148,"s":0,"a":false},{"u":910,"l":432,"s":0,"a":true},{"u":399,"l":51,"s":1,"a":false},{"u":862,"l":767,"s":0,"a":true},{"u":593,"l":442,"s":1,"a":false},{"u":674,"l":606,"s":0,"a":true},{"u":757,"l":322,"s":1,"a":false},{"u":406,"l":403,"s":0,"a":false},{"u":697,"l":293,"s":1,"a":false},{"u":874,"l":859,"s":1,"a":false},{"u":846,"l":311,"s":0,"a":false},{"u":974,"l":838,"s":0,"a":false},{"u":482,"l":269,"s":0,"a":true},{"u":760,"l":6,"s":1,"a":false},{"u":625,"l":560,"s":1,"a":false},{"u":772,"l":603,"s":1,"a":true},{"u":619,"l":468,"s":1,"a":false},{"u":895,"l":427,"s":1,"a":true},{"u":580,"l":186,"s":0,"a":true},{"u":944,"l":239,"s":0,"a":true},{"u":483,"l":402,"s":0,"a":false},{"u":962,"l":577,"s":0,"a":true},{"u":268,"l":118,"s":0,"a":true},{"u":965,"l":211,"s":1,"a":true},{"u":624,"l":534,"s":1,"a":false},{"u":644,"l":512,"s":1,"a":true},{"u":361,"l":243,"s":0,"a":false},{"u":640,"l":1,"s":1,"a":false},{"u":877,"l":548,"s":0,"a":true},{"u":629,"l":300,"s":0,"a":false},{"u":936,"l":836,"s":1,"a":false},{"u":563,"l":89,"s":1,"a":true},{"u":545,"l":307,"s":0,"a":true},{"u":321,"l":219,"s":1,"a":true},{"u":982,"l":538,"s":1,"a":false},{"u":312,"l":243,"s":1,"a":false},{"u":834,"l":661,"s":1,"a":true},{"u":557,"l":395,"s":0,"a":false},{"u":610,"l":357,"s":1,"a":false},{"u":786,"l":470,"s":1,"a":false},{"u":994,"l":762,"s":1,"a":false},{"u":896,"l":863,"s":1,"a":true},{"u":583,"l":25,"s":1,"a":false},{"u":944,"l":248,"s":0,"a":false},{"u":690,"l":559,"s":1,"a":true},{"u":659,"l":548,"s":0,"a":true},{"u":876,"l":782,"s":1,"a":false},{"u":436,"l":82,"s":0,"a":true},{"u":495,"l":216,"s":1,"a":false},{"u":982,"l":690,"s":0,"a":false},{"u":564,"l":554,"s":1,"a":false},{"u":894,"l":183,"s":0,"a":true},{"u":783,"l":133,"s":0,"a":false},{"u":852,"l":32,"s":1,"a":false},{"u":628,"l":177,"s":0,"a":false},{"u":548,"l":489,"s":1,"a":false},{"u":954,"l":323,"s":1,"a":true},{"u":881,"l":18,"s":0,"a":false},{"u":540,"l":496,"s":0,"a":true},{"u":272,"l":265,"s":1,"a":false},{"u":439,"l":85,"s":1,"a":false},{"u":618,"l":418,"s":0,"a":false},{"u":144,"l":66,"s":0,"a":true},{"u":765,"l":316,"s":1,"a":false},{"u":979,"l":881,"s":1,"a":true},{"u":796,"l":37,"s":1,"a":true},{"u":420,"l":47,"s":1,"a":false},{"u":661,"l":175,"s":1,"a":false},{"u":649,"l":204,"s":1,"a":true},{"u":861,"l":398,"s":1,"a":false},{"u":935,"l":47,"s":1,"a":true},{"u":258,"l":177,"s":1,"a":true},{"u":541,"l":307,"s":1,"a":true},{"u":960,"l":216,"s":1,"a":false},{"u":238,"l":20,"s":1,"a":true},{"u":369,"l":49,"s":0,"a":false},{"u":959,"l":878,"s":0,"a":true},{"u":692,"l":262,"s":1,"a":false},{"u":373,"l":134,"s":1,"a":false},{"u":919,"l":643,"s":1,"a":true},{"u":666,"l":328,"s":1,"a":false},{"u":588,"l":506,"s":1,"a":false},{"u":487,"l":430,"s":0,"a":false},{"u":515,"l":68,"s":0,"a":true},{"u":790,"l":425,"s":0,"a":true},{"u":499,"l":168,"s":0,"a":false},{"u":689,"l":661,"s":0,"a":false},{"u":778,"l":343,"s":0,"a":true},{"u":783,"l":444,"s":0,"a":false},{"u":815,"l":162,"s":0,"a":true},{"u":487,"l":16,"s":0,"a":true},{"u":611,"l":151,"s":1,"a":false},{"u":228,"l":161,"s":0,"a":false},{"u":893,"l":551,"s":0,"a":false},{"u":320,"l":296,"s":1,"a":false},{"u":687,"l":549,"s":1,"a":false},{"u":778,"l":593,"s":0,"a":false},{"u":558,"l":180,"s":0,"a":true},{"u":327,"l":130,"s":1,"a":false},{"u":805,"l":295,"s":0,"a":false},{"u":957,"l":472,"s":0,"a":true},{"u":282,"l":136,"s":1,"a":true},{"u":270,"l":131,"s":1,"a":true},{"u":554,"l":133,"s":1,"a":false},{"u":964,"l":322,"s":1,"a":false},{"u":622,"l":572,"s":0,"a":true},{"u":536,"l":513,"s":1,"a":true},{"u":732,"l":130,"s":0,"a":true},{"u":934,"l":11,"s":0,"a":true},{"u":826,"l":51,"s":1,"a":false},{"u":437,"l":4,"s":1,"a":true},{"u":726,"l":365,"s":0,"a":true},{"u":654,"l":601,"s":1,"a":true},{"u":901,"l":309,"s":1,"a":false},{"u":483,"l":429,"s":0,"a":false},{"u":394,"l":111,"s":1,"a":false},{"u":258,"l":2,"s":0,"a":true},{"u":745,"l":481,"s":0,"a":false},{"u":776,"l":742,"s":1,"a":true},{"u":272,"l":185,"s":1,"a":false},{"u":897,"l":573,"s":1,"a":false},{"u":172,"l":166,"s":0,"a":true},{"u":559,"l":318,"s":1,"a":true},{"u":575,"l":531,"s":0,"a":true},{"u":717,"l":153,"s":0,"a":false},{"u":705,"l":435,"s":0,"a":true},{"u":887,"l":36,"s":1,"a":true},{"u":512,"l":204,"s":1,"a":true},{"u":523,"l":162,"s":1,"a":true},{"u":886,"l":195,"s":0,"a":true},{"u":759,"l":196,"s":0,"a":false},{"u":753,"l":277,"s":0,"a":true},{"u":611,"l":234,"s":0,"a":false},{"u":885,"l":631,"s":1,"a":true},{"u":327,"l":316,"s":1,"a":false},{"u":363,"l":280,"s":1,"a":true},{"u":702,"l":294,"s":1,"a":true},{"u":709,"l":204,"s":1,"a":false},{"u":343,"l":227,"s":1,"a":true},{"u":483,"l":358,"s":1,"a":true},{"u":274,"l":157,"s":0,"a":true},{"u":857,"l":601,"s":0,"a":true},{"u":924,"l":75,"s":1,"a":true},{"u":475,"l":286,"s":0,"a":false},{"u":866,"l":548,"s":0,"a":true},{"u":894,"l":34,"s":0,"a":true},{"u":993,"l":888,"s":0,"a":false},{"u":762,"l":421,"s":1,"a":false},{"u":838,"l":472,"s":1,"a":true},{"u":99,"l":11,"s":1,"a":false},{"u":240,"l":159,"s":1,"a":true},{"u":999,"l":905,"s":0,"a":true},{"u":788,"l":451,"s":0,"a":false},{"u":808,"l":173,"s":0,"a":true},{"u":663,"l":289,"s":0,"a":false},{"u":962,"l":911,"s":1,"a":true},{"u":645,"l":350,"s":0,"a":true},{"u":799,"l":642,"s":1,"a":false},{"u":558,"l":117,"s":0,"a":true},{"u":990,"l":8,"s":0,"a":true},{"u":802,"l":386,"s":0,"a":false},{"u":829,"l":501,"s":0,"a":false},{"u":732,"l":83,"s":1,"a":true},{"u":773,"l":575,"s":0,"a":false},{"u":576,"l":141,"s":1,"a":false},{"u":181,"l":181,"s":0,"a":true},{"u":136,"l":61,"s":1,"a":false},{"u":831,"l":188,"s":1,"a":false},{"u":302,"l":72,"s":0,"a":true},{"u":682,"l":608,"s":0,"a":false},{"u":167,"l":121,"s":1,"a":true},{"u":925,"l":519,"s":0,"a":false},{"u":762,"l":408,"s":0,"a":false},{"u":497,"l":125,"s":1,"a":false},{"u":252,"l":3,"s":1,"a":true},{"u":534,"l":142,"s":0,"a":false},{"u":923,"l":701,"s":1,"a":false},{"u":545,"l":85,"s":1,"a":true},{"u":128,"l":116,"s":0,"a":true},{"u":786,"l":345,"s":1,"a":true},{"u":748,"l":557,"s":0,"a":false},{"u":862,"l":597,"s":0,"a":false},{"u":731,"l":101,"s":1,"a":false},{"u":254,"l":237,"s":0,"a":true},{"u":934,"l":637,"s":1,"a":true},{"u":530,"l":46,"s":1,"a":true},{"u":832,"l":6,"s":0,"a":false},{"u":392,"l":287,"s":1,"a":false},{"u":362,"l":105,"s":1,"a":true},{"u":966,"l":498,"s":0,"a":false},{"u":797,"l":81,"s":1,"a":true},{"u":655,"l":259,"s":0,"a":true},{"u":649,"l":275,"s":0,"a":true},{"u":990,"l":229,"s":1,"a":true},{"u":885,"l":84,"s":0,"a":true},{"u":671,"l":287,"s":1,"a":false},{"u":483,"l":134,"s":0,"a":false},{"u":703,"l":88,"s":1,"a":false},{"u":998,"l":282,"s":0,"a":false},{"u":987,"l":356,"s":0,"a":false},{"u":531,"l":345,"s":1,"a":false},{"u":462,"l":216,"s":1,"a":false},{"u":426,"l":123,"s":1,"a":true},{"u":304,"l":217,"s":1,"a":true},{"u":881,"l":825,"s":1,"a":false},{"u":608,"l":561,"s":0,"a":false},{"u":595,"l":558,"s":0,"a":false},{"u":590,"l":53,"s":0,"a":true},{"u":920,"l":45,"s":1,"a":true},{"u":950,"l":652,"s":0,"a":false},{"u":333,"l":69,"s":1,"a":false},{"u":709,"l":94,"s":0,"a":true},{"u":494,"l":18,"s":0,"a":false},{"u":863,"l":439,"s":1,"a":false},{"u":576,"l":547,"s":0,"a":true},{"u":992,"l":460,"s":1,"a":true},{"u":685,"l":163,"s":1,"a":true},{"u":352,"l":204,"s":0,"a":true},{"u":902,"l":551,"s":0,"a":true},{"u":740,"l":176,"s":0,"a":false},{"u":421,"l":47,"s":1,"a":false},{"u":252,"l":206,"s":0,"a":false},{"u":540,"l":346,"s":1,"a":false},{"u":629,"l":491,"s":0,"a":true},{"u":883,"l":687,"s":1,"a":true},{"u":994,"l":817,"s":0,"a":false},{"u":895,"l":463,"s":1,"a":true},{"u":944,"l":583,"s":1,"a":false},{"u":683,"l":244,"s":1,"a":true},{"u":905,"l":864,"s":0,"a":true},{"u":927,"l":72,"s":1,"a":true},{"u":544,"l":175,"s":1,"a":false},{"u":807,"l":202,"s":0,"a":true},{"u":676,"l":120,"s":0,"a":true},{"u":468,"l":7,"s":0,"a":true},{"u":194,"l":52,"s":1,"a":true},{"u":362,"l":113,"s":1,"a":false},{"u":822,"l":49,"s":1,"a":true},{"u":204,"l":112,"s":1,"a":false},{"u":943,"l":187,"s":1,"a":true},{"u":550,"l":437,"s":1,"a":true},{"u":912,"l":183,"s":0,"a":true},{"u":623,"l":524,"s":1,"a":false},{"u":962,"l":283,"s":1,"a":true},{"u":679,"l":203,"s":0,"a":true},{"u":278,"l":133,"s":0,"a":false},{"u":762,"l":131,"s":1,"a":false},{"u":281,"l":94,"s":0,"a":true},{"u":900,"l":98,"s":1,"a":false},{"u":801,"l":554,"s":0,"a":true},{"u":479,"l":328,"s":1,"a":false},{"u":910,"l":37,"s":1,"a":true},{"u":903,"l":192,"s":0,"a":false},{"u":606,"l":153,"s":0,"a":true},{"u":166,"l":1,"s":0,"a":true},{"u":757,"l":348,"s":0,"a":false},{"u":413,"l":351,"s":1,"a":false},{"u":493,"l":274,"s":0,"a":true},{"u":685,"l":343,"s":1,"a":false},{"u":646,"l":303,"s":1,"a":false},{"u":584,"l":13,"s":1,"a":true},{"u":912,"l":781,"s":1,"a":false},{"u":844,"l":407,"s":0,"a":true},{"u":961,"l":42,"s":0,"a":true},{"u":837,"l":261,"s":1,"a":false},{"u":793,"l":110,"s":1,"a":true},{"u":740,"l":664,"s":1,"a":false},{"u":913,"l":286,"s":1,"a":false},{"u":789,"l":51,"s":0,"a":false},{"u":112,"l":33,"s":0,"a":true},{"u":696,"l":511,"s":1,"a":false},{"u":738,"l":191,"s":0,"a":true},{"u":549,"l":194,"s":1,"a":false},{"u":351,"l":277,"s":0,"a":false},{"u":696,"l":280,"s":1,"a":false},{"u":747,"l":524,"s":0,"a":false},{"u":783,"l":295,"s":0,"a":true},{"u":357,"l":144,"s":1,"a":true},{"u":266,"l":146,"s":0,"a":false},{"u":418,"l":271,"s":0,"a":true},{"u":818,"l":372,"s":1,"a":true},{"u":942,"l":573,"s":1,"a":false},{"u":442,"l":17,"s":0,"a":false},{"u":744,"l":385,"s":0,"a":false},{"u":821,"l":447,"s":1,"a":true},{"u":802,"l":292,"s":0,"a":false},{"u":456,"l":50,"s":0,"a":true},{"u":998,"l":959,"s":0,"a":false},{"u":539,"l":173,"s":1,"a":false},{"u":853,"l":592,"s":1,"a":true},{"u":867,"l":529,"s":1,"a":true},{"u":835,"l":630,"s":0,"a":true},{"u":371,"l":51,"s":0,"a":false},{"u":908,"l":897,"s":0,"a":false},{"u":439,"l":28,"s":1,"a":true},{"u":740,"l":122,"s":0,"a":true},{"u":330,"l":19,"s":0,"a":false},{"u":444,"l":67,"s":1,"a":false},{"u":690,"l":223,"s":0,"a":false},{"u":844,"l":134,"s":0,"a":false},{"u":868,"l":808,"s":1,"a":false},{"u":405,"l":22,"s":1,"a":false},{"u":562,"l":180,"s":0,"a":false},{"u":717,"l":22,"s":0,"a":false},{"u":493,"l":36,"s":1,"a":false},{"u":571,"l":549,"s":1,"a":true},{"u":951,"l":598,"s":0,"a":true},{"u":747,"l":690,"s":0,"a":false},{"u":839,"l":404,"s":0,"a":false},{"u":833,"l":287,"s":1,"a":false},{"u":624,"l":519,"s":0,"a":true},{"u":390,"l":1,"s":0,"a":false},{"u":961,"l":756,"s":0,"a":false},{"u":976,"l":795,"s":0,"a":false},{"u":890,"l":254,"s":1,"a":true},{"u":795,"l":216,"s":0,"a":false},{"u":891,"l":145,"s":1,"a":true},{"u":869,"l":275,"s":1,"a":false},{"u":672,"l":640,"s":1,"a":false},{"u":988,"l":413,"s":1,"a":false},{"u":699,"l":208,"s":1,"a":true},{"u":941,"l":15,"s":0,"a":true},{"u":364,"l":173,"s":0,"a":true},{"u":470,"l":384,"s":1,"a":false},{"u":737,"l":452,"s":0,"a":false},{"u":814,"l":467,"s":1,"a":false},{"u":963,"l":227,"s":0,"a":true},{"u":274,"l":48,"s":1,"a":false},{"u":973,"l":122,"s":0,"a":true},{"u":317,"l":123,"s":0,"a":false},{"u":986,"l":788,"s":0,"a":false},{"u":594,"l":254,"s":1,"a":false},{"u":889,"l":321,"s":1,"a":false},{"u":788,"l":120,"s":0,"a":true},{"u":539,"l":230,"s":0,"a":false},{"u":831,"l":105,"s":0,"a":true},{"u":569,"l":188,"s":0,"a":false},{"u":545,"l":208,"s":0,"a":false},{"u":416,"l":320,"s":1,"a":true},{"u":154,"l":119,"s":0,"a":true},{"u":771,"l":81,"s":0,"a":true},{"u":782,"l":501,"s":0,"a":true},{"u":582,"l":310,"s":0,"a":true},{"u":877,"l":59,"s":0,"a":false},{"u":313,"l":65,"s":0,"a":false},{"u":811,"l":562,"s":0,"a":true},{"u":581,"l":197,"s":0,"a":true},{"u":268,"l":117,"s":0,"a":false},{"u":601,"l":472,"s":0,"a":true},{"u":676,"l":293,"s":0,"a":true},{"u":644,"l":38,"s":0,"a":true},{"u":726,"l":201,"s":1,"a":true},{"u":944,"l":764,"s":1,"a":true},{"u":879,"l":88,"s":0,"a":false},{"u":427,"l":349,"s":1,"a":false},{"u":504,"l":200,"s":1,"a":false},{"u":887,"l":552,"s":1,"a":true},{"u":860,"l":356,"s":1,"a":false},{"u":801,"l":539,"s":0,"a":true},{"u":801,"l":266,"s":1,"a":true},{"u":344,"l":55,"s":1,"a":true},{"u":692,"l":97,"s":1,"a":false},{"u":651,"l":638,"s":1,"a":true},{"u":610,"l":141,"s":1,"a":true},{"u":821,"l":30,"s":1,"a":false},{"u":774,"l":156,"s":1,"a":false},{"u":793,"l":673,"s":0,"a":false},{"u":543,"l":224,"s":0,"a":false},{"u":617,"l":180,"s":0,"a":true},{"u":746,"l":476,"s":0,"a":false},{"u":855,"l":74,"s":1,"a":true},{"u":639,"l":485,"s":1,"a":false},{"u":709,"l":282,"s":1,"a":false},{"u":550,"l":431,"s":1,"a":false},{"u":876,"l":50,"s":0,"a":true},{"u":913,"l":22,"s":1,"a":true},{"u":399,"l":48,"s":0,"a":false},{"u":635,"l":509,"s":0,"a":false},{"u":941,"l":311,"s":1,"a":false},{"u":769,"l":649,"s":0,"a":false},{"u":702,"l":80,"s":1,"a":true},{"u":914,"l":10,"s":1,"a":false},{"u":916,"l":307,"s":0,"a":false},{"u":985,"l":654,"s":1,"a":true},{"u":756,"l":409,"s":1,"a":true},{"u":718,"l":464,"s":0,"a":false},{"u":913,"l":466,"s":1,"a":false},{"u":284,"l":196,"s":1,"a":true},{"u":999,"l":51,"s":1,"a":true},{"u":952,"l":512,"s":0,"a":false},{"u":506,"l":229,"s":0,"a":true},{"u":107,"l":38,"s":0,"a":true},{"u":972,"l":855,"s":0,"a":true},{"u":440,"l":23,"s":1,"a":true},{"u":412,"l":274,"s":0,"a":false},{"u":256,"l":223,"s":1,"a":true},{"u":979,"l":419,"s":1,"a":false},{"u":977,"l":90,"s":1,"a":true},{"u":940,"l":264,"s":0,"a":true},{"u":830,"l":796,"s":1,"a":false},{"u":643,"l":182,"s":1,"a":true},{"u":683,"l":647,"s":0,"a":false},{"u":889,"l":90,"s":1,"a":false},{"u":242,"l":100,"s":1,"a":false},{"u":792,"l":348,"s":1,"a":true},{"u":677,"l":164,"s":0,"a":true},{"u":430,"l":5,"s":1,"a":false},{"u":953,"l":797,"s":0,"a":false},{"u":766,"l":419,"s":1,"a":false},{"u":906,"l":333,"s":0,"a":false},{"u":564,"l":308,"s":0,"a":false},{"u":552,"l":121,"s":1,"a":true},{"u":786,"l":135,"s":0,"a":false},{"u":799,"l":640,"s":0,"a":true},{"u":496,"l":225,"s":0,"a":true},{"u":937,"l":580,"s":0,"a":true},{"u":623,"l":451,"s":1,"a":false},{"u":122,"l":14,"s":1,"a":false},{"u":277,"l":66,"s":1,"a":true},{"u":195,"l":97,"s":1,"a":true},{"u":445,"l":410,"s":1,"a":false},{"u":801,"l":186,"s":0,"a":true},{"u":446,"l":170,"s":1,"a":true},{"u":313,"l":269,"s":0,"a":true},{"u":825,"l":686,"s":1,"a":false},{"u":995,"l":774,"s":1,"a":false},{"u":888,"l":722,"s":1,"a":false},{"u":800,"l":751,"s":1,"a":false},{"u":769,"l":382,"s":0,"a":false},{"u":971,"l":760,"s":1,"a":false},{"u":193,"l":174,"s":0,"a":true},{"u":622,"l":178,"s":0,"a":true},{"u":289,"l":166,"s":0,"a":false},{"u":768,"l":209,"s":0,"a":true},{"u":402,"l":284,"s":0,"a":true},{"u":465,"l":393,"s":1,"a":false},{"u":913,"l":756,"s":0,"a":true},{"u":935,"l":380,"s":0,"a":true},{"u":239,"l":237,"s":1,"a":true},{"u":923,"l":848,"s":1,"a":true},{"u":632,"l":196,"s":0,"a":true},{"u":813,"l":61,"s":1,"a":false},{"u":196,"l":149,"s":1,"a":true},{"u":525,"l":297,"s":0,"a":false},{"u":517,"l":507,"s":0,"a":true},{"u":186,"l":77,"s":0,"a":false},{"u":668,"l":492,"s":0,"a":false},{"u":747,"l":62,"s":1,"a":true},{"u":153,"l":138,"s":0,"a":false},{"u":629,"l":232,"s":0,"a":false},{"u":664,"l":391,"s":1,"a":false},{"u":921,"l":41,"s":0,"a":false},{"u":651,"l":540,"s":1,"a":false},{"u":703,"l":238,"s":1,"a":false},{"u":776,"l":70,"s":0,"a":false},{"u":852,"l":752,"s":0,"a":true},{"u":314,"l":35,"s":0,"a":true},{"u":641,"l":616,"s":1,"a":true},{"u":421,"l":262,"s":1,"a":true},{"u":130,"l":77,"s":1,"a":false},{"u":890,"l":814,"s":1,"a":false},{"u":892,"l":402,"s":1,"a":false},{"u":352,"l":197,"s":1,"a":false},{"u":858,"l":454,"s":0,"a":false},{"u":687,"l":379,"s":0,"a":true},{"u":412,"l":80,"s":1,"a":false},{"u":426,"l":267,"s":0,"a":true},{"u":752,"l":406,"s":0,"a":false},{"u":599,"l":423,"s":1,"a":true},{"u":950,"l":773,"s":0,"a":false},{"u":896,"l":10,"s":0,"a":false},{"u":887,"l":21,"s":1,"a":true},{"u":580,"l":246,"s":0,"a":true},{"u":943,"l":181,"s":0,"a":true},{"u":535,"l":366,"s":1,"a":true},{"u":904,"l":583,"s":1,"a":true},{"u":521,"l":54,"s":0,"a":true},{"u":703,"l":408,"s":0,"a":true},{"u":276,"l":41,"s":1,"a":true},{"u":404,"l":250,"s":0,"a":true},{"u":968,"l":559,"s":1,"a":false},{"u":611,"l":306,"s":0,"a":true},{"u":981,"l":692,"s":1,"a":true},{"u":902,"l":542,"s":0,"a":true},{"u":346,"l":60,"s":0,"a":false},{"u":539,"l":42,"s":0,"a":false},{"u":242,"l":32,"s":1,"a":false},{"u":837,"l":700,"s":0,"a":false},{"u":798,"l":318,"s":1,"a":false},{"u":216,"l":90,"s":1,"a":true},{"u":910,"l":258,"s":0,"a":false},{"u":773,"l":526,"s":0,"a":true},{"u":978,"l":90,"s":1,"a":true},{"u":740,"l":381,"s":0,"a":true},{"u":601,"l":58,"s":0,"a":false},{"u":716,"l":327,"s":0,"a":true},{"u":155,"l":20,"s":1,"a":true},{"u":864,"l":267,"s":0,"a":false},{"u":802,"l":615,"s":1,"a":false},{"u":357,"l":222,"s":1,"a":true},{"u":949,"l":345,"s":1,"a":true},{"u":731,"l":95,"s":0,"a":false},{"u":929,"l":65,"s":0,"a":false},{"u":621,"l":574,"s":1,"a":false},{"u":876,"l":794,"s":1,"a":false},{"u":897,"l":715,"s":0,"a":false},{"u":498,"l":49,"s":1,"a":false},{"u":925,"l":286,"s":0,"a":true},{"u":935,"l":10,"s":0,"a":false},{"u":768,"l":518,"s":0,"a":false},{"u":388,"l":80,"s":1,"a":true},{"u":684,"l":484,"s":0,"a":true},{"u":854,"l":656,"s":0,"a":true},{"u":806,"l":710,"s":0,"a":true},{"u":574,"l":185,"s":1,"a":true},{"u":966,"l":463,"s":0,"a":false},{"u":858,"l":272,"s":1,"a":true},{"u":484,"l":405,"s":1,"a":false},{"u":257,"l":35,"s":0,"a":true},{"u":962,"l":196,"s":1,"a":true},{"u":736,"l":444,"s":0,"a":true},{"u":981,"l":927,"s":1,"a":false},{"u":513,"l":295,"s":1,"a":true},{"u":783,"l":487,"s":0,"a":false},{"u":785,"l":144,"s":1,"a":true},{"u":872,"l":472,"s":1,"a":true},{"u":961,"l":595,"s":1,"a":false},{"u":695,"l":35,"s":1,"a":true},{"u":173,"l":92,"s":1,"a":true},{"u":642,"l":501,"s":1,"a":false},{"u":947,"l":660,"s":1,"a":true},{"u":664,"l":260,"s":1,"a":true},{"u":989,"l":334,"s":0,"a":false},{"u":681,"l":373,"s":1,"a":false},{"u":894,"l":161,"s":1,"a":true},{"u":703,"l":31,"s":0,"a":false},{"u":99,"l":99,"s":1,"a":false},{"u":936,"l":675,"s":1,"a":false},{"u":970,"l":341,"s":1,"a":false},{"u":358,"l":48,"s":1,"a":true},{"u":815,"l":259,"s":0,"a":false},{"u":455,"l":183,"s":0,"a":true},{"u":787,"l":179,"s":0,"a":false},{"u":755,"l":430,"s":1,"a":false},{"u":114,"l":66,"s":0,"a":false},{"u":730,"l":593,"s":1,"a":true},{"u":427,"l":5,"s":0,"a":false},{"u":960,"l":216,"s":0,"a":true},{"u":449,"l":297,"s":0,"a":true},{"u":970,"l":967,"s":1,"a":true},{"u":975,"l":406,"s":1,"a":false},{"u":840,"l":367,"s":0,"a":true},{"u":999,"l":964,"s":0,"a":true},{"u":639,"l":12,"s":1,"a":true},{"u":891,"l":820,"s":1,"a":false},{"u":229,"l":191,"s":0,"a":false},{"u":924,"l":42,"s":1,"a":true},{"u":685,"l":187,"s":1,"a":true},{"u":862,"l":623,"s":0,"a":false},{"u":604,"l":471,"s":0,"a":true},{"u":610,"l":6,"s":0,"a":false},{"u":836,"l":341,"s":1,"a":false},{"u":833,"l":494,"s":0,"a":false},{"u":712,"l":310,"s":0,"a":true},{"u":383,"l":201,"s":1,"a":true},{"u":665,"l":494,"s":1,"a":true},{"u":308,"l":52,"s":0,"a":true},{"u":913,"l":362,"s":1,"a":false},{"u":657,"l":515,"s":1,"a":true},{"u":932,"l":595,"s":0,"a":true},{"u":806,"l":404,"s":0,"a":false},{"u":662,"l":367,"s":1,"a":true},{"u":898,"l":12,"s":0,"a":true},{"u":751,"l":659,"s":1,"a":false},{"u":444,"l":89,"s":1,"a":false},{"u":879,"l":747,"s":1,"a":false},{"u":625,"l":207,"s":0,"a":true},{"u":877,"l":629,"s":1,"a":false},{"u":578,"l":203,"s":1,"a":false},{"u":904,"l":395,"s":0,"a":true},{"u":557,"l":12,"s":1,"a":false},{"u":979,"l":526,"s":0,"a":false},{"u":632,"l":587,"s":0,"a":false},{"u":893,"l":276,"s":0,"a":true},{"u":990,"l":159,"s":1,"a":false},{"u":269,"l":125,"s":0,"a":true},{"u":444,"l":400,"s":1,"a":true},{"u":799,"l":772,"s":1,"a":false},{"u":809,"l":461,"s":1,"a":true},{"u":812,"l":255,"s":0,"a":false},{"u":860,"l":546,"s":0,"a":false},{"u":979,"l":257,"s":1,"a":true},{"u":471,"l":390,"s":0,"a":false},{"u":943,"l":369,"s":0,"a":false},{"u":843,"l":812,"s":1,"a":false},{"u":991,"l":204,"s":1,"a":true},{"u":555,"l":267,"s":0,"a":true},{"u":725,"l":220,"s":0,"a":true},{"u":395,"l":151,"s":1,"a":false},{"u":755,"l":525,"s":1,"a":false},{"u":375,"l":30,"s":1,"a":false},{"u":702,"l":9,"s":1,"a":true},{"u":723,"l":296,"s":0,"a":false},{"u":838,"l":422,"s":0,"a":false},{"u":613,"l":120,"s":1,"a":false},{"u":706,"l":602,"s":0,"a":false},{"u":910,"l":608,"s":0,"a":false},{"u":332,"l":94,"s":0,"a":false},{"u":863,"l":795,"s":1,"a":true},{"u":135,"l":50,"s":1,"a":false},{"u":960,"l":292,"s":1,"a":false},{"u":808,"l":698,"s":1,"a":true},{"u":803,"l":395,"s":0,"a":false},{"u":745,"l":366,"s":1,"a":false},{"u":920,"l":800,"s":1,"a":false},{"u":911,"l":811,"s":1,"a":true},{"u":658,"l":69,"s":1,"a":true},{"u":652,"l":383,"s":1,"a":false},{"u":608,"l":420,"s":0,"a":false},{"u":987,"l":436,"s":0,"a":true},{"u":583,"l":522,"s":0,"a":false},{"u":765,"l":107,"s":0,"a":true},{"u":421,"l":16,"s":1,"a":true},{"u":424,"l":371,"s":0,"a":true},{"u":892,"l":366,"s":1,"a":true},{"u":679,"l":20,"s":1,"a":true},{"u":610,"l":83,"s":0,"a":false},{"u":391,"l":317,"s":1,"a":true},{"u":800,"l":273,"s":1,"a":false},{"u":730,"l":419,"s":0,"a":false},{"u":700,"l":43,"s":1,"a":false},{"u":686,"l":106,"s":0,"a":true},{"u":308,"l":56,"s":1,"a":false},{"u":965,"l":702,"s":0,"a":true},{"u":856,"l":364,"s":1,"a":true},{"u":390,"l":146,"s":1,"a":false},{"u":860,"l":286,"s":0,"a":false},{"u":678,"l":32,"s":0,"a":true},{"u":925,"l":823,"s":0,"a":true},{"u":400,"l":57,"s":1,"a":false},{"u":735,"l":705,"s":0,"a":true},{"u":576,"l":165,"s":1,"a":false},{"u":936,"l":616,"s":1,"a":true},{"u":165,"l":147,"s":1,"a":true},{"u":940,"l":488,"s":1,"a":true},{"u":733,"l":378,"s":0,"a":true},{"u":453,"l":431,"s":1,"a":true},{"u":651,"l":46,"s":1,"a":true},{"u":656,"l":89,"s":0,"a":false},{"u":761,"l":9,"s":0,"a":false},{"u":335,"l":181,"s":0,"a":false},{"u":752,"l":557,"s":0,"a":false},{"u":846,"l":232,"s":0,"a":true},{"u":974,"l":818,"s":1,"a":true},{"u":49,"l":7,"s":0,"a":false},{"u":864,"l":166,"s":1,"a":false},{"u":761,"l":59,"s":0,"a":false},{"u":518,"l":470,"s":1,"a":false},{"u":517,"l":67,"s":1,"a":false},{"u":750,"l":300,"s":1,"a":true},{"u":244,"l":12,"s":1,"a":false},{"u":602,"l":212,"s":1,"a":true},{"u":787,"l":121,"s":1,"a":false},{"u":940,"l":505,"s":1,"a":false},{"u":370,"l":55,"s":0,"a":false},{"u":728,"l":666,"s":0,"a":true},{"u":198,"l":43,"s":1,"a":false},{"u":912,"l":32,"s":1,"a":true},{"u":203,"l":63,"s":1,"a":false},{"u":964,"l":336,"s":1,"a":false},{"u":863,"l":552,"s":0,"a":false},{"u":662,"l":415,"s":0,"a":false},{"u":891,"l":719,"s":0,"a":true},{"u":900,"l":836,"s":1,"a":true},{"u":532,"l":286,"s":0,"a":true},{"u":485,"l":42,"s":0,"a":true},{"u":854,"l":831,"s":0,"a":false},{"u":969,"l":123,"s":1,"a":true},{"u":638,"l":36,"s":0,"a":true},{"u":961,"l":756,"s":0,"a":true},{"u":619,"l":184,"s":1,"a":true},{"u":721,"l":353,"s":0,"a":false},{"u":432,"l":168,"s":0,"a":false},{"u":593,"l":190,"s":1,"a":true},{"u":160,"l":50,"s":1,"a":false},{"u":894,"l":260,"s":0,"a":true},{"u":929,"l":411,"s":0,"a":true},{"u":993,"l":242,"s":1,"a":false},{"u":540,"l":422,"s":0,"a":true},{"u":494,"l":231,"s":1,"a":true},{"u":666,"l":6,"s":1,"a":false},{"u":857,"l":351,"s":1,"a":false},{"u":626,"l":497,"s":1,"a":true},{"u":886,"l":634,"s":0,"a":false},{"u":798,"l":201,"s":0,"a":false},{"u":961,"l":434,"s":0,"a":false},{"u":395,"l":165,"s":0,"a":false},{"u":877,"l":789,"s":1,"a":false},{"u":819,"l":773,"s":1,"a":true},{"u":527,"l":516,"s":1,"a":false},{"u":713,"l":468,"s":0,"a":true},{"u":785,"l":384,"s":0,"a":false},{"u":905,"l":138,"s":0,"a":false},{"u":560,"l":196,"s":0,"a":false},{"u":631,"l":401,"s":1,"a":true},{"u":654,"l":559,"s":0,"a":true},{"u":892,"l":549,"s":0,"a":true},{"u":563,"l":354,"s":1,"a":false},{"u":463,"l":137,"s":0,"a":true},{"u":594,"l":318,"s":1,"a":false},{"u":982,"l":125,"s":1,"a":false},{"u":820,"l":462,"s":0,"a":true},{"u":593,"l":166,"s":0,"a":false},{"u":649,"l":91,"s":1,"a":false},{"u":956,"l":316,"s":0,"a":false},{"u":184,"l":15,"s":0,"a":false},{"u":867,"l":824,"s":0,"a":false},{"u":673,"l":15,"s":1,"a":true},{"u":957,"l":278,"s":1,"a":false},{"u":242,"l":82,"s":0,"a":true},{"u":224,"l":172,"s":1,"a":false},{"u":521,"l":70,"s":1,"a":false},{"u":791,"l":663,"s":1,"a":false},{"u":672,"l":131,"s":0,"a":false},{"u":771,"l":300,"s":1,"a":true},{"u":653,"l":516,"s":1,"a":false},{"u":696,"l":583,"s":0,"a":false},{"u":436,"l":39,"s":0,"a":false},{"u":640,"l":354,"s":0,"a":true},{"u":694,"l":28,"s":1,"a":false},{"u":147,"l":58,"s":0,"a":false},{"u":690,"l":428,"s":1,"a":true},{"u":271,"l":218,"s":0,"a":true},{"u":995,"l":958,"s":1,"a":false},{"u":968,"l":96,"s":1,"a":true},{"u":758,"l":674,"s":1,"a":true},{"u":800,"l":291,"s":0,"a":true},{"u":959,"l":715,"s":0,"a":false},{"u":618,"l":513,"s":0,"a":true},{"u":901,"l":866,"s":1,"a":false},{"u":764,"l":405,"s":0,"a":true},{"u":379,"l":187,"s":1,"a":false},{"u":353,"l":193,"s":1,"a":false},{"u":432,"l":343,"s":0,"a":false},{"u":504,"l":186,"s":1,"a":true},{"u":270,"l":242,"s":0,"a":true},{"u":407,"l":123,"s":1,"a":false},{"u":444,"l":117,"s":0,"a":true},{"u":782,"l":688,"s":1,"a":true},{"u":923,"l":495,"s":0,"a":true},{"u":464,"l":428,"s":1,"a":false},{"u":574,"l":447,"s":1,"a":true},{"u":781,"l":110,"s":0,"a":false},{"u":661,"l":222,"s":1,"a":true},{"u":958,"l":451,"s":0,"a":false},{"u":816,"l":585,"s":1,"a":false},{"u":368,"l":272,"s":0,"a":false},{"u":371,"l":291,"s":0,"a":false},{"u":576,"l":329,"s":1,"a":true},{"u":715,"l":78,"s":0,"a":false},{"u":40,"l":31,"s":0,"a":false},{"u":344,"l":196,"s":1,"a":false},{"u":401,"l":82,"s":1,"a":true},{"u":885,"l":387,"s":0,"a":true},{"u":978,"l":920,"s":1,"a":false},{"u":821,"l":771,"s":0,"a":false},{"u":994,"l":426,"s":0,"a":false},{"u":768,"l":283,"s":1,"a":false},{"u":676,"l":123,"s":1,"a":false},{"u":851,"l":510,"s":1,"a":true},{"u":179,"l":70,"s":0,"a":true},{"u":894,"l":577,"s":1,"a":false},{"u":524,"l":66,"s":1,"a":true},{"u":869,"l":704,"s":1,"a":false},{"u":699,"l":222,"s":1,"a":true},{"u":907,"l":129,"s":0,"a":true},{"u":633,"l":387,"s":0,"a":false},{"u":299,"l":201,"s":0,"a":true},{"u":348,"l":9,"s":0,"a":false},{"u":445,"l":44,"s":1,"a":false},{"u":559,"l":549,"s":1,"a":false},{"u":697,"l":152,"s":0,"a":false},{"u":487,"l":113,"s":0,"a":true},{"u":622,"l":176,"s":1,"a":false},{"u":987,"l":317,"s":1,"a":false},{"u":691,"l":364,"s":1,"a":false},{"u":874,"l":154,"s":0,"a":false},{"u":124,"l":113,"s":0,"a":false},{"u":724,"l":24,"s":1,"a":true},{"u":573,"l":334,"s":0,"a":true},{"u":913,"l":597,"s":1,"a":true},{"u":637,"l":227,"s":0,"a":false},{"u":698,"l":379,"s":0,"a":false},{"u":840,"l":60,"s":1,"a":true},{"u":736,"l":666,"s":1,"a":true},{"u":705,"l":116,"s":0,"a":true},{"u":972,"l":905,"s":1,"a":true},{"u":318,"l":205,"s":1,"a":true},{"u":784,"l":76,"s":0,"a":false},{"u":844,"l":315,"s":1,"a":false},{"u":755,"l":87,"s":1,"a":false},{"u":713,"l":366,"s":1,"a":false},{"u":727,"l":95,"s":1,"a":true},{"u":668,"l":291,"s":0,"a":false},{"u":513,"l":404,"s":1,"a":true},{"u":627,"l":174,"s":0,"a":true},{"u":199,"l":52,"s":1,"a":false},{"u":743,"l":517,"s":0,"a":false},{"u":456,"l":381,"s":1,"a":true},{"u":826,"l":8,"s":1,"a":true},{"u":855,"l":693,"s":1,"a":true},{"u":596,"l":286,"s":1,"a":false},{"u":754,"l":549,"s":1,"a":true},{"u":839,"l":830,"s":0,"a":true},{"u":659,"l":486,"s":1,"a":false},{"u":706,"l":313,"s":1,"a":true},{"u":576,"l":14,"s":1,"a":true},{"u":699,"l":439,"s":0,"a":false},{"u":112,"l":102,"s":1,"a":true},{"u":114,"l":83,"s":0,"a":true},{"u":880,"l":77,"s":1,"a":false},{"u":751,"l":121,"s":0,"a":true},{"u":843,"l":258,"s":0,"a":false},{"u":987,"l":112,"s":1,"a":false},{"u":761,"l":676,"s":0,"a":false},{"u":481,"l":162,"s":1,"a":true},{"u":371,"l":260,"s":0,"a":false},{"u":664,"l":242,"s":0,"a":true},{"u":890,"l":324,"s":1,"a":false},{"u":775,"l":302,"s":0,"a":true},{"u":806,"l":195,"s":1,"a":false},{"u":758,"l":428,"s":0,"a":true},{"u":438,"l":2,"s":0,"a":false},{"u":880,"l":252,"s":1,"a":true},{"u":687,"l":546,"s":0,"a":true},{"u":844,"l":814,"s":0,"a":false},{"u":764,"l":668,"s":0,"a":true},{"u":905,"l":861,"s":1,"a":false},{"u":974,"l":733,"s":1,"a":true},{"u":485,"l":416,"s":0,"a":false},{"u":810,"l":751,"s":0,"a":false},{"u":484,"l":467,"s":1,"a":false},{"u":883,"l":101,"s":0,"a":false},{"u":781,"l":366,"s":0,"a":true},{"u":884,"l":271,"s":0,"a":true},{"u":942,"l":891,"s":0,"a":false},{"u":599,"l":416,"s":1,"a":false},{"u":809,"l":474,"s":0,"a":false},{"u":376,"l":26,"s":0,"a":true},{"u":493,"l":410,"s":0,"a":false},{"u":316,"l":123,"s":1,"a":false},{"u":881,"l":681,"s":0,"a":true},{"u":581,"l":314,"s":0,"a":true},{"u":772,"l":272,"s":1,"a":true},{"u":758,"l":531,"s":0,"a":true},{"u":333,"l":272,"s":0,"a":false},{"u":965,"l":3,"s":0,"a":false},{"u":275,"l":189,"s":1,"a":false},{"u":623,"l":473,"s":0,"a":true},{"u":716,"l":122,"s":1,"a":false},{"u":705,"l":409,"s":1,"a":true},{"u":249,"l":71,"s":1,"a":true},{"u":162,"l":80,"s":1,"a":false},{"u":876,"l":709,"s":0,"a":true},{"u":905,"l":740,"s":0,"a":true},{"u":916,"l":858,"s":1,"a":true},{"u":649,"l":137,"s":1,"a":false},{"u":191,"l":87,"s":0,"a":false},{"u":281,"l":81,"s":1,"a":false},{"u":859,"l":711,"s":0,"a":true},{"u":974,"l":869,"s":1,"a":true},{"u":365,"l":257,"s":1,"a":true},{"u":384,"l":12,"s":0,"a":true},{"u":697,"l":579,"s":1,"a":true},{"u":532,"l":358,"s":0,"a":true},{"u":727,"l":146,"s":0,"a":false},{"u":982,"l":348,"s":1,"a":false},{"u":613,"l":65,"s":1,"a":true},{"u":701,"l":243,"s":1,"a":true},{"u":992,"l":441,"s":0,"a":true},{"u":654,"l":605,"s":0,"a":false},{"u":491,"l":64,"s":0,"a":true},{"u":526,"l":400,"s":0,"a":false},{"u":893,"l":735,"s":1,"a":false},{"u":913,"l":362,"s":1,"a":false},{"u":222,"l":85,"s":1,"a":true},{"u":924,"l":734,"s":0,"a":true},{"u":917,"l":462,"s":0,"a":false},{"u":191,"l":49,"s":1,"a":false},{"u":919,"l":155,"s":1,"a":false},{"u":997,"l":499,"s":0,"a":false},{"u":894,"l":760,"s":0,"a":false},{"u":978,"l":787,"s":0,"a":false},{"u":829,"l":209,"s":0,"a":false},{"u":687,"l":644,"s":1,"a":false},{"u":682,"l":398,"s":0,"a":false},{"u":607,"l":70,"s":0,"a":false},{"u":268,"l":216,"s":0,"a":true},{"u":931,"l":159,"s":1,"a":true},{"u":223,"l":46,"s":0,"a":false},{"u":449,"l":333,"s":1,"a":true},{"u":900,"l":402,"s":0,"a":true},{"u":959,"l":887,"s":0,"a":false},{"u":678,"l":113,"s":1,"a":false},{"u":430,"l":287,"s":1,"a":true},{"u":471,"l":461,"s":1,"a":false},{"u":944,"l":712,"s":0,"a":true},{"u":592,"l":360,"s":1,"a":false},{"u":683,"l":511,"s":0,"a":false},{"u":123,"l":14,"s":0,"a":true},{"u":832,"l":660,"s":1,"a":true},{"u":454,"l":85,"s":0,"a":false},{"u":362,"l":188,"s":0,"a":true},{"u":932,"l":287,"s":0,"a":false},{"u":412,"l":254,"s":0,"a":false},{"u":933,"l":197,"s":0,"a":false},{"u":635,"l":178,"s":0,"a":false},{"u":708,"l":673,"s":1,"a":false},{"u":859,"l":113,"s":1,"a":false},{"u":745,"l":309,"s":1,"a":true},{"u":400,"l":387,"s":0,"a":false},{"u":404,"l":53,"s":0,"a":false},{"u":738,"l":536,"s":0,"a":false},{"u":577,"l":256,"s":0,"a":true},{"u":595,"l":98,"s":1,"a":true},{"u":857,"l":252,"s":1,"a":true},{"u":966,"l":570,"s":0,"a":false},{"u":484,"l":269,"s":1,"a":false},{"u":593,"l":10,"s":1,"a":false},{"u":717,"l":55,"s":1,"a":true},{"u":813,"l":382,"s":0,"a":false},{"u":239,"l":34,"s":0,"a":true},{"u":966,"l":141,"s":1,"a":false},{"u":756,"l":258,"s":0,"a":true},{"u":374,"l":43,"s":1,"a":false},{"u":944,"l":84,"s":1,"a":true},{"u":903,"l":742,"s":0,"a":false},{"u":425,"l":252,"s":0,"a":true},{"u":307,"l":296,"s":0,"a":true},{"u":597,"l":441,"s":0,"a":true},{"u":976,"l":698,"s":1,"a":false},{"u":674,"l":167,"s":1,"a":true},{"u":751,"l":635,"s":1,"a":true},{"u":583,"l":406,"s":1,"a":true},{"u":489,"l":167,"s":0,"a":true},{"u":894,"l":139,"s":1,"a":false},{"u":567,"l":83,"s":0,"a":true},{"u":739,"l":420,"s":1,"a":true},{"u":875,"l":435,"s":0,"a":false},{"u":836,"l":206,"s":1,"a":false},{"u":741,"l":63,"s":0,"a":false},{"u":404,"l":120,"s":1,"a":true},{"u":792,"l":718,"s":0,"a":true},{"u":835,"l":721,"s":1,"a":false},{"u":947,"l":337,"s":0,"a":false},{"u":893,"l":118,"s":1,"a":true},{"u":758,"l":224,"s":0,"a":true},{"u":989,"l":500,"s":0,"a":true},{"u":643,"l":176,"s":1,"a":true},{"u":976,"l":789,"s":0,"a":false},{"u":688,"l":399,"s":0,"a":true},{"u":148,"l":118,"s":0,"a":true},{"u":871,"l":261,"s":1,"a":false},{"u":944,"l":882,"s":0,"a":true},{"u":718,"l":650,"s":0,"a":true},{"u":491,"l":467,"s":1,"a":false},{"u":353,"l":214,"s":0,"a":false},{"u":883,"l":376,"s":1,"a":true},{"u":402,"l":372,"s":0,"a":false},{"u":609,"l":522,"s":1,"a":true},{"u":554,"l":25,"s":1,"a":false},{"u":879,"l":782,"s":0,"a":true},{"u":477,"l":250,"s":1,"a":false},{"u":949,"l":334,"s":0,"a":true},{"u":983,"l":950,"s":1,"a":false},{"u":791,"l":92,"s":0,"a":false},{"u":828,"l":93,"s":1,"a":false},{"u":770,"l":488,"s":0,"a":false},{"u":813,"l":790,"s":0,"a":true},{"u":650,"l":604,"s":0,"a":true},{"u":523,"l":114,"s":1,"a":true},{"u":777,"l":566,"s":0,"a":false},{"u":807,"l":468,"s":0,"a":false},{"u":743,"l":80,"s":1,"a":true},{"u":959,"l":2,"s":0,"a":false},{"u":905,"l":368,"s":0,"a":true},{"u":900,"l":161,"s":1,"a":true},{"u":970,"l":581,"s":1,"a":true},{"u":525,"l":273,"s":0,"a":true},{"u":940,"l":833,"s":1,"a":true},{"u":797,"l":603,"s":0,"a":false},{"u":978,"l":343,"s":0,"a":false},{"u":814,"l":293,"s":1,"a":true},{"u":962,"l":668,"s":0,"a":true},{"u":849,"l":298,"s":0,"a":true},{"u":703,"l":203,"s":0,"a":false},{"u":232,"l":181,"s":1,"a":true},{"u":572,"l":256,"s":0,"a":true},{"u":852,"l":296,"s":1,"a":true},{"u":573,"l":22,"s":0,"a":false},{"u":398,"l":280,"s":0,"a":false},{"u":947,"l":743,"s":0,"a":false},{"u":952,"l":691,"s":0,"a":true},{"u":129,"l":110,"s":1,"a":false},{"u":625,"l":94,"s":0,"a":true},{"u":629,"l":346,"s":0,"a":false},{"u":972,"l":181,"s":0,"a":true},{"u":840,"l":124,"s":0,"a":true},{"u":570,"l":264,"s":1,"a":false},{"u":774,"l":691,"s":1,"a":false},{"u":392,"l":347,"s":0,"a":false},{"u":518,"l":268,"s":1,"a":false},{"u":630,"l":35,"s":1,"a":false},{"u":829,"l":708,"s":0,"a":false},{"u":998,"l":637,"s":0,"a":true},{"u":421,"l":117,"s":1,"a":false},{"u":799,"l":566,"s":1,"a":false},{"u":154,"l":137,"s":0,"a":true},{"u":755,"l":443,"s":0,"a":true},{"u":828,"l":610,"s":0,"a":false},{"u":231,"l":195,"s":0,"a":true},{"u":594,"l":266,"s":0,"a":true},{"u":767,"l":182,"s":0,"a":true},{"u":861,"l":576,"s":1,"a":false},{"u":827,"l":191,"s":0,"a":true},{"u":200,"l":97,"s":1,"a":true},{"u":588,"l":225,"s":1,"a":true},{"u":590,"l":580,"s":1,"a":true},{"u":966,"l":663,"s":0,"a":false},{"u":552,"l":279,"s":1,"a":true},{"u":601,"l":163,"s":1,"a":true},{"u":660,"l":151,"s":0,"a":true},{"u":537,"l":275,"s":1,"a":false},{"u":549,"l":271,"s":1,"a":false},{"u":893,"l":537,"s":0,"a":false},{"u":340,"l":185,"s":1,"a":false},{"u":402,"l":399,"s":1,"a":false},{"u":85,"l":72,"s":0,"a":true},{"u":719,"l":93,"s":1,"a":true},{"u":393,"l":346,"s":1,"a":true},{"u":568,"l":432,"s":0,"a":false},{"u":615,"l":555,"s":1,"a":true},{"u":921,"l":647,"s":0,"a":true},{"u":797,"l":144,"s":0,"a":false},{"u":803,"l":176,"s":0,"a":true},{"u":889,"l":696,"s":0,"a":false},{"u":289,"l":107,"s":1,"a":true},{"u":894,"l":434,"s":1,"a":false},{"u":982,"l":853,"s":1,"a":false},{"u":884,"l":122,"s":0,"a":false},{"u":794,"l":643,"s":1,"a":true},{"u":221,"l":74,"s":1,"a":true},{"u":960,"l":447,"s":1,"a":false},{"u":523,"l":144,"s":1,"a":true},{"u":759,"l":284,"s":0,"a":false},{"u":659,"l":273,"s":1,"a":true},{"u":774,"l":7,"s":0,"a":true},{"u":634,"l":591,"s":0,"a":false},{"u":816,"l":486,"s":1,"a":false},{"u":460,"l":46,"s":0,"a":true},{"u":859,"l":274,"s":1,"a":true},{"u":251,"l":10,"s":0,"a":true},{"u":674,"l":310,"s":1,"a":false},{"u":651,"l":238,"s":0,"a":true},{"u":689,"l":564,"s":1,"a":false},{"u":812,"l":382,"s":0,"a":true},{"u":324,"l":17,"s":1,"a":true},{"u":826,"l":421,"s":0,"a":false},{"u":658,"l":62,"s":0,"a":true},{"u":366,"l":262,"s":0,"a":true},{"u":924,"l":404,"s":0,"a":true},{"u":261,"l":84,"s":0,"a":false},{"u":991,"l":950,"s":0,"a":false},{"u":386,"l":285,"s":1,"a":false},{"u":573,"l":34,"s":0,"a":false},{"u":732,"l":451,"s":1,"a":true},{"u":203,"l":138,"s":0,"a":true},{"u":735,"l":336,"s":0,"a":false},{"u":333,"l":105,"s":1,"a":true},{"u":679,"l":466,"s":0,"a":true},{"u":885,"l":389,"s":0,"a":true},{"u":737,"l":315,"s":1,"a":false},{"u":746,"l":617,"s":1,"a":false},{"u":838,"l":569,"s":1,"a":false},{"u":661,"l":586,"s":1,"a":true},{"u":917,"l":868,"s":1,"a":false},{"u":862,"l":272,"s":1,"a":false},{"u":478,"l":31,"s":0,"a":false},{"u":885,"l":234,"s":0,"a":false},{"u":962,"l":225,"s":1,"a":false},{"u":385,"l":78,"s":1,"a":false},{"u":744,"l":187,"s":0,"a":true},{"u":956,"l":909,"s":1,"a":false},{"u":964,"l":751,"s":0,"a":false},{"u":431,"l":374,"s":0,"a":false},{"u":747,"l":560,"s":1,"a":false},{"u":923,"l":111,"s":1,"a":true},{"u":887,"l":79,"s":0,"a":false},{"u":175,"l":162,"s":0,"a":false},{"u":934,"l":402,"s":0,"a":false},{"u":851,"l":164,"s":0,"a":true},{"u":695,"l":510,"s":1,"a":false},{"u":465,"l":246,"s":0,"a":true},{"u":391,"l":288,"s":1,"a":true},{"u":922,"l":725,"s":1,"a":false},{"u":559,"l":114,"s":1,"a":false},{"u":759,"l":622,"s":1,"a":true},{"u":701,"l":629,"s":1,"a":true},{"u":838,"l":604,"s":1,"a":true},{"u":648,"l":18,"s":1,"a":false},{"u":650,"l":244,"s":1,"a":false},{"u":449,"l":315,"s":1,"a":false},{"u":469,"l":83,"s":1,"a":true},{"u":532,"l":419,"s":1,"a":true},{"u":845,"l":177,"s":1,"a":true},{"u":776,"l":662,"s":0,"a":false},{"u":674,"l":184,"s":1,"a":true},{"u":767,"l":144,"s":1,"a":false},{"u":431,"l":82,"s":1,"a":true},{"u":519,"l":193,"s":0,"a":true},{"u":728,"l":436,"s":0,"a":true},{"u":302,"l":157,"s":1,"a":false},{"u":121,"l":51,"s":0,"a":false},{"u":986,"l":814,"s":0,"a":false},{"u":380,"l":129,"s":0,"a":true},{"u":962,"l":508,"s":1,"a":false},{"u":884,"l":257,"s":1,"a":false},{"u":644,"l":536,"s":0,"a":true},{"u":339,"l":96,"s":0,"a":false},{"u":467,"l":412,"s":1,"a":false},{"u":851,"l":265,"s":1,"a":true},{"u":862,"l":328,"s":1,"a":false},{"u":695,"l":502,"s":0,"a":true},{"u":714,"l":331,"s":1,"a":false},{"u":897,"l":455,"s":0,"a":false},{"u":949,"l":234,"s":1,"a":true},{"u":312,"l":257,"s":1,"a":false},{"u":929,"l":492,"s":1,"a":true},{"u":631,"l":366,"s":1,"a":false},{"u":691,"l":232,"s":0,"a":false},{"u":151,"l":102,"s":0,"a":true},{"u":957,"l":230,"s":0,"a":true},{"u":690,"l":270,"s":0,"a":true},{"u":876,"l":586,"s":1,"a":true},{"u":957,"l":61,"s":1,"a":true},{"u":753,"l":135,"s":0,"a":true},{"u":803,"l":137,"s":0,"a":false},{"u":597,"l":287,"s":0,"a":false},{"u":436,"l":221,"s":0,"a":true},{"u":870,"l":713,"s":1,"a":false},{"u":617,"l":432,"s":0,"a":true},{"u":720,"l":172,"s":0,"a":false},{"u":930,"l":44,"s":0,"a":true},{"u":688,"l":133,"s":0,"a":true},{"u":160,"l":80,"s":1,"a":false},{"u":550,"l":224,"s":1,"a":true},{"u":548,"l":454,"s":1,"a":true},{"u":932,"l":176,"s":0,"a":true},{"u":553,"l":473,"s":1,"a":true},{"u":828,"l":137,"s":1,"a":false},{"u":794,"l":434,"s":1,"a":false},{"u":594,"l":36,"s":1,"a":true},{"u":361,"l":325,"s":1,"a":false},{"u":629,"l":519,"s":1,"a":false},{"u":217,"l":151,"s":0,"a":false},{"u":757,"l":639,"s":0,"a":false},{"u":938,"l":525,"s":1,"a":false},{"u":810,"l":257,"s":1,"a":true},{"u":837,"l":649,"s":0,"a":false},{"u":613,"l":95,"s":1,"a":true},{"u":646,"l":257,"s":1,"a":true},{"u":802,"l":750,"s":0,"a":false},{"u":842,"l":425,"s":1,"a":false},{"u":846,"l":514,"s":1,"a":false},{"u":562,"l":253,"s":1,"a":false},{"u":603,"l":414,"s":0,"a":false},{"u":663,"l":509,"s":1,"a":true},{"u":466,"l":452,"s":1,"a":false},{"u":934,"l":744,"s":0,"a":false},{"u":638,"l":293,"s":1,"a":false},{"u":689,"l":511,"s":1,"a":false},{"u":326,"l":320,"s":0,"a":false},{"u":467,"l":90,"s":0,"a":false},{"u":875,"l":695,"s":1,"a":false},{"u":567,"l":474,"s":0,"a":true},{"u":867,"l":764,"s":0,"a":false},{"u":411,"l":236,"s":0,"a":true},{"u":765,"l":732,"s":0,"a":true},{"u":976,"l":311,"s":1,"a":true},{"u":887,"l":428,"s":0,"a":false},{"u":161,"l":116,"s":0,"a":true},{"u":785,"l":542,"s":1,"a":true},{"u":157,"l":54,"s":0,"a":true},{"u":869,"l":310,"s":1,"a":true},{"u":826,"l":653,"s":0,"a":true},{"u":502,"l":160,"s":0,"a":false},{"u":563,"l":246,"s":0,"a":true},{"u":839,"l":736,"s":1,"a":false},{"u":996,"l":577,"s":1,"a":false},{"u":957,"l":241,"s":1,"a":false},{"u":774,"l":628,"s":1,"a":true},{"u":829,"l":417,"s":1,"a":true},{"u":886,"l":586,"s":0,"a":false},{"u":877,"l":614,"s":0,"a":false},{"u":845,"l":714,"s":0,"a":false},{"u":798,"l":793,"s":1,"a":true},{"u":804,"l":728,"s":0,"a":true},{"u":513,"l":78,"s":1,"a":true},{"u":224,"l":154,"s":0,"a":true},{"u":970,"l":132,"s":1,"a":false},{"u":713,"l":414,"s":0,"a":true},{"u":927,"l":295,"s":1,"a":true},{"u":640,"l":484,"s":0,"a":true},{"u":855,"l":63,"s":0,"a":false},{"u":624,"l":331,"s":0,"a":false},{"u":654,"l":377,"s":0,"a":false},{"u":708,"l":375,"s":0,"a":true},{"u":621,"l":324,"s":0,"a":false},{"u":816,"l":736,"s":1,"a":true},{"u":850,"l":543,"s":0,"a":true},{"u":590,"l":326,"s":0,"a":false},{"u":749,"l":273,"s":1,"a":true},{"u":893,"l":683,"s":1,"a":true},{"u":472,"l":42,"s":1,"a":false},{"u":962,"l":798,"s":1,"a":true},{"u":959,"l":306,"s":0,"a":true},{"u":460,"l":40,"s":0,"a":true},{"u":872,"l":250,"s":1,"a":true},{"u":299,"l":7,"s":0,"a":false},{"u":495,"l":354,"s":0,"a":true},{"u":155,"l":100,"s":1,"a":false},{"u":750,"l":108,"s":0,"a":true},{"u":992,"l":131,"s":1,"a":true},{"u":295,"l":286,"s":1,"a":true},{"u":335,"l":245,"s":0,"a":true},{"u":773,"l":233,"s":1,"a":true},{"u":492,"l":229,"s":0,"a":false},{"u":908,"l":814,"s":1,"a":false},{"u":405,"l":257,"s":1,"a":false},{"u":440,"l":89,"s":0,"a":false},{"u":349,"l":324,"s":0,"a":false},{"u":330,"l":234,"s":1,"a":true},{"u":690,"l":595,"s":0,"a":false},{"u":982,"l":761,"s":1,"a":true},{"u":817,"l":565,"s":0,"a":true},{"u":836,"l":351,"s":0,"a":false},{"u":718,"l":180,"s":1,"a":false},{"u":830,"l":98,"s":0,"a":false},{"u":917,"l":574,"s":0,"a":false},{"u":761,"l":388,"s":0,"a":true},{"u":637,"l":524,"s":0,"a":true},{"u":640,"l":457,"s":0,"a":false},{"u":537,"l":5,"s":0,"a":false},{"u":684,"l":132,"s":0,"a":true},{"u":439,"l":61,"s":1,"a":true},{"u":988,"l":896,"s":1,"a":false},{"u":594,"l":331,"s":0,"a":true},{"u":761,"l":738,"s":1,"a":true},{"u":523,"l":243,"s":1,"a":false},{"u":547,"l":40,"s":1,"a":false},{"u":611,"l":493,"s":1,"a":true},{"u":568,"l":452,"s":1,"a":true},{"u":463,"l":120,"s":1,"a":true},{"u":900,"l":61,"s":0,"a":true},{"u":687,"l":49,"s":0,"a":true},{"u":923,"l":524,"s":0,"a":false},{"u":750,"l":481,"s":1,"a":false},{"u":964,"l":953,"s":1,"a":true},{"u":267,"l":164,"s":1,"a":true},{"u":308,"l":89,"s":0,"a":false},{"u":598,"l":272,"s":0,"a":true},{"u":711,"l":90,"s":1,"a":false},{"u":884,"l":615,"s":1,"a":true},{"u":570,"l":49,"s":1,"a":true},{"u":826,"l":3,"s":1,"a":true},{"u":837,"l":528,"s":0,"a":true},{"u":635,"l":8,"s":0,"a":false},{"u":779,"l":60,"s":1,"a":true},{"u":558,"l":308,"s":0,"a":true},{"u":644,"l":342,"s":1,"a":false},{"u":870,"l":719,"s":1,"a":false},{"u":835,"l":165,"s":1,"a":true},{"u":572,"l":25,"s":1,"a":false},{"u":870,"l":828,"s":0,"a":true},{"u":976,"l":881,"s":1,"a":false},{"u":903,"l":597,"s":0,"a":true},{"u":937,"l":511,"s":0,"a":false},{"u":435,"l":68,"s":1,"a":true},{"u":899,"l":641,"s":0,"a":false},{"u":597,"l":249,"s":1,"a":true},{"u":354,"l":200,"s":0,"a":false},{"u":579,"l":189,"s":0,"a":true},{"u":947,"l":309,"s":1,"a":false},{"u":599,"l":297,"s":0,"a":true},{"u":533,"l":121,"s":0,"a":true},{"u":966,"l":603,"s":1,"a":false},{"u":166,"l":149,"s":1,"a":true},{"u":787,"l":475,"s":0,"a":false},{"u":459,"l":387,"s":1,"a":false},{"u":612,"l":19,"s":0,"a":true},{"u":343,"l":158,"s":0,"a":false},{"u":751,"l":737,"s":0,"a":false},{"u":960,"l":420,"s":1,"a":false},{"u":640,"l":563,"s":1,"a":true},{"u":185,"l":17,"s":0,"a":true},{"u":674,"l":535,"s":1,"a":true},{"u":768,"l":720,"s":0,"a":false},{"u":604,"l":513,"s":1,"a":true},{"u":109,"l":3,"s":0,"a":true},{"u":952,"l":244,"s":1,"a":true},{"u":689,"l":679,"s":0,"a":false},{"u":808,"l":432,"s":1,"a":true},{"u":602,"l":135,"s":1,"a":true},{"u":749,"l":671,"s":0,"a":true},{"u":527,"l":1,"s":1,"a":true},{"u":418,"l":44,"s":0,"a":true},{"u":699,"l":369,"s":0,"a":false},{"u":383,"l":261,"s":1,"a":false},{"u":110,"l":4,"s":1,"a":false},{"u":585,"l":152,"s":0,"a":true},{"u":876,"l":692,"s":0,"a":false},{"u":760,"l":759,"s":0,"a":true},{"u":628,"l":551,"s":1,"a":true},{"u":740,"l":713,"s":0,"a":true},{"u":883,"l":526,"s":0,"a":true},{"u":828,"l":167,"s":0,"a":false},{"u":836,"l":712,"s":1,"a":false},{"u":687,"l":482,"s":1,"a":true},{"u":247,"l":47,"s":0,"a":true},{"u":495,"l":113,"s":1,"a":true},{"u":806,"l":682,"s":1,"a":false},{"u":688,"l":8,"s":1,"a":true},{"u":747,"l":631,"s":0,"a":true},{"u":558,"l":216,"s":0,"a":false},{"u":982,"l":969,"s":1,"a":true},{"u":829,"l":410,"s":1,"a":true},{"u":995,"l":304,"s":1,"a":false},{"u":902,"l":55,"s":1,"a":false},{"u":663,"l":570,"s":1,"a":false},{"u":903,"l":338,"s":1,"a":true},{"u":571,"l":77,"s":1,"a":false},{"u":903,"l":93,"s":1,"a":true},{"u":705,"l":427,"s":0,"a":true},{"u":374,"l":146,"s":1,"a":false},{"u":155,"l":66,"s":1,"a":false},{"u":734,"l":732,"s":0,"a":false},{"u":716,"l":215,"s":1,"a":false},{"u":293,"l":208,"s":1,"a":true},{"u":958,"l":464,"s":0,"a":true},{"u":881,"l":442,"s":1,"a":false},{"u":249,"l":131,"s":1,"a":true},{"u":253,"l":1,"s":1,"a":false},{"u":456,"l":225,"s":0,"a":false},{"u":589,"l":226,"s":0,"a":true},{"u":343,"l":5,"s":0,"a":false},{"u":904,"l":741,"s":0,"a":false},{"u":279,"l":16,"s":1,"a":true},{"u":383,"l":369,"s":1,"a":true},{"u":775,"l":216,"s":1,"a":false},{"u":938,"l":195,"s":0,"a":false},{"u":901,"l":456,"s":0,"a":true},{"u":552,"l":310,"s":1,"a":true},{"u":230,"l":75,"s":1,"a":true},{"u":679,"l":280,"s":1,"a":false},{"u":895,"l":708,"s":1,"a":false},{"u":841,"l":252,"s":1,"a":true},{"u":596,"l":142,"s":0,"a":false},{"u":664,"l":130,"s":1,"a":true},{"u":603,"l":319,"s":0,"a":false},{"u":535,"l":464,"s":1,"a":true},{"u":618,"l":327,"s":1,"a":false},{"u":881,"l":431,"s":0,"a":false},{"u":842,"l":196,"s":0,"a":false},{"u":909,"l":801,"s":1,"a":false},{"u":836,"l":734,"s":1,"a":false},{"u":367,"l":163,"s":1,"a":false},{"u":549,"l":10,"s":0,"a":false},{"u":463,"l":269,"s":0,"a":false},{"u":722,"l":337,"s":1,"a":true},{"u":640,"l":544,"s":1,"a":true},{"u":938,"l":232,"s":0,"a":false},{"u":307,"l":87,"s":0,"a":false},{"u":847,"l":730,"s":1,"a":false},{"u":720,"l":296,"s":1,"a":false},{"u":532,"l":287,"s":0,"a":false},{"u":864,"l":771,"s":1,"a":false},{"u":555,"l":250,"s":0,"a":false},{"u":812,"l":212,"s":0,"a":false},{"u":816,"l":48,"s":1,"a":false},{"u":760,"l":395,"s":0,"a":false},{"u":713,"l":404,"s":1,"a":true},{"u":568,"l":201,"s":0,"a":true},{"u":464,"l":433,"s":0,"a":false},{"u":967,"l":832,"s":1,"a":false},{"u":623,"l":305,"s":1,"a":true},{"u":486,"l":131,"s":1,"a":false},{"u":861,"l":483,"s":0,"a":true},{"u":981,"l":245,"s":1,"a":true},{"u":823,"l":99,"s":0,"a":true},{"u":317,"l":204,"s":1,"a":true},{"u":387,"l":85,"s":0,"a":false},{"u":628,"l":462,"s":1,"a":true},{"u":825,"l":642,"s":0,"a":false},{"u":364,"l":39,"s":0,"a":true},{"u":865,"l":273,"s":1,"a":false},{"u":611,"l":39,"s":0,"a":true},{"u":303,"l":39,"s":0,"a":false},{"u":651,"l":491,"s":0,"a":true},{"u":167,"l":162,"s":0,"a":false},{"u":706,"l":353,"s":0,"a":false},{"u":715,"l":143,"s":1,"a":false},{"u":587,"l":192,"s":0,"a":true},{"u":349,"l":232,"s":1,"a":true},{"u":122,"l":5,"s":0,"a":true},{"u":512,"l":363,"s":1,"a":true},{"u":731,"l":395,"s":1,"a":false},{"u":364,"l":147,"s":0,"a":false},{"u":582,"l":98,"s":0,"a":true},{"u":932,"l":179,"s":0,"a":true},{"u":140,"l":99,"s":0,"a":false},{"u":833,"l":237,"s":0,"a":false},{"u":731,"l":480,"s":1,"a":true},{"u":701,"l":61,"s":0,"a":true},{"u":831,"l":318,"s":1,"a":false},{"u":754,"l":633,"s":0,"a":false},{"u":544,"l":121,"s":1,"a":false},{"u":771,"l":604,"s":1,"a":false},{"u":933,"l":408,"s":1,"a":true},{"u":912,"l":653,"s":1,"a":true},{"u":854,"l":700,"s":0,"a":false},{"u":953,"l":30,"s":0,"a":false},{"u":809,"l":671,"s":1,"a":false},{"u":985,"l":288,"s":1,"a":true},{"u":588,"l":170,"s":1,"a":false},{"u":923,"l":597,"s":0,"a":true},{"u":698,"l":190,"s":1,"a":false},{"u":860,"l":843,"s":1,"a":true},{"u":862,"l":696,"s":1,"a":false},{"u":429,"l":190,"s":1,"a":true},{"u":505,"l":101,"s":0,"a":false},{"u":605,"l":161,"s":0,"a":true},{"u":135,"l":57,"s":0,"a":false},{"u":428,"l":258,"s":0,"a":false},{"u":546,"l":542,"s":0,"a":true},{"u":851,"l":57,"s":1,"a":true},{"u":823,"l":524,"s":0,"a":false},{"u":511,"l":381,"s":1,"a":true},{"u":990,"l":16,"s":1,"a":false},{"u":509,"l":184,"s":1,"a":true},{"u":919,"l":717,"s":1,"a":true},{"u":940,"l":472,"s":0,"a":false},{"u":658,"l":56,"s":1,"a":false},{"u":820,"l":328,"s":1,"a":true},{"u":635,"l":140,"s":1,"a":false},{"u":963,"l":761,"s":1,"a":true},{"u":982,"l":680,"s":1,"a":true},{"u":543,"l":379,"s":0,"a":false},{"u":897,"l":430,"s":0,"a":true},{"u":742,"l":389,"s":0,"a":true},{"u":637,"l":438,"s":0,"a":false},{"u":690,"l":351,"s":0,"a":true},{"u":929,"l":606,"s":1,"a":true},{"u":709,"l":511,"s":1,"a":false},{"u":184,"l":104,"s":1,"a":true},{"u":519,"l":251,"s":0,"a":true},{"u":717,"l":420,"s":0,"a":true},{"u":828,"l":739,"s":0,"a":false},{"u":732,"l":70,"s":1,"a":false},{"u":948,"l":729,"s":0,"a":false},{"u":284,"l":232,"s":1,"a":true},{"u":379,"l":279,"s":0,"a":true},{"u":382,"l":18,"s":0,"a":false},{"u":190,"l":62,"s":0,"a":false},{"u":859,"l":616,"s":0,"a":true},{"u":793,"l":563,"s":1,"a":true},{"u":777,"l":320,"s":0,"a":false},{"u":442,"l":110,"s":0,"a":false},{"u":596,"l":502,"s":0,"a":true},{"u":651,"l":434,"s":0,"a":true},{"u":955,"l":194,"s":1,"a":true},{"u":593,"l":411,"s":0,"a":true},{"u":821,"l":744,"s":0,"a":false},{"u":602,"l":128,"s":1,"a":false},{"u":145,"l":58,"s":1,"a":true},{"u":706,"l":390,"s":1,"a":true},{"u":953,"l":187,"s":0,"a":true},{"u":626,"l":481,"s":1,"a":false},{"u":652,"l":207,"s":0,"a":true},{"u":772,"l":677,"s":1,"a":false},{"u":906,"l":580,"s":1,"a":true},{"u":281,"l":36,"s":1,"a":false},{"u":120,"l":15,"s":0,"a":true},{"u":562,"l":243,"s":0,"a":true},{"u":995,"l":916,"s":1,"a":true},{"u":899,"l":755,"s":1,"a":false},{"u":573,"l":337,"s":1,"a":true},{"u":866,"l":300,"s":1,"a":true},{"u":966,"l":550,"s":1,"a":true},{"u":765,"l":740,"s":1,"a":true},{"u":851,"l":292,"s":1,"a":true},{"u":933,"l":489,"s":0,"a":true},{"u":971,"l":505,"s":0,"a":true},{"u":800,"l":111,"s":0,"a":true},{"u":519,"l":255,"s":1,"a":false},{"u":620,"l":131,"s":0,"a":false},{"u":926,"l":20,"s":0,"a":false},{"u":669,"l":205,"s":1,"a":false},{"u":461,"l":364,"s":0,"a":false},{"u":986,"l":488,"s":0,"a":true},{"u":638,"l":480,"s":0,"a":true},{"u":860,"l":391,"s":0,"a":true},{"u":491,"l":214,"s":0,"a":true},{"u":528,"l":307,"s":0,"a":false},{"u":660,"l":405,"s":1,"a":false},{"u":944,"l":719,"s":0,"a":false},{"u":671,"l":152,"s":0,"a":false},{"u":720,"l":296,"s":1,"a":true},{"u":813,"l":593,"s":1,"a":true},{"u":946,"l":506,"s":0,"a":true},{"u":565,"l":286,"s":0,"a":true},{"u":568,"l":200,"s":0,"a":true},{"u":788,"l":81,"s":1,"a":false},{"u":825,"l":653,"s":0,"a":true},{"u":966,"l":108,"s":1,"a":true},{"u":290,"l":124,"s":1,"a":true},{"u":705,"l":24,"s":0,"a":false},{"u":580,"l":309,"s":0,"a":false},{"u":895,"l":540,"s":0,"a":false},{"u":594,"l":178,"s":1,"a":true},{"u":664,"l":144,"s":0,"a":true},{"u":949,"l":626,"s":1,"a":true},{"u":260,"l":129,"s":1,"a":true},{"u":756,"l":56,"s":0,"a":false},{"u":265,"l":180,"s":1,"a":true},{"u":822,"l":481,"s":0,"a":false},{"u":650,"l":213,"s":0,"a":false},{"u":574,"l":525,"s":1,"a":true},{"u":602,"l":95,"s":0,"a":false},{"u":981,"l":343,"s":0,"a":false},{"u":567,"l":517,"s":0,"a":false},{"u":617,"l":296,"s":1,"a":true},{"u":608,"l":176,"s":0,"a":true},{"u":330,"l":225,"s":1,"a":false},{"u":89,"l":46,"s":1,"a":true},{"u":984,"l":764,"s":1,"a":false},{"u":716,"l":572,"s":0,"a":true},{"u":273,"l":142,"s":1,"a":true},{"u":879,"l":564,"s":0,"a":true},{"u":741,"l":191,"s":1,"a":true},{"u":279,"l":251,"s":0,"a":false},{"u":377,"l":239,"s":0,"a":true},{"u":996,"l":984,"s":1,"a":false},{"u":605,"l":515,"s":0,"a":false},{"u":748,"l":721,"s":1,"a":false},{"u":208,"l":199,"s":0,"a":true},{"u":889,"l":689,"s":0,"a":true},{"u":319,"l":302,"s":1,"a":true},{"u":571,"l":348,"s":1,"a":true},{"u":728,"l":163,"s":1,"a":true},{"u":520,"l":170,"s":1,"a":false},{"u":619,"l":390,"s":0,"a":true},{"u":405,"l":96,"s":1,"a":true},{"u":646,"l":382,"s":1,"a":true},{"u":344,"l":340,"s":0,"a":true},{"u":931,"l":512,"s":0,"a":true},{"u":848,"l":316,"s":1,"a":true},{"u":334,"l":152,"s":0,"a":true},{"u":811,"l":348,"s":1,"a":true},{"u":324,"l":51,"s":0,"a":true},{"u":552,"l":283,"s":0,"a":false},{"u":235,"l":146,"s":0,"a":true},{"u":997,"l":584,"s":1,"a":false},{"u":970,"l":926,"s":1,"a":false},{"u":929,"l":407,"s":1,"a":false},{"u":999,"l":438,"s":1,"a":true},{"u":552,"l":68,"s":0,"a":false},{"u":744,"l":413,"s":0,"a":true},{"u":895,"l":245,"s":1,"a":false},{"u":977,"l":695,"s":0,"a":true},{"u":907,"l":662,"s":1,"a":true},{"u":554,"l":254,"s":1,"a":true},{"u":207,"l":136,"s":0,"a":false},{"u":803,"l":291,"s":1,"a":false},{"u":827,"l":7,"s":1,"a":true},{"u":839,"l":303,"s":1,"a":false},{"u":977,"l":843,"s":1,"a":true},{"u":860,"l":717,"s":0,"a":false},{"u":813,"l":80,"s":0,"a":false},{"u":678,"l":317,"s":1,"a":true},{"u":986,"l":693,"s":0,"a":true},{"u":630,"l":275,"s":1,"a":false},{"u":608,"l":166,"s":0,"a":false},{"u":369,"l":264,"s":0,"a":true},{"u":749,"l":244,"s":0,"a":false},{"u":802,"l":251,"s":0,"a":true},{"u":536,"l":8,"s":0,"a":true},{"u":982,"l":148,"s":0,"a":false},{"u":511,"l":287,"s":0,"a":true},{"u":830,"l":667,"s":1,"a":false},{"u":941,"l":835,"s":0,"a":false},{"u":842,"l":521,"s":1,"a":false},{"u":166,"l":88,"s":1,"a":false},{"u":904,"l":49,"s":1,"a":false},{"u":899,"l":671,"s":1,"a":false},{"u":986,"l":511,"s":0,"a":true},{"u":992,"l":258,"s":1,"a":false},{"u":103,"l":66,"s":1,"a":false},{"u":426,"l":338,"s":1,"a":true},{"u":641,"l":571,"s":0,"a":true},{"u":537,"l":377,"s":1,"a":false},{"u":597,"l":319,"s":1,"a":false},{"u":827,"l":661,"s":0,"a":true},{"u":324,"l":96,"s":1,"a":true},{"u":325,"l":285,"s":1,"a":false},{"u":544,"l":531,"s":1,"a":false},{"u":813,"l":14,"s":1,"a":false},{"u":683,"l":362,"s":0,"a":false},{"u":532,"l":132,"s":1,"a":false},{"u":992,"l":651,"s":0,"a":false},{"u":889,"l":491,"s":1,"a":false},{"u":886,"l":495,"s":1,"a":false},{"u":932,"l":679,"s":0,"a":true},{"u":758,"l":733,"s":0,"a":false},{"u":570,"l":52,"s":1,"a":true},{"u":398,"l":23,"s":1,"a":true},{"u":955,"l":770,"s":0,"a":false},{"u":907,"l":568,"s":1,"a":false},{"u":321,"l":73,"s":0,"a":false},{"u":961,"l":897,"s":1,"a":true},{"u":836,"l":220,"s":1,"a":true},{"u":602,"l":133,"s":1,"a":false},{"u":748,"l":374,"s":1,"a":true},{"u":925,"l":35,"s":1,"a":false},{"u":866,"l":589,"s":0,"a":false},{"u":996,"l":386,"s":1,"a":true},{"u":707,"l":113,"s":1,"a":true},{"u":477,"l":258,"s":1,"a":false},{"u":955,"l":432,"s":0,"a":true},{"u":906,"l":93,"s":0,"a":false},{"u":897,"l":225,"s":1,"a":false},{"u":742,"l":410,"s":0,"a":true},{"u":418,"l":4,"s":1,"a":true},{"u":309,"l":79,"s":0,"a":true},{"u":774,"l":380,"s":0,"a":false},{"u":819,"l":598,"s":0,"a":false},{"u":857,"l":86,"s":1,"a":false},{"u":658,"l":413,"s":1,"a":false},{"u":289,"l":80,"s":1,"a":true},{"u":606,"l":539,"s":0,"a":true},{"u":536,"l":386,"s":0,"a":false},{"u":534,"l":173,"s":1,"a":true},{"u":971,"l":43,"s":0,"a":true},{"u":661,"l":657,"s":1,"a":true},{"u":978,"l":879,"s":1,"a":false},{"u":549,"l":335,"s":1,"a":false},{"u":578,"l":397,"s":1,"a":false},{"u":846,"l":98,"s":1,"a":false},{"u":299,"l":90,"s":0,"a":true},{"u":746,"l":606,"s":0,"a":true},{"u":979,"l":96,"s":0,"a":true},{"u":960,"l":916,"s":0,"a":false},{"u":642,"l":447,"s":0,"a":false},{"u":662,"l":68,"s":0,"a":false},{"u":573,"l":551,"s":0,"a":true},{"u":905,"l":378,"s":1,"a":false},{"u":901,"l":159,"s":0,"a":true},{"u":317,"l":308,"s":1,"a":false},{"u":554,"l":270,"s":0,"a":true},{"u":867,"l":689,"s":0,"a":false},{"u":798,"l":463,"s":0,"a":false},{"u":908,"l":793,"s":1,"a":false},{"u":427,"l":279,"s":0,"a":false},{"u":345,"l":331,"s":1,"a":false},{"u":927,"l":497,"s":1,"a":false},{"u":955,"l":540,"s":0,"a":false},{"u":667,"l":185,"s":1,"a":true},{"u":689,"l":550,"s":1,"a":true},{"u":853,"l":409,"s":1,"a":false},{"u":971,"l":671,"s":0,"a":true},{"u":352,"l":7,"s":0,"a":true},{"u":690,"l":76,"s":0,"a":true},{"u":718,"l":298,"s":0,"a":true},{"u":646,"l":290,"s":1,"a":false},{"u":374,"l":20,"s":0,"a":true},{"u":802,"l":66,"s":1,"a":false},{"u":628,"l":148,"s":0,"a":false},{"u":510,"l":101,"s":0,"a":false},{"u":714,"l":386,"s":1,"a":false},{"u":593,"l":17,"s":1,"a":false},{"u":678,"l":119,"s":1,"a":true},{"u":900,"l":653,"s":0,"a":false},{"u":792,"l":778,"s":1,"a":false},{"u":496,"l":211,"s":1,"a":false},{"u":674,"l":499,"s":1,"a":true},{"u":566,"l":89,"s":1,"a":true},{"u":982,"l":940,"s":0,"a":true},{"u":260,"l":173,"s":0,"a":true},{"u":754,"l":720,"s":0,"a":false},{"u":837,"l":555,"s":1,"a":false},{"u":747,"l":297,"s":1,"a":true},{"u":462,"l":8,"s":1,"a":false},{"u":994,"l":579,"s":1,"a":false},{"u":660,"l":258,"s":1,"a":false},{"u":428,"l":39,"s":0,"a":true},{"u":894,"l":450,"s":0,"a":true},{"u":229,"l":145,"s":1,"a":true},{"u":948,"l":551,"s":1,"a":false},{"u":465,"l":20,"s":1,"a":true},{"u":998,"l":683,"s":1,"a":false},{"u":939,"l":129,"s":0,"a":true},{"u":924,"l":156,"s":0,"a":false},{"u":354,"l":223,"s":1,"a":true},{"u":885,"l":757,"s":0,"a":true},{"u":928,"l":901,"s":1,"a":true},{"u":582,"l":441,"s":0,"a":true},{"u":734,"l":371,"s":1,"a":true},{"u":754,"l":580,"s":1,"a":false},{"u":867,"l":493,"s":0,"a":true},{"u":142,"l":26,"s":1,"a":false},{"u":414,"l":275,"s":1,"a":false},{"u":193,"l":14,"s":1,"a":true},{"u":952,"l":506,"s":1,"a":true},{"u":794,"l":594,"s":0,"a":false},{"u":957,"l":743,"s":0,"a":false},{"u":767,"l":550,"s":1,"a":false},{"u":411,"l":203,"s":0,"a":false},{"u":995,"l":537,"s":0,"a":true},{"u":818,"l":309,"s":1,"a":false},{"u":819,"l":482,"s":1,"a":false},{"u":550,"l":79,"s":1,"a":true},{"u":955,"l":478,"s":0,"a":true},{"u":228,"l":221,"s":1,"a":true},{"u":286,"l":261,"s":0,"a":true},{"u":577,"l":218,"s":0,"a":true},{"u":832,"l":587,"s":1,"a":true},{"u":787,"l":554,"s":1,"a":true},{"u":611,"l":188,"s":0,"a":false},{"u":964,"l":629,"s":1,"a":false},{"u":135,"l":35,"s":1,"a":true},{"u":532,"l":522,"s":0,"a":true},{"u":814,"l":137,"s":0,"a":false},{"u":987,"l":897,"s":1,"a":false},{"u":897,"l":611,"s":0,"a":true},{"u":374,"l":225,"s":1,"a":true},{"u":702,"l":68,"s":1,"a":true},{"u":283,"l":26,"s":1,"a":true},{"u":922,"l":210,"s":0,"a":true},{"u":235,"l":126,"s":1,"a":false},{"u":163,"l":65,"s":0,"a":false},{"u":910,"l":498,"s":0,"a":false},{"u":381,"l":246,"s":0,"a":false},{"u":238,"l":105,"s":1,"a":false},{"u":289,"l":4,"s":1,"a":true},{"u":969,"l":919,"s":0,"a":true},{"u":384,"l":82,"s":0,"a":true},{"u":471,"l":121,"s":0,"a":false},{"u":839,"l":271,"s":0,"a":false},{"u":944,"l":78,"s":1,"a":false},{"u":453,"l":116,"s":1,"a":false},{"u":282,"l":165,"s":1,"a":true},{"u":896,"l":780,"s":0,"a":true},{"u":489,"l":33,"s":1,"a":false},{"u":796,"l":11,"s":0,"a":false},{"u":370,"l":319,"s":1,"a":true},{"u":538,"l":135,"s":1,"a":false},{"u":681,"l":427,"s":0,"a":false},{"u":258,"l":215,"s":0,"a":true},{"u":979,"l":829,"s":0,"a":false},{"u":375,"l":291,"s":1,"a":false},{"u":611,"l":413,"s":1,"a":true},{"u":915,"l":202,"s":0,"a":true},{"u":818,"l":488,"s":0,"a":true},{"u":884,"l":526,"s":1,"a":false},{"u":579,"l":176,"s":0,"a":false},{"u":735,"l":489,"s":0,"a":false},{"u":903,"l":607,"s":0,"a":false},{"u":783,"l":668,"s":1,"a":false},{"u":768,"l":590,"s":1,"a":true},{"u":985,"l":30,"s":1,"a":false},{"u":171,"l":40,"s":0,"a":true},{"u":799,"l":558,"s":0,"a":true},{"u":692,"l":175,"s":1,"a":false},{"u":945,"l":293,"s":1,"a":false},{"u":824,"l":163,"s":0,"a":false},{"u":409,"l":286,"s":1,"a":false},{"u":657,"l":512,"s":1,"a":false},{"u":775,"l":596,"s":1,"a":false},{"u":914,"l":87,"s":1,"a":false},{"u":868,"l":670,"s":1,"a":true},{"u":612,"l":295,"s":1,"a":true},{"u":231,"l":89,"s":0,"a":false},{"u":587,"l":568,"s":1,"a":true},{"u":672,"l":130,"s":0,"a":false},{"u":449,"l":19,"s":1,"a":true},{"u":749,"l":317,"s":0,"a":true},{"u":491,"l":80,"s":1,"a":false},{"u":856,"l":666,"s":1,"a":false},{"u":662,"l":433,"s":1,"a":true},{"u":370,"l":193,"s":0,"a":false},{"u":552,"l":191,"s":0,"a":false},{"u":673,"l":192,"s":0,"a":false},{"u":300,"l":32,"s":1,"a":true},{"u":858,"l":568,"s":0,"a":true},{"u":778,"l":628,"s":0,"a":true},{"u":160,"l":28,"s":1,"a":false},{"u":820,"l":768,"s":1,"a":false},{"u":766,"l":533,"s":1,"a":true},{"u":247,"l":68,"s":1,"a":false},{"u":537,"l":444,"s":1,"a":true},{"u":772,"l":37,"s":0,"a":false},{"u":846,"l":655,"s":1,"a":false},{"u":15,"l":6,"s":0,"a":true},{"u":914,"l":700,"s":1,"a":true},{"u":794,"l":578,"s":1,"a":true},{"u":821,"l":113,"s":1,"a":true},{"u":421,"l":26,"s":1,"a":false},{"u":565,"l":324,"s":0,"a":false},{"u":417,"l":381,"s":0,"a":true},{"u":755,"l":525,"s":1,"a":true},{"u":831,"l":487,"s":1,"a":true},{"u":677,"l":436,"s":1,"a":false},{"u":800,"l":763,"s":0,"a":false},{"u":500,"l":74,"s":1,"a":true},{"u":559,"l":191,"s":0,"a":false},{"u":670,"l":290,"s":0,"a":true},{"u":430,"l":76,"s":1,"a":false},{"u":748,"l":571,"s":0,"a":true},{"u":630,"l":340,"s":1,"a":false},{"u":771,"l":76,"s":1,"a":true},{"u":820,"l":27,"s":0,"a":false},{"u":867,"l":752,"s":1,"a":true},{"u":903,"l":832,"s":1,"a":false},{"u":669,"l":581,"s":1,"a":true},{"u":852,"l":599,"s":0,"a":true},{"u":742,"l":600,"s":1,"a":true},{"u":958,"l":523,"s":0,"a":true},{"u":873,"l":735,"s":1,"a":false},{"u":355,"l":73,"s":1,"a":true},{"u":651,"l":569,"s":1,"a":true},{"u":897,"l":194,"s":0,"a":true},{"u":782,"l":80,"s":0,"a":true},{"u":899,"l":545,"s":1,"a":true},{"u":488,"l":261,"s":1,"a":false},{"u":653,"l":92,"s":0,"a":true},{"u":560,"l":198,"s":0,"a":false},{"u":684,"l":350,"s":1,"a":false},{"u":282,"l":207,"s":0,"a":true},{"u":442,"l":23,"s":0,"a":false},{"u":268,"l":183,"s":1,"a":true},{"u":660,"l":12,"s":1,"a":true},{"u":344,"l":52,"s":0,"a":false},{"u":421,"l":262,"s":0,"a":true},{"u":921,"l":778,"s":1,"a":true},{"u":364,"l":47,"s":1,"a":true},{"u":966,"l":743,"s":1,"a":true},{"u":214,"l":39,"s":1,"a":false},{"u":805,"l":803,"s":1,"a":false},{"u":419,"l":62,"s":1,"a":false},{"u":809,"l":787,"s":1,"a":true},{"u":899,"l":656,"s":1,"a":true},{"u":540,"l":349,"s":0,"a":false},{"u":491,"l":116,"s":0,"a":true},{"u":881,"l":175,"s":1,"a":true},{"u":744,"l":259,"s":0,"a":false},{"u":243,"l":28,"s":0,"a":true},{"u":647,"l":208,"s":0,"a":false},{"u":134,"l":96,"s":1,"a":true},{"u":718,"l":477,"s":1,"a":false},{"u":857,"l":334,"s":0,"a":true},{"u":243,"l":222,"s":0,"a":false},{"u":368,"l":153,"s":1,"a":true},{"u":249,"l":107,"s":1,"a":false},{"u":711,"l":339,"s":0,"a":true},{"u":34,"l":28,"s":0,"a":false},{"u":908,"l":312,"s":0,"a":true},{"u":862,"l":738,"s":1,"a":true},{"u":714,"l":554,"s":0,"a":true},{"u":946,"l":332,"s":0,"a":true},{"u":871,"l":802,"s":1,"a":false},{"u":638,"l":473,"s":1,"a":true},{"u":628,"l":471,"s":1,"a":false},{"u":833,"l":481,"s":1,"a":false},{"u":493,"l":345,"s":1,"a":false},{"u":576,"l":8,"s":1,"a":true},{"u":691,"l":350,"s":0,"a":false},{"u":705,"l":413,"s":0,"a":true},{"u":602,"l":396,"s":0,"a":false},{"u":296,"l":281,"s":1,"a":true},{"u":628,"l":438,"s":0,"a":false},{"u":458,"l":442,"s":1,"a":false},{"u":529,"l":373,"s":1,"a":true},{"u":676,"l":45,"s":0,"a":true},{"u":883,"l":43,"s":1,"a":false},{"u":975,"l":742,"s":1,"a":true},{"u":717,"l":86,"s":1,"a":true},{"u":953,"l":32,"s":1,"a":true},{"u":988,"l":56,"s":1,"a":true},{"u":616,"l":169,"s":0,"a":true},{"u":829,"l":604,"s":1,"a":false},{"u":386,"l":192,"s":0,"a":false},{"u":914,"l":779,"s":1,"a":true},{"u":570,"l":546,"s":0,"a":false},{"u":857,"l":683,"s":1,"a":false},{"u":650,"l":67,"s":1,"a":false},{"u":449,"l":180,"s":1,"a":false},{"u":452,"l":376,"s":0,"a":true},{"u":609,"l":308,"s":0,"a":false},{"u":819,"l":208,"s":1,"a":false},{"u":679,"l":207,"s":1,"a":true},{"u":613,"l":536,"s":1,"a":true},{"u":474,"l":175,"s":0,"a":true},{"u":408,"l":42,"s":1,"a":false},{"u":926,"l":474,"s":1,"a":false},{"u":806,"l":297,"s":0,"a":false},{"u":724,"l":477,"s":0,"a":false},{"u":791,"l":334,"s":0,"a":false},{"u":842,"l":101,"s":1,"a":false},{"u":340,"l":271,"s":1,"a":true},{"u":139,"l":68,"s":1,"a":true},{"u":625,"l":145,"s":1,"a":true},{"u":614,"l":109,"s":0,"a":false},{"u":543,"l":153,"s":1,"a":true},{"u":886,"l":678,"s":0,"a":false},{"u":243,"l":15,"s":0,"a":true},{"u":978,"l":687,"s":0,"a":false},{"u":320,"l":312,"s":1,"a":true},{"u":775,"l":719,"s":0,"a":true},{"u":832,"l":639,"s":1,"a":true},{"u":883,"l":634,"s":1,"a":true},{"u":974,"l":230,"s":1,"a":false},{"u":458,"l":104,"s":1,"a":true},{"u":856,"l":452,"s":1,"a":false},{"u":619,"l":444,"s":0,"a":false},{"u":805,"l":608,"s":0,"a":true},{"u":805,"l":773,"s":1,"a":true},{"u":978,"l":27,"s":1,"a":false},{"u":704,"l":570,"s":1,"a":true},{"u":884,"l":25,"s":0,"a":false},{"u":950,"l":456,"s":1,"a":true},{"u":871,"l":247,"s":0,"a":false},{"u":937,"l":879,"s":0,"a":true},{"u":721,"l":598,"s":0,"a":false},{"u":451,"l":68,"s":1,"a":false},{"u":317,"l":246,"s":0,"a":true},{"u":901,"l":891,"s":1,"a":false},{"u":820,"l":272,"s":1,"a":true},{"u":316,"l":218,"s":0,"a":false},{"u":805,"l":48,"s":0,"a":true},{"u":470,"l":312,"s":1,"a":true},{"u":978,"l":502,"s":0,"a":true},{"u":546,"l":206,"s":1,"a":false},{"u":991,"l":583,"s":0,"a":true},{"u":320,"l":259,"s":0,"a":false},{"u":800,"l":574,"s":1,"a":false},{"u":771,"l":506,"s":0,"a":true},{"u":762,"l":5,"s":1,"a":true},{"u":240,"l":42,"s":1,"a":true},{"u":845,"l":276,"s":1,"a":false},{"u":812,"l":742,"s":1,"a":true},{"u":951,"l":186,"s":1,"a":false},{"u":646,"l":105,"s":1,"a":true},{"u":762,"l":73,"s":1,"a":true},{"u":743,"l":581,"s":1,"a":true},{"u":644,"l":200,"s":0,"a":true},{"u":876,"l":402,"s":0,"a":false},{"u":628,"l":75,"s":0,"a":true},{"u":998,"l":43,"s":1,"a":true},{"u":431,"l":172,"s":0,"a":false},{"u":894,"l":476,"s":1,"a":false},{"u":836,"l":57,"s":0,"a":false},{"u":74,"l":11,"s":1,"a":false},{"u":784,"l":198,"s":0,"a":false},{"u":214,"l":198,"s":0,"a":true},{"u":793,"l":782,"s":0,"a":false},{"u":716,"l":216,"s":1,"a":true},{"u":579,"l":534,"s":0,"a":true},{"u":627,"l":560,"s":0,"a":true},{"u":207,"l":91,"s":1,"a":true},{"u":521,"l":413,"s":1,"a":false},{"u":182,"l":139,"s":1,"a":false},{"u":701,"l":269,"s":1,"a":true},{"u":664,"l":351,"s":0,"a":false},{"u":815,"l":90,"s":0,"a":false},{"u":953,"l":923,"s":1,"a":false},{"u":557,"l":242,"s":0,"a":false},{"u":551,"l":222,"s":0,"a":false},{"u":995,"l":255,"s":0,"a":true},{"u":414,"l":329,"s":0,"a":false},{"u":490,"l":437,"s":0,"a":true},{"u":623,"l":472,"s":0,"a":false},{"u":840,"l":664,"s":1,"a":false},{"u":535,"l":343,"s":1,"a":false},{"u":491,"l":303,"s":1,"a":false},{"u":722,"l":541,"s":0,"a":false},{"u":763,"l":393,"s":1,"a":false},{"u":768,"l":764,"s":0,"a":true},{"u":229,"l":25,"s":0,"a":false},{"u":989,"l":928,"s":1,"a":true},{"u":323,"l":286,"s":0,"a":false},{"u":676,"l":481,"s":1,"a":true},{"u":164,"l":79,"s":1,"a":false},{"u":429,"l":342,"s":0,"a":false},{"u":405,"l":351,"s":1,"a":false},{"u":376,"l":262,"s":1,"a":true},{"u":953,"l":859,"s":0,"a":true},{"u":772,"l":291,"s":1,"a":false},{"u":753,"l":699,"s":0,"a":false},{"u":362,"l":64,"s":1,"a":true},{"u":841,"l":602,"s":0,"a":false},{"u":912,"l":143,"s":0,"a":true},{"u":364,"l":207,"s":1,"a":true},{"u":878,"l":740,"s":1,"a":false},{"u":756,"l":691,"s":0,"a":true},{"u":288,"l":50,"s":1,"a":true},{"u":411,"l":211,"s":1,"a":true},{"u":681,"l":170,"s":1,"a":true},{"u":884,"l":80,"s":0,"a":true},{"u":344,"l":263,"s":0,"a":false},{"u":276,"l":256,"s":1,"a":true},{"u":480,"l":71,"s":0,"a":false},{"u":289,"l":34,"s":0,"a":true},{"u":519,"l":169,"s":1,"a":true},{"u":881,"l":770,"s":1,"a":false},{"u":616,"l":68,"s":0,"a":false},{"u":957,"l":62,"s":1,"a":true},{"u":726,"l":482,"s":1,"a":true},{"u":881,"l":637,"s":0,"a":true},{"u":971,"l":203,"s":0,"a":true},{"u":338,"l":242,"s":1,"a":true},{"u":695,"l":370,"s":1,"a":true},{"u":296,"l":143,"s":0,"a":true},{"u":879,"l":546,"s":0,"a":true},{"u":967,"l":748,"s":1,"a":false},{"u":973,"l":135,"s":0,"a":false},{"u":251,"l":150,"s":0,"a":true},{"u":862,"l":13,"s":0,"a":true},{"u":972,"l":689,"s":0,"a":false},{"u":317,"l":2,"s":0,"a":false},{"u":962,"l":783,"s":1,"a":true},{"u":707,"l":209,"s":1,"a":false},{"u":807,"l":375,"s":0,"a":false},{"u":229,"l":38,"s":0,"a":true},{"u":856,"l":444,"s":1,"a":true},{"u":341,"l":337,"s":1,"a":true},{"u":939,"l":59,"s":1,"a":false},{"u":855,"l":124,"s":1,"a":false},{"u":411,"l":308,"s":0,"a":true},{"u":897,"l":90,"s":0,"a":true},{"u":918,"l":598,"s":1,"a":false},{"u":818,"l":316,"s":0,"a":true},{"u":427,"l":293,"s":0,"a":false},{"u":588,"l":385,"s":1,"a":true},{"u":759,"l":432,"s":1,"a":false},{"u":818,"l":17,"s":0,"a":false},{"u":497,"l":51,"s":1,"a":false},{"u":301,"l":179,"s":1,"a":false},{"u":954,"l":303,"s":0,"a":false},{"u":981,"l":805,"s":1,"a":true},{"u":908,"l":579,"s":1,"a":false},{"u":182,"l":120,"s":0,"a":false},{"u":750,"l":317,"s":1,"a":true},{"u":537,"l":227,"s":1,"a":false},{"u":650,"l":488,"s":0,"a":true},{"u":833,"l":780,"s":0,"a":false},{"u":591,"l":68,"s":1,"a":false},{"u":997,"l":402,"s":0,"a":true},{"u":550,"l":514,"s":0,"a":true},{"u":591,"l":410,"s":0,"a":true},{"u":965,"l":282,"s":1,"a":false},{"u":946,"l":83,"s":1,"a":true},{"u":336,"l":118,"s":1,"a":false},{"u":848,"l":409,"s":0,"a":true},{"u":569,"l":301,"s":1,"a":false},{"u":680,"l":585,"s":1,"a":true},{"u":825,"l":542,"s":0,"a":true},{"u":638,"l":395,"s":0,"a":false},{"u":433,"l":277,"s":1,"a":true},{"u":403,"l":248,"s":1,"a":false},{"u":849,"l":538,"s":0,"a":false},{"u":682,"l":149,"s":0,"a":false},{"u":743,"l":126,"s":1,"a":false},{"u":657,"l":9,"s":0,"a":false},{"u":586,"l":322,"s":0,"a":true},{"u":819,"l":370,"s":1,"a":true},{"u":785,"l":615,"s":1,"a":false},{"u":781,"l":641,"s":1,"a":false},{"u":964,"l":930,"s":1,"a":true},{"u":947,"l":446,"s":0,"a":false},{"u":252,"l":131,"s":1,"a":true},{"u":904,"l":638,"s":0,"a":false},{"u":773,"l":260,"s":1,"a":true},{"u":375,"l":243,"s":0,"a":false},{"u":393,"l":284,"s":0,"a":true},{"u":855,"l":525,"s":1,"a":false},{"u":369,"l":228,"s":0,"a":true},{"u":712,"l":32,"s":0,"a":false},{"u":508,"l":351,"s":0,"a":true},{"u":527,"l":289,"s":0,"a":false},{"u":762,"l":483,"s":1,"a":true},{"u":651,"l":362,"s":0,"a":true},{"u":912,"l":383,"s":0,"a":false},{"u":854,"l":569,"s":0,"a":false},{"u":673,"l":485,"s":0,"a":true},{"u":759,"l":475,"s":0,"a":false},{"u":438,"l":343,"s":0,"a":true},{"u":889,"l":756,"s":1,"a":true},{"u":706,"l":408,"s":1,"a":false},{"u":650,"l":558,"s":1,"a":true},{"u":584,"l":28,"s":1,"a":true},{"u":383,"l":359,"s":0,"a":false},{"u":460,"l":306,"s":1,"a":false},{"u":573,"l":441,"s":1,"a":false},{"u":965,"l":893,"s":0,"a":true},{"u":535,"l":59,"s":1,"a":false},{"u":528,"l":255,"s":1,"a":false},{"u":419,"l":14,"s":0,"a":true},{"u":564,"l":490,"s":0,"a":false},{"u":747,"l":439,"s":1,"a":true},{"u":717,"l":316,"s":1,"a":false},{"u":708,"l":304,"s":1,"a":false},{"u":722,"l":449,"s":0,"a":true},{"u":876,"l":784,"s":1,"a":true},{"u":960,"l":865,"s":0,"a":true},{"u":784,"l":356,"s":1,"a":false},{"u":867,"l":248,"s":0,"a":true},{"u":804,"l":670,"s":1,"a":false},{"u":499,"l":415,"s":0,"a":true},{"u":873,"l":658,"s":1,"a":false},{"u":415,"l":215,"s":1,"a":true},{"u":360,"l":209,"s":0,"a":true},{"u":459,"l":364,"s":1,"a":false},{"u":502,"l":53,"s":1,"a":false},{"u":850,"l":178,"s":0,"a":true},{"u":987,"l":126,"s":1,"a":false},{"u":791,"l":117,"s":1,"a":false},{"u":741,"l":22,"s":1,"a":true},{"u":739,"l":174,"s":1,"a":true},{"u":617,"l":171,"s":1,"a":true},{"u":721,"l":63,"s":0,"a":false},{"u":687,"l":107,"s":0,"a":true},{"u":930,"l":458,"s":1,"a":false},{"u":772,"l":164,"s":1,"a":false},{"u":684,"l":260,"s":1,"a":false},{"u":215,"l":55,"s":1,"a":true},{"u":699,"l":662,"s":1,"a":false},{"u":942,"l":729,"s":0,"a":false},{"u":868,"l":570,"s":0,"a":false},{"u":457,"l":249,"s":0,"a":true},{"u":351,"l":147,"s":1,"a":false},{"u":120,"l":28,"s":1,"a":true},{"u":218,"l":31,"s":1,"a":true},{"u":421,"l":7,"s":1,"a":true},{"u":862,"l":288,"s":0,"a":true},{"u":364,"l":1,"s":1,"a":true},{"u":926,"l":687,"s":0,"a":true},{"u":374,"l":304,"s":1,"a":true},{"u":916,"l":187,"s":1,"a":false},{"u":773,"l":88,"s":0,"a":true},{"u":362,"l":95,"s":0,"a":true},{"u":754,"l":671,"s":1,"a":true},{"u":513,"l":2,"s":0,"a":true},{"u":878,"l":802,"s":0,"a":false},{"u":779,"l":419,"s":1,"a":false},{"u":770,"l":677,"s":1,"a":false},{"u":661,"l":348,"s":1,"a":true},{"u":24,"l":14,"s":0,"a":false},{"u":953,"l":310,"s":0,"a":false},{"u":715,"l":618,"s":0,"a":false},{"u":835,"l":745,"s":1,"a":true},{"u":715,"l":112,"s":1,"a":false},{"u":529,"l":479,"s":1,"a":false},{"u":933,"l":146,"s":1,"a":false},{"u":387,"l":240,"s":1,"a":false},{"u":825,"l":165,"s":1,"a":true},{"u":830,"l":707,"s":0,"a":false},{"u":482,"l":86,"s":1,"a":false},{"u":714,"l":607,"s":0,"a":true},{"u":186,"l":122,"s":0,"a":true},{"u":651,"l":206,"s":1,"a":true},{"u":866,"l":266,"s":1,"a":true},{"u":834,"l":808,"s":0,"a":true},{"u":520,"l":185,"s":0,"a":false},{"u":786,"l":713,"s":0,"a":false},{"u":806,"l":747,"s":0,"a":true},{"u":548,"l":119,"s":1,"a":true},{"u":738,"l":558,"s":1,"a":true},{"u":818,"l":739,"s":1,"a":false},{"u":546,"l":142,"s":0,"a":false},{"u":909,"l":658,"s":0,"a":false},{"u":219,"l":196,"s":0,"a":false},{"u":867,"l":482,"s":1,"a":false},{"u":572,"l":287,"s":0,"a":false},{"u":943,"l":368,"s":1,"a":false},{"u":918,"l":510,"s":1,"a":false},{"u":367,"l":196,"s":1,"a":true},{"u":726,"l":48,"s":1,"a":true},{"u":641,"l":163,"s":1,"a":false},{"u":759,"l":679,"s":1,"a":true},{"u":736,"l":445,"s":0,"a":true},{"u":701,"l":612,"s":1,"a":true},{"u":521,"l":163,"s":0,"a":false},{"u":573,"l":250,"s":1,"a":true},{"u":577,"l":542,"s":1,"a":true},{"u":508,"l":386,"s":1,"a":false},{"u":661,"l":390,"s":1,"a":true},{"u":212,"l":11,"s":1,"a":true},{"u":323,"l":103,"s":0,"a":true},{"u":157,"l":84,"s":1,"a":false},{"u":774,"l":214,"s":0,"a":false},{"u":457,"l":385,"s":0,"a":true},{"u":994,"l":870,"s":0,"a":false},{"u":813,"l":357,"s":0,"a":true},{"u":625,"l":45,"s":0,"a":false},{"u":398,"l":82,"s":0,"a":true},{"u":983,"l":32,"s":0,"a":false},{"u":274,"l":265,"s":0,"a":true},{"u":555,"l":21,"s":1,"a":true},{"u":999,"l":466,"s":0,"a":false},{"u":210,"l":170,"s":1,"a":true},{"u":613,"l":484,"s":0,"a":true},{"u":757,"l":609,"s":0,"a":false},{"u":407,"l":187,"s":1,"a":true},{"u":277,"l":169,"s":1,"a":false},{"u":367,"l":210,"s":0,"a":false},{"u":433,"l":1,"s":1,"a":true},{"u":634,"l":259,"s":1,"a":true},{"u":892,"l":371,"s":1,"a":false},{"u":931,"l":10,"s":1,"a":false},{"u":372,"l":5,"s":0,"a":false},{"u":405,"l":10,"s":1,"a":false},{"u":38,"l":10,"s":0,"a":false},{"u":404,"l":1,"s":0,"a":true},{"u":900,"l":658,"s":0,"a":true},{"u":732,"l":426,"s":1,"a":true},{"u":570,"l":391,"s":0,"a":true},{"u":494,"l":209,"s":1,"a":true},{"u":658,"l":160,"s":1,"a":false},{"u":83,"l":78,"s":0,"a":true},{"u":792,"l":304,"s":0,"a":false},{"u":725,"l":557,"s":0,"a":true},{"u":610,"l":276,"s":0,"a":true},{"u":389,"l":177,"s":0,"a":false},{"u":143,"l":18,"s":1,"a":false},{"u":366,"l":273,"s":0,"a":true},{"u":457,"l":157,"s":0,"a":true},{"u":584,"l":293,"s":0,"a":true},{"u":963,"l":168,"s":0,"a":false},{"u":877,"l":571,"s":0,"a":true},{"u":360,"l":67,"s":1,"a":true},{"u":729,"l":149,"s":1,"a":false},{"u":804,"l":434,"s":0,"a":true},{"u":944,"l":711,"s":1,"a":false},{"u":574,"l":494,"s":1,"a":false},{"u":770,"l":315,"s":1,"a":false},{"u":118,"l":117,"s":1,"a":true},{"u":833,"l":770,"s":0,"a":false},{"u":911,"l":235,"s":0,"a":true},{"u":949,"l":93,"s":0,"a":false},{"u":720,"l":649,"s":0,"a":true},{"u":684,"l":680,"s":1,"a":false},{"u":777,"l":232,"s":0,"a":false},{"u":245,"l":117,"s":1,"a":false},{"u":429,"l":261,"s":0,"a":false},{"u":445,"l":48,"s":0,"a":false},{"u":593,"l":264,"s":1,"a":false},{"u":825,"l":65,"s":1,"a":true},{"u":349,"l":202,"s":0,"a":true},{"u":525,"l":429,"s":1,"a":false},{"u":350,"l":58,"s":0,"a":true},{"u":938,"l":237,"s":1,"a":false},{"u":787,"l":33,"s":1,"a":true},{"u":737,"l":401,"s":0,"a":true},{"u":893,"l":787,"s":0,"a":true},{"u":941,"l":52,"s":0,"a":false},{"u":946,"l":551,"s":1,"a":true},{"u":860,"l":312,"s":1,"a":false},{"u":689,"l":385,"s":1,"a":true},{"u":185,"l":127,"s":0,"a":false},{"u":629,"l":170,"s":1,"a":true},{"u":298,"l":143,"s":1,"a":false},{"u":657,"l":392,"s":0,"a":true},{"u":652,"l":474,"s":1,"a":true},{"u":816,"l":467,"s":1,"a":true},{"u":838,"l":55,"s":0,"a":true},{"u":628,"l":463,"s":1,"a":true},{"u":824,"l":302,"s":1,"a":false},{"u":518,"l":225,"s":0,"a":false},{"u":320,"l":130,"s":1,"a":true},{"u":302,"l":279,"s":1,"a":true},{"u":809,"l":129,"s":1,"a":false},{"u":782,"l":493,"s":1,"a":true},{"u":891,"l":112,"s":0,"a":true},{"u":636,"l":445,"s":0,"a":true},{"u":413,"l":410,"s":1,"a":false},{"u":887,"l":824,"s":0,"a":false},{"u":608,"l":577,"s":1,"a":true},{"u":917,"l":243,"s":0,"a":true},{"u":792,"l":377,"s":0,"a":false},{"u":861,"l":137,"s":1,"a":false},{"u":924,"l":409,"s":0,"a":false},{"u":564,"l":280,"s":1,"a":false},{"u":578,"l":402,"s":1,"a":true},{"u":990,"l":505,"s":0,"a":true},{"u":180,"l":127,"s":1,"a":true},{"u":873,"l":24,"s":0,"a":true},{"u":523,"l":223,"s":1,"a":true},{"u":966,"l":668,"s":1,"a":true},{"u":941,"l":709,"s":1,"a":true},{"u":924,"l":429,"s":0,"a":true},{"u":817,"l":738,"s":0,"a":true},{"u":659,"l":372,"s":0,"a":true},{"u":985,"l":936,"s":1,"a":true},{"u":622,"l":137,"s":1,"a":false},{"u":979,"l":863,"s":0,"a":false},{"u":225,"l":63,"s":1,"a":false},{"u":686,"l":629,"s":0,"a":true},{"u":914,"l":841,"s":1,"a":false},{"u":764,"l":672,"s":1,"a":false},{"u":945,"l":768,"s":0,"a":true},{"u":840,"l":577,"s":0,"a":true},{"u":882,"l":716,"s":0,"a":true},{"u":889,"l":182,"s":0,"a":false},{"u":683,"l":270,"s":1,"a":true},{"u":647,"l":487,"s":0,"a":false},{"u":930,"l":330,"s":1,"a":false},{"u":744,"l":12,"s":1,"a":false},{"u":355,"l":90,"s":0,"a":false},{"u":115,"l":54,"s":1,"a":true},{"u":792,"l":80,"s":0,"a":false},{"u":915,"l":714,"s":0,"a":false},{"u":819,"l":773,"s":0,"a":true},{"u":339,"l":181,"s":1,"a":false},{"u":955,"l":120,"s":0,"a":true},{"u":990,"l":179,"s":0,"a":true},{"u":616,"l":350,"s":0,"a":false},{"u":812,"l":144,"s":0,"a":true},{"u":294,"l":72,"s":1,"a":false},{"u":502,"l":478,"s":0,"a":true},{"u":700,"l":194,"s":1,"a":true},{"u":786,"l":287,"s":0,"a":false},{"u":814,"l":346,"s":0,"a":true},{"u":734,"l":687,"s":0,"a":true},{"u":473,"l":246,"s":1,"a":false},{"u":166,"l":129,"s":1,"a":false},{"u":645,"l":612,"s":1,"a":true},{"u":918,"l":736,"s":1,"a":false},{"u":335,"l":301,"s":1,"a":true},{"u":352,"l":149,"s":1,"a":true},{"u":537,"l":198,"s":0,"a":false},{"u":958,"l":491,"s":1,"a":false},{"u":823,"l":801,"s":0,"a":true},{"u":888,"l":622,"s":0,"a":true},{"u":673,"l":102,"s":0,"a":false},{"u":278,"l":159,"s":0,"a":true},{"u":970,"l":391,"s":1,"a":true},{"u":875,"l":243,"s":0,"a":false},{"u":975,"l":528,"s":0,"a":true},{"u":392,"l":329,"s":1,"a":true},{"u":625,"l":566,"s":1,"a":true},{"u":927,"l":319,"s":0,"a":true},{"u":978,"l":309,"s":0,"a":false},{"u":663,"l":91,"s":1,"a":false},{"u":311,"l":173,"s":1,"a":false},{"u":967,"l":165,"s":1,"a":true},{"u":641,"l":237,"s":0,"a":true},{"u":524,"l":329,"s":1,"a":false},{"u":861,"l":710,"s":0,"a":true},{"u":981,"l":757,"s":1,"a":true},{"u":604,"l":559,"s":0,"a":true},{"u":600,"l":383,"s":1,"a":true},{"u":783,"l":685,"s":1,"a":false},{"u":956,"l":830,"s":1,"a":false},{"u":807,"l":203,"s":0,"a":false},{"u":872,"l":597,"s":1,"a":true},{"u":955,"l":709,"s":1,"a":false},{"u":653,"l":224,"s":0,"a":true},{"u":817,"l":570,"s":1,"a":false},{"u":730,"l":669,"s":1,"a":true},{"u":802,"l":202,"s":1,"a":true},{"u":452,"l":375,"s":1,"a":true},{"u":178,"l":47,"s":1,"a":false},{"u":702,"l":547,"s":1,"a":false},{"u":638,"l":254,"s":0,"a":false},{"u":943,"l":277,"s":0,"a":false},{"u":975,"l":761,"s":0,"a":false},{"u":723,"l":576,"s":1,"a":false},{"u":704,"l":46,"s":0,"a":true},{"u":586,"l":341,"s":1,"a":false},{"u":687,"l":506,"s":1,"a":true},{"u":648,"l":226,"s":0,"a":true},{"u":937,"l":880,"s":0,"a":false},{"u":864,"l":480,"s":1,"a":false},{"u":812,"l":571,"s":0,"a":false},{"u":551,"l":414,"s":1,"a":true},{"u":455,"l":383,"s":0,"a":true},{"u":699,"l":240,"s":1,"a":false},{"u":918,"l":888,"s":0,"a":true},{"u":294,"l":19,"s":0,"a":false},{"u":847,"l":503,"s":1,"a":true},{"u":541,"l":289,"s":1,"a":false},{"u":401,"l":369,"s":1,"a":true},{"u":800,"l":639,"s":1,"a":true},{"u":794,"l":243,"s":0,"a":false},{"u":937,"l":668,"s":1,"a":false},{"u":964,"l":794,"s":0,"a":true},{"u":622,"l":73,"s":1,"a":true},{"u":883,"l":350,"s":1,"a":true},{"u":853,"l":413,"s":0,"a":false},{"u":831,"l":330,"s":0,"a":false},{"u":150,"l":118,"s":0,"a":false},{"u":425,"l":40,"s":0,"a":false},{"u":745,"l":640,"s":0,"a":false},{"u":853,"l":655,"s":0,"a":true},{"u":777,"l":463,"s":1,"a":false},{"u":897,"l":808,"s":0,"a":true},{"u":820,"l":776,"s":0,"a":false},{"u":945,"l":185,"s":0,"a":false},{"u":756,"l":639,"s":0,"a":false},{"u":815,"l":671,"s":0,"a":true},{"u":474,"l":161,"s":0,"a":false},{"u":283,"l":224,"s":0,"a":false},{"u":465,"l":346,"s":1,"a":true},{"u":744,"l":419,"s":1,"a":false},{"u":744,"l":613,"s":0,"a":true},{"u":660,"l":245,"s":0,"a":true},{"u":806,"l":492,"s":0,"a":true},{"u":856,"l":341,"s":0,"a":true},{"u":478,"l":34,"s":0,"a":false},{"u":992,"l":533,"s":1,"a":false},{"u":599,"l":557,"s":0,"a":false},{"u":823,"l":48,"s":0,"a":false},{"u":520,"l":58,"s":0,"a":false},{"u":432,"l":114,"s":1,"a":true},{"u":956,"l":838,"s":1,"a":false},{"u":809,"l":9,"s":1,"a":false},{"u":636,"l":187,"s":0,"a":false},{"u":430,"l":57,"s":0,"a":false},{"u":865,"l":9,"s":0,"a":true},{"u":416,"l":188,"s":0,"a":true},{"u":469,"l":204,"s":1,"a":false},{"u":690,"l":545,"s":1,"a":true},{"u":777,"l":207,"s":1,"a":false},{"u":488,"l":136,"s":0,"a":true},{"u":371,"l":237,"s":1,"a":true},{"u":216,"l":122,"s":1,"a":true},{"u":629,"l":403,"s":1,"a":true},{"u":604,"l":221,"s":0,"a":false},{"u":710,"l":196,"s":1,"a":false},{"u":675,"l":163,"s":0,"a":true},{"u":830,"l":51,"s":0,"a":false},{"u":747,"l":652,"s":0,"a":true},{"u":307,"l":102,"s":0,"a":true},{"u":435,"l":241,"s":0,"a":false},{"u":989,"l":555,"s":1,"a":false},{"u":908,"l":67,"s":0,"a":true},{"u":839,"l":293,"s":1,"a":false},{"u":916,"l":222,"s":1,"a":true},{"u":289,"l":195,"s":0,"a":false},{"u":750,"l":79,"s":1,"a":false},{"u":699,"l":419,"s":1,"a":false},{"u":925,"l":64,"s":1,"a":false},{"u":838,"l":312,"s":0,"a":false},{"u":854,"l":322,"s":0,"a":false},{"u":302,"l":113,"s":0,"a":false},{"u":544,"l":186,"s":1,"a":false},{"u":573,"l":386,"s":0,"a":false},{"u":888,"l":401,"s":0,"a":false},{"u":989,"l":499,"s":0,"a":true},{"u":581,"l":79,"s":1,"a":false},{"u":909,"l":765,"s":0,"a":true},{"u":933,"l":343,"s":0,"a":true},{"u":763,"l":50,"s":0,"a":true},{"u":863,"l":73,"s":0,"a":true},{"u":794,"l":181,"s":0,"a":false},{"u":169,"l":43,"s":1,"a":true},{"u":704,"l":458,"s":1,"a":false},{"u":529,"l":353,"s":0,"a":false},{"u":402,"l":66,"s":0,"a":true},{"u":820,"l":4,"s":0,"a":false},{"u":834,"l":792,"s":1,"a":false},{"u":419,"l":125,"s":1,"a":true},{"u":787,"l":709,"s":1,"a":true},{"u":742,"l":737,"s":0,"a":true},{"u":674,"l":245,"s":1,"a":false},{"u":881,"l":236,"s":0,"a":false},{"u":878,"l":523,"s":0,"a":false},{"u":89,"l":35,"s":1,"a":true},{"u":300,"l":154,"s":0,"a":false},{"u":774,"l":64,"s":1,"a":false},{"u":494,"l":378,"s":1,"a":false},{"u":817,"l":23,"s":0,"a":true},{"u":692,"l":378,"s":1,"a":false},{"u":520,"l":4,"s":0,"a":false},{"u":808,"l":671,"s":1,"a":true},{"u":570,"l":180,"s":0,"a":true},{"u":918,"l":866,"s":0,"a":true},{"u":617,"l":581,"s":0,"a":false},{"u":916,"l":532,"s":1,"a":false},{"u":666,"l":352,"s":1,"a":false},{"u":637,"l":542,"s":1,"a":false},{"u":794,"l":667,"s":0,"a":true},{"u":807,"l":331,"s":0,"a":false},{"u":218,"l":165,"s":1,"a":true},{"u":232,"l":149,"s":0,"a":true},{"u":367,"l":82,"s":1,"a":true},{"u":517,"l":367,"s":1,"a":false},{"u":954,"l":935,"s":0,"a":false},{"u":301,"l":300,"s":1,"a":false},{"u":703,"l":212,"s":1,"a":false},{"u":310,"l":110,"s":0,"a":false},{"u":252,"l":197,"s":1,"a":false},{"u":887,"l":384,"s":1,"a":true},{"u":802,"l":344,"s":0,"a":false},{"u":809,"l":236,"s":0,"a":false},{"u":408,"l":273,"s":1,"a":false},{"u":717,"l":42,"s":0,"a":false},{"u":821,"l":364,"s":1,"a":false},{"u":468,"l":201,"s":1,"a":true},{"u":812,"l":118,"s":1,"a":true},{"u":326,"l":144,"s":1,"a":false},{"u":974,"l":702,"s":0,"a":false},{"u":684,"l":439,"s":1,"a":true},{"u":775,"l":674,"s":1,"a":true},{"u":806,"l":459,"s":0,"a":false},{"u":994,"l":38,"s":0,"a":true},{"u":947,"l":208,"s":1,"a":true},{"u":429,"l":208,"s":0,"a":true},{"u":763,"l":254,"s":0,"a":true},{"u":284,"l":62,"s":1,"a":true},{"u":736,"l":429,"s":0,"a":true},{"u":988,"l":602,"s":1,"a":false},{"u":767,"l":444,"s":0,"a":true},{"u":561,"l":196,"s":0,"a":true},{"u":731,"l":399,"s":1,"a":false},{"u":939,"l":932,"s":0,"a":false},{"u":728,"l":316,"s":1,"a":false},{"u":985,"l":14,"s":0,"a":false},{"u":627,"l":324,"s":1,"a":true},{"u":757,"l":216,"s":0,"a":false},{"u":499,"l":210,"s":0,"a":true},{"u":700,"l":188,"s":1,"a":false},{"u":685,"l":313,"s":0,"a":true},{"u":966,"l":416,"s":1,"a":false},{"u":605,"l":412,"s":0,"a":false},{"u":783,"l":107,"s":1,"a":true},{"u":906,"l":525,"s":1,"a":true},{"u":561,"l":372,"s":1,"a":false},{"u":904,"l":513,"s":1,"a":true},{"u":580,"l":297,"s":1,"a":true},{"u":757,"l":107,"s":1,"a":true},{"u":642,"l":603,"s":0,"a":false},{"u":169,"l":43,"s":0,"a":false},{"u":171,"l":36,"s":1,"a":false},{"u":236,"l":94,"s":1,"a":false},{"u":661,"l":474,"s":0,"a":true},{"u":604,"l":118,"s":1,"a":true},{"u":851,"l":307,"s":1,"a":true},{"u":955,"l":523,"s":1,"a":true},{"u":869,"l":669,"s":0,"a":true},{"u":944,"l":471,"s":1,"a":false},{"u":737,"l":78,"s":1,"a":true},{"u":705,"l":47,"s":0,"a":false},{"u":859,"l":542,"s":0,"a":true},{"u":768,"l":759,"s":1,"a":false},{"u":773,"l":256,"s":1,"a":false},{"u":317,"l":20,"s":1,"a":false},{"u":612,"l":323,"s":1,"a":true},{"u":718,"l":262,"s":1,"a":false},{"u":822,"l":420,"s":1,"a":false},{"u":754,"l":426,"s":1,"a":false},{"u":676,"l":12,"s":0,"a":true},{"u":481,"l":364,"s":0,"a":false},{"u":727,"l":395,"s":0,"a":false},{"u":350,"l":337,"s":1,"a":false},{"u":503,"l":163,"s":1,"a":true},{"u":973,"l":114,"s":1,"a":true},{"u":682,"l":101,"s":1,"a":true},{"u":971,"l":186,"s":1,"a":true},{"u":941,"l":754,"s":0,"a":false},{"u":956,"l":766,"s":1,"a":true},{"u":797,"l":2,"s":1,"a":false},{"u":906,"l":823,"s":1,"a":false},{"u":851,"l":820,"s":0,"a":false},{"u":181,"l":119,"s":1,"a":true},{"u":896,"l":505,"s":1,"a":true},{"u":556,"l":79,"s":0,"a":true},{"u":870,"l":530,"s":0,"a":false},{"u":748,"l":626,"s":0,"a":false},{"u":803,"l":666,"s":1,"a":true},{"u":566,"l":557,"s":1,"a":false},{"u":985,"l":467,"s":1,"a":false},{"u":410,"l":240,"s":0,"a":false},{"u":625,"l":238,"s":1,"a":true},{"u":796,"l":248,"s":1,"a":false},{"u":637,"l":240,"s":0,"a":false},{"u":845,"l":146,"s":0,"a":true},{"u":883,"l":333,"s":0,"a":false},{"u":615,"l":139,"s":0,"a":true},{"u":373,"l":163,"s":1,"a":false},{"u":890,"l":863,"s":0,"a":false},{"u":608,"l":252,"s":0,"a":false},{"u":439,"l":67,"s":1,"a":true},{"u":859,"l":40,"s":1,"a":true},{"u":851,"l":486,"s":0,"a":true},{"u":587,"l":570,"s":1,"a":true},{"u":488,"l":356,"s":0,"a":false},{"u":968,"l":432,"s":0,"a":false},{"u":51,"l":47,"s":1,"a":true},{"u":515,"l":384,"s":1,"a":false},{"u":890,"l":796,"s":1,"a":false},{"u":524,"l":372,"s":0,"a":true},{"u":988,"l":431,"s":1,"a":true},{"u":804,"l":24,"s":0,"a":true},{"u":805,"l":121,"s":1,"a":true},{"u":638,"l":552,"s":0,"a":true},{"u":990,"l":552,"s":0,"a":false},{"u":274,"l":96,"s":1,"a":false},{"u":971,"l":968,"s":0,"a":false},{"u":888,"l":506,"s":1,"a":false},{"u":630,"l":605,"s":0,"a":true},{"u":586,"l":399,"s":1,"a":false},{"u":843,"l":130,"s":0,"a":true},{"u":401,"l":394,"s":1,"a":false},{"u":530,"l":148,"s":0,"a":false},{"u":606,"l":418,"s":0,"a":false},{"u":635,"l":382,"s":1,"a":true},{"u":922,"l":699,"s":1,"a":false},{"u":764,"l":27,"s":1,"a":false},{"u":344,"l":152,"s":1,"a":false},{"u":228,"l":168,"s":1,"a":true},{"u":893,"l":402,"s":1,"a":true},{"u":576,"l":486,"s":1,"a":false},{"u":750,"l":356,"s":1,"a":false},{"u":922,"l":91,"s":0,"a":false},{"u":782,"l":711,"s":1,"a":false},{"u":979,"l":491,"s":0,"a":true},{"u":971,"l":919,"s":0,"a":true},{"u":428,"l":256,"s":1,"a":false},{"u":907,"l":14,"s":0,"a":false},{"u":904,"l":795,"s":0,"a":false},{"u":773,"l":743,"s":0,"a":false},{"u":253,"l":15,"s":1,"a":false},{"u":532,"l":460,"s":1,"a":false},{"u":853,"l":480,"s":0,"a":true},{"u":86,"l":78,"s":0,"a":false},{"u":117,"l":27,"s":0,"a":true},{"u":678,"l":397,"s":1,"a":false},{"u":918,"l":381,"s":1,"a":false},{"u":635,"l":171,"s":1,"a":true},{"u":968,"l":472,"s":0,"a":true},{"u":908,"l":460,"s":1,"a":false},{"u":651,"l":447,"s":0,"a":false},{"u":982,"l":156,"s":1,"a":true},{"u":773,"l":120,"s":1,"a":false},{"u":428,"l":166,"s":0,"a":true},{"u":701,"l":464,"s":1,"a":true},{"u":658,"l":514,"s":1,"a":false},{"u":740,"l":588,"s":1,"a":false},{"u":887,"l":73,"s":1,"a":false},{"u":679,"l":537,"s":0,"a":false},{"u":521,"l":177,"s":0,"a":false},{"u":653,"l":512,"s":1,"a":true},{"u":646,"l":482,"s":1,"a":true},{"u":576,"l":234,"s":1,"a":true},{"u":635,"l":595,"s":1,"a":true},{"u":687,"l":226,"s":1,"a":false},{"u":300,"l":76,"s":1,"a":true},{"u":867,"l":394,"s":0,"a":false},{"u":49,"l":27,"s":1,"a":false},{"u":755,"l":103,"s":1,"a":true},{"u":966,"l":849,"s":1,"a":true},{"u":492,"l":152,"s":0,"a":true},{"u":724,"l":72,"s":1,"a":true},{"u":959,"l":591,"s":0,"a":true},{"u":816,"l":740,"s":0,"a":true},{"u":790,"l":456,"s":1,"a":true},{"u":838,"l":105,"s":1,"a":false},{"u":650,"l":267,"s":1,"a":true},{"u":903,"l":329,"s":1,"a":false},{"u":869,"l":255,"s":0,"a":false},{"u":907,"l":415,"s":0,"a":true},{"u":784,"l":781,"s":1,"a":false},{"u":976,"l":200,"s":0,"a":true},{"u":561,"l":462,"s":0,"a":false},{"u":215,"l":30,"s":0,"a":false},{"u":51,"l":48,"s":0,"a":true},{"u":704,"l":464,"s":1,"a":false},{"u":518,"l":157,"s":0,"a":true},{"u":530,"l":37,"s":0,"a":false},{"u":496,"l":22,"s":0,"a":false},{"u":900,"l":685,"s":0,"a":true},{"u":987,"l":227,"s":0,"a":true},{"u":890,"l":256,"s":1,"a":true},{"u":774,"l":683,"s":0,"a":false},{"u":508,"l":282,"s":0,"a":true},{"u":621,"l":198,"s":1,"a":false},{"u":340,"l":278,"s":0,"a":false},{"u":839,"l":447,"s":0,"a":true},{"u":917,"l":390,"s":1,"a":false},{"u":481,"l":333,"s":1,"a":true},{"u":545,"l":412,"s":1,"a":false},{"u":752,"l":74,"s":1,"a":false},{"u":796,"l":116,"s":0,"a":false},{"u":805,"l":5,"s":1,"a":false},{"u":398,"l":378,"s":1,"a":true},{"u":506,"l":416,"s":0,"a":false},{"u":665,"l":545,"s":1,"a":false},{"u":683,"l":30,"s":1,"a":true},{"u":926,"l":308,"s":0,"a":true},{"u":591,"l":92,"s":1,"a":false},{"u":353,"l":96,"s":0,"a":true},{"u":709,"l":196,"s":0,"a":true},{"u":803,"l":579,"s":1,"a":true},{"u":615,"l":473,"s":1,"a":false},{"u":281,"l":171,"s":1,"a":true},{"u":822,"l":527,"s":0,"a":false},{"u":629,"l":458,"s":0,"a":false},{"u":527,"l":284,"s":1,"a":true},{"u":458,"l":25,"s":0,"a":false},{"u":361,"l":56,"s":0,"a":false},{"u":708,"l":607,"s":0,"a":true},{"u":508,"l":148,"s":0,"a":false},{"u":467,"l":30,"s":0,"a":false},{"u":812,"l":621,"s":1,"a":false},{"u":673,"l":387,"s":0,"a":true},{"u":668,"l":187,"s":0,"a":false},{"u":781,"l":318,"s":0,"a":false},{"u":840,"l":723,"s":1,"a":true},{"u":574,"l":71,"s":0,"a":false},{"u":946,"l":674,"s":1,"a":true},{"u":819,"l":22,"s":0,"a":false},{"u":504,"l":252,"s":1,"a":true},{"u":567,"l":47,"s":0,"a":false},{"u":528,"l":323,"s":1,"a":false},{"u":609,"l":188,"s":0,"a":true},{"u":978,"l":911,"s":1,"a":false},{"u":378,"l":323,"s":0,"a":true},{"u":156,"l":103,"s":0,"a":false},{"u":708,"l":237,"s":1,"a":true},{"u":870,"l":149,"s":0,"a":false},{"u":641,"l":616,"s":0,"a":true},{"u":553,"l":154,"s":0,"a":false},{"u":645,"l":56,"s":1,"a":true},{"u":986,"l":884,"s":0,"a":false},{"u":391,"l":100,"s":1,"a":false},{"u":926,"l":531,"s":1,"a":false},{"u":969,"l":479,"s":0,"a":true},{"u":604,"l":576,"s":0,"a":false},{"u":422,"l":196,"s":0,"a":false},{"u":455,"l":351,"s":0,"a":true},{"u":461,"l":299,"s":1,"a":false},{"u":953,"l":25,"s":0,"a":false},{"u":922,"l":474,"s":1,"a":false},{"u":954,"l":888,"s":0,"a":false},{"u":467,"l":108,"s":1,"a":true},{"u":921,"l":553,"s":0,"a":true},{"u":680,"l":633,"s":1,"a":true},{"u":898,"l":79,"s":1,"a":false},{"u":672,"l":319,"s":0,"a":false},{"u":645,"l":241,"s":1,"a":true},{"u":473,"l":87,"s":1,"a":true},{"u":534,"l":99,"s":0,"a":true},{"u":421,"l":353,"s":1,"a":false},{"u":237,"l":216,"s":0,"a":false},{"u":600,"l":350,"s":0,"a":true},{"u":408,"l":349,"s":1,"a":true},{"u":377,"l":303,"s":1,"a":true},{"u":512,"l":53,"s":0,"a":false},{"u":468,"l":66,"s":0,"a":true},{"u":704,"l":641,"s":0,"a":false},{"u":325,"l":260,"s":1,"a":true},{"u":134,"l":127,"s":1,"a":false},{"u":560,"l":43,"s":0,"a":false},{"u":726,"l":18,"s":0,"a":true},{"u":975,"l":899,"s":1,"a":false},{"u":785,"l":159,"s":0,"a":true},{"u":784,"l":413,"s":0,"a":true},{"u":208,"l":79,"s":0,"a":true},{"u":942,"l":399,"s":0,"a":true},{"u":632,"l":71,"s":0,"a":false},{"u":902,"l":183,"s":1,"a":false},{"u":657,"l":131,"s":1,"a":false},{"u":902,"l":700,"s":0,"a":false},{"u":525,"l":107,"s":1,"a":false},{"u":418,"l":277,"s":1,"a":true},{"u":462,"l":73,"s":0,"a":false},{"u":501,"l":463,"s":0,"a":true},{"u":784,"l":273,"s":0,"a":false},{"u":663,"l":438,"s":0,"a":false},{"u":898,"l":557,"s":1,"a":true},{"u":728,"l":352,"s":0,"a":false},{"u":795,"l":206,"s":0,"a":true},{"u":436,"l":246,"s":1,"a":true},{"u":794,"l":365,"s":0,"a":false},{"u":866,"l":490,"s":0,"a":false},{"u":962,"l":5,"s":1,"a":false},{"u":524,"l":238,"s":1,"a":false},{"u":690,"l":615,"s":1,"a":false},{"u":453,"l":297,"s":1,"a":true},{"u":441,"l":305,"s":0,"a":false},{"u":803,"l":52,"s":1,"a":false},{"u":675,"l":542,"s":0,"a":false},{"u":970,"l":740,"s":0,"a":false},{"u":310,"l":129,"s":0,"a":true},{"u":584,"l":168,"s":0,"a":false},{"u":369,"l":100,"s":0,"a":true},{"u":556,"l":55,"s":0,"a":true},{"u":200,"l":89,"s":0,"a":true},{"u":422,"l":49,"s":0,"a":true},{"u":540,"l":281,"s":0,"a":false},{"u":136,"l":38,"s":0,"a":false},{"u":946,"l":620,"s":0,"a":true},{"u":366,"l":297,"s":1,"a":false},{"u":471,"l":177,"s":1,"a":false},{"u":949,"l":436,"s":0,"a":true},{"u":978,"l":257,"s":1,"a":true},{"u":539,"l":363,"s":0,"a":false},{"u":645,"l":311,"s":1,"a":true},{"u":894,"l":5,"s":1,"a":true},{"u":937,"l":806,"s":1,"a":true},{"u":87,"l":56,"s":1,"a":true},{"u":923,"l":318,"s":0,"a":false},{"u":125,"l":55,"s":0,"a":false},{"u":675,"l":244,"s":1,"a":false},{"u":538,"l":318,"s":0,"a":true},{"u":571,"l":517,"s":0,"a":true},{"u":855,"l":80,"s":1,"a":true},{"u":642,"l":294,"s":0,"a":true},{"u":100,"l":83,"s":1,"a":true},{"u":335,"l":8,"s":1,"a":true},{"u":719,"l":662,"s":1,"a":false},{"u":73,"l":29,"s":1,"a":true},{"u":718,"l":694,"s":1,"a":true},{"u":608,"l":175,"s":1,"a":true},{"u":199,"l":120,"s":1,"a":false},{"u":892,"l":883,"s":0,"a":false},{"u":757,"l":541,"s":1,"a":true},{"u":174,"l":96,"s":0,"a":true},{"u":927,"l":242,"s":0,"a":true},{"u":555,"l":190,"s":1,"a":false},{"u":165,"l":60,"s":0,"a":false},{"u":829,"l":692,"s":1,"a":false},{"u":95,"l":43,"s":1,"a":true},{"u":203,"l":47,"s":1,"a":false},{"u":760,"l":466,"s":0,"a":true},{"u":710,"l":601,"s":0,"a":false},{"u":253,"l":151,"s":0,"a":false},{"u":923,"l":435,"s":1,"a":true},{"u":376,"l":91,"s":1,"a":false},{"u":899,"l":22,"s":0,"a":true},{"u":994,"l":924,"s":1,"a":false},{"u":723,"l":370,"s":1,"a":true},{"u":314,"l":206,"s":0,"a":true},{"u":792,"l":602,"s":0,"a":true},{"u":251,"l":236,"s":0,"a":true},{"u":749,"l":2,"s":0,"a":true},{"u":716,"l":170,"s":1,"a":false},{"u":465,"l":414,"s":0,"a":true},{"u":896,"l":432,"s":1,"a":false},{"u":443,"l":350,"s":0,"a":true},{"u":981,"l":862,"s":0,"a":false},{"u":518,"l":507,"s":1,"a":true},{"u":671,"l":585,"s":0,"a":false},{"u":404,"l":69,"s":0,"a":true},{"u":963,"l":540,"s":1,"a":true},{"u":264,"l":90,"s":0,"a":false},{"u":624,"l":133,"s":0,"a":false},{"u":955,"l":386,"s":1,"a":false},{"u":975,"l":568,"s":0,"a":false},{"u":862,"l":196,"s":1,"a":true},{"u":566,"l":47,"s":0,"a":true},{"u":371,"l":228,"s":0,"a":true},{"u":603,"l":214,"s":1,"a":false},{"u":559,"l":509,"s":0,"a":false},{"u":898,"l":399,"s":1,"a":false},{"u":912,"l":304,"s":0,"a":true},{"u":679,"l":380,"s":0,"a":true},{"u":838,"l":372,"s":1,"a":false},{"u":527,"l":261,"s":0,"a":false},{"u":764,"l":305,"s":1,"a":false},{"u":940,"l":258,"s":0,"a":true},{"u":486,"l":321,"s":0,"a":true},{"u":765,"l":182,"s":1,"a":false},{"u":383,"l":188,"s":0,"a":true},{"u":751,"l":460,"s":0,"a":true},{"u":375,"l":17,"s":0,"a":true},{"u":684,"l":474,"s":1,"a":true},{"u":887,"l":822,"s":1,"a":true},{"u":257,"l":2,"s":0,"a":true},{"u":672,"l":212,"s":1,"a":true},{"u":732,"l":117,"s":1,"a":false},{"u":630,"l":583,"s":1,"a":false},{"u":601,"l":123,"s":1,"a":true},{"u":945,"l":560,"s":0,"a":false},{"u":803,"l":205,"s":1,"a":false},{"u":774,"l":703,"s":1,"a":true},{"u":794,"l":370,"s":1,"a":true},{"u":574,"l":231,"s":0,"a":false},{"u":882,"l":869,"s":0,"a":false},{"u":931,"l":725,"s":1,"a":true},{"u":996,"l":833,"s":1,"a":true},{"u":929,"l":745,"s":1,"a":true},{"u":896,"l":244,"s":0,"a":false},{"u":383,"l":219,"s":0,"a":false},{"u":104,"l":47,"s":1,"a":true},{"u":298,"l":192,"s":1,"a":true},{"u":706,"l":423,"s":0,"a":false},{"u":179,"l":177,"s":1,"a":false},{"u":190,"l":163,"s":1,"a":false},{"u":353,"l":33,"s":0,"a":true},{"u":495,"l":30,"s":0,"a":true},{"u":470,"l":147,"s":0,"a":true},{"u":691,"l":168,"s":1,"a":true},{"u":785,"l":254,"s":0,"a":true},{"u":494,"l":251,"s":1,"a":true},{"u":276,"l":177,"s":1,"a":true},{"u":910,"l":598,"s":0,"a":false},{"u":602,"l":584,"s":0,"a":false},{"u":884,"l":765,"s":1,"a":true},{"u":300,"l":11,"s":0,"a":true},{"u":986,"l":737,"s":0,"a":false},{"u":620,"l":1,"s":1,"a":false},{"u":968,"l":874,"s":0,"a":false},{"u":557,"l":282,"s":0,"a":false},{"u":758,"l":672,"s":1,"a":true},{"u":673,"l":127,"s":1,"a":true},{"u":998,"l":119,"s":1,"a":false},{"u":286,"l":269,"s":0,"a":true},{"u":306,"l":54,"s":1,"a":false},{"u":937,"l":173,"s":0,"a":true},{"u":723,"l":362,"s":0,"a":true},{"u":326,"l":285,"s":1,"a":true},{"u":607,"l":131,"s":0,"a":true},{"u":246,"l":145,"s":0,"a":true},{"u":675,"l":433,"s":1,"a":false},{"u":942,"l":326,"s":1,"a":false},{"u":903,"l":881,"s":0,"a":false},{"u":473,"l":246,"s":0,"a":true},{"u":882,"l":74,"s":0,"a":true},{"u":979,"l":859,"s":0,"a":false},{"u":314,"l":72,"s":1,"a":false},{"u":596,"l":480,"s":0,"a":false},{"u":880,"l":441,"s":0,"a":true},{"u":16,"l":8,"s":1,"a":true},{"u":932,"l":500,"s":0,"a":false},{"u":653,"l":403,"s":0,"a":true},{"u":538,"l":317,"s":1,"a":true},{"u":343,"l":181,"s":1,"a":true},{"u":736,"l":469,"s":1,"a":false},{"u":902,"l":751,"s":0,"a":false},{"u":975,"l":68,"s":1,"a":true},{"u":281,"l":38,"s":1,"a":false},{"u":844,"l":283,"s":1,"a":true},{"u":319,"l":243,"s":1,"a":true},{"u":394,"l":150,"s":1,"a":false},{"u":159,"l":38,"s":1,"a":false},{"u":866,"l":527,"s":0,"a":true},{"u":679,"l":60,"s":1,"a":true},{"u":919,"l":319,"s":0,"a":false},{"u":740,"l":469,"s":0,"a":false},{"u":902,"l":243,"s":0,"a":false},{"u":988,"l":395,"s":0,"a":true},{"u":817,"l":92,"s":1,"a":true},{"u":439,"l":410,"s":1,"a":false},{"u":563,"l":94,"s":1,"a":false},{"u":744,"l":235,"s":0,"a":true},{"u":646,"l":170,"s":1,"a":true},{"u":181,"l":58,"s":1,"a":true},{"u":953,"l":308,"s":0,"a":true},{"u":626,"l":498,"s":0,"a":false},{"u":235,"l":84,"s":0,"a":true},{"u":745,"l":186,"s":0,"a":true},{"u":927,"l":177,"s":0,"a":true},{"u":768,"l":134,"s":1,"a":false},{"u":993,"l":299,"s":1,"a":false},{"u":266,"l":203,"s":1,"a":false},{"u":993,"l":265,"s":1,"a":true},{"u":896,"l":205,"s":0,"a":false},{"u":856,"l":681,"s":1,"a":true},{"u":779,"l":583,"s":0,"a":false},{"u":759,"l":335,"s":1,"a":true},{"u":773,"l":635,"s":1,"a":false},{"u":474,"l":300,"s":0,"a":false},{"u":507,"l":203,"s":0,"a":true},{"u":37,"l":15,"s":1,"a":false},{"u":628,"l":607,"s":1,"a":false},{"u":515,"l":324,"s":1,"a":false},{"u":806,"l":459,"s":1,"a":false},{"u":852,"l":385,"s":0,"a":false},{"u":411,"l":382,"s":0,"a":true},{"u":667,"l":478,"s":0,"a":true},{"u":857,"l":170,"s":1,"a":true},{"u":780,"l":285,"s":0,"a":false},{"u":297,"l":76,"s":1,"a":false},{"u":851,"l":209,"s":0,"a":true},{"u":981,"l":653,"s":0,"a":true},{"u":905,"l":815,"s":1,"a":false},{"u":999,"l":842,"s":0,"a":true},{"u":973,"l":380,"s":0,"a":false},{"u":596,"l":7,"s":0,"a":true},{"u":406,"l":374,"s":0,"a":true},{"u":836,"l":188,"s":0,"a":false},{"u":731,"l":132,"s":1,"a":false},{"u":885,"l":748,"s":1,"a":false},{"u":524,"l":241,"s":0,"a":false},{"u":657,"l":11,"s":0,"a":true},{"u":872,"l":548,"s":0,"a":true},{"u":783,"l":702,"s":0,"a":false},{"u":472,"l":118,"s":0,"a":false},{"u":988,"l":593,"s":1,"a":false},{"u":34,"l":3,"s":1,"a":false},{"u":821,"l":633,"s":1,"a":true},{"u":463,"l":143,"s":0,"a":true},{"u":124,"l":45,"s":0,"a":false},{"u":959,"l":438,"s":0,"a":true},{"u":699,"l":380,"s":1,"a":true},{"u":611,"l":406,"s":0,"a":true},{"u":984,"l":823,"s":0,"a":false},{"u":800,"l":529,"s":1,"a":true},{"u":156,"l":121,"s":1,"a":false},{"u":948,"l":597,"s":0,"a":true},{"u":659,"l":195,"s":1,"a":false},{"u":520,"l":333,"s":1,"a":false},{"u":848,"l":574,"s":1,"a":false},{"u":861,"l":794,"s":1,"a":false},{"u":935,"l":332,"s":0,"a":false},{"u":367,"l":96,"s":1,"a":false},{"u":489,"l":141,"s":1,"a":true},{"u":626,"l":548,"s":1,"a":false},{"u":622,"l":518,"s":1,"a":true},{"u":889,"l":253,"s":0,"a":false},{"u":821,"l":371,"s":1,"a":true},{"u":542,"l":72,"s":1,"a":true},{"u":876,"l":533,"s":0,"a":false},{"u":986,"l":801,"s":1,"a":true},{"u":426,"l":233,"s":0,"a":false},{"u":762,"l":273,"s":0,"a":true},{"u":595,"l":538,"s":0,"a":false},{"u":724,"l":409,"s":0,"a":false},{"u":311,"l":275,"s":0,"a":false},{"u":483,"l":55,"s":0,"a":false},{"u":925,"l":909,"s":1,"a":false},{"u":709,"l":2,"s":0,"a":true},{"u":268,"l":129,"s":1,"a":true},{"u":469,"l":101,"s":1,"a":false},{"u":631,"l":620,"s":1,"a":false},{"u":765,"l":418,"s":0,"a":false},{"u":829,"l":333,"s":0,"a":true},{"u":374,"l":46,"s":0,"a":true},{"u":448,"l":223,"s":0,"a":true},{"u":702,"l":375,"s":0,"a":false},{"u":871,"l":338,"s":1,"a":false},{"u":737,"l":211,"s":0,"a":true},{"u":520,"l":485,"s":0,"a":false},{"u":657,"l":62,"s":1,"a":true},{"u":703,"l":543,"s":1,"a":true},{"u":871,"l":98,"s":1,"a":true},{"u":960,"l":125,"s":1,"a":true},{"u":292,"l":17,"s":1,"a":false},{"u":970,"l":768,"s":0,"a":false},{"u":819,"l":753,"s":1,"a":false},{"u":543,"l":531,"s":1,"a":true},{"u":291,"l":38,"s":0,"a":true},{"u":219,"l":45,"s":0,"a":false},{"u":868,"l":814,"s":1,"a":false},{"u":706,"l":295,"s":1,"a":true},{"u":714,"l":26,"s":1,"a":false},{"u":672,"l":402,"s":0,"a":true},{"u":362,"l":293,"s":0,"a":false},{"u":596,"l":509,"s":1,"a":false},{"u":724,"l":310,"s":1,"a":false},{"u":345,"l":100,"s":1,"a":false},{"u":848,"l":527,"s":1,"a":false},{"u":822,"l":786,"s":1,"a":false},{"u":755,"l":455,"s":1,"a":false},{"u":797,"l":537,"s":1,"a":false},{"u":791,"l":519,"s":1,"a":true},{"u":784,"l":619,"s":1,"a":true},{"u":662,"l":323,"s":1,"a":true},{"u":920,"l":549,"s":1,"a":true},{"u":326,"l":99,"s":1,"a":false},{"u":209,"l":181,"s":0,"a":false},{"u":693,"l":37,"s":1,"a":true},{"u":958,"l":522,"s":0,"a":false},{"u":866,"l":665,"s":1,"a":true},{"u":912,"l":544,"s":0,"a":false},{"u":478,"l":362,"s":1,"a":true},{"u":919,"l":213,"s":1,"a":false},{"u":370,"l":1,"s":0,"a":true},{"u":638,"l":492,"s":1,"a":true},{"u":771,"l":527,"s":0,"a":true},{"u":665,"l":437,"s":0,"a":true},{"u":469,"l":154,"s":0,"a":true},{"u":809,"l":27,"s":0,"a":false},{"u":891,"l":244,"s":1,"a":true},{"u":796,"l":120,"s":1,"a":true},{"u":918,"l":871,"s":0,"a":false},{"u":383,"l":344,"s":0,"a":false},{"u":575,"l":559,"s":1,"a":false},{"u":981,"l":924,"s":0,"a":true},{"u":693,"l":487,"s":1,"a":false},{"u":954,"l":261,"s":0,"a":true},{"u":902,"l":184,"s":0,"a":false},{"u":452,"l":154,"s":0,"a":false},{"u":641,"l":516,"s":1,"a":false},{"u":801,"l":160,"s":0,"a":true},{"u":888,"l":324,"s":1,"a":false},{"u":933,"l":68,"s":1,"a":false},{"u":488,"l":463,"s":1,"a":false},{"u":455,"l":331,"s":1,"a":true},{"u":792,"l":248,"s":1,"a":false},{"u":919,"l":572,"s":1,"a":false},{"u":534,"l":65,"s":0,"a":false},{"u":620,"l":52,"s":1,"a":false},{"u":275,"l":112,"s":0,"a":false},{"u":436,"l":313,"s":0,"a":false},{"u":352,"l":83,"s":0,"a":true},{"u":434,"l":351,"s":0,"a":false},{"u":601,"l":286,"s":1,"a":false},{"u":475,"l":314,"s":0,"a":true},{"u":922,"l":668,"s":0,"a":false},{"u":747,"l":478,"s":1,"a":false},{"u":650,"l":440,"s":0,"a":true},{"u":800,"l":147,"s":1,"a":false},{"u":493,"l":120,"s":1,"a":false},{"u":216,"l":52,"s":0,"a":true},{"u":316,"l":74,"s":0,"a":true},{"u":529,"l":451,"s":1,"a":true},{"u":774,"l":361,"s":1,"a":true},{"u":995,"l":803,"s":1,"a":false},{"u":678,"l":216,"s":1,"a":true},{"u":755,"l":314,"s":1,"a":false},{"u":976,"l":548,"s":1,"a":false},{"u":520,"l":142,"s":0,"a":false},{"u":489,"l":227,"s":0,"a":true},{"u":690,"l":223,"s":0,"a":false},{"u":888,"l":866,"s":0,"a":true},{"u":585,"l":296,"s":0,"a":false},{"u":985,"l":343,"s":1,"a":true},{"u":970,"l":221,"s":1,"a":false},{"u":793,"l":526,"s":1,"a":true},{"u":501,"l":63,"s":1,"a":true},{"u":754,"l":72,"s":1,"a":true},{"u":942,"l":226,"s":1,"a":false},{"u":830,"l":290,"s":0,"a":true},{"u":320,"l":79,"s":0,"a":false},{"u":716,"l":681,"s":1,"a":false},{"u":421,"l":167,"s":1,"a":true},{"u":834,"l":613,"s":0,"a":true},{"u":607,"l":79,"s":1,"a":true},{"u":851,"l":340,"s":0,"a":false},{"u":537,"l":243,"s":1,"a":false},{"u":562,"l":461,"s":1,"a":false},{"u":991,"l":402,"s":0,"a":false},{"u":663,"l":312,"s":0,"a":false},{"u":635,"l":331,"s":0,"a":false},{"u":997,"l":985,"s":0,"a":true},{"u":736,"l":430,"s":1,"a":false},{"u":614,"l":574,"s":0,"a":false},{"u":870,"l":733,"s":0,"a":true},{"u":458,"l":401,"s":1,"a":false},{"u":865,"l":856,"s":1,"a":true},{"u":708,"l":444,"s":1,"a":true},{"u":761,"l":383,"s":1,"a":false},{"u":826,"l":358,"s":0,"a":false},{"u":574,"l":157,"s":1,"a":true},{"u":822,"l":359,"s":0,"a":false},{"u":688,"l":220,"s":1,"a":false},{"u":516,"l":279,"s":0,"a":true},{"u":238,"l":228,"s":1,"a":false},{"u":813,"l":422,"s":1,"a":false},{"u":226,"l":43,"s":1,"a":false},{"u":305,"l":59,"s":1,"a":false},{"u":245,"l":122,"s":0,"a":true},{"u":670,"l":349,"s":0,"a":true},{"u":565,"l":318,"s":0,"a":true},{"u":602,"l":38,"s":1,"a":false},{"u":967,"l":677,"s":0,"a":false},{"u":985,"l":681,"s":1,"a":false},{"u":978,"l":698,"s":0,"a":false},{"u":473,"l":26,"s":1,"a":false},{"u":615,"l":219,"s":0,"a":true},{"u":70,"l":63,"s":0,"a":false},{"u":689,"l":561,"s":0,"a":false},{"u":700,"l":515,"s":1,"a":true},{"u":604,"l":494,"s":0,"a":true},{"u":872,"l":523,"s":1,"a":false},{"u":938,"l":573,"s":1,"a":true},{"u":583,"l":467,"s":1,"a":true},{"u":809,"l":541,"s":0,"a":false},{"u":708,"l":93,"s":1,"a":true},{"u":796,"l":787,"s":1,"a":true},{"u":886,"l":809,"s":1,"a":true},{"u":490,"l":168,"s":0,"a":true},{"u":922,"l":30,"s":1,"a":false},{"u":840,"l":128,"s":1,"a":true},{"u":843,"l":786,"s":1,"a":false},{"u":170,"l":59,"s":1,"a":false},{"u":793,"l":369,"s":0,"a":false},{"u":777,"l":196,"s":0,"a":true},{"u":654,"l":326,"s":0,"a":true},{"u":735,"l":696,"s":0,"a":false},{"u":802,"l":240,"s":1,"a":true},{"u":788,"l":446,"s":0,"a":true},{"u":843,"l":125,"s":1,"a":true},{"u":571,"l":143,"s":1,"a":true},{"u":734,"l":677,"s":0,"a":false},{"u":396,"l":130,"s":0,"a":true},{"u":712,"l":32,"s":0,"a":false},{"u":892,"l":890,"s":1,"a":true},{"u":724,"l":423,"s":1,"a":false},{"u":745,"l":502,"s":0,"a":false},{"u":950,"l":882,"s":1,"a":false},{"u":522,"l":510,"s":0,"a":true},{"u":435,"l":330,"s":0,"a":true},{"u":807,"l":597,"s":0,"a":false},{"u":399,"l":289,"s":0,"a":false},{"u":957,"l":109,"s":0,"a":false},{"u":830,"l":606,"s":0,"a":false},{"u":718,"l":625,"s":0,"a":false},{"u":628,"l":202,"s":1,"a":true},{"u":960,"l":839,"s":1,"a":false},{"u":807,"l":549,"s":1,"a":true},{"u":668,"l":221,"s":0,"a":true},{"u":695,"l":418,"s":1,"a":false},{"u":885,"l":507,"s":0,"a":false},{"u":443,"l":373,"s":1,"a":false},{"u":506,"l":416,"s":1,"a":false},{"u":205,"l":81,"s":1,"a":false},{"u":557,"l":53,"s":1,"a":false},{"u":408,"l":1,"s":0,"a":true},{"u":465,"l":446,"s":0,"a":false},{"u":754,"l":459,"s":0,"a":true},{"u":527,"l":216,"s":1,"a":true},{"u":528,"l":66,"s":1,"a":false},{"u":520,"l":370,"s":1,"a":true},{"u":811,"l":406,"s":1,"a":false},{"u":573,"l":404,"s":0,"a":true},{"u":557,"l":110,"s":0,"a":true},{"u":923,"l":676,"s":0,"a":true},{"u":966,"l":494,"s":0,"a":false},{"u":899,"l":799,"s":0,"a":true},{"u":529,"l":69,"s":1,"a":true},{"u":683,"l":433,"s":0,"a":true},{"u":822,"l":176,"s":1,"a":true},{"u":976,"l":730,"s":0,"a":true},{"u":799,"l":59,"s":0,"a":false},{"u":889,"l":192,"s":0,"a":false},{"u":849,"l":723,"s":1,"a":true},{"u":582,"l":204,"s":0,"a":true},{"u":951,"l":251,"s":0,"a":true},{"u":797,"l":244,"s":0,"a":false},{"u":623,"l":561,"s":0,"a":false},{"u":259,"l":193,"s":1,"a":false},{"u":992,"l":366,"s":0,"a":true},{"u":220,"l":71,"s":0,"a":true},{"u":514,"l":143,"s":0,"a":false},{"u":498,"l":449,"s":1,"a":true},{"u":811,"l":63,"s":1,"a":true},{"u":774,"l":674,"s":0,"a":true},{"u":962,"l":29,"s":0,"a":true},{"u":775,"l":240,"s":0,"a":true},{"u":833,"l":55,"s":0,"a":true},{"u":815,"l":542,"s":1,"a":true},{"u":962,"l":786,"s":0,"a":true},{"u":769,"l":622,"s":0,"a":true},{"u":515,"l":212,"s":0,"a":true},{"u":836,"l":271,"s":1,"a":false},{"u":691,"l":308,"s":1,"a":false},{"u":582,"l":380,"s":1,"a":true},{"u":890,"l":829,"s":1,"a":false},{"u":179,"l":68,"s":0,"a":true},{"u":963,"l":370,"s":1,"a":false},{"u":219,"l":20,"s":0,"a":true},{"u":821,"l":447,"s":0,"a":true},{"u":674,"l":64,"s":1,"a":false},{"u":326,"l":304,"s":1,"a":false},{"u":385,"l":70,"s":1,"a":true},{"u":523,"l":269,"s":1,"a":false},{"u":690,"l":240,"s":1,"a":true},{"u":739,"l":210,"s":1,"a":false},{"u":472,"l":278,"s":1,"a":false},{"u":720,"l":711,"s":0,"a":false},{"u":600,"l":32,"s":1,"a":false},{"u":869,"l":814,"s":0,"a":true},{"u":657,"l":399,"s":1,"a":false},{"u":970,"l":719,"s":0,"a":false},{"u":604,"l":348,"s":1,"a":true},{"u":528,"l":495,"s":0,"a":false},{"u":326,"l":70,"s":1,"a":true},{"u":992,"l":502,"s":0,"a":false},{"u":554,"l":313,"s":0,"a":false},{"u":137,"l":100,"s":0,"a":true},{"u":176,"l":100,"s":1,"a":true},{"u":815,"l":156,"s":0,"a":false},{"u":977,"l":915,"s":1,"a":false},{"u":825,"l":110,"s":1,"a":true},{"u":939,"l":402,"s":1,"a":true},{"u":867,"l":22,"s":1,"a":true},{"u":799,"l":369,"s":0,"a":false},{"u":593,"l":93,"s":0,"a":false},{"u":935,"l":643,"s":0,"a":false},{"u":924,"l":111,"s":1,"a":false},{"u":842,"l":453,"s":1,"a":false},{"u":963,"l":305,"s":1,"a":false},{"u":591,"l":464,"s":1,"a":true},{"u":826,"l":354,"s":1,"a":true},{"u":855,"l":44,"s":0,"a":false},{"u":996,"l":540,"s":1,"a":true},{"u":866,"l":636,"s":1,"a":true},{"u":785,"l":307,"s":1,"a":true},{"u":644,"l":454,"s":1,"a":false},{"u":955,"l":94,"s":0,"a":true},{"u":758,"l":110,"s":0,"a":false},{"u":613,"l":470,"s":0,"a":false},{"u":924,"l":199,"s":1,"a":false},{"u":307,"l":189,"s":1,"a":true},{"u":854,"l":665,"s":0,"a":false},{"u":381,"l":313,"s":0,"a":false},{"u":69,"l":31,"s":1,"a":true},{"u":819,"l":561,"s":1,"a":false},{"u":546,"l":122,"s":1,"a":false},{"u":642,"l":474,"s":0,"a":false},{"u":822,"l":565,"s":1,"a":false},{"u":693,"l":637,"s":1,"a":false},{"u":878,"l":291,"s":0,"a":false},{"u":393,"l":155,"s":0,"a":false},{"u":936,"l":284,"s":0,"a":false},{"u":375,"l":372,"s":1,"a":false},{"u":852,"l":224,"s":0,"a":true},{"u":120,"l":86,"s":1,"a":true},{"u":256,"l":216,"s":0,"a":false},{"u":457,"l":358,"s":1,"a":false},{"u":591,"l":387,"s":1,"a":false},{"u":812,"l":409,"s":1,"a":false},{"u":923,"l":708,"s":1,"a":false},{"u":695,"l":612,"s":0,"a":false},{"u":752,"l":60,"s":1,"a":true},{"u":299,"l":57,"s":1,"a":true},{"u":731,"l":345,"s":0,"a":false},{"u":745,"l":137,"s":1,"a":false},{"u":561,"l":313,"s":1,"a":false},{"u":726,"l":426,"s":1,"a":true},{"u":86,"l":58,"s":1,"a":false},{"u":644,"l":621,"s":0,"a":false},{"u":481,"l":265,"s":1,"a":true},{"u":615,"l":2,"s":1,"a":false},{"u":527,"l":499,"s":1,"a":false},{"u":383,"l":218,"s":1,"a":false},{"u":548,"l":273,"s":0,"a":true},{"u":849,"l":735,"s":0,"a":true},{"u":615,"l":429,"s":0,"a":true},{"u":892,"l":826,"s":1,"a":false},{"u":843,"l":37,"s":1,"a":true},{"u":583,"l":480,"s":1,"a":true},{"u":899,"l":94,"s":1,"a":true},{"u":708,"l":237,"s":1,"a":false},{"u":771,"l":550,"s":0,"a":false},{"u":982,"l":601,"s":1,"a":true},{"u":875,"l":25,"s":1,"a":false},{"u":943,"l":230,"s":0,"a":false},{"u":988,"l":836,"s":1,"a":true},{"u":697,"l":72,"s":1,"a":false},{"u":324,"l":247,"s":0,"a":true},{"u":786,"l":340,"s":1,"a":false},{"u":991,"l":92,"s":0,"a":true},{"u":972,"l":267,"s":1,"a":false},{"u":894,"l":748,"s":1,"a":false},{"u":461,"l":362,"s":1,"a":true},{"u":872,"l":132,"s":1,"a":false},{"u":859,"l":626,"s":0,"a":false},{"u":450,"l":55,"s":1,"a":true},{"u":982,"l":540,"s":1,"a":false},{"u":344,"l":125,"s":0,"a":true},{"u":524,"l":267,"s":1,"a":true},{"u":733,"l":41,"s":0,"a":false},{"u":768,"l":519,"s":0,"a":false},{"u":610,"l":150,"s":1,"a":true},{"u":804,"l":357,"s":0,"a":true},{"u":868,"l":678,"s":0,"a":true},{"u":774,"l":273,"s":0,"a":false},{"u":976,"l":219,"s":0,"a":true},{"u":793,"l":19,"s":0,"a":true},{"u":858,"l":812,"s":1,"a":false},{"u":891,"l":794,"s":0,"a":false},{"u":545,"l":411,"s":1,"a":false},{"u":497,"l":167,"s":1,"a":true},{"u":791,"l":247,"s":0,"a":false},{"u":903,"l":363,"s":1,"a":true},{"u":423,"l":15,"s":0,"a":true},{"u":497,"l":337,"s":1,"a":false},{"u":974,"l":762,"s":0,"a":false},{"u":828,"l":86,"s":1,"a":true},{"u":701,"l":35,"s":0,"a":true},{"u":313,"l":136,"s":0,"a":false},{"u":703,"l":676,"s":1,"a":false},{"u":713,"l":306,"s":1,"a":false},{"u":953,"l":913,"s":0,"a":true},{"u":286,"l":200,"s":0,"a":false},{"u":215,"l":19,"s":0,"a":true},{"u":619,"l":359,"s":0,"a":false},{"u":990,"l":482,"s":1,"a":false},{"u":988,"l":672,"s":0,"a":true},{"u":383,"l":192,"s":0,"a":true},{"u":780,"l":733,"s":1,"a":false},{"u":825,"l":491,"s":1,"a":true},{"u":429,"l":99,"s":0,"a":true},{"u":497,"l":132,"s":1,"a":false},{"u":753,"l":210,"s":1,"a":true},{"u":723,"l":685,"s":1,"a":true},{"u":228,"l":140,"s":1,"a":true},{"u":926,"l":52,"s":1,"a":true},{"u":908,"l":176,"s":0,"a":true},{"u":708,"l":251,"s":0,"a":false},{"u":138,"l":73,"s":1,"a":true},{"u":765,"l":31,"s":1,"a":false},{"u":726,"l":553,"s":0,"a":false},{"u":930,"l":900,"s":1,"a":false},{"u":646,"l":488,"s":0,"a":false},{"u":325,"l":316,"s":1,"a":true},{"u":187,"l":137,"s":1,"a":true},{"u":579,"l":448,"s":0,"a":false},{"u":675,"l":580,"s":0,"a":true},{"u":754,"l":259,"s":0,"a":false},{"u":688,"l":677,"s":1,"a":false},{"u":790,"l":504,"s":1,"a":false},{"u":672,"l":435,"s":0,"a":false},{"u":988,"l":699,"s":0,"a":true},{"u":852,"l":443,"s":0,"a":false},{"u":421,"l":95,"s":1,"a":true},{"u":218,"l":16,"s":1,"a":true},{"u":288,"l":233,"s":0,"a":false},{"u":714,"l":294,"s":1,"a":false},{"u":811,"l":486,"s":0,"a":true},{"u":814,"l":751,"s":1,"a":false},{"u":394,"l":112,"s":1,"a":false},{"u":418,"l":189,"s":0,"a":true},{"u":354,"l":349,"s":0,"a":false},{"u":814,"l":786,"s":0,"a":false},{"u":744,"l":232,"s":0,"a":true},{"u":223,"l":171,"s":1,"a":true},{"u":679,"l":103,"s":1,"a":true},{"u":331,"l":183,"s":1,"a":true},{"u":757,"l":719,"s":1,"a":false},{"u":916,"l":587,"s":0,"a":true},{"u":674,"l":486,"s":0,"a":false},{"u":573,"l":492,"s":0,"a":false},{"u":696,"l":279,"s":1,"a":true},{"u":726,"l":151,"s":1,"a":true},{"u":812,"l":307,"s":0,"a":false},{"u":456,"l":324,"s":0,"a":true},{"u":899,"l":397,"s":1,"a":false},{"u":696,"l":433,"s":1,"a":false},{"u":677,"l":478,"s":1,"a":true},{"u":963,"l":818,"s":0,"a":true},{"u":971,"l":15,"s":1,"a":true},{"u":804,"l":48,"s":1,"a":true},{"u":854,"l":36,"s":0,"a":true},{"u":378,"l":293,"s":1,"a":true},{"u":68,"l":5,"s":0,"a":true},{"u":807,"l":135,"s":0,"a":false},{"u":824,"l":808,"s":0,"a":false},{"u":808,"l":39,"s":0,"a":true},{"u":701,"l":160,"s":0,"a":true},{"u":559,"l":421,"s":1,"a":true},{"u":895,"l":746,"s":1,"a":false},{"u":372,"l":271,"s":1,"a":false},{"u":751,"l":215,"s":0,"a":true},{"u":759,"l":359,"s":0,"a":true},{"u":528,"l":25,"s":0,"a":true},{"u":261,"l":112,"s":0,"a":true},{"u":825,"l":756,"s":0,"a":false},{"u":902,"l":397,"s":1,"a":true},{"u":677,"l":591,"s":0,"a":false},{"u":550,"l":489,"s":1,"a":false},{"u":246,"l":199,"s":1,"a":true},{"u":437,"l":191,"s":1,"a":false},{"u":350,"l":168,"s":1,"a":true},{"u":392,"l":144,"s":1,"a":true},{"u":418,"l":6,"s":1,"a":false},{"u":809,"l":752,"s":0,"a":true},{"u":373,"l":190,"s":1,"a":false},{"u":434,"l":37,"s":1,"a":false},{"u":622,"l":212,"s":0,"a":false},{"u":733,"l":310,"s":1,"a":false},{"u":861,"l":130,"s":1,"a":false},{"u":668,"l":262,"s":1,"a":false},{"u":843,"l":303,"s":0,"a":true},{"u":387,"l":67,"s":0,"a":true},{"u":419,"l":55,"s":0,"a":false},{"u":430,"l":260,"s":0,"a":false},{"u":533,"l":281,"s":1,"a":false},{"u":893,"l":232,"s":1,"a":false},{"u":952,"l":889,"s":1,"a":false},{"u":261,"l":204,"s":1,"a":false},{"u":984,"l":915,"s":0,"a":false},{"u":806,"l":613,"s":0,"a":false},{"u":860,"l":259,"s":0,"a":false},{"u":912,"l":307,"s":1,"a":false},{"u":343,"l":62,"s":1,"a":false},{"u":755,"l":487,"s":1,"a":true},{"u":919,"l":366,"s":1,"a":false},{"u":410,"l":385,"s":1,"a":false},{"u":840,"l":249,"s":0,"a":true},{"u":923,"l":168,"s":1,"a":false},{"u":742,"l":234,"s":0,"a":true},{"u":536,"l":32,"s":1,"a":true},{"u":672,"l":604,"s":1,"a":true},{"u":515,"l":250,"s":0,"a":true},{"u":245,"l":24,"s":1,"a":false},{"u":977,"l":531,"s":0,"a":true},{"u":572,"l":150,"s":0,"a":true},{"u":707,"l":186,"s":1,"a":false},{"u":903,"l":237,"s":1,"a":false},{"u":583,"l":477,"s":1,"a":false},{"u":673,"l":399,"s":1,"a":true},{"u":684,"l":519,"s":1,"a":true},{"u":860,"l":550,"s":0,"a":false},{"u":868,"l":765,"s":1,"a":true},{"u":240,"l":39,"s":1,"a":false},{"u":750,"l":239,"s":0,"a":true},{"u":635,"l":112,"s":1,"a":true},{"u":489,"l":44,"s":1,"a":true},{"u":634,"l":116,"s":0,"a":false},{"u":454,"l":387,"s":1,"a":false},{"u":976,"l":132,"s":0,"a":false},{"u":661,"l":211,"s":1,"a":true},{"u":907,"l":541,"s":1,"a":true},{"u":653,"l":139,"s":0,"a":true},{"u":866,"l":684,"s":0,"a":true},{"u":643,"l":33,"s":1,"a":true},{"u":982,"l":313,"s":1,"a":false},{"u":514,"l":468,"s":0,"a":false},{"u":521,"l":17,"s":1,"a":true},{"u":772,"l":573,"s":1,"a":false},{"u":908,"l":365,"s":0,"a":true},{"u":642,"l":348,"s":1,"a":true},{"u":594,"l":180,"s":0,"a":false},{"u":905,"l":203,"s":0,"a":true},{"u":316,"l":142,"s":0,"a":false},{"u":233,"l":106,"s":0,"a":true},{"u":267,"l":58,"s":1,"a":true},{"u":116,"l":41,"s":0,"a":true},{"u":400,"l":66,"s":0,"a":false},{"u":473,"l":393,"s":0,"a":false},{"u":932,"l":773,"s":1,"a":true},{"u":773,"l":327,"s":1,"a":false},{"u":974,"l":405,"s":1,"a":true},{"u":880,"l":264,"s":1,"a":true},{"u":773,"l":678,"s":1,"a":false},{"u":571,"l":471,"s":1,"a":true},{"u":469,"l":142,"s":0,"a":true},{"u":473,"l":373,"s":1,"a":true},{"u":877,"l":538,"s":1,"a":false},{"u":538,"l":276,"s":0,"a":true},{"u":653,"l":164,"s":1,"a":false},{"u":859,"l":273,"s":0,"a":true},{"u":444,"l":144,"s":1,"a":true},{"u":790,"l":172,"s":1,"a":false},{"u":673,"l":37,"s":0,"a":true},{"u":921,"l":466,"s":0,"a":true},{"u":654,"l":145,"s":0,"a":false},{"u":749,"l":658,"s":1,"a":true},{"u":529,"l":298,"s":0,"a":false},{"u":970,"l":314,"s":0,"a":true},{"u":519,"l":426,"s":0,"a":true},{"u":673,"l":244,"s":1,"a":true},{"u":926,"l":824,"s":0,"a":false},{"u":631,"l":166,"s":1,"a":true},{"u":702,"l":370,"s":0,"a":true},{"u":711,"l":153,"s":0,"a":false},{"u":347,"l":49,"s":0,"a":false},{"u":828,"l":116,"s":1,"a":false},{"u":552,"l":76,"s":0,"a":true},{"u":460,"l":259,"s":1,"a":false},{"u":836,"l":551,"s":0,"a":true},{"u":870,"l":265,"s":0,"a":true},{"u":963,"l":771,"s":1,"a":true},{"u":913,"l":656,"s":0,"a":false},{"u":568,"l":9,"s":0,"a":false},{"u":589,"l":219,"s":1,"a":true},{"u":806,"l":70,"s":0,"a":false},{"u":779,"l":422,"s":0,"a":true},{"u":412,"l":217,"s":1,"a":false},{"u":921,"l":526,"s":0,"a":false},{"u":815,"l":365,"s":1,"a":false},{"u":728,"l":31,"s":1,"a":false},{"u":904,"l":815,"s":0,"a":true},{"u":595,"l":1,"s":0,"a":true},{"u":873,"l":207,"s":0,"a":true},{"u":730,"l":306,"s":0,"a":false},{"u":406,"l":405,"s":0,"a":true},{"u":816,"l":367,"s":1,"a":false},{"u":519,"l":146,"s":1,"a":true},{"u":773,"l":124,"s":1,"a":true},{"u":868,"l":589,"s":0,"a":false},{"u":840,"l":657,"s":0,"a":true},{"u":594,"l":111,"s":0,"a":true},{"u":843,"l":603,"s":0,"a":true},{"u":618,"l":516,"s":0,"a":false},{"u":727,"l":594,"s":1,"a":false},{"u":980,"l":844,"s":1,"a":false},{"u":862,"l":129,"s":0,"a":false},{"u":474,"l":7,"s":0,"a":true},{"u":888,"l":612,"s":0,"a":false},{"u":213,"l":25,"s":0,"a":true},{"u":136,"l":113,"s":0,"a":false},{"u":939,"l":602,"s":0,"a":true},{"u":507,"l":73,"s":0,"a":true},{"u":100,"l":82,"s":0,"a":true},{"u":894,"l":621,"s":1,"a":true},{"u":460,"l":14,"s":0,"a":true},{"u":47,"l":40,"s":0,"a":true},{"u":845,"l":399,"s":0,"a":false},{"u":657,"l":313,"s":1,"a":true},{"u":898,"l":557,"s":1,"a":false},{"u":879,"l":108,"s":0,"a":false},{"u":554,"l":311,"s":0,"a":true},{"u":814,"l":362,"s":1,"a":true},{"u":699,"l":73,"s":0,"a":true},{"u":743,"l":198,"s":0,"a":true},{"u":966,"l":898,"s":1,"a":true},{"u":960,"l":944,"s":1,"a":true},{"u":638,"l":439,"s":1,"a":true},{"u":597,"l":123,"s":1,"a":true},{"u":685,"l":366,"s":0,"a":false},{"u":931,"l":698,"s":0,"a":false},{"u":768,"l":200,"s":1,"a":true},{"u":445,"l":358,"s":0,"a":false},{"u":262,"l":170,"s":0,"a":true},{"u":510,"l":166,"s":0,"a":false},{"u":862,"l":11,"s":0,"a":false},{"u":600,"l":313,"s":0,"a":true},{"u":716,"l":544,"s":1,"a":true},{"u":797,"l":263,"s":1,"a":false},{"u":772,"l":421,"s":1,"a":false},{"u":817,"l":799,"s":0,"a":false},{"u":545,"l":230,"s":1,"a":true},{"u":189,"l":56,"s":0,"a":false},{"u":624,"l":403,"s":0,"a":false},{"u":612,"l":503,"s":1,"a":false},{"u":368,"l":365,"s":1,"a":true},{"u":823,"l":239,"s":1,"a":false},{"u":820,"l":542,"s":1,"a":true},{"u":282,"l":146,"s":0,"a":false},{"u":449,"l":81,"s":1,"a":true},{"u":832,"l":573,"s":1,"a":true},{"u":200,"l":34,"s":0,"a":true},{"u":866,"l":19,"s":1,"a":false},{"u":455,"l":71,"s":1,"a":true},{"u":993,"l":688,"s":1,"a":true},{"u":852,"l":388,"s":0,"a":false},{"u":377,"l":48,"s":0,"a":false},{"u":890,"l":769,"s":1,"a":false},{"u":747,"l":714,"s":1,"a":false},{"u":510,"l":295,"s":0,"a":false},{"u":921,"l":392,"s":1,"a":true},{"u":329,"l":136,"s":0,"a":true},{"u":985,"l":852,"s":1,"a":true},{"u":888,"l":9,"s":1,"a":false},{"u":486,"l":308,"s":1,"a":true},{"u":719,"l":422,"s":1,"a":true},{"u":547,"l":424,"s":0,"a":true},{"u":526,"l":274,"s":0,"a":false},{"u":490,"l":31,"s":1,"a":false},{"u":578,"l":441,"s":0,"a":true},{"u":916,"l":363,"s":1,"a":true},{"u":476,"l":419,"s":1,"a":true},{"u":808,"l":338,"s":0,"a":false},{"u":967,"l":46,"s":0,"a":true},{"u":550,"l":20,"s":0,"a":true},{"u":647,"l":616,"s":1,"a":true},{"u":645,"l":286,"s":1,"a":false},{"u":581,"l":106,"s":1,"a":false},{"u":613,"l":122,"s":0,"a":false},{"u":947,"l":199,"s":0,"a":false},{"u":527,"l":13,"s":0,"a":false},{"u":640,"l":398,"s":0,"a":false},{"u":957,"l":895,"s":0,"a":false},{"u":612,"l":516,"s":0,"a":true},{"u":907,"l":322,"s":1,"a":false},{"u":760,"l":496,"s":1,"a":true},{"u":868,"l":619,"s":0,"a":false},{"u":910,"l":683,"s":0,"a":false},{"u":479,"l":420,"s":0,"a":false},{"u":791,"l":652,"s":1,"a":false},{"u":969,"l":415,"s":1,"a":false},{"u":136,"l":22,"s":0,"a":true},{"u":737,"l":552,"s":1,"a":false},{"u":997,"l":220,"s":1,"a":true},{"u":318,"l":45,"s":1,"a":false},{"u":870,"l":15,"s":0,"a":false},{"u":980,"l":754,"s":1,"a":false},{"u":104,"l":66,"s":1,"a":true},{"u":612,"l":200,"s":0,"a":true},{"u":787,"l":774,"s":0,"a":false},{"u":961,"l":745,"s":1,"a":false},{"u":946,"l":844,"s":1,"a":true},{"u":927,"l":349,"s":1,"a":false},{"u":718,"l":552,"s":1,"a":true},{"u":236,"l":159,"s":0,"a":false},{"u":810,"l":566,"s":1,"a":false},{"u":671,"l":451,"s":0,"a":true},{"u":793,"l":369,"s":0,"a":true},{"u":758,"l":394,"s":1,"a":false},{"u":599,"l":303,"s":0,"a":false},{"u":191,"l":38,"s":1,"a":true},{"u":919,"l":157,"s":1,"a":true},{"u":711,"l":90,"s":0,"a":true},{"u":864,"l":120,"s":0,"a":false},{"u":422,"l":290,"s":0,"a":false},{"u":290,"l":187,"s":0,"a":true},{"u":978,"l":402,"s":1,"a":false},{"u":962,"l":343,"s":0,"a":true},{"u":760,"l":221,"s":1,"a":false},{"u":858,"l":695,"s":1,"a":true},{"u":966,"l":914,"s":0,"a":true},{"u":890,"l":189,"s":1,"a":true},{"u":784,"l":190,"s":1,"a":false},{"u":338,"l":122,"s":1,"a":true},{"u":981,"l":283,"s":1,"a":true},{"u":883,"l":354,"s":0,"a":true},{"u":656,"l":33,"s":0,"a":false},{"u":659,"l":499,"s":1,"a":false},{"u":734,"l":629,"s":0,"a":false},{"u":950,"l":221,"s":0,"a":false},{"u":878,"l":11,"s":0,"a":false},{"u":714,"l":459,"s":1,"a":true},{"u":988,"l":634,"s":0,"a":false},{"u":234,"l":149,"s":0,"a":true},{"u":741,"l":675,"s":1,"a":false},{"u":929,"l":645,"s":0,"a":false},{"u":937,"l":87,"s":0,"a":false},{"u":822,"l":396,"s":0,"a":false},{"u":531,"l":306,"s":0,"a":true},{"u":615,"l":237,"s":0,"a":false},{"u":897,"l":515,"s":0,"a":false},{"u":71,"l":38,"s":0,"a":true},{"u":766,"l":257,"s":1,"a":true},{"u":160,"l":8,"s":1,"a":true},{"u":952,"l":924,"s":0,"a":false},{"u":250,"l":15,"s":0,"a":false},{"u":933,"l":481,"s":1,"a":false},{"u":434,"l":170,"s":0,"a":false},{"u":535,"l":268,"s":1,"a":false},{"u":649,"l":234,"s":1,"a":true},{"u":916,"l":162,"s":0,"a":true},{"u":970,"l":447,"s":1,"a":false},{"u":896,"l":502,"s":1,"a":false},{"u":478,"l":474,"s":1,"a":false},{"u":700,"l":13,"s":1,"a":false},{"u":960,"l":626,"s":0,"a":true},{"u":904,"l":897,"s":1,"a":true},{"u":504,"l":310,"s":1,"a":false},{"u":598,"l":125,"s":0,"a":false},{"u":979,"l":307,"s":1,"a":true},{"u":628,"l":492,"s":0,"a":true},{"u":799,"l":705,"s":1,"a":false},{"u":760,"l":351,"s":0,"a":false},{"u":804,"l":599,"s":1,"a":true},{"u":817,"l":437,"s":0,"a":true},{"u":256,"l":167,"s":0,"a":false},{"u":955,"l":115,"s":0,"a":true},{"u":187,"l":140,"s":1,"a":true},{"u":633,"l":20,"s":1,"a":true},{"u":642,"l":21,"s":1,"a":true},{"u":113,"l":88,"s":0,"a":true},{"u":358,"l":172,"s":0,"a":false},{"u":482,"l":386,"s":1,"a":true},{"u":551,"l":237,"s":0,"a":true},{"u":992,"l":763,"s":1,"a":true},{"u":999,"l":877,"s":1,"a":false},{"u":602,"l":316,"s":0,"a":true},{"u":371,"l":252,"s":0,"a":true},{"u":556,"l":553,"s":1,"a":false},{"u":860,"l":464,"s":1,"a":true},{"u":889,"l":189,"s":1,"a":true},{"u":814,"l":401,"s":1,"a":false},{"u":730,"l":696,"s":1,"a":false},{"u":776,"l":609,"s":1,"a":true},{"u":720,"l":6,"s":1,"a":false},{"u":234,"l":148,"s":0,"a":true},{"u":937,"l":518,"s":0,"a":false},{"u":943,"l":18,"s":0,"a":false},{"u":468,"l":212,"s":0,"a":false},{"u":478,"l":401,"s":0,"a":true},{"u":711,"l":514,"s":0,"a":false},{"u":422,"l":288,"s":0,"a":true},{"u":898,"l":342,"s":1,"a":true},{"u":921,"l":504,"s":1,"a":false},{"u":809,"l":67,"s":1,"a":true},{"u":305,"l":88,"s":1,"a":false},{"u":632,"l":479,"s":1,"a":false},{"u":242,"l":100,"s":1,"a":false},{"u":483,"l":434,"s":1,"a":true},{"u":531,"l":163,"s":1,"a":true},{"u":149,"l":90,"s":1,"a":false},{"u":537,"l":191,"s":0,"a":false},{"u":360,"l":330,"s":0,"a":false},{"u":741,"l":518,"s":0,"a":false},{"u":970,"l":920,"s":0,"a":false},{"u":748,"l":619,"s":0,"a":false},{"u":157,"l":17,"s":1,"a":false},{"u":919,"l":574,"s":0,"a":false},{"u":317,"l":20,"s":1,"a":false},{"u":568,"l":303,"s":1,"a":true},{"u":98,"l":1,"s":0,"a":false},{"u":655,"l":263,"s":1,"a":false},{"u":643,"l":193,"s":1,"a":false},{"u":803,"l":459,"s":0,"a":false},{"u":741,"l":152,"s":1,"a":true},{"u":863,"l":863,"s":1,"a":true},{"u":122,"l":42,"s":0,"a":false},{"u":432,"l":280,"s":0,"a":true},{"u":898,"l":221,"s":1,"a":true},{"u":763,"l":328,"s":0,"a":true},{"u":948,"l":452,"s":1,"a":true},{"u":946,"l":244,"s":0,"a":true},{"u":461,"l":135,"s":1,"a":false},{"u":998,"l":92,"s":1,"a":true},{"u":482,"l":272,"s":1,"a":true},{"u":452,"l":442,"s":0,"a":false},{"u":832,"l":472,"s":0,"a":true},{"u":639,"l":40,"s":0,"a":false},{"u":49,"l":10,"s":1,"a":false},{"u":301,"l":237,"s":1,"a":false},{"u":546,"l":70,"s":1,"a":false},{"u":712,"l":340,"s":0,"a":true},{"u":884,"l":831,"s":0,"a":false},{"u":398,"l":41,"s":1,"a":true},{"u":870,"l":369,"s":0,"a":true},{"u":512,"l":342,"s":1,"a":true},{"u":498,"l":476,"s":1,"a":false},{"u":925,"l":510,"s":0,"a":true},{"u":384,"l":44,"s":1,"a":true},{"u":700,"l":587,"s":0,"a":false},{"u":601,"l":153,"s":0,"a":true},{"u":572,"l":240,"s":1,"a":false},{"u":573,"l":481,"s":1,"a":false},{"u":479,"l":28,"s":1,"a":true},{"u":632,"l":340,"s":1,"a":false},{"u":885,"l":378,"s":0,"a":false},{"u":837,"l":449,"s":1,"a":true},{"u":952,"l":420,"s":1,"a":true},{"u":704,"l":217,"s":0,"a":true},{"u":379,"l":209,"s":0,"a":false},{"u":937,"l":718,"s":0,"a":false},{"u":875,"l":593,"s":0,"a":false},{"u":465,"l":375,"s":0,"a":true},{"u":382,"l":294,"s":0,"a":true},{"u":272,"l":50,"s":0,"a":true},{"u":545,"l":153,"s":1,"a":false},{"u":300,"l":135,"s":0,"a":true},{"u":901,"l":356,"s":0,"a":true},{"u":594,"l":6,"s":1,"a":true},{"u":652,"l":227,"s":0,"a":false},{"u":336,"l":157,"s":1,"a":true},{"u":622,"l":114,"s":0,"a":false},{"u":516,"l":407,"s":1,"a":false},{"u":860,"l":8,"s":1,"a":true},{"u":216,"l":161,"s":0,"a":true},{"u":879,"l":636,"s":0,"a":false},{"u":907,"l":155,"s":0,"a":false},{"u":887,"l":228,"s":0,"a":true},{"u":808,"l":163,"s":0,"a":true},{"u":524,"l":288,"s":1,"a":true},{"u":979,"l":143,"s":1,"a":true},{"u":802,"l":154,"s":0,"a":true},{"u":944,"l":642,"s":0,"a":true},{"u":832,"l":650,"s":1,"a":true},{"u":329,"l":328,"s":0,"a":false},{"u":822,"l":315,"s":1,"a":false},{"u":738,"l":161,"s":1,"a":false},{"u":590,"l":539,"s":0,"a":false},{"u":820,"l":40,"s":1,"a":false},{"u":446,"l":327,"s":0,"a":false},{"u":548,"l":288,"s":1,"a":false},{"u":516,"l":318,"s":0,"a":true},{"u":641,"l":63,"s":1,"a":true},{"u":710,"l":317,"s":1,"a":false},{"u":914,"l":752,"s":1,"a":true},{"u":887,"l":542,"s":0,"a":false},{"u":446,"l":218,"s":0,"a":true},{"u":922,"l":82,"s":1,"a":false},{"u":935,"l":760,"s":1,"a":false},{"u":330,"l":268,"s":1,"a":true},{"u":731,"l":403,"s":1,"a":false},{"u":929,"l":678,"s":1,"a":false},{"u":706,"l":37,"s":1,"a":true},{"u":261,"l":32,"s":0,"a":true},{"u":976,"l":5,"s":0,"a":false},{"u":442,"l":29,"s":1,"a":true},{"u":889,"l":380,"s":0,"a":false},{"u":562,"l":37,"s":0,"a":true},{"u":572,"l":181,"s":0,"a":true},{"u":718,"l":214,"s":0,"a":true},{"u":483,"l":237,"s":0,"a":false},{"u":828,"l":154,"s":0,"a":false},{"u":840,"l":637,"s":0,"a":true},{"u":537,"l":449,"s":0,"a":true},{"u":437,"l":224,"s":0,"a":true},{"u":380,"l":122,"s":0,"a":false},{"u":740,"l":712,"s":0,"a":true},{"u":910,"l":490,"s":0,"a":false},{"u":894,"l":96,"s":1,"a":true},{"u":961,"l":206,"s":1,"a":true},{"u":772,"l":5,"s":0,"a":false},{"u":643,"l":294,"s":0,"a":true},{"u":795,"l":433,"s":0,"a":false},{"u":904,"l":243,"s":0,"a":false},{"u":644,"l":332,"s":0,"a":true},{"u":682,"l":659,"s":1,"a":false},{"u":857,"l":530,"s":1,"a":false},{"u":637,"l":273,"s":1,"a":false},{"u":662,"l":179,"s":0,"a":false},{"u":518,"l":324,"s":1,"a":false},{"u":695,"l":317,"s":1,"a":true},{"u":719,"l":602,"s":1,"a":true},{"u":867,"l":531,"s":1,"a":true},{"u":572,"l":335,"s":0,"a":false},{"u":911,"l":903,"s":1,"a":false},{"u":953,"l":666,"s":0,"a":false},{"u":913,"l":289,"s":1,"a":true},{"u":119,"l":90,"s":1,"a":false},{"u":472,"l":131,"s":1,"a":true},{"u":996,"l":660,"s":0,"a":false},{"u":546,"l":434,"s":0,"a":true},{"u":210,"l":126,"s":1,"a":false},{"u":641,"l":309,"s":1,"a":true},{"u":281,"l":143,"s":0,"a":true},{"u":853,"l":645,"s":0,"a":false},{"u":795,"l":585,"s":1,"a":false},{"u":817,"l":606,"s":0,"a":false},{"u":77,"l":69,"s":1,"a":false},{"u":718,"l":65,"s":1,"a":true},{"u":806,"l":608,"s":1,"a":true},{"u":993,"l":131,"s":0,"a":true},{"u":751,"l":545,"s":1,"a":true},{"u":893,"l":89,"s":0,"a":true},{"u":747,"l":581,"s":1,"a":true},{"u":401,"l":169,"s":0,"a":true},{"u":860,"l":72,"s":0,"a":false},{"u":384,"l":166,"s":0,"a":false},{"u":790,"l":390,"s":0,"a":true},{"u":463,"l":381,"s":1,"a":true},{"u":553,"l":208,"s":1,"a":false},{"u":888,"l":392,"s":0,"a":false},{"u":770,"l":607,"s":1,"a":false},{"u":701,"l":164,"s":0,"a":false},{"u":912,"l":568,"s":1,"a":false},{"u":737,"l":593,"s":0,"a":false},{"u":534,"l":23,"s":1,"a":false},{"u":763,"l":131,"s":1,"a":false},{"u":512,"l":45,"s":1,"a":false},{"u":350,"l":171,"s":0,"a":false},{"u":736,"l":179,"s":0,"a":false},{"u":877,"l":387,"s":1,"a":false},{"u":672,"l":349,"s":0,"a":false},{"u":461,"l":4,"s":1,"a":false},{"u":799,"l":692,"s":1,"a":true},{"u":983,"l":681,"s":1,"a":true},{"u":951,"l":667,"s":1,"a":false},{"u":973,"l":888,"s":0,"a":true},{"u":957,"l":611,"s":0,"a":false},{"u":969,"l":716,"s":1,"a":false},{"u":61,"l":35,"s":1,"a":true},{"u":878,"l":10,"s":1,"a":false},{"u":907,"l":843,"s":1,"a":false},{"u":861,"l":525,"s":0,"a":true},{"u":549,"l":175,"s":0,"a":false},{"u":259,"l":69,"s":1,"a":true},{"u":733,"l":279,"s":1,"a":true},{"u":754,"l":310,"s":1,"a":false},{"u":453,"l":77,"s":0,"a":false},{"u":956,"l":240,"s":1,"a":false},{"u":560,"l":374,"s":0,"a":false},{"u":716,"l":514,"s":0,"a":false},{"u":277,"l":264,"s":1,"a":false},{"u":647,"l":337,"s":1,"a":false},{"u":206,"l":180,"s":0,"a":false},{"u":433,"l":370,"s":1,"a":false},{"u":748,"l":101,"s":1,"a":false},{"u":343,"l":139,"s":1,"a":true},{"u":837,"l":834,"s":1,"a":true},{"u":952,"l":641,"s":1,"a":true},{"u":734,"l":461,"s":1,"a":false},{"u":841,"l":372,"s":0,"a":false},{"u":445,"l":153,"s":0,"a":true},{"u":931,"l":88,"s":1,"a":true},{"u":342,"l":134,"s":0,"a":true},{"u":386,"l":107,"s":1,"a":false},{"u":805,"l":474,"s":1,"a":true},{"u":583,"l":129,"s":1,"a":false},{"u":61,"l":9,"s":1,"a":false},{"u":768,"l":594,"s":0,"a":false},{"u":842,"l":736,"s":1,"a":true},{"u":602,"l":221,"s":1,"a":false},{"u":675,"l":286,"s":0,"a":true},{"u":959,"l":685,"s":0,"a":true},{"u":913,"l":312,"s":1,"a":false},{"u":917,"l":66,"s":0,"a":false},{"u":955,"l":352,"s":1,"a":true},{"u":744,"l":391,"s":0,"a":false},{"u":907,"l":420,"s":0,"a":true},{"u":330,"l":325,"s":0,"a":true},{"u":862,"l":308,"s":0,"a":false},{"u":569,"l":444,"s":1,"a":false},{"u":731,"l":510,"s":0,"a":false},{"u":407,"l":395,"s":1,"a":true},{"u":799,"l":669,"s":0,"a":true},{"u":707,"l":449,"s":1,"a":false},{"u":805,"l":67,"s":1,"a":false},{"u":717,"l":336,"s":0,"a":true},{"u":565,"l":519,"s":0,"a":true},{"u":810,"l":446,"s":0,"a":true},{"u":586,"l":230,"s":0,"a":true},{"u":771,"l":426,"s":1,"a":false},{"u":963,"l":245,"s":1,"a":false},{"u":955,"l":547,"s":0,"a":false},{"u":650,"l":85,"s":1,"a":true},{"u":368,"l":195,"s":1,"a":true},{"u":128,"l":42,"s":0,"a":true},{"u":465,"l":454,"s":0,"a":true},{"u":292,"l":159,"s":0,"a":true},{"u":691,"l":618,"s":1,"a":false},{"u":608,"l":560,"s":1,"a":true},{"u":973,"l":508,"s":0,"a":true},{"u":458,"l":18,"s":0,"a":false},{"u":596,"l":311,"s":1,"a":true},{"u":843,"l":414,"s":1,"a":false},{"u":591,"l":334,"s":0,"a":false},{"u":759,"l":454,"s":0,"a":true},{"u":602,"l":280,"s":0,"a":false},{"u":391,"l":6,"s":1,"a":true},{"u":813,"l":272,"s":0,"a":false},{"u":673,"l":495,"s":1,"a":true},{"u":290,"l":265,"s":1,"a":false},{"u":794,"l":583,"s":1,"a":true},{"u":378,"l":60,"s":0,"a":true},{"u":406,"l":192,"s":0,"a":false},{"u":916,"l":594,"s":1,"a":false},{"u":986,"l":983,"s":0,"a":true},{"u":865,"l":213,"s":1,"a":false},{"u":870,"l":732,"s":0,"a":true},{"u":987,"l":260,"s":1,"a":true},{"u":718,"l":439,"s":0,"a":false},{"u":995,"l":466,"s":0,"a":false},{"u":646,"l":83,"s":1,"a":false},{"u":693,"l":122,"s":0,"a":false},{"u":795,"l":277,"s":0,"a":true},{"u":446,"l":423,"s":0,"a":false},{"u":816,"l":464,"s":0,"a":true},{"u":796,"l":640,"s":0,"a":false},{"u":324,"l":195,"s":1,"a":true},{"u":857,"l":627,"s":1,"a":false},{"u":364,"l":41,"s":1,"a":true},{"u":765,"l":372,"s":0,"a":true},{"u":792,"l":101,"s":0,"a":true},{"u":968,"l":548,"s":1,"a":false},{"u":493,"l":79,"s":1,"a":false},{"u":614,"l":566,"s":1,"a":true},{"u":479,"l":211,"s":1,"a":true},{"u":441,"l":423,"s":0,"a":true},{"u":566,"l":278,"s":0,"a":true},{"u":866,"l":266,"s":1,"a":true},{"u":512,"l":112,"s":1,"a":false},{"u":473,"l":455,"s":1,"a":false},{"u":755,"l":154,"s":1,"a":true},{"u":878,"l":173,"s":1,"a":true},{"u":804,"l":556,"s":0,"a":false},{"u":578,"l":54,"s":1,"a":false},{"u":555,"l":107,"s":1,"a":false},{"u":345,"l":316,"s":1,"a":false},{"u":743,"l":80,"s":1,"a":false},{"u":416,"l":389,"s":0,"a":false},{"u":797,"l":6,"s":1,"a":false},{"u":688,"l":32,"s":0,"a":false},{"u":768,"l":293,"s":0,"a":false},{"u":495,"l":477,"s":0,"a":false},{"u":484,"l":64,"s":1,"a":true},{"u":43,"l":26,"s":1,"a":true},{"u":550,"l":191,"s":0,"a":false},{"u":795,"l":571,"s":0,"a":false},{"u":165,"l":30,"s":0,"a":false},{"u":549,"l":12,"s":0,"a":true},{"u":326,"l":229,"s":1,"a":false},{"u":778,"l":535,"s":0,"a":false},{"u":579,"l":202,"s":0,"a":false},{"u":149,"l":130,"s":0,"a":true},{"u":935,"l":640,"s":0,"a":true},{"u":828,"l":221,"s":0,"a":false},{"u":272,"l":239,"s":1,"a":false},{"u":457,"l":83,"s":0,"a":false},{"u":599,"l":27,"s":1,"a":true},{"u":938,"l":859,"s":0,"a":false},{"u":665,"l":496,"s":0,"a":true},{"u":216,"l":162,"s":1,"a":true},{"u":519,"l":332,"s":1,"a":true},{"u":408,"l":335,"s":1,"a":true},{"u":972,"l":968,"s":1,"a":true},{"u":498,"l":420,"s":0,"a":false},{"u":884,"l":64,"s":1,"a":true},{"u":830,"l":471,"s":0,"a":true},{"u":395,"l":377,"s":0,"a":false},{"u":909,"l":711,"s":1,"a":false},{"u":292,"l":249,"s":1,"a":true},{"u":453,"l":177,"s":1,"a":false},{"u":667,"l":325,"s":0,"a":false},{"u":756,"l":525,"s":0,"a":true},{"u":463,"l":100,"s":0,"a":true},{"u":827,"l":373,"s":1,"a":true},{"u":562,"l":469,"s":0,"a":false},{"u":248,"l":148,"s":1,"a":false},{"u":756,"l":728,"s":1,"a":false},{"u":801,"l":583,"s":0,"a":false},{"u":808,"l":274,"s":0,"a":false},{"u":884,"l":592,"s":0,"a":true},{"u":479,"l":457,"s":1,"a":false},{"u":942,"l":440,"s":1,"a":false},{"u":874,"l":458,"s":0,"a":true},{"u":920,"l":274,"s":1,"a":false},{"u":471,"l":191,"s":0,"a":true},{"u":792,"l":708,"s":1,"a":false},{"u":835,"l":222,"s":1,"a":false},{"u":951,"l":869,"s":1,"a":false},{"u":538,"l":426,"s":0,"a":false},{"u":619,"l":22,"s":0,"a":true},{"u":818,"l":26,"s":1,"a":true},{"u":322,"l":236,"s":1,"a":true},{"u":792,"l":229,"s":1,"a":true},{"u":714,"l":263,"s":0,"a":false},{"u":661,"l":382,"s":1,"a":true},{"u":671,"l":124,"s":0,"a":true},{"u":786,"l":766,"s":0,"a":false},{"u":745,"l":725,"s":1,"a":false},{"u":980,"l":495,"s":0,"a":true},{"u":946,"l":582,"s":1,"a":true},{"u":539,"l":273,"s":1,"a":true},{"u":685,"l":345,"s":1,"a":true},{"u":742,"l":620,"s":1,"a":false},{"u":612,"l":12,"s":0,"a":false},{"u":363,"l":280,"s":1,"a":true},{"u":564,"l":409,"s":0,"a":true},{"u":893,"l":196,"s":0,"a":true},{"u":941,"l":28,"s":1,"a":true},{"u":612,"l":371,"s":0,"a":true},{"u":302,"l":127,"s":1,"a":true},{"u":350,"l":278,"s":0,"a":false},{"u":947,"l":247,"s":1,"a":false},{"u":456,"l":133,"s":1,"a":false},{"u":996,"l":829,"s":0,"a":false},{"u":863,"l":821,"s":0,"a":true},{"u":927,"l":181,"s":1,"a":false},{"u":577,"l":45,"s":1,"a":false},{"u":770,"l":453,"s":1,"a":false},{"u":957,"l":593,"s":1,"a":true},{"u":679,"l":670,"s":1,"a":false},{"u":719,"l":171,"s":0,"a":false},{"u":965,"l":806,"s":0,"a":true},{"u":888,"l":116,"s":0,"a":false},{"u":599,"l":474,"s":1,"a":true},{"u":879,"l":59,"s":1,"a":false},{"u":870,"l":722,"s":1,"a":true},{"u":764,"l":376,"s":0,"a":false},{"u":616,"l":220,"s":1,"a":true},{"u":617,"l":351,"s":1,"a":true},{"u":216,"l":63,"s":1,"a":true},{"u":769,"l":704,"s":1,"a":true},{"u":275,"l":168,"s":0,"a":true},{"u":855,"l":142,"s":0,"a":true},{"u":821,"l":195,"s":1,"a":false},{"u":869,"l":572,"s":1,"a":true},{"u":499,"l":73,"s":1,"a":false},{"u":463,"l":389,"s":1,"a":false},{"u":303,"l":128,"s":0,"a":false},{"u":970,"l":327,"s":0,"a":true},{"u":292,"l":38,"s":1,"a":false},{"u":560,"l":242,"s":1,"a":true},{"u":894,"l":393,"s":1,"a":true},{"u":549,"l":36,"s":1,"a":true},{"u":996,"l":38,"s":1,"a":false},{"u":897,"l":532,"s":1,"a":false},{"u":859,"l":146,"s":1,"a":false},{"u":883,"l":660,"s":1,"a":true},{"u":430,"l":54,"s":0,"a":false},{"u":810,"l":16,"s":1,"a":true},{"u":946,"l":191,"s":0,"a":false},{"u":959,"l":742,"s":1,"a":false},{"u":892,"l":519,"s":1,"a":false},{"u":121,"l":58,"s":1,"a":true},{"u":564,"l":529,"s":1,"a":true},{"u":996,"l":638,"s":0,"a":false},{"u":483,"l":144,"s":0,"a":false},{"u":666,"l":280,"s":0,"a":false},{"u":874,"l":65,"s":1,"a":false},{"u":469,"l":216,"s":0,"a":false},{"u":778,"l":589,"s":1,"a":false},{"u":902,"l":463,"s":0,"a":false},{"u":802,"l":155,"s":1,"a":false},{"u":495,"l":440,"s":0,"a":false},{"u":462,"l":223,"s":1,"a":false},{"u":317,"l":144,"s":0,"a":true},{"u":791,"l":302,"s":0,"a":true},{"u":113,"l":110,"s":1,"a":false},{"u":724,"l":660,"s":0,"a":false},{"u":304,"l":71,"s":0,"a":true},{"u":387,"l":201,"s":0,"a":false},{"u":490,"l":93,"s":1,"a":false},{"u":792,"l":106,"s":0,"a":false},{"u":439,"l":355,"s":1,"a":true},{"u":980,"l":624,"s":0,"a":false},{"u":396,"l":210,"s":1,"a":false},{"u":396,"l":234,"s":0,"a":true},{"u":706,"l":28,"s":1,"a":true},{"u":450,"l":328,"s":0,"a":false},{"u":384,"l":120,"s":1,"a":false},{"u":392,"l":266,"s":0,"a":true},{"u":292,"l":123,"s":0,"a":true},{"u":521,"l":399,"s":0,"a":true},{"u":759,"l":360,"s":1,"a":false},{"u":339,"l":137,"s":1,"a":false},{"u":965,"l":294,"s":0,"a":true},{"u":806,"l":110,"s":0,"a":true},{"u":872,"l":123,"s":0,"a":true},{"u":769,"l":748,"s":1,"a":true},{"u":970,"l":768,"s":1,"a":false},{"u":591,"l":475,"s":0,"a":true},{"u":832,"l":287,"s":1,"a":true},{"u":780,"l":467,"s":0,"a":true},{"u":812,"l":609,"s":1,"a":false},{"u":992,"l":841,"s":1,"a":true},{"u":941,"l":866,"s":1,"a":true},{"u":685,"l":384,"s":1,"a":true},{"u":426,"l":287,"s":0,"a":true},{"u":942,"l":842,"s":0,"a":false},{"u":922,"l":436,"s":0,"a":false},{"u":940,"l":301,"s":1,"a":false},{"u":518,"l":201,"s":0,"a":true},{"u":564,"l":167,"s":1,"a":false},{"u":390,"l":361,"s":1,"a":true},{"u":680,"l":92,"s":0,"a":false},{"u":927,"l":160,"s":1,"a":true},{"u":821,"l":816,"s":0,"a":false},{"u":861,"l":345,"s":0,"a":false},{"u":493,"l":359,"s":1,"a":false},{"u":833,"l":626,"s":1,"a":true},{"u":706,"l":223,"s":0,"a":true},{"u":599,"l":21,"s":1,"a":true},{"u":383,"l":219,"s":1,"a":true},{"u":645,"l":324,"s":1,"a":true},{"u":698,"l":267,"s":0,"a":true},{"u":966,"l":486,"s":0,"a":true},{"u":621,"l":532,"s":0,"a":false},{"u":176,"l":126,"s":0,"a":false},{"u":397,"l":122,"s":0,"a":true},{"u":674,"l":56,"s":1,"a":false},{"u":845,"l":782,"s":1,"a":false},{"u":669,"l":315,"s":0,"a":false},{"u":968,"l":643,"s":0,"a":true},{"u":849,"l":65,"s":1,"a":true},{"u":411,"l":89,"s":0,"a":true},{"u":889,"l":609,"s":1,"a":false},{"u":661,"l":560,"s":0,"a":false},{"u":353,"l":206,"s":1,"a":false},{"u":574,"l":412,"s":1,"a":true},{"u":681,"l":91,"s":1,"a":true},{"u":899,"l":81,"s":0,"a":false},{"u":601,"l":540,"s":1,"a":true},{"u":766,"l":252,"s":1,"a":false},{"u":561,"l":209,"s":1,"a":false},{"u":425,"l":73,"s":0,"a":false},{"u":943,"l":23,"s":1,"a":false},{"u":125,"l":68,"s":0,"a":true},{"u":519,"l":227,"s":0,"a":false},{"u":954,"l":837,"s":1,"a":false},{"u":843,"l":827,"s":1,"a":false},{"u":453,"l":289,"s":1,"a":true},{"u":849,"l":843,"s":0,"a":false},{"u":717,"l":339,"s":0,"a":false},{"u":327,"l":115,"s":1,"a":true},{"u":381,"l":104,"s":1,"a":false},{"u":755,"l":667,"s":0,"a":true},{"u":993,"l":476,"s":0,"a":true},{"u":400,"l":107,"s":1,"a":false},{"u":697,"l":74,"s":0,"a":false},{"u":674,"l":553,"s":1,"a":false},{"u":638,"l":557,"s":0,"a":false},{"u":816,"l":582,"s":0,"a":false},{"u":710,"l":8,"s":1,"a":false},{"u":584,"l":488,"s":0,"a":true},{"u":970,"l":469,"s":0,"a":false},{"u":469,"l":153,"s":1,"a":false},{"u":916,"l":31,"s":1,"a":true},{"u":909,"l":573,"s":0,"a":false},{"u":572,"l":97,"s":0,"a":false},{"u":532,"l":441,"s":1,"a":true},{"u":576,"l":168,"s":1,"a":true},{"u":978,"l":712,"s":0,"a":false},{"u":865,"l":670,"s":0,"a":false},{"u":700,"l":336,"s":0,"a":false},{"u":903,"l":724,"s":1,"a":false},{"u":695,"l":202,"s":1,"a":false},{"u":430,"l":425,"s":0,"a":true},{"u":939,"l":243,"s":0,"a":true},{"u":872,"l":705,"s":1,"a":true},{"u":356,"l":311,"s":0,"a":false},{"u":649,"l":590,"s":1,"a":true},{"u":510,"l":52,"s":1,"a":false},{"u":767,"l":175,"s":1,"a":false},{"u":968,"l":822,"s":1,"a":false},{"u":945,"l":478,"s":0,"a":false},{"u":711,"l":130,"s":0,"a":true},{"u":818,"l":4,"s":0,"a":false},{"u":536,"l":132,"s":1,"a":false},{"u":787,"l":702,"s":0,"a":true},{"u":858,"l":306,"s":0,"a":true},{"u":751,"l":746,"s":1,"a":false},{"u":984,"l":971,"s":1,"a":false},{"u":340,"l":218,"s":0,"a":true},{"u":591,"l":531,"s":1,"a":true},{"u":890,"l":254,"s":1,"a":false},{"u":792,"l":565,"s":0,"a":false},{"u":688,"l":254,"s":0,"a":false},{"u":507,"l":383,"s":1,"a":true},{"u":791,"l":459,"s":1,"a":false},{"u":816,"l":88,"s":0,"a":true},{"u":551,"l":171,"s":0,"a":true},{"u":777,"l":375,"s":1,"a":true},{"u":928,"l":272,"s":0,"a":true},{"u":349,"l":15,"s":0,"a":true},{"u":904,"l":735,"s":0,"a":true},{"u":312,"l":141,"s":1,"a":true},{"u":778,"l":355,"s":1,"a":false},{"u":770,"l":70,"s":0,"a":false},{"u":378,"l":178,"s":1,"a":true},{"u":937,"l":657,"s":1,"a":false},{"u":987,"l":747,"s":1,"a":true},{"u":309,"l":160,"s":0,"a":true},{"u":964,"l":373,"s":0,"a":false},{"u":546,"l":156,"s":1,"a":false},{"u":634,"l":324,"s":1,"a":false},{"u":501,"l":40,"s":1,"a":true},{"u":579,"l":8,"s":1,"a":true},{"u":468,"l":214,"s":0,"a":false},{"u":833,"l":453,"s":0,"a":false},{"u":373,"l":302,"s":1,"a":true},{"u":985,"l":684,"s":0,"a":false},{"u":130,"l":57,"s":1,"a":false},{"u":323,"l":55,"s":1,"a":true},{"u":347,"l":240,"s":1,"a":true},{"u":715,"l":321,"s":0,"a":false},{"u":623,"l":327,"s":1,"a":false},{"u":398,"l":54,"s":1,"a":false},{"u":981,"l":911,"s":1,"a":true},{"u":984,"l":205,"s":0,"a":false},{"u":479,"l":437,"s":1,"a":false},{"u":856,"l":81,"s":1,"a":true},{"u":541,"l":53,"s":0,"a":false},{"u":301,"l":208,"s":1,"a":false},{"u":541,"l":274,"s":1,"a":false},{"u":805,"l":703,"s":1,"a":false},{"u":855,"l":14,"s":0,"a":false},{"u":652,"l":254,"s":0,"a":false},{"u":163,"l":140,"s":1,"a":true},{"u":554,"l":314,"s":0,"a":true},{"u":293,"l":228,"s":1,"a":true},{"u":725,"l":461,"s":1,"a":true},{"u":583,"l":360,"s":1,"a":true},{"u":499,"l":470,"s":0,"a":false},{"u":665,"l":85,"s":1,"a":true},{"u":728,"l":589,"s":0,"a":true},{"u":366,"l":145,"s":1,"a":false},{"u":946,"l":731,"s":1,"a":true},{"u":646,"l":537,"s":0,"a":true},{"u":667,"l":470,"s":0,"a":false},{"u":904,"l":516,"s":0,"a":false},{"u":223,"l":203,"s":1,"a":true},{"u":713,"l":103,"s":1,"a":true},{"u":594,"l":364,"s":0,"a":false},{"u":898,"l":700,"s":1,"a":true},{"u":901,"l":679,"s":0,"a":true},{"u":730,"l":183,"s":0,"a":true},{"u":574,"l":566,"s":1,"a":true},{"u":587,"l":297,"s":0,"a":true},{"u":259,"l":204,"s":0,"a":true},{"u":971,"l":619,"s":0,"a":false},{"u":862,"l":563,"s":0,"a":false},{"u":671,"l":536,"s":1,"a":false},{"u":712,"l":43,"s":1,"a":true},{"u":875,"l":824,"s":0,"a":true},{"u":472,"l":80,"s":0,"a":false},{"u":571,"l":341,"s":0,"a":true},{"u":566,"l":62,"s":1,"a":false},{"u":640,"l":453,"s":0,"a":true},{"u":717,"l":55,"s":1,"a":false},{"u":863,"l":209,"s":1,"a":true},{"u":940,"l":601,"s":0,"a":false},{"u":927,"l":272,"s":1,"a":true},{"u":307,"l":128,"s":1,"a":false},{"u":421,"l":211,"s":0,"a":false},{"u":850,"l":635,"s":0,"a":true},{"u":396,"l":83,"s":0,"a":true},{"u":748,"l":98,"s":1,"a":true},{"u":639,"l":36,"s":0,"a":true},{"u":468,"l":154,"s":1,"a":true},{"u":806,"l":352,"s":0,"a":true},{"u":997,"l":623,"s":0,"a":false},{"u":730,"l":368,"s":1,"a":false},{"u":826,"l":699,"s":1,"a":true},{"u":92,"l":52,"s":0,"a":false},{"u":562,"l":39,"s":0,"a":true},{"u":900,"l":789,"s":1,"a":false},{"u":622,"l":165,"s":1,"a":true},{"u":519,"l":136,"s":1,"a":true},{"u":671,"l":34,"s":0,"a":true},{"u":389,"l":60,"s":0,"a":true}] diff --git a/submodules/Postbox/PostboxTests/Info.plist b/submodules/Postbox/PostboxTests/Info.plist deleted file mode 100644 index ba72822e87..0000000000 --- a/submodules/Postbox/PostboxTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/submodules/Postbox/PostboxTests/MessageHistoryIndexTableTests.swift b/submodules/Postbox/PostboxTests/MessageHistoryIndexTableTests.swift deleted file mode 100644 index 88709cf4ff..0000000000 --- a/submodules/Postbox/PostboxTests/MessageHistoryIndexTableTests.swift +++ /dev/null @@ -1,684 +0,0 @@ -import Foundation - -import UIKit -import XCTest - -import Postbox -@testable import Postbox - -import SwiftSignalKit - -private let peerId = PeerId(namespace: 1, id: 1) -private let namespace: Int32 = 1 - -private extension MessageIndex { - init(id: Int32, timestamp: Int32) { - self.init(id: MessageId(peerId: peerId, namespace: namespace, id: id), timestamp: timestamp) - } -} - -private extension MessageTags { - static let media = MessageTags(rawValue: 1 << 0) -} - -class MessageHistoryIndexTableTests: XCTestCase { - var valueBox: SqliteValueBox? - var path: String? - - var postbox: Postbox? - - override func setUp() { - super.setUp() - - self.continueAfterFailure = false - - var randomId: Int64 = 0 - arc4random_buf(&randomId, 8) - path = NSTemporaryDirectory() + "\(randomId)" - - var randomKey = Data(count: 32) - randomKey.withUnsafeMutableBytes({ (bytes: UnsafeMutablePointer) -> Void in - arc4random_buf(bytes, 32) - }) - var randomSalt = Data(count: 16) - randomSalt.withUnsafeMutableBytes({ (bytes: UnsafeMutablePointer) -> Void in - arc4random_buf(bytes, 16) - }) - - self.valueBox = SqliteValueBox(basePath: path!, queue: Queue.mainQueue(), encryptionParameters: ValueBoxEncryptionParameters(forceEncryptionIfNoSet: true, key: ValueBoxEncryptionParameters.Key(data: randomKey)!, salt: ValueBoxEncryptionParameters.Salt(data: randomSalt)!), upgradeProgress: { _ in }) - - let messageHoles: [PeerId.Namespace: [MessageId.Namespace: Set]] = [ - peerId.namespace: [ - namespace: Set([.media]) - ] - ] - - let seedConfiguration = SeedConfiguration(globalMessageIdsPeerIdNamespaces: Set(), initializeChatListWithHole: (topLevel: nil, groups: nil), messageHoles: messageHoles, existingMessageTags: [.media], messageTagsWithSummary: [], existingGlobalMessageTags: [], peerNamespacesRequiringMessageTextIndex: [], peerSummaryCounterTags: { _ in PeerSummaryCounterTags(rawValue: 0) }, additionalChatListIndexNamespace: nil, messageNamespacesRequiringGroupStatsValidation: Set(), chatMessagesNamespaces: Set()) - - self.postbox = Postbox(queue: Queue.mainQueue(), basePath: path!, seedConfiguration: seedConfiguration, valueBox: self.valueBox!) - } - - override func tearDown() { - super.tearDown() - - self.postbox = nil - let _ = try? FileManager.default.removeItem(atPath: path!) - self.path = nil - } - - func addHole(_ range: ClosedRange, space: MessageHistoryHoleSpace) { - var operations: [MessageHistoryIndexHoleOperationKey: [MessageHistoryIndexHoleOperation]] = [:] - self.postbox!.messageHistoryHoleIndexTable.add(peerId: peerId, namespace: namespace, space: space, range: range, operations: &operations) - } - - func removeHole(_ range: ClosedRange, space: MessageHistoryHoleSpace) { - var operations: [MessageHistoryIndexHoleOperationKey: [MessageHistoryIndexHoleOperation]] = [:] - self.postbox!.messageHistoryHoleIndexTable.remove(peerId: peerId, namespace: namespace, space: space, range: range, operations: &operations) - } - - func addMessage(_ id: Int32, _ timestamp: Int32, _ groupingKey: Int64? = nil) { - var operations: [MessageHistoryIndexOperation] = [] - self.postbox!.messageHistoryIndexTable.addMessages([InternalStoreMessage(id: MessageId(peerId: peerId, namespace: namespace, id: id), timestamp: timestamp, globallyUniqueId: nil, groupingKey: groupingKey, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, authorId: peerId, text: "", attributes: [], media: [])], operations: &operations) - } - - func removeMessage(_ id: Int32) { - var operations: [MessageHistoryIndexOperation] = [] - self.postbox!.messageHistoryIndexTable.removeMessage(MessageId(peerId: peerId, namespace: namespace, id: id), operations: &operations) - } - - private func expectMessages(_ items: [MessageIndex]) { - let actualList = self.postbox!.messageHistoryIndexTable.debugList(peerId, namespace: namespace) - if items != actualList { - XCTFail("Expected\n\(items)\nGot\n\(actualList)") - } - } - - private func expectHoles(space: MessageHistoryHoleSpace, _ ranges: [ClosedRange], failure: () -> Void = {}) { - let actualList = self.postbox!.messageHistoryHoleIndexTable.debugList(peerId: peerId, namespace: namespace, space: space) - if ranges != actualList { - failure() - XCTFail("Expected\n\(ranges)\nGot\n\(actualList)") - } - } - - func testEmpty() { - expectMessages([]) - expectHoles(space: .everywhere, []) - expectHoles(space: .tag(.media), []) - } - - func testSimpleMessages() { - addMessage(10, 10) - expectMessages([.init(id: 10, timestamp: 10)]) - addMessage(11, 11) - expectMessages([.init(id: 10, timestamp: 10), .init(id: 11, timestamp: 11)]) - expectHoles(space: .everywhere, []) - expectHoles(space: .tag(.media), []) - } - - func testSimpleHoles() { - removeHole(1 ... Int32.max, space: .everywhere) - - addHole(3 ... 10, space: .everywhere) - expectHoles(space: .everywhere, [3 ... 10]) - - addHole(3 ... 10, space: .everywhere) - expectHoles(space: .everywhere, [3 ... 10]) - - addHole(5 ... 20, space: .everywhere) - expectHoles(space: .everywhere, [3 ... 20]) - - addHole(25 ... 30, space: .everywhere) - expectHoles(space: .everywhere, [3 ... 20, 25 ... 30]) - - addHole(21 ... 23, space: .everywhere) - expectHoles(space: .everywhere, [3 ... 23, 25 ... 30]) - - addHole(5 ... 25, space: .everywhere) - expectHoles(space: .everywhere, [3 ... 30]) - - addHole(2 ... 35, space: .everywhere) - expectHoles(space: .everywhere, [2 ... 35]) - - removeHole(1 ... 5, space: .everywhere) - expectHoles(space: .everywhere, [6 ... 35]) - - removeHole(11 ... 11, space: .everywhere) - expectHoles(space: .everywhere, [6 ... 10, 12 ... 35]) - - removeHole(8 ... 15, space: .everywhere) - expectHoles(space: .everywhere, [6 ... 7, 16 ... 35]) - - removeHole(1 ... 16, space: .everywhere) - expectHoles(space: .everywhere, [17 ... 35]) - } - - func testHoleVectors() { - struct Operation: Codable { - struct Key: CodingKey { - var stringValue: String - - init?(stringValue: String) { - self.stringValue = stringValue - } - - let intValue: Int? = nil - init?(intValue: Int) { - return nil - } - } - - let add: Bool - let range: ClosedRange - - init(add: Bool, range: ClosedRange) { - self.add = add - self.range = range - } - - init(from decoder: Decoder) throws { - let container = try decoder.container(keyedBy: Key.self) - self.add = try container.decode(Bool.self, forKey: Key(stringValue: "a")!) - self.range = (try container.decode(Int32.self, forKey: Key(stringValue: "l")!)) ... (try container.decode(Int32.self, forKey: Key(stringValue: "u")!)) - } - - func encode(to encoder: Encoder) throws { - var container = encoder.container(keyedBy: Key.self) - try container.encode(self.add, forKey: Key(stringValue: "a")!) - try container.encode(self.range.lowerBound, forKey: Key(stringValue: "l")!) - try container.encode(self.range.upperBound, forKey: Key(stringValue: "u")!) - } - } - - let bundle = Bundle(for: type(of: self)) - let path = bundle.path(forResource: "HoleOperationsVector1", ofType: "json")! - let jsonData = try! Data(contentsOf: URL(fileURLWithPath: path)) - - var operations: [Operation] = (try? JSONDecoder().decode(Array.self, from: jsonData)) ?? [] - - if operations.isEmpty { - for _ in 0 ..< 10000 { - let bound1 = Int(max(1, arc4random_uniform(1000))) - let bound2 = Int(max(1, arc4random_uniform(1000))) - let range: ClosedRange = min(bound1, bound2) ... max(bound1, bound2) - let int32Range = Int32(range.lowerBound) ... Int32(range.upperBound) - let operation = arc4random_uniform(10) - if operation < 5 { - operations.append(Operation(add: true, range: int32Range)) - } else { - operations.append(Operation(add: false, range: int32Range)) - } - } - let data = try! JSONEncoder().encode(operations) - print(String(data: data, encoding: .utf8)!) - } - - var verificationSet = IndexSet() - for (_, holesByMessageNamespace) in self.postbox!.seedConfiguration.messageHoles { - for (_, _) in holesByMessageNamespace{ - verificationSet.insert(integersIn: 1 ... Int(Int32.max - 1)) - } - } - for i in 0 ..< operations.count { - let operation = operations[i] - if operation.add { - verificationSet.insert(integersIn: Int(operation.range.lowerBound) ... Int(operation.range.upperBound)) - addHole(operation.range, space: .everywhere) - } else { - verificationSet.remove(integersIn: Int(operation.range.lowerBound) ... Int(operation.range.upperBound)) - removeHole(operation.range, space: .everywhere) - } - let testRanges = verificationSet.rangeView.map({ ClosedRange(Int32($0.lowerBound) ... Int32($0.upperBound - 1)) }) - expectHoles(space: .everywhere, testRanges) - expectHoles(space: .tag(.media), testRanges) - } - } - - func testHoleTagVectors() { - struct Operation: Codable { - struct Key: CodingKey { - var stringValue: String - - init?(stringValue: String) { - self.stringValue = stringValue - } - - let intValue: Int? = nil - init?(intValue: Int) { - return nil - } - } - - let add: Bool - let range: ClosedRange - let space: MessageHistoryHoleSpace - - init(add: Bool, range: ClosedRange, space: MessageHistoryHoleSpace) { - self.add = add - self.range = range - self.space = space - } - - init(from decoder: Decoder) throws { - let container = try decoder.container(keyedBy: Key.self) - self.add = try container.decode(Bool.self, forKey: Key(stringValue: "a")!) - self.range = (try container.decode(Int32.self, forKey: Key(stringValue: "l")!)) ... (try container.decode(Int32.self, forKey: Key(stringValue: "u")!)) - let spaceValue = try container.decode(Int32.self, forKey: Key(stringValue: "s")!) - if spaceValue == 0 { - self.space = .everywhere - } else { - self.space = .tag(MessageTags(rawValue: UInt32(spaceValue))) - } - } - - func encode(to encoder: Encoder) throws { - var container = encoder.container(keyedBy: Key.self) - try container.encode(self.add, forKey: Key(stringValue: "a")!) - try container.encode(self.range.lowerBound, forKey: Key(stringValue: "l")!) - try container.encode(self.range.upperBound, forKey: Key(stringValue: "u")!) - switch self.space { - case .everywhere: - try container.encode(0, forKey: Key(stringValue: "s")!) - case let .tag(tag): - try container.encode(Int32(tag.rawValue), forKey: Key(stringValue: "s")!) - } - } - } - - var operations: [Operation] = [] - let bundle = Bundle(for: type(of: self)) - if let path = bundle.path(forResource: "HoleOperationsVector2", ofType: "json"), let jsonData = try? Data(contentsOf: URL(fileURLWithPath: path)) { - if let value = try? JSONDecoder().decode(Array.self, from: jsonData) { - operations = value - } - } - - if operations.isEmpty { - for _ in 0 ..< 10000 { - let bound1 = Int(max(1, arc4random_uniform(1000))) - let bound2 = Int(max(1, arc4random_uniform(1000))) - let range: ClosedRange = min(bound1, bound2) ... max(bound1, bound2) - let int32Range = Int32(range.lowerBound) ... Int32(range.upperBound) - let operation = arc4random_uniform(10) - let spaceValue = arc4random_uniform(2) - let space: MessageHistoryHoleSpace - if spaceValue == 0 { - space = .everywhere - } else { - space = .tag(.media) - } - if operation < 5 { - operations.append(Operation(add: true, range: int32Range, space: space)) - } else { - operations.append(Operation(add: false, range: int32Range, space: space)) - } - } - let data = try! JSONEncoder().encode(operations) - print(String(data: data, encoding: .utf8)!) - } - - var everywhereVerificationSet = IndexSet() - var mediaVerificationSet = IndexSet() - for (_, holesByMessageNamespace) in self.postbox!.seedConfiguration.messageHoles { - for (_, _) in holesByMessageNamespace{ - everywhereVerificationSet.insert(integersIn: 1 ... Int(Int32.max - 1)) - mediaVerificationSet.insert(integersIn: 1 ... Int(Int32.max - 1)) - } - } - for i in 0 ..< operations.count { - let operation = operations[i] - let intRange = Int(operation.range.lowerBound) ... Int(operation.range.upperBound) - if operation.add { - switch operation.space { - case .everywhere: - everywhereVerificationSet.insert(integersIn: intRange) - mediaVerificationSet.insert(integersIn: intRange) - case .tag: - mediaVerificationSet.insert(integersIn: intRange) - } - addHole(operation.range, space: operation.space) - } else { - switch operation.space { - case .everywhere: - everywhereVerificationSet.remove(integersIn: intRange) - mediaVerificationSet.remove(integersIn: intRange) - case .tag: - mediaVerificationSet.remove(integersIn: intRange) - } - removeHole(operation.range, space: operation.space) - } - let everywhereTestRanges = everywhereVerificationSet.rangeView.map({ ClosedRange(Int32($0.lowerBound) ... Int32($0.upperBound - 1)) }) - let mediaTestRanges = mediaVerificationSet.rangeView.map({ ClosedRange(Int32($0.lowerBound) ... Int32($0.upperBound - 1)) }) - expectHoles(space: .everywhere, everywhereTestRanges) - expectHoles(space: .tag(.media), mediaTestRanges) - } - } - - func _testDirectAccessPerformance() { - self.beginTestDirectAccessPerformance(compactValuesOnCreation: false) - } - - func _testDirectAccessPerformanceCompact() { - self.beginTestDirectAccessPerformance(compactValuesOnCreation: true) - } - - func _testBlobExtractPerformance() { - let table = ValueBoxTable(id: 1000, keyType: .binary, compactValuesOnCreation: false) - - let valueBox = self.postbox!.valueBox - let memory = malloc(4000)! - let value = MemoryBuffer(memory: memory, capacity: 4000, length: 4000, freeWhenDone: true) - var keys: [ValueBoxKey] = [] - for _ in 0 ... 1000 { - let key = ValueBoxKey(length: 16) - arc4random_buf(key.memory, 16) - keys.append(key) - valueBox.set(table, key: key, value: value) - } - self.measureMetrics([XCTPerformanceMetric_WallClockTime], automaticallyStartMeasuring: false, for: { - self.startMeasuring() - for key in keys.shuffled() { - if let value = valueBox.get(table, key: key) { - var i = 0 - let length = value.length - if i < length { - var output: Int32 = 0 - value.read(&output, offset: i, length: 4) - i += 4 - } - } - } - self.stopMeasuring() - }) - } - - func _testIncrementalBlobExtractPerformance() { - let table = ValueBoxTable(id: 1000, keyType: .binary, compactValuesOnCreation: false) - - let valueBox = self.postbox!.valueBox - let memory = malloc(4000)! - let value = MemoryBuffer(memory: memory, capacity: 4000, length: 4000, freeWhenDone: true) - var keys: [ValueBoxKey] = [] - for _ in 0 ... 100000 { - let key = ValueBoxKey(length: 16) - arc4random_buf(key.memory, 16) - keys.append(key) - valueBox.set(table, key: key, value: value) - } - self.measureMetrics([XCTPerformanceMetric_WallClockTime], automaticallyStartMeasuring: false, for: { - self.startMeasuring() - for key in keys.shuffled() { - valueBox.read(table, key: key, { length, read in - var i = 0 - if i < length { - var output: Int32 = 0 - read(&output, i, 4) - i += 4 - } - }) - } - self.stopMeasuring() - }) - } - - func _testBlobUpdatePerformance() { - let table = ValueBoxTable(id: 1000, keyType: .binary, compactValuesOnCreation: false) - - let valueBox = self.postbox!.valueBox - let memory = malloc(250)! - let value = MemoryBuffer(memory: memory, capacity: 250, length: 250, freeWhenDone: true) - var keys: [ValueBoxKey] = [] - for _ in 0 ... 100000 { - let key = ValueBoxKey(length: 16) - arc4random_buf(key.memory, 16) - keys.append(key) - valueBox.set(table, key: key, value: value) - } - self.measureMetrics([XCTPerformanceMetric_WallClockTime], automaticallyStartMeasuring: false, for: { - let buffer = WriteBuffer() - self.startMeasuring() - for key in keys.shuffled() { - if let value = valueBox.get(table, key: key) { - var output: Int32 = 0 - value.read(&output, offset: 0, length: 4) - output += 1 - buffer.reset() - buffer.write(&output, offset: 0, length: 4) - valueBox.set(table, key: key, value: buffer) - } - } - self.stopMeasuring() - }) - } - - func _testBlobIncrementalUpdatePerformance() { - let table = ValueBoxTable(id: 1000, keyType: .binary, compactValuesOnCreation: false) - - let valueBox = self.postbox!.valueBox - let memory = malloc(250)! - let value = MemoryBuffer(memory: memory, capacity: 250, length: 250, freeWhenDone: true) - var keys: [ValueBoxKey] = [] - for _ in 0 ... 100000 { - let key = ValueBoxKey(length: 16) - arc4random_buf(key.memory, 16) - keys.append(key) - valueBox.set(table, key: key, value: value) - } - self.measureMetrics([XCTPerformanceMetric_WallClockTime], automaticallyStartMeasuring: false, for: { - self.startMeasuring() - for key in keys.shuffled() { - valueBox.readWrite(table, key: key, { size, read, write in - var output: Int32 = 0 - read(&output, 0, 4) - output += 1 - write(&output, 0, 4) - }) - } - self.stopMeasuring() - }) - } - - private func beginTestDirectAccessPerformance(compactValuesOnCreation: Bool) { - let table = ValueBoxTable(id: 1000, keyType: .binary, compactValuesOnCreation: compactValuesOnCreation) - - let valueBox = self.postbox!.valueBox - let memory = malloc(250)! - let value = MemoryBuffer(memory: memory, capacity: 250, length: 250, freeWhenDone: true) - var keys: [ValueBoxKey] = [] - for _ in 0 ... 100000 { - let key = ValueBoxKey(length: 16) - arc4random_buf(key.memory, 16) - keys.append(key) - valueBox.set(table, key: key, value: value) - } - - self.measureMetrics([XCTPerformanceMetric_WallClockTime], automaticallyStartMeasuring: false, for: { - self.startMeasuring() - for key in keys.shuffled() { - let _ = valueBox.get(table, key: key) - } - self.stopMeasuring() - }) - } - - func _testDirectWritePerformance() { - self.beginTestDirectWritePerformance(compactValuesOnCreation: false) - } - - func _testDirectWritePerformanceCompact() { - self.beginTestDirectWritePerformance(compactValuesOnCreation: true) - } - - private func beginTestDirectWritePerformance(compactValuesOnCreation: Bool) { - self.measureMetrics([XCTPerformanceMetric_WallClockTime], automaticallyStartMeasuring: false, for: { - let table = ValueBoxTable(id: 1000, keyType: .binary, compactValuesOnCreation: compactValuesOnCreation) - let valueBox = self.postbox!.valueBox - - self.startMeasuring() - - let memory = malloc(4)! - let value = MemoryBuffer(memory: memory, capacity: 4, length: 4, freeWhenDone: true) - var keys: [ValueBoxKey] = [] - for _ in 0 ... 40000 { - let key = ValueBoxKey(length: 16) - arc4random_buf(key.memory, 16) - keys.append(key) - valueBox.set(table, key: key, value: value) - } - for key in keys.shuffled() { - let _ = valueBox.get(table, key: key) - } - self.stopMeasuring() - - valueBox.removeAllFromTable(table) - }) - } - - func _testRangeAccessPerformance() { - self.beginTestRangeAccessPerformance(compactValuesOnCreation: false) - } - - func _testRangeAccessPerformanceCompact() { - self.beginTestRangeAccessPerformance(compactValuesOnCreation: true) - } - - func _testBinarySearchAccessPerformance() { - let table = ValueBoxTable(id: 1000, keyType: .binary, compactValuesOnCreation: true) - - let valueBox = self.postbox!.valueBox - let memory = malloc(250)! - let value = MemoryBuffer(memory: memory, capacity: 250, length: 250, freeWhenDone: true) - var keys: [ValueBoxKey] = [] - - var randomSpacedKeys: [Int32] = [] - for _ in 0 ... 1000000 { - randomSpacedKeys.append(Int32(arc4random_uniform(100_000_000))) - } - randomSpacedKeys.sort() - - for i in 0 ..< randomSpacedKeys.count { - let key = ValueBoxKey(length: 16) - key.setUInt32(0, value: 200) - key.setUInt32(4, value: 300) - key.setInt32(8, value: Int32(randomSpacedKeys[i])) - key.setInt32(12, value: Int32(i)) - keys.append(key) - valueBox.set(table, key: key, value: value) - } - - let lowerBound = ValueBoxKey(length: 8) - lowerBound.setUInt32(0, value: 200) - lowerBound.setUInt32(4, value: 300) - - let upperBound = ValueBoxKey(length: 16) - upperBound.setUInt32(0, value: 200) - upperBound.setUInt32(4, value: 301) - upperBound.setUInt32(8, value: UInt32.max) - upperBound.setUInt32(12, value: UInt32.max) - - self.measureMetrics([XCTPerformanceMetric_WallClockTime], automaticallyStartMeasuring: false, for: { - self.startMeasuring() - for i in 0 ... 1000 { - var startingLowerIndexValue: Int32? - valueBox.range(table, start: lowerBound, end: upperBound, keys: { key in - startingLowerIndexValue = key.getInt32(8) - return false - }, limit: 1) - - var startingUpperIndexValue: Int32? - valueBox.range(table, start: upperBound, end: lowerBound, keys: { key in - startingUpperIndexValue = key.getInt32(8) - return false - }, limit: 1) - - guard let startingLowerIndex = startingLowerIndexValue, let startingUpperIndex = startingUpperIndexValue else { - XCTAssert(false) - continue - } - - var lowerIndex: Int32 = startingLowerIndex - var upperIndex: Int32 = startingUpperIndex - var rangeToLower = false - - var readCount = 0 - - var found = false - while true { - readCount += 1 - let currentIndex = Int32((Int64(lowerIndex) + Int64(upperIndex)) / 2) - let key = ValueBoxKey(length: 12) - key.setUInt32(0, value: 200) - key.setUInt32(4, value: 300) - key.setInt32(8, value: currentIndex) - - var foundValue: (Int32, Int32)? - if !rangeToLower { - valueBox.range(table, start: key, end: upperBound, keys: { key in - foundValue = (key.getInt32(8), key.getInt32(12)) - return false - }, limit: 1) - } else { - valueBox.range(table, start: key, end: lowerBound, keys: { key in - foundValue = (key.getInt32(8), key.getInt32(12)) - return false - }, limit: 1) - } - - if let (foundKey, foundValue) = foundValue { - if foundValue == Int32(i) { - found = true - break - } else if lowerIndex > upperIndex { - break - } else { - if foundValue > Int(i) { - upperIndex = foundKey - 1 - rangeToLower = true - } else { - lowerIndex = foundKey + 1 - rangeToLower = false - } - } - } else { - break - } - } - if !found { - XCTAssert(false) - } - } - self.stopMeasuring() - }) - } - - func beginTestRangeAccessPerformance(compactValuesOnCreation: Bool) { - let table = ValueBoxTable(id: 1000, keyType: .binary, compactValuesOnCreation: compactValuesOnCreation) - - let valueBox = self.postbox!.valueBox - let memory = malloc(250)! - let value = MemoryBuffer(memory: memory, capacity: 250, length: 250, freeWhenDone: true) - var keys: [ValueBoxKey] = [] - for _ in 0 ... 100000 { - let key = ValueBoxKey(length: 16) - arc4random_buf(key.memory, 16) - keys.append(key) - valueBox.set(table, key: key, value: value) - } - let upperBound = ValueBoxKey(length: 16) - upperBound.setUInt32(0, value: UInt32.max) - upperBound.setUInt32(4, value: UInt32.max) - upperBound.setUInt32(8, value: UInt32.max) - upperBound.setUInt32(12, value: UInt32.max) - - self.measureMetrics([XCTPerformanceMetric_WallClockTime], automaticallyStartMeasuring: false, for: { - self.startMeasuring() - for key in keys.shuffled() { - valueBox.range(table, start: key.prefix(12), end: upperBound, keys: { _ in - return false - }, limit: 1) - let _ = valueBox.get(table, key: key) - } - self.stopMeasuring() - }) - } -} diff --git a/submodules/Postbox/PostboxTests/MessageHistoryTableTests.swift b/submodules/Postbox/PostboxTests/MessageHistoryTableTests.swift deleted file mode 100644 index 5506a6f84f..0000000000 --- a/submodules/Postbox/PostboxTests/MessageHistoryTableTests.swift +++ /dev/null @@ -1,1920 +0,0 @@ -import Foundation - -import UIKit -import XCTest - -import Postbox -@testable import Postbox - -import SwiftSignalKit - -private let peerId = PeerId(namespace: 1, id: 1) -private let otherPeerId = PeerId(namespace: 1, id: 2) -private let namespace: Int32 = 1 -private let authorPeerId = PeerId(namespace: 1, id: 6) -private let peer = TestPeer(id: 6, data: "abc") -private let tag1 = MessageTags(rawValue: 1 << 0) -private let tag2 = MessageTags(rawValue: 1 << 1) -private let summaryTag = MessageTags(rawValue: 1 << 2) - -private func ==(lhs: [Media], rhs: [Media]) -> Bool { - if lhs.count != rhs.count { - return false - } - - for i in 0 ..< lhs.count { - if !lhs[i].isEqual(to: rhs[i]) { - return false - } - } - return true -} - -private enum Entry: Equatable, CustomStringConvertible { - case MessageEntry(Int32, Int32, String, [Media], MessageFlags, MessageGroupInfo?) - case Hole(Int32, Int32, Int32) - - static func Message(_ id: Int32, _ timestamp: Int32, _ text: String, _ media: [Media], _ flags: MessageFlags, _ groupInfo: MessageGroupInfo? = nil) -> Entry { - return .MessageEntry(id, timestamp, text, media, flags, groupInfo) - } - - var description: String { - switch self { - case let .MessageEntry(id, timestamp, text, media, flags, groupInfo): - return "Message(\(id), \(timestamp), \(text), \(media), \(flags), \(String(describing: groupInfo))" - case let .Hole(min, max, timestamp): - return "Hole(\(min), \(max), \(timestamp))" - } - } -} - -private func ==(lhs: Entry, rhs: Entry) -> Bool { - switch lhs { - case let .MessageEntry(lhsId, lhsTimestamp, lhsText, lhsMedia, lhsFlags, lhsGroupInfo): - switch rhs { - case let .MessageEntry(rhsId, rhsTimestamp, rhsText, rhsMedia, rhsFlags, rhsGroupInfo): - return lhsId == rhsId && lhsTimestamp == rhsTimestamp && lhsText == rhsText && lhsMedia == rhsMedia && lhsFlags == rhsFlags && lhsGroupInfo == rhsGroupInfo - case .Hole: - return false - } - case let .Hole(lhsMin, lhsMax, lhsMaxTimestamp): - switch rhs { - case .MessageEntry: - return false - case let .Hole(rhsMin, rhsMax, rhsMaxTimestamp): - return lhsMin == rhsMin && lhsMax == rhsMax && lhsMaxTimestamp == rhsMaxTimestamp - } - } -} - -private class TestEmbeddedMedia: Media, CustomStringConvertible { - func isSemanticallyEqual(to other: Media) -> Bool { - return self.isEqual(to: other) - } - - var id: MediaId? { return nil } - var peerIds: [PeerId] = [] - let data: String - - init(data: String) { - self.data = data - } - - required init(decoder: PostboxDecoder) { - self.data = decoder.decodeStringForKey("s", orElse: "") - } - - func encode(_ encoder: PostboxEncoder) { - encoder.encodeString(self.data, forKey: "s") - } - - func isEqual(to other: Media) -> Bool { - if let other = other as? TestEmbeddedMedia { - return self.data == other.data - } - return false - } - - var description: String { - return "TestEmbeddedMedia(\(self.data))" - } -} - -private class TestExternalMedia: Media { - func isSemanticallyEqual(to other: Media) -> Bool { - return self.isEqual(to: other) - } - - let id: MediaId? - var peerIds: [PeerId] = [] - let data: String - - init(id: Int64, data: String) { - self.id = MediaId(namespace: namespace, id: id) - self.data = data - } - - required init(decoder: PostboxDecoder) { - self.id = MediaId(namespace: decoder.decodeInt32ForKey("i.n", orElse: 0), id: decoder.decodeInt64ForKey("i.i", orElse: 0)) - self.data = decoder.decodeStringForKey("s", orElse: "") - } - - func encode(_ encoder: PostboxEncoder) { - encoder.encodeInt32(self.id!.namespace, forKey: "i.n") - encoder.encodeInt64(self.id!.id, forKey: "i.i") - encoder.encodeString(self.data, forKey: "s") - } - - func isEqual(to other: Media) -> Bool { - if let other = other as? TestExternalMedia { - return self.id == other.id && self.data == other.data - } - return false - } - - var description: String { - return "TestExternalMedia(\(self.id!.id), \(self.data))" - } -} - -private class TestPeer: Peer { - let associatedPeerId: PeerId? = nil - - public let notificationSettingsPeerId: PeerId? = nil - - let associatedPeerIds: [PeerId]? = nil - - var indexName: PeerIndexNameRepresentation { - return .title(title: "Test", addressName: nil) - } - - let id: PeerId - let data: String - - init(id: Int32, data: String) { - self.id = PeerId(namespace: namespace, id: id) - self.data = data - } - - required init(decoder: PostboxDecoder) { - self.id = PeerId(namespace: decoder.decodeInt32ForKey("i.n", orElse: 0), id: decoder.decodeInt32ForKey("i.i", orElse: 0)) - self.data = decoder.decodeStringForKey("s", orElse: "") - } - - func encode(_ encoder: PostboxEncoder) { - encoder.encodeInt32(self.id.namespace, forKey: "i.n") - encoder.encodeInt32(self.id.id, forKey: "i.i") - encoder.encodeString(self.data, forKey: "s") - } - - func isEqual(_ other: Peer) -> Bool { - if let other = other as? TestPeer { - return self.id == other.id && self.data == other.data - } - return false - } - - var description: String { - return "TestPeer(\(self.id.id), \(self.data))" - } -} - -private enum MediaEntry: Equatable { - case Direct(Media, Int) - case MessageReference(Int32) - - init(_ entry: DebugMediaEntry) { - switch entry { - case let .Direct(media, referenceCount): - self = .Direct(media, referenceCount) - case let .MessageReference(index): - self = .MessageReference(index.id.id) - } - } -} - -private func ==(lhs: MediaEntry, rhs: MediaEntry) -> Bool { - switch lhs { - case let .Direct(lhsMedia, lhsReferenceCount): - switch rhs { - case let .Direct(rhsMedia, rhsReferenceCount): - return lhsMedia.isEqual(to: rhsMedia) && lhsReferenceCount == rhsReferenceCount - case .MessageReference: - return false - } - case let .MessageReference(lhsId): - switch rhs { - case .Direct: - return false - case let .MessageReference(rhsId): - return lhsId == rhsId - } - } -} - -private extension MessageTags { - static let First = MessageTags(rawValue: 1 << 0) - static let Second = MessageTags(rawValue: 1 << 1) - static let Summary = MessageTags(rawValue: 1 << 2) -} - -private final class PendingMessageAction1: PendingMessageActionData { - init() { - } - - init(decoder: PostboxDecoder) { - } - - func encode(_ encoder: PostboxEncoder) { - } - - func isEqual(to: PendingMessageActionData) -> Bool { - if let _ = to as? PendingMessageAction1 { - return true - } else { - return false - } - } -} - -private final class PendingMessageAction2: PendingMessageActionData { - init() { - } - - init(decoder: PostboxDecoder) { - } - - func encode(_ encoder: PostboxEncoder) { - } - - func isEqual(to: PendingMessageActionData) -> Bool { - if let _ = to as? PendingMessageAction2 { - return true - } else { - return false - } - } -} - -private let pendingAction1 = PendingMessageActionType(rawValue: 0) -private let pendingAction2 = PendingMessageActionType(rawValue: 1) - -class MessageHistoryTableTests: XCTestCase { - var valueBox: ValueBox? - var path: String? - - var peerTable: PeerTable? - var globalMessageIdsTable: GlobalMessageIdsTable? - var indexTable: MessageHistoryIndexTable? - var mediaTable: MessageMediaTable? - var historyTable: MessageHistoryTable? - var historyMetadataTable: MessageHistoryMetadataTable? - var unsentTable: MessageHistoryUnsentTable? - var tagsTable: MessageHistoryTagsTable? - var readStateTable: MessageHistoryReadStateTable? - var synchronizeReadStateTable: MessageHistorySynchronizeReadStateTable? - var globallyUniqueMessageIdsTable: MessageGloballyUniqueIdTable? - var globalTagsTable: GlobalMessageHistoryTagsTable? - var localTagsTable: LocalMessageHistoryTagsTable? - var reverseAssociatedTable: ReverseAssociatedPeerTable? - var textIndexTable: MessageHistoryTextIndexTable? - var messageHistoryTagsSummaryTable: MessageHistoryTagsSummaryTable? - var invalidatedMessageHistoryTagsSummaryTable: InvalidatedMessageHistoryTagsSummaryTable? - var pendingMessageActionsTable: PendingMessageActionsTable? - var pendingMessageActionsMetadataTable: PendingMessageActionsMetadataTable? - var groupFeedIndexTable: GroupFeedIndexTable? - - override class func setUp() { - super.setUp() - - declareEncodable(TestEmbeddedMedia.self, f: { TestEmbeddedMedia(decoder: $0) }) - declareEncodable(TestExternalMedia.self, f: { TestExternalMedia(decoder: $0) }) - declareEncodable(TestPeer.self, f: { TestPeer(decoder: $0) }) - declareEncodable(PendingMessageAction1.self, f: PendingMessageAction1.init) - declareEncodable(PendingMessageAction2.self, f: PendingMessageAction2.init) - } - - override func setUp() { - super.setUp() - - var randomId: Int64 = 0 - arc4random_buf(&randomId, 8) - path = NSTemporaryDirectory() + "\(randomId)" - self.valueBox = SqliteValueBox(basePath: path!, queue: Queue.mainQueue()) - - let seedConfiguration = SeedConfiguration(initializeChatListWithHole: (topLevel: nil, groups: nil), initializeMessageNamespacesWithHoles: [], existingMessageTags: [.First, .Second, .Summary], messageTagsWithSummary: [.Summary], existingGlobalMessageTags: [], peerNamespacesRequiringMessageTextIndex: [], additionalChatListIndexNamespace: nil, chatMessagesNamespaces: Set()) - - self.globalMessageIdsTable = GlobalMessageIdsTable(valueBox: self.valueBox!, table: GlobalMessageIdsTable.tableSpec(5), namespace: namespace) - self.historyMetadataTable = MessageHistoryMetadataTable(valueBox: self.valueBox!, table: MessageHistoryMetadataTable.tableSpec(7)) - self.unsentTable = MessageHistoryUnsentTable(valueBox: self.valueBox!, table: MessageHistoryUnsentTable.tableSpec(8)) - self.invalidatedMessageHistoryTagsSummaryTable = InvalidatedMessageHistoryTagsSummaryTable(valueBox: self.valueBox!, table: MessageHistoryTagsSummaryTable.tableSpec(19)) - self.messageHistoryTagsSummaryTable = MessageHistoryTagsSummaryTable(valueBox: self.valueBox!, table: MessageHistoryTagsSummaryTable.tableSpec(16), invalidateTable: self.invalidatedMessageHistoryTagsSummaryTable!) - self.pendingMessageActionsMetadataTable = PendingMessageActionsMetadataTable(valueBox: self.valueBox!, table: PendingMessageActionsMetadataTable.tableSpec(17)) - self.pendingMessageActionsTable = PendingMessageActionsTable(valueBox: self.valueBox!, table: PendingMessageActionsTable.tableSpec(18), metadataTable: self.pendingMessageActionsMetadataTable!) - self.tagsTable = MessageHistoryTagsTable(valueBox: self.valueBox!, table: MessageHistoryTagsTable.tableSpec(9), seedConfiguration: seedConfiguration, summaryTable: self.messageHistoryTagsSummaryTable!) - self.indexTable = MessageHistoryIndexTable(valueBox: self.valueBox!, table: MessageHistoryIndexTable.tableSpec(1), globalMessageIdsTable: self.globalMessageIdsTable!, metadataTable: self.historyMetadataTable!, seedConfiguration: seedConfiguration) - self.mediaTable = MessageMediaTable(valueBox: self.valueBox!, table: MessageMediaTable.tableSpec(2)) - self.readStateTable = MessageHistoryReadStateTable(valueBox: self.valueBox!, table: MessageHistoryReadStateTable.tableSpec(10)) - self.synchronizeReadStateTable = MessageHistorySynchronizeReadStateTable(valueBox: self.valueBox!, table: MessageHistorySynchronizeReadStateTable.tableSpec(11)) - self.globallyUniqueMessageIdsTable = MessageGloballyUniqueIdTable(valueBox: self.valueBox!, table: MessageGloballyUniqueIdTable.tableSpec(12)) - self.globalTagsTable = GlobalMessageHistoryTagsTable(valueBox: self.valueBox!, table: GlobalMessageHistoryTagsTable.tableSpec(13)) - self.localTagsTable = LocalMessageHistoryTagsTable(valueBox: self.valueBox!, table: GlobalMessageHistoryTagsTable.tableSpec(22)) - self.textIndexTable = MessageHistoryTextIndexTable(valueBox: self.valueBox!, table: MessageHistoryTextIndexTable.tableSpec(15)) - self.groupFeedIndexTable = GroupFeedIndexTable(valueBox: self.valueBox!, table: GroupFeedIndexTable.tableSpec(21), metadataTable: self.historyMetadataTable!) - self.historyTable = MessageHistoryTable(valueBox: self.valueBox!, table: MessageHistoryTable.tableSpec(4), messageHistoryIndexTable: self.indexTable!, messageMediaTable: self.mediaTable!, historyMetadataTable: self.historyMetadataTable!, globallyUniqueMessageIdsTable: self.globallyUniqueMessageIdsTable!, unsentTable: self.unsentTable!, tagsTable: self.tagsTable!, globalTagsTable: self.globalTagsTable!, localTagsTable: self.localTagsTable!, readStateTable: self.readStateTable!, synchronizeReadStateTable: self.synchronizeReadStateTable!, textIndexTable: self.textIndexTable!, summaryTable: self.messageHistoryTagsSummaryTable!, pendingActionsTable: self.pendingMessageActionsTable!, groupAssociationTable: self.groupAssociationTable!, groupFeedIndexTable: self.groupFeedIndexTable!) - self.reverseAssociatedTable = ReverseAssociatedPeerTable(valueBox: self.valueBox!, table: ReverseAssociatedPeerTable.tableSpec(14)) - self.peerTable = PeerTable(valueBox: self.valueBox!, table: PeerTable.tableSpec(6), reverseAssociatedTable: self.reverseAssociatedTable!) - self.peerTable!.set(peer) - } - - override func tearDown() { - super.tearDown() - - self.historyTable = nil - self.indexTable = nil - self.mediaTable = nil - self.peerTable = nil - self.historyMetadataTable = nil - - self.valueBox = nil - let _ = try? FileManager.default.removeItem(atPath: path!) - self.path = nil - } - - private func addMessage(_ id: Int32, _ timestamp: Int32, _ text: String = "", _ media: [Media] = [], _ flags: StoreMessageFlags = [], _ tags: MessageTags = [], location: AddMessagesLocation = .Random, groupingKey: Int64? = nil) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - var groupFeedOperations: [PeerGroupId: [GroupFeedIndexOperation]] = [:] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - var updatedMedia: [MediaId : Media?] = [:] - - let _ = self.historyTable!.addMessages(messages: [StoreMessage(id: MessageId(peerId: peerId, namespace: namespace, id: id), globallyUniqueId: nil, groupingKey: groupingKey, timestamp: timestamp, flags: flags, tags: tags, globalTags: [], localTags: [], forwardInfo: StoreMessageForwardInfo(authorId: peerId, sourceId: peerId, sourceMessageId: MessageId(peerId: peerId, namespace: 0, id: 10), date: 10, authorSignature: "abc", isHidden: false), authorId: authorPeerId, text: text, attributes: [], media: media)], location: location, operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, groupFeedOperations: &groupFeedOperations, localTagsOperations: &localTagsOperations, processMessages: nil) - } - - private func updateMessage(_ previousId: Int32, _ id: Int32, _ timestamp: Int32, _ text: String = "", _ media: [Media] = [], _ flags: StoreMessageFlags, _ tags: MessageTags, _ groupingKey: Int64?) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - var groupFeedOperations: [PeerGroupId: [GroupFeedIndexOperation]] = [:] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - var updatedMedia: [MediaId : Media?] = [:] - - self.historyTable!.updateMessage(MessageId(peerId: peerId, namespace: namespace, id: previousId), message: StoreMessage(id: MessageId(peerId: peerId, namespace: namespace, id: id), globallyUniqueId: nil, groupingKey: groupingKey, timestamp: timestamp, flags: flags, tags: tags, globalTags: [], localTags: [], forwardInfo: nil, authorId: authorPeerId, text: text, attributes: [], media: media), operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, groupFeedOperations: &groupFeedOperations, localTagsOperations: &localTagsOperations) - } - - private func updateMessageTimestamp(_ previousId: Int32, _ timestamp: Int32) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - var groupFeedOperations: [PeerGroupId: [GroupFeedIndexOperation]] = [:] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - var updatedMedia: [MediaId : Media?] = [:] - - self.historyTable!.updateMessageTimestamp(MessageId(peerId: peerId, namespace: namespace, id: previousId), timestamp: timestamp, operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, groupFeedOperations: &groupFeedOperations, localTagsOperations: &localTagsOperations) - } - - private func addHole(_ id: Int32) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - var groupFeedOperations: [PeerGroupId: [GroupFeedIndexOperation]] = [:] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - var updatedMedia: [MediaId : Media?] = [:] - - self.historyTable!.addHoles([MessageId(peerId: peerId, namespace: namespace, id: id)], operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, groupFeedOperations: &groupFeedOperations, localTagsOperations: &localTagsOperations) - } - - private func removeMessages(_ ids: [Int32]) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - var groupFeedOperations: [PeerGroupId: [GroupFeedIndexOperation]] = [:] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - var updatedMedia: [MediaId : Media?] = [:] - - self.historyTable!.removeMessages(ids.map({ MessageId(peerId: peerId, namespace: namespace, id: $0) }), operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, groupFeedOperations: &groupFeedOperations, localTagsOperations: &localTagsOperations) - } - - private func removeMessagesInRange(minId: Int32, maxId: Int32) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - var groupFeedOperations: [PeerGroupId: [GroupFeedIndexOperation]] = [:] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - var updatedMedia: [MediaId : Media?] = [:] - - self.historyTable!.removeMessagesInRange(peerId: peerId, namespace: namespace, minId: minId, maxId: maxId, operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, groupFeedOperations: &groupFeedOperations, localTagsOperations: &localTagsOperations) - } - - private func fillHole(_ id: Int32, _ fillType: HoleFill, _ messages: [(Int32, Int32, String, [Media], Int64?)], _ tagMask: MessageTags? = nil) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - var groupFeedOperations: [PeerGroupId: [GroupFeedIndexOperation]] = [:] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - var updatedMedia: [MediaId : Media?] = [:] - - self.historyTable!.fillHole(MessageId(peerId: peerId, namespace: namespace, id: id), fillType: fillType, tagMask: tagMask, messages: messages.map({ StoreMessage(id: MessageId(peerId: peerId, namespace: namespace, id: $0.0), globallyUniqueId: nil, groupingKey: $0.4, timestamp: $0.1, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, authorId: authorPeerId, text: $0.2, attributes: [], media: $0.3) }), operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, groupFeedOperations: &groupFeedOperations, localTagsOperations: &localTagsOperations) - } - - private func fillMultipleHoles(_ id: Int32, _ fillType: HoleFill, _ messages: [(Int32, Int32, String, [Media], Int64?)], _ tagMask: MessageTags? = nil, _ tags: MessageTags = []) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - var groupFeedOperations: [PeerGroupId: [GroupFeedIndexOperation]] = [:] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - var updatedMedia: [MediaId : Media?] = [:] - - self.historyTable!.fillMultipleHoles(mainHoleId: MessageId(peerId: peerId, namespace: namespace, id: id), fillType: fillType, tagMask: tagMask, messages: messages.map({ StoreMessage(id: MessageId(peerId: peerId, namespace: namespace, id: $0.0), globallyUniqueId: nil, groupingKey: $0.4, timestamp: $0.1, flags: [], tags: tags, globalTags: [], localTags: [], forwardInfo: nil, authorId: authorPeerId, text: $0.2, attributes: [], media: $0.3) }), operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, groupFeedOperations: &groupFeedOperations, localTagsOperations: &localTagsOperations) - } - - private func replaceSummary(_ count: Int32, _ maxId: MessageId.Id) { - - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - self.messageHistoryTagsSummaryTable!.replace(key: MessageHistoryTagsSummaryKey(tag: .Summary, peerId: peerId, namespace: namespace), count: count, maxId: maxId, updatedSummaries: &updatedMessageTagSummaries) - } - - private func getExistingMessageGroupInfo(_ id: Int32) -> MessageGroupInfo { - if let entry = self.indexTable!.getMaybeUninitialized(MessageId(peerId: peerId, namespace: namespace, id: id)) { - if let message = self.historyTable?.getMessage(entry.index) { - return message.groupInfo! - } - } - preconditionFailure() - } - - private func expectEntries(_ entries: [Entry], tagMask: MessageTags? = nil) { - var stableIds = Set() - - let list: [RenderedMessageHistoryEntry] - if let tagMask = tagMask { - list = self.historyTable!.debugList(tagMask, peerId: peerId, peerTable: self.peerTable!) - } else { - list = self.historyTable!.debugList(peerId, peerTable: self.peerTable!) - } - - let actualEntries = list.map({ entry -> Entry in - let stableId: UInt32 - switch entry { - case let .RenderedMessage(message): - stableId = message.stableId - if let messagePeer = message.author { - if !peer.isEqual(messagePeer) { - XCTFail("Expected peer \(peer), actual: \(messagePeer)") - } - } else { - XCTFail("Expected peer \(peer), actual: nil") - } - if stableIds.contains(stableId) { - XCTFail("Stable id not unique \(stableId)") - } else { - stableIds.insert(stableId) - } - return .Message(message.id.id, message.timestamp, message.text, message.media, message.flags, message.groupInfo) - case let .Hole(hole): - stableId = hole.stableId - if stableIds.contains(stableId) { - XCTFail("Stable id not unique \(stableId)") - } else { - stableIds.insert(stableId) - } - return .Hole(hole.min, hole.maxIndex.id.id, hole.maxIndex.timestamp) - } - }) - if actualEntries != entries { - XCTFail("Expected\n\(entries)\nActual\n\(actualEntries)") - } - } - - private func expectUnsent(_ indices: [Int32]) { - let actualUnsent = self.unsentTable!.get().map({ $0.id }) - var match = true - if actualUnsent.count == indices.count { - for i in 0 ..< indices.count { - if indices[i] != actualUnsent[i] { - match = false - break - } - } - } else { - match = false - } - if !match { - XCTFail("Expected\n\(indices)\nActual\n\(actualUnsent)") - } - } - - private func expectMedia(_ media: [MediaEntry]) { - let actualMedia = self.mediaTable!.debugList().map({MediaEntry($0)}) - if media != actualMedia { - XCTFail("Expected\n\(media)\nActual\n\(actualMedia)") - } - } - - private func expectSummary(_ summary: MessageHistoryTagNamespaceSummary?) { - let actualSummary = self.messageHistoryTagsSummaryTable!.get(MessageHistoryTagsSummaryKey(tag: .Summary, peerId: peerId, namespace: namespace)) - if actualSummary != summary { - XCTFail("Expected\n\(String(describing: summary))\nActual\n\(String(describing: actualSummary))\n") - } - } - - private func setMessageAction(_ id: Int32, _ type: PendingMessageActionType, _ data: PendingMessageActionData?) { - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - self.historyTable!.setPendingMessageAction(id: MessageId(peerId: peerId, namespace: namespace, id: id), type: type, action: data, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries) - } - - private func expectMessageAction(_ id: Int32, _ type: PendingMessageActionType, _ data: PendingMessageActionData?) { - let current = self.pendingMessageActionsTable!.getAction(id: MessageId(peerId: peerId, namespace: namespace, id: id), type: type) - var changed = false - if let current = current, let data = data { - if !current.isEqual(to: data) { - changed = true - } - } else if (current != nil) != (data != nil) { - changed = true - } - if changed { - XCTFail("Expected\n\(String(describing: data))\nActual\n\(String(describing: current))\n") - } - } - - private func expectPeerNamespaceMessageActionCount(_ count: Int32) { - let current = self.pendingMessageActionsMetadataTable!.getCount(.peerNamespace(peerId, namespace)) - if count != current { - XCTFail("Expected\n\(count)\nActual\n\(current)\n") - } - } - - private func expectPeerNamespaceActionMessageActionCount(_ count: Int32, _ type: PendingMessageActionType) { - let current = self.pendingMessageActionsMetadataTable!.getCount(.peerNamespaceAction(peerId, namespace, type)) - if count != current { - XCTFail("Expected\n\(count)\nActual\n\(current)\n") - } - } - - private func expectPeerMessageActions(_ type: PendingMessageActionType, _ actions: [(Int32, PendingMessageActionData)]) { - let current = self.pendingMessageActionsTable!.getActions(type: type).map { - ($0.id.id, $0.action) - } - var changed = false - if current.count != actions.count { - changed = true - } else { - for i in 0 ..< current.count { - if current[i].0 != actions[i].0 { - changed = true - break - } else if !current[i].1.isEqual(to: actions[i].1) { - changed = true - break - } - } - } - if changed { - XCTFail("Expected\n\(actions)\nActual\n\(current)\n") - } - } - - func testInsertMessageIntoEmpty() { - addMessage(100, 100, "t100") - addMessage(200, 200, "t200") - - expectEntries([.Message(100, 100, "t100", [], []), .Message(200, 200, "t200", [], [])]) - } - - func testInsertMessageIgnoreOverwrite() { - addMessage(100, 100, "t100") - addMessage(100, 200, "t200") - - expectEntries([.Message(100, 100, "t100", [], [])]) - } - - func testInsertMessageWithEmbeddedMedia() { - addMessage(100, 100, "t100", [TestEmbeddedMedia(data: "abc1")]) - - expectEntries([.Message(100, 100, "t100", [TestEmbeddedMedia(data: "abc1")], [])]) - expectMedia([]) - } - - func testInsertMessageWithExternalMedia() { - let media = TestExternalMedia(id: 10, data: "abc1") - addMessage(100, 100, "t100", [media]) - - expectEntries([.Message(100, 100, "t100", [media], [])]) - expectMedia([.MessageReference(100)]) - } - - func testUnembedExternalMedia() { - let media = TestExternalMedia(id: 10, data: "abc1") - addMessage(100, 100, "t100", [media]) - addMessage(200, 200, "t200", [media]) - - expectEntries([.Message(100, 100, "t100", [media], []), .Message(200, 200, "t200", [media], [])]) - expectMedia([.Direct(media, 2)]) - } - - func testIgnoreOverrideExternalMedia() { - let media = TestExternalMedia(id: 10, data: "abc1") - let media1 = TestExternalMedia(id: 10, data: "abc2") - addMessage(100, 100, "t100", [media]) - addMessage(200, 200, "t200", [media1]) - - expectEntries([.Message(100, 100, "t100", [media], []), .Message(200, 200, "t200", [media], [])]) - expectMedia([.Direct(media, 2)]) - } - - func testRemoveSingleMessage() { - addMessage(100, 100, "t100", []) - - removeMessages([100]) - - expectEntries([]) - expectMedia([]) - } - - func testRemoveMessageWithEmbeddedMedia() { - let media = TestEmbeddedMedia(data: "abc1") - addMessage(100, 100, "t100", [media]) - self.removeMessages([100]) - - expectEntries([]) - expectMedia([]) - } - - func testRemoveOnlyReferenceToExternalMedia() { - let media = TestExternalMedia(id: 10, data: "abc1") - addMessage(100, 100, "t100", [media]) - removeMessages([100]) - - expectEntries([]) - expectMedia([]) - } - - func testRemoveReferenceToExternalMedia() { - let media = TestExternalMedia(id: 10, data: "abc1") - addMessage(100, 100, "t100", [media]) - addMessage(200, 200, "t200", [media]) - removeMessages([100]) - - expectEntries([.Message(200, 200, "t200", [media], [])]) - expectMedia([.Direct(media, 1)]) - - removeMessages([200]) - - expectEntries([]) - expectMedia([]) - } - - func testAddHoleToEmpty() { - addHole(100) - expectEntries([.Hole(1, Int32.max, Int32.max)]) - } - - func testAddHoleToFullHole() { - addHole(100) - expectEntries([.Hole(1, Int32.max, Int32.max)]) - addHole(110) - expectEntries([.Hole(1, Int32.max, Int32.max)]) - } - - func testAddMessageToFullHole() { - addHole(100) - expectEntries([.Hole(1, Int32.max, Int32.max)]) - addMessage(90, 90, "m90") - expectEntries([.Hole(1, 89, 90), .Message(90, 90, "m90", [], []), .Hole(91, Int32.max, Int32.max)]) - } - - func testAddMessageDividingUpperHole() { - addHole(100) - expectEntries([.Hole(1, Int32.max, Int32.max)]) - addMessage(90, 90, "m90") - expectEntries([.Hole(1, 89, 90), .Message(90, 90, "m90", [], []), .Hole(91, Int32.max, Int32.max)]) - addMessage(100, 100, "m100") - expectEntries([.Hole(1, 89, 90), .Message(90, 90, "m90", [], []), .Hole(91, 99, 100), .Message(100, 100, "m100", [], []), .Hole(101, Int32.max, Int32.max)]) - } - - func testAddMessageDividingLowerHole() { - addHole(100) - expectEntries([.Hole(1, Int32.max, Int32.max)]) - addMessage(90, 90, "m90") - expectEntries([.Hole(1, 89, 90), .Message(90, 90, "m90", [], []), .Hole(91, Int32.max, Int32.max)]) - addMessage(80, 80, "m80") - expectEntries([.Hole(1, 79, 80), .Message(80, 80, "m80", [], []), .Hole(81, 89, 90), .Message(90, 90, "m90", [], []), .Hole(91, Int32.max, Int32.max)]) - } - - func testAddMessageOffsettingUpperHole() { - addHole(100) - expectEntries([.Hole(1, Int32.max, Int32.max)]) - - addMessage(90, 90, "m90") - expectEntries([.Hole(1, 89, 90), .Message(90, 90, "m90", [], []), .Hole(91, Int32.max, Int32.max)]) - addMessage(91, 91, "m91") - expectEntries([.Hole(1, 89, 90), .Message(90, 90, "m90", [], []), .Message(91, 91, "m91", [], []), .Hole(92, Int32.max, Int32.max)]) - } - - func testAddMessageOffsettingLowerHole() { - addHole(100) - expectEntries([.Hole(1, Int32.max, Int32.max)]) - - addMessage(90, 90, "m90") - expectEntries([.Hole(1, 89, 90), .Message(90, 90, "m90", [], []), .Hole(91, Int32.max, Int32.max)]) - addMessage(89, 89, "m89") - expectEntries([.Hole(1, 88, 89), .Message(89, 89, "m89", [], []), .Message(90, 90, "m90", [], []), .Hole(91, Int32.max, Int32.max)]) - } - - func testAddMessageOffsettingLeftmostHole() { - addHole(100) - expectEntries([.Hole(1, Int32.max, Int32.max)]) - - addMessage(1, 1, "m1") - - expectEntries([.Message(1, 1, "m1", [], []), .Hole(2, Int32.max, Int32.max)]) - } - - func testAddMessageRemovingLefmostHole() { - addHole(100) - expectEntries([.Hole(1, Int32.max, Int32.max)]) - - addMessage(2, 2, "m2") - expectEntries([.Hole(1, 1, 2), .Message(2, 2, "m2", [], []), .Hole(3, Int32.max, Int32.max)]) - - addMessage(1, 1, "m1") - expectEntries([.Message(1, 1, "m1", [], []), .Message(2, 2, "m2", [], []), .Hole(3, Int32.max, Int32.max)]) - } - - func testAddHoleLowerThanMessage() { - addMessage(100, 100, "m100") - addHole(1) - - expectEntries([.Hole(1, 99, 100), .Message(100, 100, "m100", [], [])]) - } - - func testAddHoleHigherThanMessage() { - addMessage(100, 100, "m100") - addHole(200) - - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, Int32.max, Int32.max)]) - } - - func testIgnoreHigherHole() { - addHole(200) - expectEntries([.Hole(1, Int32.max, Int32.max)]) - addHole(400) - expectEntries([.Hole(1, Int32.max, Int32.max)]) - } - - func testIgnoreHigherHoleAfterMessage() { - addMessage(100, 100, "m100") - addHole(200) - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, Int32.max, Int32.max)]) - addHole(400) - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, Int32.max, Int32.max)]) - } - - func testAddHoleBetweenMessages() { - addMessage(100, 100, "m100") - addMessage(200, 200, "m200") - addHole(150) - - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, 199, 200), .Message(200, 200, "m200", [], [])]) - } - - func testFillHoleEmpty() { - fillHole(1, HoleFill(complete: true, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), []) - expectEntries([]) - } - - func testFillHoleComplete() { - addHole(100) - - fillHole(1, HoleFill(complete: true, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [(100, 100, "m100", [], nil), (200, 200, "m200", [], nil)]) - expectEntries([.Message(100, 100, "m100", [], []), .Message(200, 200, "m200", [], [])]) - } - - func testFillHoleUpperToLowerPartial() { - addHole(100) - - fillHole(1, HoleFill(complete: false, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [(100, 100, "m100", [], nil), (200, 200, "m200", [], nil)]) - expectEntries([.Hole(1, 99, 100), .Message(100, 100, "m100", [], []), .Message(200, 200, "m200", [], [])]) - } - - func testFillHoleUpperToLowerToBounds() { - addHole(100) - - fillHole(1, HoleFill(complete: false, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [(1, 1, "m1", [], nil), (200, 200, "m200", [], nil)]) - expectEntries([.Message(1, 1, "m1", [], []), .Message(200, 200, "m200", [], [])]) - } - - func testFillHoleLowerToUpperToBounds() { - addHole(100) - - fillHole(1, HoleFill(complete: false, direction: .LowerToUpper(updatedMaxIndex: nil, clippingMinIndex: nil)), [(100, 100, "m100", [], nil), (Int32.max, 200, "m200", [], nil)]) - expectEntries([.Message(100, 100, "m100", [], []), .Message(Int32.max, 200, "m200", [], [])]) - } - - func testFillHoleLowerToUpperPartial() { - addHole(100) - - fillHole(1, HoleFill(complete: false, direction: .LowerToUpper(updatedMaxIndex: nil, clippingMinIndex: nil)), [(100, 100, "m100", [], nil), (200, 200, "m200", [], nil)]) - expectEntries([.Message(100, 100, "m100", [], []), .Message(200, 200, "m200", [], []), .Hole(201, Int32.max, Int32.max)]) - } - - func testFillHoleBetweenMessagesUpperToLower() { - addHole(1) - - addMessage(100, 100, "m100") - addMessage(200, 200, "m200") - - fillHole(199, HoleFill(complete: false, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [(150, 150, "m150", [], nil)]) - - expectEntries([.Hole(1, 99, 100), .Message(100, 100, "m100", [], []), .Hole(101, 149, 150), .Message(150, 150, "m150", [], []), .Message(200, 200, "m200", [], []), .Hole(201, Int32.max, Int32.max)]) - } - - func testFillHoleBetweenMessagesLowerToUpper() { - addHole(1) - - addMessage(100, 100, "m100") - addMessage(200, 200, "m200") - - fillHole(199, HoleFill(complete: false, direction: .LowerToUpper(updatedMaxIndex: nil, clippingMinIndex: nil)), [(150, 150, "m150", [], nil)]) - - expectEntries([.Hole(1, 99, 100), .Message(100, 100, "m100", [], []), .Message(150, 150, "m150", [], []), .Hole(151, 199, 200), .Message(200, 200, "m200", [], []), .Hole(201, Int32.max, Int32.max)]) - } - - func testFillHoleBetweenMessagesComplete() { - addHole(1) - - addMessage(100, 100, "m100") - addMessage(200, 200, "m200") - - fillHole(199, HoleFill(complete: true, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [(150, 150, "m150", [], nil)]) - - expectEntries([.Hole(1, 99, 100), .Message(100, 100, "m100", [], []), .Message(150, 150, "m150", [], []), .Message(200, 200, "m200", [], []), .Hole(201, Int32.max, Int32.max)]) - } - - func testFillHoleBetweenMessagesWithMessage() { - addMessage(200, 200, "m200") - addMessage(202, 202, "m202") - addHole(201) - addMessage(201, 201, "m201") - - expectEntries([.Message(200, 200, "m200", [], []), .Message(201, 201, "m201", [], []), .Message(202, 202, "m202", [], [])]) - } - - func testFillHoleWithNoMessagesComplete() { - addMessage(100, 100, "m100") - addHole(1) - - fillHole(99, HoleFill(complete: true, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), []) - - expectEntries([.Message(100, 100, "m100", [], [])]) - } - - func testFillHoleIgnoreOverMessage() { - addMessage(100, 100, "m100") - addMessage(101, 101, "m101") - - fillHole(100, HoleFill(complete: true, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [(90, 90, "m90", [], nil)]) - - expectEntries([.Message(90, 90, "m90", [], []), .Message(100, 100, "m100", [], []), .Message(101, 101, "m101", [], [])]) - } - - func testFillHoleWithOverflow() { - addMessage(100, 100, "m100") - addMessage(200, 200, "m200") - addHole(150) - - fillHole(199, HoleFill(complete: false, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [(150, 150, "m150", [], nil), (300, 300, "m300", [], nil)]) - - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, 149, 150), .Message(150, 150, "m150", [], []), .Message(200, 200, "m200", [], []), .Message(300, 300, "m300", [], [])]) - } - - func testIgnoreHoleOverMessageBetweenMessages() { - addMessage(199, 199, "m199") - addMessage(200, 200, "m200") - addHole(200) - - expectEntries([.Message(199, 199, "m199", [], []), .Message(200, 200, "m200", [], [])]) - } - - func testMergeHoleAfterDeletingMessage() { - addMessage(100, 100, "m100") - addHole(1) - addHole(200) - - expectEntries([.Hole(1, 99, 100), .Message(100, 100, "m100", [], []), .Hole(101, Int32.max, Int32.max)]) - - removeMessages([100]) - - expectEntries([.Hole(1, Int32.max, Int32.max)]) - } - - func testMergeHoleLowerAfterDeletingMessage() { - addMessage(100, 100, "m100") - addHole(1) - addMessage(200, 200, "m200") - - removeMessages([100]) - - expectEntries([.Hole(1, 199, 200), .Message(200, 200, "m200", [], [])]) - } - - func testMergeHoleUpperAfterDeletingMessage() { - addMessage(100, 100, "m100") - addMessage(200, 200, "m200") - addHole(300) - - removeMessages([200]) - - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, Int32.max, Int32.max)]) - } - - func testExtendLowerHoleAfterDeletingMessage() { - addMessage(100, 100, "m100") - addHole(100) - - removeMessages([100]) - - expectEntries([.Hole(1, Int32.max, Int32.max)]) - } - - func testExtendUpperHoleAfterDeletingMessage() { - addMessage(100, 100, "m100") - addHole(101) - - removeMessages([100]) - - expectEntries([.Hole(1, Int32.max, Int32.max)]) - } - - func testDeleteMessageBelowMessage() { - addMessage(100, 100, "m100") - addMessage(200, 200, "m200") - removeMessages([100]) - - expectEntries([.Message(200, 200, "m200", [], [])]) - } - - func testDeleteMessageAboveMessage() { - addMessage(100, 100, "m100") - addMessage(200, 200, "m200") - removeMessages([200]) - - expectEntries([.Message(100, 100, "m100", [], [])]) - } - - func testDeleteMessageBetweenMessages() { - addMessage(100, 100, "m100") - addMessage(200, 200, "m200") - addMessage(300, 300, "m300") - removeMessages([200]) - - expectEntries([.Message(100, 100, "m100", [], []), .Message(300, 300, "m300", [], [])]) - } - - func testAddUnsent() { - addMessage(100, 100, "m100", [], [.Unsent]) - expectEntries([.Message(100, 100, "m100", [], [.Unsent])]) - expectUnsent([100]) - } - - func testRemoveUnsent() { - addMessage(100, 100, "m100", [], [.Unsent]) - expectEntries([.Message(100, 100, "m100", [], [.Unsent])]) - expectUnsent([100]) - - removeMessages([100]) - expectEntries([]) - expectUnsent([]) - } - - func testUpdateUnsentToSentSameIndex() { - addMessage(100, 100, "m100", [], [.Unsent]) - expectEntries([.Message(100, 100, "m100", [], [.Unsent])]) - expectUnsent([100]) - - updateMessage(100, 100, 100, "m100", [], [], [], nil) - expectEntries([.Message(100, 100, "m100", [], [])]) - expectUnsent([]) - } - - func testUpdateUnsentToFailed() { - addMessage(100, 100, "m100", [], [.Unsent]) - expectEntries([.Message(100, 100, "m100", [], [.Unsent])]) - expectUnsent([100]) - - updateMessage(100, 100, 100, "m100", [], [.Unsent, .Failed], [], nil) - expectEntries([.Message(100, 100, "m100", [], [.Unsent, .Failed])]) - expectUnsent([]) - } - - func testUpdateDifferentIndex() { - addMessage(100, 100, "m100", [], [.Unsent]) - expectEntries([.Message(100, 100, "m100", [], [.Unsent])]) - expectUnsent([100]) - - updateMessage(100, 200, 200, "m100", [], [], [], nil) - expectEntries([.Message(200, 200, "m100", [], [])]) - expectUnsent([]) - } - - func testUpdateDifferentIndexBreakHole() { - addHole(1) - - addMessage(100, 100, "m100", [], [.Unsent]) - expectEntries([.Hole(1, 99, 100), .Message(100, 100, "m100", [], [.Unsent]), .Hole(101, Int32.max, Int32.max)]) - expectUnsent([100]) - - updateMessage(100, 200, 200, "m100", [], [], [], nil) - expectEntries([.Hole(1, 199, 200), .Message(200, 200, "m100", [], []), .Hole(201, Int32.max, Int32.max)]) - expectUnsent([]) - } - - func testInsertTaggedIntoEmpty() { - addMessage(100, 100, "m100", [], [], MessageTags(rawValue: 1)) - expectEntries([.Message(100, 100, "m100", [], [])], tagMask: MessageTags(rawValue: 1)) - } - - func testInsertMultipleTagsIntoEmpty() { - addMessage(200, 200, "m200", [], [], MessageTags(rawValue: 2)) - addMessage(100, 100, "m100", [], [], MessageTags(rawValue: 1 | 2)) - expectEntries([.Message(100, 100, "m100", [], [])], tagMask: MessageTags(rawValue: 1)) - expectEntries([.Message(100, 100, "m100", [], []), .Message(200, 200, "m200", [], [])], tagMask: MessageTags(rawValue: 2)) - } - - func testRemoveSingleTagged() { - addMessage(100, 100, "m100", [], [], MessageTags(rawValue: 1)) - removeMessages([100]) - - expectEntries([], tagMask: MessageTags(rawValue: 1)) - } - - func testRemoveMultipleTagged() { - addMessage(200, 200, "m200", [], [], MessageTags(rawValue: 2)) - addMessage(100, 100, "m100", [], [], MessageTags(rawValue: 1 | 2)) - removeMessages([100]) - expectEntries([], tagMask: MessageTags(rawValue: 1)) - expectEntries([.Message(200, 200, "m200", [], [])], tagMask: MessageTags(rawValue: 2)) - } - - func testTagsInsertHoleIntoEmpty() { - addHole(1) - expectEntries([.Hole(1, Int32.max, Int32.max)], tagMask: [.First]) - expectEntries([.Hole(1, Int32.max, Int32.max)], tagMask: [.Second]) - } - - func testTagsBreakHoleWithMessage() { - addHole(1) - addMessage(100, 100, "m100", [], [], [.First]) - - expectEntries([.Hole(1, 99, 100), .Message(100, 100, "m100", [], []), .Hole(101, Int32.max, Int32.max)], tagMask: [.First]) - expectEntries([.Hole(1, 99, 100), .Hole(101, Int32.max, Int32.max)], tagMask: [.Second]) - } - - func testTagsFillHoleUpperToLowerAllTags() { - addMessage(100, 100, "m100", [], [], [.First]) - addMessage(200, 200, "m200", [], [], [.Second]) - addHole(150) - - fillHole(199, HoleFill(complete: false, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [(180, 180, "m180", [], nil)]) - - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, 179, 180)], tagMask: [.First]) - expectEntries([.Hole(101, 179, 180), .Message(200, 200, "m200", [], [])], tagMask: [.Second]) - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, 179, 180), .Message(180, 180, "m180", [], []), .Message(200, 200, "m200", [], [])]) - } - - func testTagsFillHoleLowerToUpperAllTags() { - addMessage(100, 100, "m100", [], [], [.First]) - addMessage(200, 200, "m200", [], [], [.Second]) - addHole(150) - - fillHole(199, HoleFill(complete: false, direction: .LowerToUpper(updatedMaxIndex: nil, clippingMinIndex: nil)), [(180, 180, "m180", [], nil)]) - - expectEntries([.Message(100, 100, "m100", [], []), .Hole(181, 199, 200)], tagMask: [.First]) - expectEntries([.Hole(181, 199, 200), .Message(200, 200, "m200", [], [])], tagMask: [.Second]) - expectEntries([.Message(100, 100, "m100", [], []), .Message(180, 180, "m180", [], []), .Hole(181, 199, 200), .Message(200, 200, "m200", [], [])]) - } - - func testTagsFillHoleCompleteAllTags() { - addMessage(100, 100, "m100", [], [], [.First]) - addMessage(200, 200, "m200", [], [], [.Second]) - addHole(150) - - fillHole(199, HoleFill(complete: true, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [(180, 180, "m180", [], nil)]) - - expectEntries([.Message(100, 100, "m100", [], [])], tagMask: [.First]) - expectEntries([.Message(200, 200, "m200", [], [])], tagMask: [.Second]) - expectEntries([.Message(100, 100, "m100", [], []), .Message(180, 180, "m180", [], []), .Message(200, 200, "m200", [], [])]) - } - - func testTagsFillHoleUpperToLowerSingleTagWithMessages() { - addMessage(100, 100, "m100", [], [], [.First]) - addMessage(200, 200, "m200", [], [], [.Second]) - addHole(150) - - fillHole(199, HoleFill(complete: false, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [(180, 180, "m180", [], nil)], [.First]) - - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, 179, 180)], tagMask: [.First]) - expectEntries([.Hole(101, 179, 180), .Hole(181, 199, 200), .Message(200, 200, "m200", [], [])], tagMask: [.Second]) - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, 179, 180), .Message(180, 180, "m180", [], []), .Hole(181, 199, 200), .Message(200, 200, "m200", [], [])]) - } - - func testTagsFillHoleLowerToUpperSingleTagWithMessages() { - addMessage(100, 100, "m100", [], [], [.First]) - addMessage(200, 200, "m200", [], [], [.Second]) - addHole(150) - - fillHole(199, HoleFill(complete: false, direction: .LowerToUpper(updatedMaxIndex: nil, clippingMinIndex: nil)), [(180, 180, "m180", [], nil)], [.First]) - - expectEntries([.Message(100, 100, "m100", [], []), .Hole(181, 199, 200)], tagMask: [.First]) - expectEntries([.Hole(101, 179, 180), .Hole(181, 199, 200), .Message(200, 200, "m200", [], [])], tagMask: [.Second]) - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, 179, 180), .Message(180, 180, "m180", [], []), .Hole(181, 199, 200), .Message(200, 200, "m200", [], [])]) - } - - func testTagsFillHoleCompleteSingleTagWithMessages() { - addMessage(100, 100, "m100", [], [], [.First]) - addMessage(200, 200, "m200", [], [], [.Second]) - addHole(150) - - fillHole(199, HoleFill(complete: true, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [(180, 180, "m180", [], nil)], [.First]) - - expectEntries([.Message(100, 100, "m100", [], [])], tagMask: [.First]) - expectEntries([.Hole(101, 179, 180), .Hole(181, 199, 200), .Message(200, 200, "m200", [], [])], tagMask: [.Second]) - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, 179, 180), .Message(180, 180, "m180", [], []), .Hole(181, 199, 200), .Message(200, 200, "m200", [], [])]) - } - - func testTagsFillHoleUpperToLowerSingleTagWithEmpty() { - addMessage(100, 100, "m100", [], [], [.First]) - addMessage(200, 200, "m200", [], [], [.Second]) - addHole(150) - - fillHole(199, HoleFill(complete: false, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [], [.First]) - - expectEntries([.Message(100, 100, "m100", [], [])], tagMask: [.First]) - expectEntries([.Hole(101, 199, 200), .Message(200, 200, "m200", [], [])], tagMask: [.Second]) - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, 199, 200), .Message(200, 200, "m200", [], [])]) - } - - func testTagsFillHoleLowerToUpperSingleTagWithEmpty() { - addMessage(100, 100, "m100", [], [], [.First]) - addMessage(200, 200, "m200", [], [], [.Second]) - addHole(150) - - fillHole(199, HoleFill(complete: false, direction: .LowerToUpper(updatedMaxIndex: nil, clippingMinIndex: nil)), [], [.First]) - - expectEntries([.Message(100, 100, "m100", [], [])], tagMask: [.First]) - expectEntries([.Hole(101, 199, 200), .Message(200, 200, "m200", [], [])], tagMask: [.Second]) - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, 199, 200), .Message(200, 200, "m200", [], [])]) - } - - func testTagsFillHoleCompleteSingleTagWithEmpty() { - addMessage(100, 100, "m100", [], [], [.First]) - addMessage(200, 200, "m200", [], [], [.Second]) - addHole(150) - - fillHole(199, HoleFill(complete: true, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [], [.First]) - - expectEntries([.Message(100, 100, "m100", [], [])], tagMask: [.First]) - expectEntries([.Hole(101, 199, 200), .Message(200, 200, "m200", [], [])], tagMask: [.Second]) - expectEntries([.Message(100, 100, "m100", [], []), .Hole(101, 199, 200), .Message(200, 200, "m200", [], [])]) - } - - func testTagsFillMultipleHolesSingleHole() { - addHole(1) - addMessage(100, 100, "m100", [], [], [.First]) - addMessage(200, 200, "m200", [], [], [.First]) - addMessage(300, 300, "m300", [], [], [.First]) - addMessage(400, 400, "m400", [], [], [.First]) - - expectEntries([ - .Hole(1, 99, 100), - .Message(100, 100, "m100", [], []), - .Hole(101, 199, 200), - .Message(200, 200, "m200", [], []), - .Hole(201, 299, 300), - .Message(300, 300, "m300", [], []), - .Hole(301, 399, 400), - .Message(400, 400, "m400", [], []), - .Hole(401, Int32.max, Int32.max) - ], tagMask: [.First]) - - expectEntries([ - .Hole(1, 99, 100), - .Hole(101, 199, 200), - .Hole(201, 299, 300), - .Hole(301, 399, 400), - .Hole(401, Int32.max, Int32.max) - ], tagMask: [.Second]) - - fillMultipleHoles(500, HoleFill(complete: false, direction: .UpperToLower(updatedMinIndex: nil, clippingMaxIndex: nil)), [(500, 500, "m500", [], nil), (350, 350, "m350", [], nil)], [.Second], [.Second]) - - expectEntries([ - .Hole(1, 99, 100), - .Hole(101, 199, 200), - .Hole(201, 299, 300), - .Hole(301, 349, 350), - .Message(350, 350, "m350", [], []), - .Message(500, 500, "m500", [], []) - ], tagMask: [.Second]) - - expectEntries([ - .Hole(1, 99, 100), - .Message(100, 100, "m100", [], []), - .Hole(101, 199, 200), - .Message(200, 200, "m200", [], []), - .Hole(201, 299, 300), - .Message(300, 300, "m300", [], []), - .Hole(301, 349, 350), - .Hole(351, 399, 400), - .Message(400, 400, "m400", [], []), - .Hole(401, 499, 500), - .Hole(501, Int32.max, Int32.max) - ], tagMask: [.First]) - } - - func testFullTextGetEmpty() { - XCTAssert(self.textIndexTable!.search(peerId: nil, text: "abc", tags: nil).isEmpty) - } - - func testFullTextMatch1() { - self.textIndexTable!.add(messageId: MessageId(peerId: peerId, namespace: 0, id: 1), text: "a b c", tags: []) - self.textIndexTable!.add(messageId: MessageId(peerId: peerId, namespace: 0, id: 2), text: "a b c d", tags: []) - self.textIndexTable!.add(messageId: MessageId(peerId: peerId, namespace: 0, id: 3), text: "c d e", tags: []) - - var result = self.textIndexTable!.search(peerId: nil, text: "a", tags: nil).sorted() - let testIds1: [MessageId] = [ - MessageId(peerId: peerId, namespace: 0, id: 1), - MessageId(peerId: peerId, namespace: 0, id: 2), - ] - XCTAssert(result == testIds1) - - result = self.textIndexTable!.search(peerId: nil, text: "c", tags: nil).sorted() - let testIds2: [MessageId] = [ - MessageId(peerId: peerId, namespace: 0, id: 1), - MessageId(peerId: peerId, namespace: 0, id: 2), - MessageId(peerId: peerId, namespace: 0, id: 3) - ] - XCTAssert(result == testIds2) - - result = self.textIndexTable!.search(peerId: nil, text: "d", tags: nil).sorted() - let testIds3: [MessageId] = [ - MessageId(peerId: peerId, namespace: 0, id: 2), - MessageId(peerId: peerId, namespace: 0, id: 3) - ] - XCTAssert(result == testIds3) - - result = self.textIndexTable!.search(peerId: nil, text: "a b c", tags: nil).sorted() - XCTAssert(result == testIds1) - - result = self.textIndexTable!.search(peerId: nil, text: "a b c d e", tags: nil).sorted() - let testIds4: [MessageId] = [ - ] - XCTAssert(result == testIds4) - - self.textIndexTable!.remove(messageId: MessageId(peerId: peerId, namespace: 0, id: 2)) - let testIds5: [MessageId] = [ - MessageId(peerId: peerId, namespace: 0, id: 1), - MessageId(peerId: peerId, namespace: 0, id: 3) - ] - result = self.textIndexTable!.search(peerId: nil, text: "c", tags: nil).sorted() - XCTAssert(result == testIds5) - } - - func testFullTextMatchLocal() { - self.textIndexTable!.add(messageId: MessageId(peerId: peerId, namespace: 0, id: 1), text: "a b c", tags: []) - self.textIndexTable!.add(messageId: MessageId(peerId: peerId, namespace: 0, id: 2), text: "a b c d", tags: []) - self.textIndexTable!.add(messageId: MessageId(peerId: otherPeerId, namespace: 0, id: 1), text: "c d e", tags: []) - self.textIndexTable!.add(messageId: MessageId(peerId: otherPeerId, namespace: 0, id: 2), text: "d e f", tags: []) - - var result = self.textIndexTable!.search(peerId: peerId, text: "a", tags: nil).sorted() - let testIds1: [MessageId] = [ - MessageId(peerId: peerId, namespace: 0, id: 1), - MessageId(peerId: peerId, namespace: 0, id: 2), - ] - XCTAssert(result == testIds1) - - result = self.textIndexTable!.search(peerId: otherPeerId, text: "c", tags: nil).sorted() - let testIds2: [MessageId] = [ - MessageId(peerId: otherPeerId, namespace: 0, id: 1), - ] - XCTAssert(result == testIds2) - - result = self.textIndexTable!.search(peerId: otherPeerId, text: "d", tags: nil).sorted() - let testIds3: [MessageId] = [ - MessageId(peerId: otherPeerId, namespace: 0, id: 1), - MessageId(peerId: otherPeerId, namespace: 0, id: 2) - ] - XCTAssert(result == testIds3) - } - - func testFullTextMatchLocalTags() { - self.textIndexTable!.add(messageId: MessageId(peerId: peerId, namespace: 0, id: 1), text: "a b c", tags: []) - self.textIndexTable!.add(messageId: MessageId(peerId: peerId, namespace: 0, id: 2), text: "a b c d", tags: []) - self.textIndexTable!.add(messageId: MessageId(peerId: peerId, namespace: 0, id: 3), text: "a b c", tags: [tag1]) - self.textIndexTable!.add(messageId: MessageId(peerId: peerId, namespace: 0, id: 4), text: "a b c", tags: [tag1, tag2]) - self.textIndexTable!.add(messageId: MessageId(peerId: peerId, namespace: 0, id: 5), text: "a b c", tags: [tag1, tag2]) - self.textIndexTable!.add(messageId: MessageId(peerId: peerId, namespace: 0, id: 6), text: "a b c", tags: [tag2]) - - var result = self.textIndexTable!.search(peerId: peerId, text: "a b c", tags: nil).sorted() - let testIds1: [MessageId] = [ - MessageId(peerId: peerId, namespace: 0, id: 1), - MessageId(peerId: peerId, namespace: 0, id: 2), - MessageId(peerId: peerId, namespace: 0, id: 3), - MessageId(peerId: peerId, namespace: 0, id: 4), - MessageId(peerId: peerId, namespace: 0, id: 5), - MessageId(peerId: peerId, namespace: 0, id: 6), - ] - XCTAssert(result == testIds1) - - result = self.textIndexTable!.search(peerId: peerId, text: "a b c", tags: [tag1]).sorted() - let testIds2: [MessageId] = [ - MessageId(peerId: peerId, namespace: 0, id: 3), - MessageId(peerId: peerId, namespace: 0, id: 4), - MessageId(peerId: peerId, namespace: 0, id: 5), - ] - XCTAssert(result == testIds2) - - result = self.textIndexTable!.search(peerId: peerId, text: "a b c", tags: [tag2]).sorted() - let testIds3: [MessageId] = [ - MessageId(peerId: peerId, namespace: 0, id: 4), - MessageId(peerId: peerId, namespace: 0, id: 5), - MessageId(peerId: peerId, namespace: 0, id: 6), - ] - XCTAssert(result == testIds3) - - result = self.textIndexTable!.search(peerId: peerId, text: "a b c", tags: [tag1, tag2]).sorted() - let testIds4: [MessageId] = [ - MessageId(peerId: peerId, namespace: 0, id: 4), - MessageId(peerId: peerId, namespace: 0, id: 5), - ] - XCTAssert(result == testIds4) - } - - func testFullTextEscape1() { - self.textIndexTable!.add(messageId: MessageId(peerId: peerId, namespace: 0, id: 1), text: "abc' def'", tags: []) - var result = self.textIndexTable!.search(peerId: nil, text: "abc'", tags: nil).sorted() - let testIds1: [MessageId] = [ - MessageId(peerId: peerId, namespace: 0, id: 1) - ] - XCTAssert(result == testIds1) - - result = self.textIndexTable!.search(peerId: nil, text: "abc' def'", tags: nil).sorted() - XCTAssert(result == testIds1) - - result = self.textIndexTable!.search(peerId: nil, text: "abc' AND def", tags: nil).sorted() - XCTAssert(result.isEmpty) - } - - func testSummary1() { - expectSummary(nil) - addMessage(100, 100, "m100", [], [], [.First]) - expectSummary(nil) - addMessage(200, 200, "m200", [], [], [.Summary]) - expectSummary(MessageHistoryTagNamespaceSummary(version: 0, count: 1, range: MessageHistoryTagNamespaceCountValidityRange(maxId: 0))) - replaceSummary(2, 200) - expectSummary(MessageHistoryTagNamespaceSummary(version: 1, count: 2, range: MessageHistoryTagNamespaceCountValidityRange(maxId: 200))) - addMessage(150, 150, "m200", [], [], [.Summary]) - expectSummary(MessageHistoryTagNamespaceSummary(version: 1, count: 2, range: MessageHistoryTagNamespaceCountValidityRange(maxId: 200))) - removeMessages([150]) - expectSummary(MessageHistoryTagNamespaceSummary(version: 1, count: 1, range: MessageHistoryTagNamespaceCountValidityRange(maxId: 200))) - removeMessages([200]) - expectSummary(MessageHistoryTagNamespaceSummary(version: 1, count: 0, range: MessageHistoryTagNamespaceCountValidityRange(maxId: 200))) - addMessage(300, 300, "m300", [], [], [.Summary]) - expectSummary(MessageHistoryTagNamespaceSummary(version: 1, count: 1, range: MessageHistoryTagNamespaceCountValidityRange(maxId: 200))) - addHole(400) - expectSummary(MessageHistoryTagNamespaceSummary(version: 1, count: 1, range: MessageHistoryTagNamespaceCountValidityRange(maxId: 200))) - } - - func testSummary2() { - addHole(400) - expectSummary(nil) - } - - func testSummary3() { - addMessage(200, 200, "m200", [], [], [.Summary]) - addHole(100) - replaceSummary(0, 200) - expectSummary(MessageHistoryTagNamespaceSummary(version: 1, count: 0, range: MessageHistoryTagNamespaceCountValidityRange(maxId: 200))) - addMessage(300, 300, "m300", [], [], [.Summary]) - addHole(250) - expectSummary(MessageHistoryTagNamespaceSummary(version: 1, count: 1, range: MessageHistoryTagNamespaceCountValidityRange(maxId: 200))) - replaceSummary(10, 300) - expectSummary(MessageHistoryTagNamespaceSummary(version: 2, count: 10, range: MessageHistoryTagNamespaceCountValidityRange(maxId: 300))) - self.updateMessage(300, 300, 300, "m300", [], [], [], nil) - expectSummary(MessageHistoryTagNamespaceSummary(version: 2, count: 9, range: MessageHistoryTagNamespaceCountValidityRange(maxId: 300))) - } - - func testPendingMessageActions1() { - expectMessageAction(100, pendingAction1, nil) - expectPeerNamespaceMessageActionCount(0) - expectPeerNamespaceActionMessageActionCount(0, pendingAction1) - setMessageAction(100, pendingAction1, PendingMessageAction1()) - expectMessageAction(100, pendingAction1, nil) - expectPeerNamespaceMessageActionCount(0) - expectPeerNamespaceActionMessageActionCount(0, pendingAction1) - addMessage(100, 100) - expectMessageAction(100, pendingAction1, nil) - expectPeerNamespaceMessageActionCount(0) - expectPeerNamespaceActionMessageActionCount(0, pendingAction1) - setMessageAction(100, pendingAction1, PendingMessageAction1()) - expectMessageAction(100, pendingAction1, PendingMessageAction1()) - expectPeerNamespaceMessageActionCount(1) - expectPeerNamespaceActionMessageActionCount(1, pendingAction1) - expectPeerNamespaceActionMessageActionCount(0, pendingAction2) - removeMessages([100]) - expectMessageAction(100, pendingAction1, nil) - expectPeerNamespaceMessageActionCount(0) - expectPeerNamespaceActionMessageActionCount(0, pendingAction1) - expectPeerNamespaceActionMessageActionCount(0, pendingAction2) - - addMessage(100, 100) - setMessageAction(100, pendingAction1, PendingMessageAction1()) - expectPeerNamespaceMessageActionCount(1) - expectPeerNamespaceActionMessageActionCount(1, pendingAction1) - expectPeerNamespaceActionMessageActionCount(0, pendingAction2) - - setMessageAction(100, pendingAction1, PendingMessageAction1()) - expectPeerNamespaceMessageActionCount(1) - expectPeerNamespaceActionMessageActionCount(1, pendingAction1) - expectPeerNamespaceActionMessageActionCount(0, pendingAction2) - - setMessageAction(100, pendingAction2, PendingMessageAction2()) - expectPeerNamespaceMessageActionCount(2) - expectPeerNamespaceActionMessageActionCount(1, pendingAction1) - expectPeerNamespaceActionMessageActionCount(1, pendingAction2) - - addMessage(200, 200) - setMessageAction(200, pendingAction1, PendingMessageAction1()) - expectPeerNamespaceMessageActionCount(3) - expectPeerNamespaceActionMessageActionCount(2, pendingAction1) - expectPeerNamespaceActionMessageActionCount(1, pendingAction2) - expectPeerMessageActions(pendingAction1, [(100, PendingMessageAction1()), (200, PendingMessageAction1())]) - expectPeerMessageActions(pendingAction2, [(100, PendingMessageAction2())]) - - removeMessages([100]) - expectPeerNamespaceMessageActionCount(1) - expectPeerNamespaceActionMessageActionCount(1, pendingAction1) - expectPeerNamespaceActionMessageActionCount(0, pendingAction2) - expectPeerMessageActions(pendingAction2, []) - expectPeerMessageActions(pendingAction1, [(200, PendingMessageAction1())]) - } - - func testRemoveRangeEmpty() { - removeMessagesInRange(minId: 0, maxId: Int32.max) - expectEntries([], tagMask: nil) - } - - func testRemoveRangeOneMessage1() { - addMessage(100, 100) - expectEntries([.Message(100, 100, "", [], [])], tagMask: nil) - removeMessagesInRange(minId: 0, maxId: 99) - expectEntries([.Message(100, 100, "", [], [])], tagMask: nil) - removeMessagesInRange(minId: 101, maxId: Int32.max) - expectEntries([.Message(100, 100, "", [], [])], tagMask: nil) - removeMessagesInRange(minId: 0, maxId: Int32.max) - expectEntries([], tagMask: nil) - } - - func testRemoveRangeOneMessage2() { - addMessage(100, 100) - expectEntries([.Message(100, 100, "", [], [])], tagMask: nil) - removeMessagesInRange(minId: 100, maxId: Int32.max) - expectEntries([], tagMask: nil) - addMessage(100, 100) - removeMessagesInRange(minId: 0, maxId: 100) - expectEntries([], tagMask: nil) - } - - func testRemoveRangeHole1() { - addHole(1) - removeMessagesInRange(minId: 0, maxId: Int32.max) - expectEntries([], tagMask: nil) - } - - func testRemoveRangeHole2() { - addHole(1) - removeMessagesInRange(minId: 0, maxId: 100) - expectEntries([.Hole(101, Int32.max, Int32.max)], tagMask: nil) - } - - func testRemoveRangeHole3() { - addHole(1) - removeMessagesInRange(minId: 100, maxId: Int32.max) - expectEntries([.Hole(1, Int32.max, Int32.max)], tagMask: nil) - } - - func testRemoveRangeHole4() { - addMessage(100, 100) - addMessage(200, 200) - addHole(101) - addHole(1) - addHole(201) - removeMessagesInRange(minId: 0, maxId: Int32.max) - expectEntries([], tagMask: nil) - } - - func testRemoveRangeHole5() { - addMessage(100, 100) - addMessage(200, 200) - addHole(101) - addHole(1) - addHole(201) - removeMessagesInRange(minId: 0, maxId: 99) - expectEntries([.Message(100, 100, "", [], []), - .Hole(101, 199, 200), - .Message(200, 200, "", [], []), - .Hole(201, Int32.max, Int32.max)], tagMask: nil) - } - - func testRemoveRangeHole6() { - addMessage(100, 100) - addMessage(200, 200) - addHole(101) - addHole(1) - addHole(201) - removeMessagesInRange(minId: 0, maxId: 50) - expectEntries([.Hole(51, 99, 100), - .Message(100, 100, "", [], []), - .Hole(101, 199, 200), - .Message(200, 200, "", [], []), - .Hole(201, Int32.max, Int32.max)], tagMask: nil) - } - - func testRemoveRangeHole7() { - addMessage(100, 100) - addMessage(200, 200) - addHole(101) - addHole(1) - addHole(201) - removeMessagesInRange(minId: 50, maxId: 150) - expectEntries([.Hole(1, 199, 200), - .Message(200, 200, "", [], []), - .Hole(201, Int32.max, Int32.max)], tagMask: nil) - } - - func testRemoveRangeHole8() { - addMessage(100, 100) - addMessage(200, 200) - addHole(101) - addHole(1) - addHole(201) - removeMessagesInRange(minId: 0, maxId: 200) - expectEntries([.Hole(1, Int32.max, Int32.max)], tagMask: nil) - } - - func testRemoveRangeHole9() { - addMessage(100, 100) - addMessage(200, 200) - addHole(101) - addHole(1) - addHole(201) - removeMessagesInRange(minId: 0, maxId: 300) - expectEntries([.Hole(301, Int32.max, Int32.max)], tagMask: nil) - } - - func testAddHole1() { - addMessage(100, 100) - addMessage(101, 101) - addMessage(102, 102) - - addHole(Int32.max) - - expectEntries([ - .Message(100, 100, "", [], []), - .Message(101, 101, "", [], []), - .Message(102, 102, "", [], []), - .Hole(103, Int32.max, Int32.max) - ], tagMask: nil) - - addMessage(104, 104, location: .UpperHistoryBlock) - - expectEntries([ - .Message(100, 100, "", [], []), - .Message(101, 101, "", [], []), - .Message(102, 102, "", [], []), - .Hole(103, 103, 104), - .Message(104, 104, "", [], []), - ], tagMask: nil) - } - - /*None,A,None -> None, A(D), None - None,A,A(D) -> None, A(D), None - A(D),A,None -> A(D), A(D), None - None,A,B(D1) -> None, A(D2), B(D1) - A(D),A,A(D) -> A(D),A(D),A(D) - A(D1),A,B(D2) -> A(D1), A(D1), B(D2) - B(D1),A,None -> B(D1), A(D2), None - B(D1),A,A(D2) -> B(D1), A(D2), A(D2) - - B(D1),A,B(D1) -> B(D1), A(D2), B(D3) - */ - - func testGroupNoneNone() { - addMessage(100, 100, groupingKey: 1) - let groupInfo = getExistingMessageGroupInfo(100) - expectEntries([ - .Message(100, 100, "", [], [], groupInfo) - ]) - } - - func testGroupHoleHole() { - addHole(1) - addMessage(100, 100, groupingKey: 1) - let groupInfo = getExistingMessageGroupInfo(100) - expectEntries([ - .Hole(1, 99, 100), - .Message(100, 100, "", [], [], groupInfo), - .Hole(101, Int32.max, Int32.max) - ]) - } - - func testGroupSameNone() { - addMessage(100, 100, groupingKey: 1) - let groupInfo = getExistingMessageGroupInfo(100) - addMessage(110, 110, groupingKey: 1) - expectEntries([ - .Message(100, 100, "", [], [], groupInfo), - .Message(110, 110, "", [], [], groupInfo) - ]) - } - - func testGroupNoneSame() { - addMessage(100, 100, groupingKey: 1) - let groupInfo = getExistingMessageGroupInfo(100) - addMessage(90, 90, groupingKey: 1) - expectEntries([ - .Message(90, 90, "", [], [], groupInfo), - .Message(100, 100, "", [], [], groupInfo) - ]) - } - - func testGroupNoneOther() { - addMessage(100, 100, groupingKey: 1) - let groupInfo1 = getExistingMessageGroupInfo(100) - addMessage(90, 90, groupingKey: 2) - let groupInfo2 = getExistingMessageGroupInfo(90) - expectEntries([ - .Message(90, 90, "", [], [], groupInfo2), - .Message(100, 100, "", [], [], groupInfo1) - ]) - } - - func testGroupSameSame() { - addMessage(100, 100, groupingKey: 1) - let groupInfo = getExistingMessageGroupInfo(100) - addMessage(90, 90, groupingKey: 1) - addMessage(95, 95, groupingKey: 1) - expectEntries([ - .Message(90, 90, "", [], [], groupInfo), - .Message(95, 95, "", [], [], groupInfo), - .Message(100, 100, "", [], [], groupInfo) - ]) - } - - func testGroupSameOther() { - addMessage(100, 100, groupingKey: 2) - let groupInfo1 = getExistingMessageGroupInfo(100) - addMessage(90, 90, groupingKey: 1) - let groupInfo2 = getExistingMessageGroupInfo(90) - addMessage(95, 95, groupingKey: 1) - expectEntries([ - .Message(90, 90, "", [], [], groupInfo2), - .Message(95, 95, "", [], [], groupInfo2), - .Message(100, 100, "", [], [], groupInfo1) - ]) - } - - func testGroupOtherNone() { - addMessage(100, 100, groupingKey: 1) - let groupInfo1 = getExistingMessageGroupInfo(100) - addMessage(110, 110, groupingKey: 2) - let groupInfo2 = getExistingMessageGroupInfo(110) - expectEntries([ - .Message(100, 100, "", [], [], groupInfo1), - .Message(110, 110, "", [], [], groupInfo2) - ]) - } - - func testGroupOtherSame() { - addMessage(100, 100, groupingKey: 1) - let groupInfo1 = getExistingMessageGroupInfo(100) - addMessage(110, 110, groupingKey: 2) - let groupInfo2 = getExistingMessageGroupInfo(110) - addMessage(105, 105, groupingKey: 2) - expectEntries([ - .Message(100, 100, "", [], [], groupInfo1), - .Message(105, 105, "", [], [], groupInfo2), - .Message(110, 110, "", [], [], groupInfo2) - ]) - } - - func testGroupOtherOtherTailSingle() { - addMessage(100, 100, groupingKey: 1) - addMessage(120, 120, groupingKey: 1) - let groupInfo1 = getExistingMessageGroupInfo(100) - - addMessage(110, 110, groupingKey: 2) - let groupInfo2 = getExistingMessageGroupInfo(110) - - let groupInfo3 = getExistingMessageGroupInfo(120) - - expectEntries([ - .Message(100, 100, "", [], [], groupInfo1), - .Message(110, 110, "", [], [], groupInfo2), - .Message(120, 120, "", [], [], groupInfo3) - ]) - - XCTAssert(groupInfo3 != groupInfo1 && groupInfo3 != groupInfo2) - } - - func testGroupOtherOtherTailMultiple() { - addMessage(100, 100, groupingKey: 1) - addMessage(120, 120, groupingKey: 1) - addMessage(130, 130, groupingKey: 1) - addMessage(140, 140, groupingKey: 1) - let groupInfo1 = getExistingMessageGroupInfo(100) - - addMessage(110, 110, groupingKey: 2) - let groupInfo2 = getExistingMessageGroupInfo(110) - - let groupInfo3 = getExistingMessageGroupInfo(120) - - expectEntries([ - .Message(100, 100, "", [], [], groupInfo1), - .Message(110, 110, "", [], [], groupInfo2), - .Message(120, 120, "", [], [], groupInfo3), - .Message(130, 130, "", [], [], groupInfo3), - .Message(140, 140, "", [], [], groupInfo3) - ]) - - XCTAssert(groupInfo3 != groupInfo1 && groupInfo3 != groupInfo2) - } - - func testGroupBreakWithHole() { - addMessage(100, 100, groupingKey: 1) - addMessage(120, 120, groupingKey: 1) - addMessage(130, 130, groupingKey: 1) - addMessage(140, 140, groupingKey: 1) - let groupInfo1 = getExistingMessageGroupInfo(100) - - addHole(110) - - let groupInfo3 = getExistingMessageGroupInfo(120) - - expectEntries([ - .Message(100, 100, "", [], [], groupInfo1), - .Hole(101, 119, 120), - .Message(120, 120, "", [], [], groupInfo3), - .Message(130, 130, "", [], [], groupInfo3), - .Message(140, 140, "", [], [], groupInfo3) - ]) - - XCTAssert(groupInfo3 != groupInfo1) - } - - func testGroupCombine1() { - addMessage(100, 100, groupingKey: 1) - addMessage(120, 120, groupingKey: nil) - addMessage(130, 130, groupingKey: 1) - addMessage(140, 140, groupingKey: 1) - let groupInfo1 = getExistingMessageGroupInfo(100) - let groupInfo2 = getExistingMessageGroupInfo(130) - - removeMessages([120]) - - expectEntries([ - .Message(100, 100, "", [], [], groupInfo1), - .Message(130, 130, "", [], [], groupInfo1), - .Message(140, 140, "", [], [], groupInfo1) - ]) - - XCTAssert(groupInfo1 != groupInfo2) - } - - func testGroupCombine2() { - addMessage(100, 100, groupingKey: 1) - addMessage(120, 120, groupingKey: nil) - addMessage(125, 125, groupingKey: nil) - addMessage(130, 130, groupingKey: 1) - addMessage(140, 140, groupingKey: 1) - addMessage(150, 150, groupingKey: 1) - let groupInfo1 = getExistingMessageGroupInfo(100) - let groupInfo2 = getExistingMessageGroupInfo(130) - - removeMessages([120, 125, 140]) - - expectEntries([ - .Message(100, 100, "", [], [], groupInfo1), - .Message(130, 130, "", [], [], groupInfo1), - .Message(150, 150, "", [], [], groupInfo1) - ]) - - XCTAssert(groupInfo1 != groupInfo2) - } - - func testGroupCombine3() { - addMessage(100, 100, groupingKey: 1) - addMessage(140, 140, groupingKey: 1) - addMessage(150, 150, groupingKey: 1) - addHole(120) - let groupInfo1 = getExistingMessageGroupInfo(100) - let groupInfo2 = getExistingMessageGroupInfo(140) - - fillHole(120, HoleFill(complete: true, direction: .LowerToUpper(updatedMaxIndex: nil, clippingMinIndex: nil)), [ - (110, 110, "", [], 1), - (115, 115, "", [], 1) - ]) - - expectEntries([ - .Message(100, 100, "", [], [], groupInfo1), - .Message(110, 110, "", [], [], groupInfo1), - .Message(115, 115, "", [], [], groupInfo1), - .Message(140, 140, "", [], [], groupInfo1), - .Message(150, 150, "", [], [], groupInfo1) - ]) - - XCTAssert(groupInfo1 != groupInfo2) - } - - func testGroupBreakWithUpdate1() { - addMessage(100, 100, groupingKey: 1) - addMessage(120, 120, groupingKey: 1) - addMessage(130, 130, groupingKey: 1) - addMessage(140, 140, groupingKey: 1) - let groupInfo1 = getExistingMessageGroupInfo(100) - - updateMessage(120, 150, 150, "", [], [], [], 1) - - expectEntries([ - .Message(100, 100, "", [], [], groupInfo1), - .Message(130, 130, "", [], [], groupInfo1), - .Message(140, 140, "", [], [], groupInfo1), - .Message(150, 150, "", [], [], groupInfo1) - ]) - } - - func testGroupBreakWithUpdate2() { - addMessage(100, 100, groupingKey: 1) - addMessage(120, 120, groupingKey: 1) - addMessage(130, 130, groupingKey: 1) - addMessage(140, 140, groupingKey: 1) - let groupInfo1 = getExistingMessageGroupInfo(100) - - updateMessage(120, 150, 150, "", [], [], [], 2) - - let groupInfo2 = getExistingMessageGroupInfo(150) - - expectEntries([ - .Message(100, 100, "", [], [], groupInfo1), - .Message(130, 130, "", [], [], groupInfo1), - .Message(140, 140, "", [], [], groupInfo1), - .Message(150, 150, "", [], [], groupInfo2) - ]) - - XCTAssert(groupInfo1 != groupInfo2) - } -} diff --git a/submodules/Postbox/PostboxTests/MessageHistoryViewTests.swift b/submodules/Postbox/PostboxTests/MessageHistoryViewTests.swift deleted file mode 100644 index 3a599c88eb..0000000000 --- a/submodules/Postbox/PostboxTests/MessageHistoryViewTests.swift +++ /dev/null @@ -1,497 +0,0 @@ -import Foundation - -import XCTest - -import Postbox -@testable import Postbox - -import SwiftSignalKit - -private let peerId = PeerId(namespace: 1, id: 1) -private let namespace: Int32 = 1 - -private func extract(from array: [Int32], aroundIndex: Int, halfLimit: Int) -> [Int32] { - var lower: [Int32] = [] - var higher: [Int32] = [] - - var i = aroundIndex - while i >= 0 && lower.count < halfLimit { - lower.append(array[i]) - i -= 1 - } - - var j = aroundIndex + 1 - while j < array.count && higher.count < halfLimit { - higher.append(array[j]) - j += 1 - } - - var result: [Int32] = [] - result.append(contentsOf: lower.reversed()) - result.append(contentsOf: higher) - - assert(result.count <= halfLimit * 2) - - return result -} - -class MessageHistoryViewTests: XCTestCase { - var valueBox: SqliteValueBox? - var path: String? - - var postbox: Postbox? - - override func setUp() { - super.setUp() - - self.continueAfterFailure = false - - var randomId: Int64 = 0 - arc4random_buf(&randomId, 8) - path = NSTemporaryDirectory() + "\(randomId)" - - var randomKey = Data(count: 32) - randomKey.withUnsafeMutableBytes({ (bytes: UnsafeMutablePointer) -> Void in - arc4random_buf(bytes, 32) - }) - var randomSalt = Data(count: 16) - randomSalt.withUnsafeMutableBytes({ (bytes: UnsafeMutablePointer) -> Void in - arc4random_buf(bytes, 16) - }) - - self.valueBox = SqliteValueBox(basePath: path!, queue: Queue.mainQueue(), encryptionParameters: ValueBoxEncryptionParameters(forceEncryptionIfNoSet: false, key: ValueBoxEncryptionParameters.Key(data: randomKey)!, salt: ValueBoxEncryptionParameters.Salt(data: randomSalt)!), upgradeProgress: { _ in }, inMemory: true) - - let messageHoles: [PeerId.Namespace: [MessageId.Namespace: Set]] = [ - peerId.namespace: [: - // namespace: Set([.media]) - ] - ] - - let seedConfiguration = SeedConfiguration(globalMessageIdsPeerIdNamespaces: Set(), initializeChatListWithHole: (topLevel: nil, groups: nil), messageHoles: messageHoles, existingMessageTags: [], messageTagsWithSummary: [], existingGlobalMessageTags: [], peerNamespacesRequiringMessageTextIndex: [], peerSummaryCounterTags: { _ in PeerSummaryCounterTags(rawValue: 0) }, additionalChatListIndexNamespace: nil, messageNamespacesRequiringGroupStatsValidation: Set(), chatMessagesNamespaces: Set()) - - self.postbox = Postbox(queue: Queue.mainQueue(), basePath: path!, seedConfiguration: seedConfiguration, valueBox: self.valueBox!) - } - - override func tearDown() { - super.tearDown() - - self.postbox = nil - let _ = try? FileManager.default.removeItem(atPath: path!) - self.path = nil - } - - private func addHole(_ range: ClosedRange, space: MessageHistoryHoleSpace) { - let _ = self.postbox!.transaction({ transaction -> Void in - transaction.addHole(peerId: peerId, namespace: namespace, space: .everywhere, range: range) - }).start() - } - - private func removeHole(_ range: ClosedRange, space: MessageHistoryHoleSpace) { - let _ = self.postbox!.transaction({ transaction -> Void in - transaction.removeHole(peerId: peerId, namespace: namespace, space: .everywhere, range: range) - }).start() - } - - private func addMessage(_ id: Int32, _ timestamp: Int32, _ groupingKey: Int64? = nil) -> UInt32 { - var stableId: UInt32? - let _ = self.postbox!.transaction({ transaction -> Void in - let messageId = MessageId(peerId: peerId, namespace: namespace, id: id) - let _ = transaction.addMessages([StoreMessage(id: messageId, globallyUniqueId: nil, groupingKey: nil, timestamp: timestamp, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, authorId: nil, text: "", attributes: [], media: [])], location: .Random) - stableId = transaction.getMessage(messageId)!.stableId - }).start() - return stableId! - } - - private func removeMessage(_ id: Int32) { - let _ = self.postbox!.transaction({ transaction -> Void in - transaction.deleteMessages([MessageId(peerId: peerId, namespace: namespace, id: id)]) - }).start() - } - - private func removeAllMessages() { - let _ = self.postbox!.transaction({ transaction -> Void in - transaction.deleteMessagesInRange(peerId: peerId, namespace: namespace, minId: 1, maxId: Int32.max) - }).start() - } - - func testEmpty() { - let state = HistoryViewState(postbox: self.postbox!, inputAnchor: .upperBound, tag: nil, statistics: [], halfLimit: 10, locations: .single(peerId)) - switch state { - case let .loaded(loadedState): - let entries = loadedState.completeAndSample(postbox: self.postbox!).entries - assert(entries.isEmpty) - case .loading: - XCTAssert(false) - } - } - - func testFixed() { - var testIds: [MessageId.Id] = [] - for i in 1 ..< 11 { - testIds.append(Int32(i * 10)) - let _ = addMessage(Int32(i * 10), Int32(i * 10)) - } - for i in 3 ... testIds.count + 10 { - let state = HistoryViewState(postbox: self.postbox!, inputAnchor: .upperBound, tag: nil, statistics: [], halfLimit: i, locations: .single(peerId)) - switch state { - case let .loaded(loadedState): - let entries = loadedState.completeAndSample(postbox: self.postbox!).entries - let ids = entries.map({ $0.message.id.id }) - let clippedTestIds: [Int32] - if i >= testIds.count { - clippedTestIds = testIds - } else { - clippedTestIds = Array(testIds.dropFirst(testIds.count - i)) - } - assert(ids == clippedTestIds) - case .loading: - XCTAssert(false) - } - } - for i in 3 ... testIds.count + 10 { - let state = HistoryViewState(postbox: self.postbox!, inputAnchor: .lowerBound, tag: nil, statistics: [], halfLimit: i, locations: .single(peerId)) - switch state { - case let .loaded(loadedState): - let entries = loadedState.completeAndSample(postbox: self.postbox!).entries - let ids = entries.map({ $0.message.id.id }) - let clippedTestIds: [Int32] - if i >= testIds.count { - clippedTestIds = testIds - } else { - clippedTestIds = Array(testIds.dropLast(testIds.count - i)) - } - assert(ids == clippedTestIds) - case .loading: - XCTAssert(false) - } - } - for i in 3 ... testIds.count + 10 { - for j in testIds[0] - 10 ... testIds.last! + 10 { - let state = HistoryViewState(postbox: self.postbox!, inputAnchor: .index(MessageIndex(id: MessageId(peerId: peerId, namespace: namespace, id: Int32(j)), timestamp: Int32(j))), tag: nil, statistics: [], halfLimit: i, locations: .single(peerId)) - - let clippedTestIds: [Int32] - if let index = testIds.firstIndex(where: { $0 > Int32(j) }), index >= 0 { - clippedTestIds = extract(from: testIds, aroundIndex: index - 1, halfLimit: i) - } else { - if i >= testIds.count { - clippedTestIds = testIds - } else { - clippedTestIds = Array(testIds.dropFirst(testIds.count - i)) - } - } - - switch state { - case let .loaded(loadedState): - let entries = loadedState.completeAndSample(postbox: self.postbox!).entries - let ids = entries.map({ $0.message.id.id }) - assert(ids == clippedTestIds) - case .loading: - XCTAssert(false) - } - } - } - } - - func testDynamicAdd() { - var randomOperations: [Int32] = [] - - randomOperations = [100, 74, 83, 22, 32, 16, 25, 35, 15, 117, 81, 115, 33, 59, 10, 67, 91, 70, 24, 97, 77, 49, 89, 51, 116, 110, 86, 57, 13, 104, 112, 26, 31, 79, 29, 90, 18, 92, 93, 105, 52, 80, 78, 55, 14, 37, 30, 101, 88, 41, 94, 65, 19, 96, 102, 48, 21, 28, 47, 54, 85, 42, 72, 38, 45, 87, 58, 27, 106, 43, 34, 40, 98, 50, 84, 82, 75, 56, 53, 68, 69, 36, 119, 76, 17, 107, 46, 61, 12, 114, 95, 60, 99, 64, 23, 63, 44, 118, 111, 71, 113, 109, 62, 103, 66, 20, 73, 108, 11] - - if randomOperations.isEmpty { - for _ in 0 ..< 500 { - let insertId = Int32(10 + arc4random_uniform(110)) - if !randomOperations.contains(insertId) { - randomOperations.append(insertId) - } - } - print("randomOperations = \(randomOperations)") - } - - let sequentialForwardOperations: [Int32] = Array((10 ... 110).map({ Int32($0) })) - let sequentialBackwardOperations: [Int32] = Array(sequentialForwardOperations.reversed()) - - var shuffledOperations: [Int32] = [] - - shuffledOperations = [88, 27, 41, 43, 53, 90, 110, 55, 65, 75, 69, 35, 54, 66, 16, 89, 98, 52, 23, 51, 30, 81, 76, 93, 58, 101, 10, 86, 34, 95, 91, 26, 42, 20, 107, 11, 64, 21, 63, 82, 67, 39, 70, 72, 25, 48, 79, 94, 106, 103, 56, 60, 59, 47, 68, 18, 38, 71, 29, 108, 33, 12, 17, 92, 84, 50, 32, 99, 37, 96, 46, 36, 61, 28, 19, 109, 45, 24, 87, 49, 97, 14, 78, 73, 104, 31, 57, 62, 22, 13, 80, 85, 100, 15, 83, 102, 40, 105, 74, 44, 77] - - if shuffledOperations.isEmpty { - shuffledOperations = Array(sequentialForwardOperations.shuffled()) - print("shuffledOperations = \(shuffledOperations)") - } - - let operationSets: [[Int32]] = [ - sequentialForwardOperations, - sequentialBackwardOperations, - shuffledOperations, - randomOperations - ] - - for operationSetIndex in 0 ..< operationSets.count { - let operations = operationSets[operationSetIndex] - for halfLimit in [3, 4, 5, 6, 7, 200] { - for position in 10 ... 110 { - removeAllMessages() - - var testIds: [MessageId.Id] = [] - let state = HistoryViewState(postbox: self.postbox!, inputAnchor: .index(MessageIndex(id: MessageId(peerId: peerId, namespace: namespace, id: Int32(position)), timestamp: Int32(position))), tag: nil, statistics: [], halfLimit: halfLimit, locations: .single(peerId)) - switch state { - case let .loaded(loadedState): - for operationIndex in 0 ..< operations.count { - let insertId = operations[operationIndex] - if !testIds.contains(insertId) { - testIds.append(insertId) - testIds.sort() - } else { - assertionFailure() - } - - let attributesData = ReadBuffer(data: Data()) - - let stableId = addMessage(Int32(insertId), Int32(insertId)) - let _ = loadedState.add(entry: .IntermediateMessageEntry(IntermediateMessage(stableId: stableId, stableVersion: 0, id: MessageId(peerId: peerId, namespace: namespace, id: insertId), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: insertId, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, authorId: nil, text: "", attributesData: attributesData, embeddedMediaData: attributesData, referencedMedia: []), nil, nil)) - - let entries = loadedState.completeAndSample(postbox: self.postbox!).entries - let ids = entries.map({ $0.message.id.id }) - - let clippedTestIds: [Int32] - if let index = testIds.firstIndex(where: { $0 > Int32(position) }), index >= 0 { - clippedTestIds = extract(from: testIds, aroundIndex: index - 1, halfLimit: halfLimit) - } else { - if halfLimit >= testIds.count { - clippedTestIds = testIds - } else { - clippedTestIds = Array(testIds.dropFirst(testIds.count - halfLimit)) - } - } - - XCTAssert(ids == clippedTestIds, "\(ids) != \(clippedTestIds)") - } - case .loading: - XCTAssert(false) - } - } - } - } - } - - func testDynamicRemove() { - var randomOperations: [(Int32, Bool)] = [] - - randomOperations = [(78, true), (31, true), (50, true), (110, true), (50, false), (37, true), (26, true), (104, true), (31, false), (108, true), (26, false), (104, false), (108, false), (37, false), (78, false), (110, false), (31, true), (40, true), (90, true), (54, true), (22, true), (54, false), (46, true), (46, false), (23, true), (15, true), (109, true), (75, true), (75, false), (23, false), (109, false), (90, false), (22, false), (105, true), (39, true), (39, false), (31, false), (15, false), (105, false), (55, true), (91, true), (55, false), (68, true), (91, false), (68, false), (73, true), (64, true), (77, true), (77, false), (98, true), (41, true), (80, true), (63, true), (41, false), (61, true), (61, false), (63, false), (40, false), (17, true), (80, false), (117, true), (11, true), (113, true), (30, true), (109, true), (44, true), (93, true), (17, false), (93, false), (71, true), (104, true), (66, true), (11, false), (94, true), (74, true), (114, true), (92, true), (114, false), (117, false), (23, true), (83, true), (98, false), (42, true), (103, true), (51, true), (104, false), (64, false), (30, false), (15, true), (66, false), (60, true), (22, true), (72, true), (73, false), (48, true), (74, false), (54, true), (10, true), (83, false), (39, true), (99, true), (61, true), (40, true), (48, false), (103, false), (73, true), (10, false), (105, true), (68, true), (83, true), (39, false), (92, false), (73, false), (94, false), (54, false), (111, true), (60, false), (74, true), (109, false), (41, true), (72, false), (94, true), (117, true), (61, false), (74, false), (62, true), (22, false), (71, false), (38, true), (101, true), (53, true), (59, true), (42, false), (22, true), (66, true), (38, false), (40, false), (60, true), (114, true), (62, false), (101, false), (111, false), (99, false), (94, false), (34, true), (97, true), (63, true), (45, true), (34, false), (92, true), (14, true), (59, false), (92, false), (117, false), (114, false), (89, true), (45, false), (83, false), (76, true), (15, false), (76, false), (113, false), (118, true), (53, false), (116, true), (51, false), (116, false), (25, true), (89, false), (14, false), (22, false), (90, true), (78, true), (68, false), (47, true), (36, true), (23, false), (25, false), (60, false), (118, false), (25, true), (56, true), (52, true), (63, false), (107, true), (66, false), (56, false), (13, true), (36, false), (41, false), (112, true), (112, false), (97, false), (13, false), (90, false), (25, false), (47, false), (23, true), (107, false), (105, false), (23, false), (44, false), (52, false), (93, true), (60, true), (53, true), (60, false), (78, false), (57, true), (57, false), (93, false), (53, false), (17, true), (50, true), (80, true), (35, true), (116, true), (116, false), (35, false), (29, true), (43, true), (43, false), (49, true), (80, false), (106, true), (62, true), (29, false), (32, true), (31, true), (75, true), (66, true), (42, true), (31, false), (107, true), (46, true), (19, true), (50, false), (20, true), (46, false), (42, false), (107, false), (13, true), (33, true), (17, false), (103, true), (32, false), (49, false), (96, true), (19, false), (25, true), (96, false), (86, true), (26, true), (86, false), (25, false), (103, false), (66, false), (106, false), (75, false), (65, true), (33, false), (103, true), (26, false), (75, true), (62, false), (75, false), (13, false), (65, false), (103, false), (50, true), (52, true), (116, true), (51, true), (53, true), (52, false), (53, false), (102, true), (116, false), (102, false), (50, false), (62, true), (13, true), (35, true), (20, false), (15, true), (18, true), (19, true), (22, true), (29, true), (62, false), (29, false), (15, false), (35, false), (18, false), (63, true), (14, true), (102, true), (102, false), (94, true), (19, false), (117, true), (87, true), (94, false), (63, false), (94, true), (13, false), (51, false), (94, false), (103, true), (103, false), (87, false), (20, true), (18, true), (87, true), (101, true), (101, false), (14, false), (87, false), (20, false), (22, false), (18, false), (82, true), (28, true), (117, false), (28, false), (93, true), (97, true), (82, false), (86, true), (97, false), (110, true), (86, false), (79, true), (110, false), (101, true), (103, true), (12, true), (35, true), (79, false), (12, false), (93, false), (103, false), (39, true), (11, true), (10, true), (33, true), (35, false), (61, true), (59, true), (55, true), (66, true), (41, true), (61, false), (39, false), (35, true), (55, false), (41, false), (83, true), (119, true), (51, true), (70, true), (98, true), (47, true), (41, true), (11, false), (83, false), (10, false), (70, false), (49, true), (49, false), (33, false), (63, true), (41, false), (59, false), (79, true), (24, true), (58, true), (111, true), (54, true), (119, false), (99, true), (53, true), (51, false), (98, false), (79, false), (35, false), (28, true), (53, false), (47, false), (97, true), (66, false), (67, true), (54, false), (106, true), (24, false), (48, true), (32, true), (111, false), (106, false), (59, true), (18, true), (48, false), (38, true), (101, false), (32, false), (63, false), (58, false), (34, true), (44, true), (67, false), (76, true), (34, false), (74, true), (74, false), (99, false), (75, true), (100, true), (32, true), (35, true), (100, false), (95, true), (119, true), (76, false), (45, true), (38, false), (18, false), (67, true), (24, true), (26, true), (13, true), (35, false), (76, true), (45, false), (50, true), (24, false), (79, true), (79, false), (67, false), (29, true), (28, false), (13, false), (50, false), (68, true), (83, true), (89, true), (25, true), (95, false), (97, false), (80, true), (68, false), (43, true), (44, false), (103, true), (76, false), (89, false), (98, true), (116, true), (32, false), (119, false), (80, false), (114, true), (26, false), (75, false), (45, true), (114, false), (107, true), (116, false), (25, false), (58, true), (83, false), (58, false), (29, false), (45, false), (60, true), (98, false), (103, false), (60, false), (43, false), (34, true), (34, false)] - - if randomOperations.isEmpty { - var currentIds: [Int32] = [] - for _ in 0 ..< 500 { - let isAdd = arc4random_uniform(10) < 5 - if isAdd || currentIds.isEmpty { - let insertId = Int32(10 + arc4random_uniform(110)) - if !currentIds.contains(insertId) { - currentIds.append(insertId) - currentIds.sort() - randomOperations.append((insertId, true)) - } - } else { - let removeIndex = Int(arc4random_uniform(UInt32(currentIds.count))) - randomOperations.append((currentIds[removeIndex], false)) - currentIds.remove(at: removeIndex) - } - } - print("randomOperations = \(randomOperations)") - } - - let operationSets: [[(Int32, Bool)]] = [ - randomOperations - ] - - for operationSetIndex in 0 ..< operationSets.count { - let operations = operationSets[operationSetIndex] - for halfLimit in [3, 4, 5, 6, 7, 200] { - for position in 10 ... 110 { - removeAllMessages() - - var testIds: [MessageId.Id] = [] - let state = HistoryViewState(postbox: self.postbox!, inputAnchor: .index(MessageIndex(id: MessageId(peerId: peerId, namespace: namespace, id: Int32(position)), timestamp: Int32(position))), tag: nil, statistics: [], halfLimit: halfLimit, locations: .single(peerId)) - switch state { - case let .loaded(loadedState): - for operationIndex in 0 ..< operations.count { - let (itemId, isAdd) = operations[operationIndex] - if isAdd { - if !testIds.contains(itemId) { - testIds.append(itemId) - testIds.sort() - } else { - assertionFailure() - } - } else { - if let currentIndex = testIds.firstIndex(of: itemId) { - testIds.remove(at: currentIndex) - } else { - assertionFailure() - } - } - - let messageId = MessageId(peerId: peerId, namespace: namespace, id: itemId) - if isAdd { - let stableId = addMessage(Int32(itemId), Int32(itemId)) - let attributesData = ReadBuffer(data: Data()) - let _ = loadedState.add(entry: .IntermediateMessageEntry(IntermediateMessage(stableId: stableId, stableVersion: 0, id: messageId, globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: itemId, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, authorId: nil, text: "", attributesData: attributesData, embeddedMediaData: attributesData, referencedMedia: []), nil, nil)) - } else { - removeMessage(itemId) - let _ = loadedState.remove(index: MessageIndex(id: messageId, timestamp: itemId)) - } - - let entries = loadedState.completeAndSample(postbox: self.postbox!).entries - let ids = entries.map({ $0.message.id.id }) - - let clippedTestIds: [Int32] - if let index = testIds.firstIndex(where: { $0 > Int32(position) }), index >= 0 { - clippedTestIds = extract(from: testIds, aroundIndex: index - 1, halfLimit: halfLimit) - } else { - if halfLimit >= testIds.count { - clippedTestIds = testIds - } else { - clippedTestIds = Array(testIds.dropFirst(testIds.count - halfLimit)) - } - } - - XCTAssert(ids == clippedTestIds, "\(ids) != \(clippedTestIds)") - } - case .loading: - XCTAssert(false) - } - } - } - } - } - - func testLoadInitialHole() { - addHole(1 ... 1000, space: .everywhere) - var state = HistoryViewState(postbox: self.postbox!, inputAnchor: .message(MessageId(peerId: peerId, namespace: namespace, id: Int32(100))), tag: nil, statistics: [], halfLimit: 10, locations: .single(peerId)) - switch state { - case .loaded: - XCTAssert(false) - case let .loading(loadingState): - let sampledResult = loadingState.checkAndSample(postbox: self.postbox!) - switch sampledResult { - case .ready: - XCTAssert(false) - case let .loadHole(holePeerId, holeNamespace, holeTags, holeAroundId): - XCTAssert(holePeerId == peerId) - XCTAssert(holeNamespace == namespace) - XCTAssert(holeTags == nil) - XCTAssert(holeAroundId == 100) - - removeHole(20 ... 110, space: .everywhere) - let _ = loadingState.removeHole(space: PeerIdAndNamespace(peerId: peerId, namespace: namespace), range: 20 ... 110) - state = .loading(loadingState) - } - } - - switch state { - case .loaded: - XCTAssert(false) - case let .loading(loadingState): - let sampledResult = loadingState.checkAndSample(postbox: self.postbox!) - switch sampledResult { - case let .ready(anchor, holes): - switch anchor { - case .upperBound: - break - default: - XCTAssert(false) - } - state = .loaded(HistoryViewLoadedState(anchor: anchor, tag: nil, statistics: [], halfLimit: 10, locations: .single(peerId), postbox: self.postbox!, holes: holes)) - case .loadHole: - XCTAssert(false) - } - } - - switch state { - case let .loaded(loadedState): - let entries = loadedState.completeAndSample(postbox: self.postbox!).entries - XCTAssert(entries.isEmpty) - case .loading: - XCTAssert(false) - } - } - - func testEdgeHoles1() { - let _ = addMessage(100, 100) - let _ = addMessage(200, 200) - let _ = addMessage(300, 300) - - addHole(1 ... 100, space: .everywhere) - - let state = HistoryViewState(postbox: self.postbox!, inputAnchor: .upperBound, tag: nil, statistics: [], halfLimit: 10, locations: .single(peerId)) - guard case let .loaded(loadedState) = state else { - XCTAssert(false) - return - } - let sampledState = loadedState.completeAndSample(postbox: self.postbox!) - let ids = sampledState.entries.map({ $0.message.id.id }) - XCTAssert(ids == [200, 300]) - XCTAssert(sampledState.hole == SampledHistoryViewHole(peerId: peerId, namespace: namespace, tag: nil, indices: IndexSet(integersIn: 1 ... 100), startId: 100, endId: 1)) - XCTAssert(sampledState.holesToHigher == false) - XCTAssert(sampledState.holesToLower == true) - } - - func testEdgeHoles2() { - let _ = addMessage(100, 100) - let _ = addMessage(200, 200) - let _ = addMessage(300, 300) - - addHole(1 ... 99, space: .everywhere) - - let state = HistoryViewState(postbox: self.postbox!, inputAnchor: .upperBound, tag: nil, statistics: [], halfLimit: 10, locations: .single(peerId)) - guard case let .loaded(loadedState) = state else { - XCTAssert(false) - return - } - let sampledState = loadedState.completeAndSample(postbox: self.postbox!) - let ids = sampledState.entries.map({ $0.message.id.id }) - XCTAssert(ids == [100, 200, 300]) - XCTAssert(sampledState.hole == SampledHistoryViewHole(peerId: peerId, namespace: namespace, tag: nil, indices: IndexSet(integersIn: 1 ... 99), startId: 99, endId: 1)) - XCTAssert(sampledState.holesToHigher == false) - XCTAssert(sampledState.holesToLower == false) - } - - func testEdgeHoles3() { - let _ = addMessage(100, 100) - let _ = addMessage(200, 200) - let _ = addMessage(300, 300) - - addHole(300 ... 400, space: .everywhere) - - let state = HistoryViewState(postbox: self.postbox!, inputAnchor: .upperBound, tag: nil, statistics: [], halfLimit: 10, locations: .single(peerId)) - guard case let .loaded(loadedState) = state else { - XCTAssert(false) - return - } - let sampledState = loadedState.completeAndSample(postbox: self.postbox!) - let ids = sampledState.entries.map({ $0.message.id.id }) - XCTAssert(ids == []) - XCTAssert(sampledState.hole == SampledHistoryViewHole(peerId: peerId, namespace: namespace, tag: nil, indices: IndexSet(integersIn: 300 ... 400), startId: 400, endId: 1)) - XCTAssert(sampledState.holesToHigher == false) - XCTAssert(sampledState.holesToLower == true) - } - - func testEdgeHoles4() { - let _ = addMessage(100, 100) - let _ = addMessage(200, 200) - let _ = addMessage(300, 300) - - addHole(300 ... 400, space: .everywhere) - - let state = HistoryViewState(postbox: self.postbox!, inputAnchor: .message(MessageId(peerId: peerId, namespace: namespace, id: 200)), tag: nil, statistics: [], halfLimit: 10, locations: .single(peerId)) - guard case let .loaded(loadedState) = state else { - XCTAssert(false) - return - } - let sampledState = loadedState.completeAndSample(postbox: self.postbox!) - let ids = sampledState.entries.map({ $0.message.id.id }) - XCTAssert(ids == [100, 200]) - XCTAssert(sampledState.hole == SampledHistoryViewHole(peerId: peerId, namespace: namespace, tag: nil, indices: IndexSet(integersIn: 300 ... 400), startId: 300, endId: Int32.max - 1)) - XCTAssert(sampledState.holesToHigher == true) - XCTAssert(sampledState.holesToLower == false) - } -} diff --git a/submodules/Postbox/PostboxTests/OrderStatisticTreeTests.swift b/submodules/Postbox/PostboxTests/OrderStatisticTreeTests.swift deleted file mode 100644 index 203a02f621..0000000000 --- a/submodules/Postbox/PostboxTests/OrderStatisticTreeTests.swift +++ /dev/null @@ -1,151 +0,0 @@ -import Foundation - -import UIKit -import XCTest - -import Postbox -@testable import Postbox - -import SwiftSignalKit - -private let peerId = PeerId(namespace: 1, id: 1) -private let namespace: Int32 = 1 -private let authorPeerId = PeerId(namespace: 1, id: 6) - -private func ==(lhs: [Media], rhs: [Media]) -> Bool { - if lhs.count != rhs.count { - return false - } - - for i in 0 ..< lhs.count { - if !lhs[i].isEqual(to: rhs[i]) { - return false - } - } - return true -} - -private enum Entry: Equatable, CustomStringConvertible { - case Message(Int32, Int32, String, [Media], MessageFlags) - case Hole(Int32, Int32, Int32) - - var description: String { - switch self { - case let .Message(id, timestamp, text, media, flags): - return "Message(\(id), \(timestamp), \(text), \(media), \(flags))" - case let .Hole(min, max, timestamp): - return "Hole(\(min), \(max), \(timestamp))" - } - } -} - -private func ==(lhs: Entry, rhs: Entry) -> Bool { - switch lhs { - case let .Message(lhsId, lhsTimestamp, lhsText, lhsMedia, lhsFlags): - switch rhs { - case let .Message(rhsId, rhsTimestamp, rhsText, rhsMedia, rhsFlags): - return lhsId == rhsId && lhsTimestamp == rhsTimestamp && lhsText == rhsText && lhsMedia == rhsMedia && lhsFlags == rhsFlags - case .Hole: - return false - } - case let .Hole(lhsMin, lhsMax, lhsMaxTimestamp): - switch rhs { - case .Message: - return false - case let .Hole(rhsMin, rhsMax, rhsMaxTimestamp): - return lhsMin == rhsMin && lhsMax == rhsMax && lhsMaxTimestamp == rhsMaxTimestamp - } - } -} - -private extension MessageTags { - static let First = MessageTags(rawValue: 1 << 0) - static let Second = MessageTags(rawValue: 1 << 1) -} - -class OrderStatisticTreeTests: XCTestCase { - var valueBox: ValueBox? - var path: String? - - var peerTable: PeerTable? - var globalMessageIdsTable: GlobalMessageIdsTable? - var indexTable: MessageHistoryIndexTable? - var mediaTable: MessageMediaTable? - var historyTable: MessageHistoryTable? - var historyMetadataTable: MessageHistoryMetadataTable? - var unsentTable: MessageHistoryUnsentTable? - var tagsTable: MessageHistoryTagsTable? - var readStateTable: MessageHistoryReadStateTable? - var synchronizeReadStateTable: MessageHistorySynchronizeReadStateTable? - var globallyUniqueMessageIdsTable: MessageGloballyUniqueIdTable? - var globalTagsTable: GlobalMessageHistoryTagsTable? - var localTagsTable: LocalMessageHistoryTagsTable? - var textIndexTable: MessageHistoryTextIndexTable? - var messageHistoryTagsSummaryTable: MessageHistoryTagsSummaryTable? - var invalidatedMessageHistoryTagsSummaryTable: InvalidatedMessageHistoryTagsSummaryTable? - var pendingMessageActionsTable: PendingMessageActionsTable? - var pendingMessageActionsMetadataTable: PendingMessageActionsMetadataTable? - - override func setUp() { - super.setUp() - - var randomId: Int64 = 0 - arc4random_buf(&randomId, 8) - path = NSTemporaryDirectory() + "\(randomId)" - self.valueBox = SqliteValueBox(basePath: path!, queue: Queue.mainQueue()) - - let seedConfiguration = SeedConfiguration(initializeChatListWithHole: (topLevel: nil, groups: nil), initializeMessageNamespacesWithHoles: [], existingMessageTags: [.First, .Second], messageTagsWithSummary: [], existingGlobalMessageTags: [], peerNamespacesRequiringMessageTextIndex: [], peerSummaryCounterTags: { _ in PeerSummaryCounterTags(rawValue: 0) }, additionalChatListIndexNamespace: nil, chatMessagesNamespaces: Set()) - - self.globalMessageIdsTable = GlobalMessageIdsTable(valueBox: self.valueBox!, table: GlobalMessageIdsTable.tableSpec(5), namespace: namespace) - self.historyMetadataTable = MessageHistoryMetadataTable(valueBox: self.valueBox!, table: MessageHistoryMetadataTable.tableSpec(7)) - self.unsentTable = MessageHistoryUnsentTable(valueBox: self.valueBox!, table: MessageHistoryUnsentTable.tableSpec(8)) - self.invalidatedMessageHistoryTagsSummaryTable = InvalidatedMessageHistoryTagsSummaryTable(valueBox: self.valueBox!, table: MessageHistoryTagsSummaryTable.tableSpec(18)) - self.messageHistoryTagsSummaryTable = MessageHistoryTagsSummaryTable(valueBox: self.valueBox!, table: MessageHistoryTagsSummaryTable.tableSpec(15), invalidateTable: self.invalidatedMessageHistoryTagsSummaryTable!) - self.pendingMessageActionsMetadataTable = PendingMessageActionsMetadataTable(valueBox: self.valueBox!, table: PendingMessageActionsMetadataTable.tableSpec(16)) - self.pendingMessageActionsTable = PendingMessageActionsTable(valueBox: self.valueBox!, table: PendingMessageActionsTable.tableSpec(17), metadataTable: self.pendingMessageActionsMetadataTable!) - self.tagsTable = MessageHistoryTagsTable(valueBox: self.valueBox!, table: MessageHistoryTagsTable.tableSpec(9), seedConfiguration: seedConfiguration, summaryTable: messageHistoryTagsSummaryTable!) - self.indexTable = MessageHistoryIndexTable(valueBox: self.valueBox!, table: MessageHistoryIndexTable.tableSpec(1), globalMessageIdsTable: self.globalMessageIdsTable!, metadataTable: self.historyMetadataTable!, seedConfiguration: seedConfiguration) - self.mediaTable = MessageMediaTable(valueBox: self.valueBox!, table: MessageMediaTable.tableSpec(2)) - self.readStateTable = MessageHistoryReadStateTable(valueBox: self.valueBox!, table: MessageHistoryReadStateTable.tableSpec(10)) - self.synchronizeReadStateTable = MessageHistorySynchronizeReadStateTable(valueBox: self.valueBox!, table: MessageHistorySynchronizeReadStateTable.tableSpec(11)) - self.globallyUniqueMessageIdsTable = MessageGloballyUniqueIdTable(valueBox: self.valueBox!, table: MessageGloballyUniqueIdTable.tableSpec(12)) - self.globalTagsTable = GlobalMessageHistoryTagsTable(valueBox: self.valueBox!, table: GlobalMessageHistoryTagsTable.tableSpec(13)) - self.localTagsTable = LocalMessageHistoryTagsTable(valueBox: self.valueBox!, table: GlobalMessageHistoryTagsTable.tableSpec(20)) - self.textIndexTable = MessageHistoryTextIndexTable(valueBox: self.valueBox!, table: MessageHistoryTextIndexTable.tableSpec(14)) - - self.historyTable = MessageHistoryTable(valueBox: self.valueBox!, table: MessageHistoryTable.tableSpec(4), messageHistoryIndexTable: self.indexTable!, messageMediaTable: self.mediaTable!, historyMetadataTable: self.historyMetadataTable!, globallyUniqueMessageIdsTable: self.globallyUniqueMessageIdsTable!, unsentTable: self.unsentTable!, tagsTable: self.tagsTable!, globalTagsTable: self.globalTagsTable!, localTagsTable: self.localTagsTable!, readStateTable: self.readStateTable!, synchronizeReadStateTable: self.synchronizeReadStateTable!, textIndexTable: self.textIndexTable!, summaryTable: messageHistoryTagsSummaryTable!, pendingActionsTable: self.pendingMessageActionsTable!) - } - - override func tearDown() { - super.tearDown() - - self.historyTable = nil - self.indexTable = nil - self.mediaTable = nil - self.peerTable = nil - self.historyMetadataTable = nil - - self.valueBox = nil - let _ = try? FileManager.default.removeItem(atPath: path!) - self.path = nil - } - - func testOST() { - let access = BTreeAccess(order: 100) - var entries: [MessageOrderKey: Int32] = [:] - for i in 0 ..< 1000 { - let k = Int32(bitPattern: arc4random()) - let key = MessageOrderKey(timestamp: k, namespace: 0, id: 0) - let value = Int32(bitPattern: arc4random()) - access.insert(value, for: key) - entries[key] = value - } - for (key, value) in entries { - if let result = access.value(for: key) { - XCTAssert(result == value) - } else { - XCTAssert(false) - } - } - } -} diff --git a/submodules/Postbox/PostboxTests/OrderedItemListTableTests.swift b/submodules/Postbox/PostboxTests/OrderedItemListTableTests.swift deleted file mode 100644 index e9ecf666df..0000000000 --- a/submodules/Postbox/PostboxTests/OrderedItemListTableTests.swift +++ /dev/null @@ -1,156 +0,0 @@ -import Foundation - -import UIKit -import XCTest - -import Postbox -@testable import Postbox - -import SwiftSignalKit - -private struct TestListItem: OrderedItemListEntryContents { - init() { - - } - - init(decoder: PostboxDecoder) { - } - - func encode(_ encoder: PostboxEncoder) { - - } -} - -private let declaredEncodables: Void = { - declareEncodable(TestListItem.self, f: { TestListItem(decoder: $0) }) - return () -}() - -class OrderedItemListTableTests: XCTestCase { - var valueBox: ValueBox? - var path: String? - - var itemListTable: OrderedItemListTable? - var itemListIndexTable: OrderedItemListIndexTable? - - override func setUp() { - super.setUp() - - let _ = declaredEncodables - - var randomId: Int64 = 0 - arc4random_buf(&randomId, 8) - path = NSTemporaryDirectory() + "\(randomId)" - self.valueBox = SqliteValueBox(basePath: path!, queue: Queue.mainQueue()) - - self.itemListIndexTable = OrderedItemListIndexTable(valueBox: self.valueBox!, table: OrderedItemListIndexTable.tableSpec(0)) - self.itemListTable = OrderedItemListTable(valueBox: self.valueBox!, table: OrderedItemListTable.tableSpec(1), indexTable: self.itemListIndexTable!) - } - - override func tearDown() { - super.tearDown() - - self.valueBox = nil - let _ = try? FileManager.default.removeItem(atPath: path!) - self.path = nil - } - - private func expectIds(_ ids: [Int32]) { - let actualIds = self.itemListTable!.getItems(collectionId: 0).map { entry -> Int32 in - var value: Int32 = 0 - memcpy(&value, entry.id.memory, 4) - return value - } - XCTAssert(ids == actualIds, "Expected\n\(ids)\nActual\n\(actualIds)") - } - - private func setIds(_ ids: [Int32]) { - var operations: [Int32 : [OrderedItemListOperation]] = [:] - self.itemListTable!.replaceItems(collectionId: 0, items: ids.map { id -> OrderedItemListEntry in - var idValue: Int32 = id - let buffer = MemoryBuffer(memory: malloc(4)!, capacity: 4, length: 4, freeWhenDone: true) - memcpy(buffer.memory, &idValue, 4) - return OrderedItemListEntry(id: buffer, contents: TestListItem()) - }, operations: &operations) - XCTAssert(self.itemListTable!.testIntegrity(collectionId: 0), "Index integrity violated") - } - - private func addOrMoveId(_ id: Int32, _ maxCount: Int? = nil) { - var operations: [Int32 : [OrderedItemListOperation]] = [:] - var idValue: Int32 = id - let buffer = MemoryBuffer(memory: malloc(4)!, capacity: 4, length: 4, freeWhenDone: true) - memcpy(buffer.memory, &idValue, 4) - self.itemListTable!.addItemOrMoveToFirstPosition(collectionId: 0, item: OrderedItemListEntry(id: buffer, contents: TestListItem()), removeTailIfCountExceeds: maxCount, operations: &operations) - XCTAssert(self.itemListTable!.testIntegrity(collectionId: 0), "Index integrity violated") - } - - private func removeId(_ id: Int32) { - var operations: [Int32 : [OrderedItemListOperation]] = [:] - var idValue: Int32 = id - let buffer = MemoryBuffer(memory: malloc(4)!, capacity: 4, length: 4, freeWhenDone: true) - memcpy(buffer.memory, &idValue, 4) - self.itemListTable!.remove(collectionId: 0, itemId: buffer, operations: &operations) - XCTAssert(self.itemListTable!.testIntegrity(collectionId: 0), "Index integrity violated") - } - - func testEmpty() { - expectIds([]) - } - - func testSetIds() { - expectIds([]) - setIds([10, 20, 30]) - expectIds([10, 20, 30]) - setIds([40, 50, 60]) - expectIds([40, 50, 60]) - setIds([10, 20, 30, 40]) - expectIds([10, 20, 30, 40]) - } - - func testAddItem() { - expectIds([]) - addOrMoveId(10) - expectIds([10]) - addOrMoveId(20) - expectIds([20, 10]) - addOrMoveId(30) - expectIds([30, 20, 10]) - addOrMoveId(40, 4) - expectIds([40, 30, 20, 10]) - addOrMoveId(50, 4) - expectIds([50, 40, 30, 20]) - } - - func testMoveItem() { - expectIds([]) - setIds([10, 20, 30]) - expectIds([10, 20, 30]) - addOrMoveId(10) - expectIds([10, 20, 30]) - addOrMoveId(20) - expectIds([20, 10, 30]) - addOrMoveId(30) - expectIds([30, 20, 10]) - } - - func testRandom() { - expectIds([]) - var currentIds = Set() - for _ in 0 ..< 100 { - let op = arc4random_uniform(4) - switch op { - case 0 ... 2: - let id = Int32(bitPattern: arc4random_uniform(100)) - addOrMoveId(id, op == 0 ? 20 : nil) - currentIds.insert(id) - default: - if !currentIds.isEmpty { - let index = Int(Int32(bitPattern: arc4random_uniform(UInt32(bitPattern: Int32(currentIds.count))))) - let id = currentIds[currentIds.index(currentIds.startIndex, offsetBy: index)] - removeId(id) - currentIds.remove(id) - } - } - } - } -} diff --git a/submodules/Postbox/PostboxTests/RandomAccessResourceTests.swift b/submodules/Postbox/PostboxTests/RandomAccessResourceTests.swift deleted file mode 100644 index 5c4fe830a5..0000000000 --- a/submodules/Postbox/PostboxTests/RandomAccessResourceTests.swift +++ /dev/null @@ -1,414 +0,0 @@ -import Foundation - -import UIKit -import XCTest - -import Postbox -@testable import Postbox - -import SwiftSignalKit - -func randomFilePath() -> String { - return NSTemporaryDirectory() + "\(arc4random())\(arc4random())" -} - -/*class RandomAccessResourceTests: XCTestCase { - override func setUp() { - super.setUp() - - self.continueAfterFailure = false - } - - override func tearDown() { - super.tearDown() - } - - func testCompleteAligned() { - let path = randomFilePath() - - let size = 10 * 1024 * 1024 - //let size = 64 * 1024 - let sampleData = NSMutableData() - sampleData.length = size - arc4random_buf(sampleData.mutableBytes, size) - - var storeRange: (RandomAccessResourceStoreRange) -> Void = { _ in } - - let context = RandomAccessMediaResourceContext(path: path, size: size, fetchRange: { range in - let subdata = sampleData.subdata(with: NSRange(location: range.lowerBound, length: range.count)) - storeRange(RandomAccessResourceStoreRange(offset: range.lowerBound, data: subdata)) - return EmptyDisposable - }) - - storeRange = { [weak context] range in - context?.storeRanges([range]) - } - - var blocks: [Int] = [] - for i in 0 ..< context.blockCount { - blocks.append(i) - } - - var selectedRanges: [Range] = [] - - while !blocks.isEmpty { - let arrayOffset = Int(arc4random_uniform(UInt32(blocks.count))) - var rangeEnd = blocks[arrayOffset] - var arrayOffsetEnd = arrayOffset - for i in arrayOffset + 1 ..< blocks.count { - if blocks[i] == rangeEnd + 1 { - rangeEnd = blocks[i] - arrayOffsetEnd = i - } else { - break - } - } - - let arrayOffsetCount = arrayOffsetEnd + 1 - arrayOffset - let selectedArrayOffsetCount = Int(arc4random_uniform(UInt32(arrayOffsetCount + 1))) - let selectedArrayOffsetEnd = arrayOffset + max(0, selectedArrayOffsetCount - 1) - - let range = (blocks[arrayOffset] * context.blockSize) ..< ((blocks[selectedArrayOffsetEnd] + 1) * context.blockSize) - blocks.removeSubrange(arrayOffset ..< (selectedArrayOffsetEnd + 1)) - - selectedRanges.append(Range(range)) - } - - selectedRanges.removeAll() - - selectedRanges.append(10092544..<10354688); selectedRanges.append(1310720..<7274496); selectedRanges.append(7340032..<7798784); selectedRanges.append(1179648..<1310720); selectedRanges.append(524288..<851968); selectedRanges.append(8060928..<9895936); selectedRanges.append(1114112..<1179648); selectedRanges.append(7929856..<8060928); selectedRanges.append(196608..<524288); selectedRanges.append(131072..<196608); selectedRanges.append(7798784..<7864320); selectedRanges.append(917504..<1114112); selectedRanges.append(65536..<131072); selectedRanges.append(7274496..<7340032); selectedRanges.append(0..<65536); selectedRanges.append(7864320..<7929856); selectedRanges.append(851968..<917504); selectedRanges.append(9961472..<10027008); selectedRanges.append(10354688..<10420224); selectedRanges.append(10027008..<10092544); selectedRanges.append(10420224..<10485760); selectedRanges.append(9895936..<9961472) - - print("\(selectedRanges)") - - let testData = NSMutableData() - testData.length = size - for range in selectedRanges { - var invocationCount = 0 - let _ = context.addListenerForData(in: Range(range), mode: .Complete, updated: { subdata in - XCTAssert(subdata.count == range.count, "\(subdata.count) != \(range.count)") - invocationCount += 1 - subdata.withUnsafeBytes { (bytes: UnsafePointer) -> Void in - memcpy(testData.mutableBytes.advanced(by: range.lowerBound), bytes, range.count) - } - }) - let _ = context.addListenerForFetchedData(in: Range(range)) - XCTAssert(invocationCount == 1, "invocationCount != 1") - } - - XCTAssert(memcmp(testData.bytes, sampleData.bytes, size) == 0) - } - - func testCompleteUnaligned() { - let path = randomFilePath() - - let size = 10 * 1024 * 1024 + 123 - let sampleData = NSMutableData() - sampleData.length = size - arc4random_buf(sampleData.mutableBytes, size) - - var storeRange: (RandomAccessResourceStoreRange) -> Void = { _ in } - - let context = RandomAccessMediaResourceContext(path: path, size: size, fetchRange: { range in - let subdata = sampleData.subdata(with: NSRange(location: range.lowerBound, length: range.count)) - storeRange(RandomAccessResourceStoreRange(offset: range.lowerBound, data: subdata)) - return EmptyDisposable - }) - - storeRange = { [weak context] range in - context?.storeRanges([range]) - } - - var blocks: [Int] = [] - for i in 0 ..< context.blockCount { - blocks.append(i) - } - - var selectedRanges: [Range] = [] - - var dataOffset = 0 - while dataOffset < size { - let partSize = min(size - dataOffset, Int(arc4random_uniform(1024 * 1024))) - selectedRanges.append(dataOffset ..< (dataOffset + partSize)) - dataOffset += partSize - } - - print("\(selectedRanges)") - - let testData = NSMutableData() - testData.length = size - for range in selectedRanges { - let _ = context.addListenerForData(in: Range(range), mode: .Complete, updated: { subdata in - if range.count != subdata.count { - print("\(subdata.count)") - } - XCTAssert(subdata.count == range.count) - subdata.withUnsafeBytes { (bytes: UnsafePointer) -> Void in - memcpy(testData.mutableBytes.advanced(by: range.lowerBound), bytes, subdata.count) - } - }) - let _ = context.addListenerForFetchedData(in: Range(range)) - } - - XCTAssert(memcmp(testData.bytes, sampleData.bytes, size) == 0) - } - - /*func testIncrementalStoreCompleteSubscriptionAligned() { - let path = randomFilePath() - - let size = 10 * 1024 * 1024 - //let size = 64 * 1024 - let sampleData = NSMutableData() - sampleData.length = size - arc4random_buf(sampleData.mutableBytes, size) - - var storeRange: (RandomAccessResourceStoreRange) -> Void = { _ in } - - let context = RandomAccessMediaResourceContext(path: path, size: size, fetchRange: { range in - var offset = range.lowerBound - while offset < range.upperBound { - let subdata = sampleData.subdata(with: NSRange(location: offset, length: min(range.upperBound - offset, 64 * 1024))) - storeRange(RandomAccessResourceStoreRange(offset: range.lowerBound, data: subdata)) - - offset += 64 * 1024 - } - return EmptyDisposable - }) - - storeRange = { [weak context] range in - context?.storeRanges([range]) - } - - var blocks: [Int] = [] - for i in 0 ..< context.blockCount { - blocks.append(i) - } - - var selectedRanges: [Range] = [] - - while !blocks.isEmpty { - let arrayOffset = Int(arc4random_uniform(UInt32(blocks.count))) - var rangeEnd = blocks[arrayOffset] - var arrayOffsetEnd = arrayOffset - for i in arrayOffset + 1 ..< blocks.count { - if blocks[i] == rangeEnd + 1 { - rangeEnd = blocks[i] - arrayOffsetEnd = i - } else { - break - } - } - - let arrayOffsetCount = arrayOffsetEnd + 1 - arrayOffset - let selectedArrayOffsetCount = Int(arc4random_uniform(UInt32(arrayOffsetCount + 1))) - let selectedArrayOffsetEnd = arrayOffset + max(0, selectedArrayOffsetCount - 1) - - let range = (blocks[arrayOffset] * context.blockSize) ..< ((blocks[selectedArrayOffsetEnd] + 1) * context.blockSize) - blocks.removeSubrange(arrayOffset ..< (selectedArrayOffsetEnd + 1)) - - selectedRanges.append(Range(range)) - } - - print("\(selectedRanges)") - - let testData = NSMutableData() - testData.length = size - for range in selectedRanges { - var invocations = 0 - let _ = context.addListenerForData(in: Range(range), mode: .Complete, updated: { subdata in - XCTAssert(subdata.count == range.count) - subdata.withUnsafeBytes { (bytes: UnsafePointer) -> Void in - memcpy(testData.mutableBytes.advanced(by: range.lowerBound), bytes, range.count) - } - invocations += 1 - }) - let _ = context.addListenerForFetchedData(in: Range(range)) - //XCTAssert(invocations == 1) - } - - XCTAssert(memcmp(testData.bytes, sampleData.bytes, size) == 0) - }*/ - - func testIncrementalStoreCompleteSubscriptionUnaligned() { - let path = randomFilePath() - - let size = 10 * 1024 * 1024 + 123 - let sampleData = NSMutableData() - sampleData.length = size - arc4random_buf(sampleData.mutableBytes, size) - - var storeRange: (RandomAccessResourceStoreRange) -> Void = { _ in } - - let context = RandomAccessMediaResourceContext(path: path, size: size, fetchRange: { range in - var offset = range.lowerBound - while offset < range.upperBound { - let subdata = sampleData.subdata(with: NSRange(location: offset, length: min(range.upperBound - offset, 64 * 1024))) - storeRange(RandomAccessResourceStoreRange(offset: offset, data: subdata)) - - offset += 64 * 1024 - } - return EmptyDisposable - }) - - storeRange = { [weak context] range in - context?.storeRanges([range]) - } - - var selectedRanges: [Range] = [] - - var dataOffset = 0 - while dataOffset < size { - let partSize = min(size - dataOffset, Int(arc4random_uniform(1024 * 1024))) - selectedRanges.append(dataOffset ..< (dataOffset + partSize)) - dataOffset += partSize - } - - print("\(selectedRanges)") - - let testData = NSMutableData() - testData.length = size - for range in selectedRanges { - var invocations = 0 - let _ = context.addListenerForData(in: Range(range), mode: .Complete, updated: { subdata in - XCTAssert(subdata.count == range.count) - subdata.withUnsafeBytes { (bytes: UnsafePointer) -> Void in - memcpy(testData.mutableBytes.advanced(by: range.lowerBound), bytes, subdata.count) - } - invocations += 1 - }) - let _ = context.addListenerForFetchedData(in: Range(range)) - XCTAssert(invocations == 1) - } - - XCTAssert(memcmp(testData.bytes, sampleData.bytes, size) == 0) - } - - func testIncrementalStoreIncrementalSubscriptionAligned() { - let path = randomFilePath() - - let size = 10 * 1024 * 1024 - let sampleData = NSMutableData() - sampleData.length = size - arc4random_buf(sampleData.mutableBytes, size) - - var storeRange: (RandomAccessResourceStoreRange) -> Void = { _ in } - - let context = RandomAccessMediaResourceContext(path: path, size: size, fetchRange: { range in - var offset = range.lowerBound - while offset < range.upperBound { - let subdata = sampleData.subdata(with: NSRange(location: offset, length: min(range.upperBound - offset, 64 * 1024))) - storeRange(RandomAccessResourceStoreRange(offset: offset, data: subdata)) - - offset += 64 * 1024 - } - return EmptyDisposable - }) - - storeRange = { [weak context] range in - context?.storeRanges([range]) - } - - var blocks: [Int] = [] - for i in 0 ..< context.blockCount { - blocks.append(i) - } - - var selectedRanges: [Range] = [] - - while !blocks.isEmpty { - let arrayOffset = Int(arc4random_uniform(UInt32(blocks.count))) - var rangeEnd = blocks[arrayOffset] - var arrayOffsetEnd = arrayOffset - for i in arrayOffset + 1 ..< blocks.count { - if blocks[i] == rangeEnd + 1 { - rangeEnd = blocks[i] - arrayOffsetEnd = i - } else { - break - } - } - - let arrayOffsetCount = arrayOffsetEnd + 1 - arrayOffset - let selectedArrayOffsetCount = Int(arc4random_uniform(UInt32(arrayOffsetCount + 1))) - let selectedArrayOffsetEnd = arrayOffset + max(0, selectedArrayOffsetCount - 1) - - let range = (blocks[arrayOffset] * context.blockSize) ..< ((blocks[selectedArrayOffsetEnd] + 1) * context.blockSize) - blocks.removeSubrange(arrayOffset ..< (selectedArrayOffsetEnd + 1)) - - selectedRanges.append(Range(range)) - } - - print("\(selectedRanges)") - - let testData = NSMutableData() - testData.length = size - for range in selectedRanges { - var offset = 0 - let _ = context.addListenerForData(in: Range(range), mode: .Incremental, updated: { subdata in - subdata.withUnsafeBytes { (bytes: UnsafePointer) -> Void in - memcpy(testData.mutableBytes.advanced(by: range.lowerBound + offset), bytes, subdata.count) - } - offset += subdata.count - }) - let _ = context.addListenerForFetchedData(in: Range(range)) - XCTAssert(offset == range.count) - } - - XCTAssert(memcmp(testData.bytes, sampleData.bytes, size) == 0) - } - - func testIncrementalStoreIncrementalSubscriptionUnaligned() { - let path = randomFilePath() - - let size = 10 * 1024 * 1024 + 123 - let sampleData = NSMutableData() - sampleData.length = size - arc4random_buf(sampleData.mutableBytes, size) - - var storeRange: (RandomAccessResourceStoreRange) -> Void = { _ in } - - let context = RandomAccessMediaResourceContext(path: path, size: size, fetchRange: { range in - var offset = range.lowerBound - while offset < range.upperBound { - let subdata = sampleData.subdata(with: NSRange(location: offset, length: min(range.upperBound - offset, 64 * 1024))) - storeRange(RandomAccessResourceStoreRange(offset: offset, data: subdata)) - - offset += 64 * 1024 - } - return EmptyDisposable - }) - - storeRange = { [weak context] range in - context?.storeRanges([range]) - } - - var selectedRanges: [Range] = [] - - selectedRanges = [0..<615697, 615697..<1040801] - - var dataOffset = 1040801 - while dataOffset < size { - let partSize = min(size - dataOffset, Int(arc4random_uniform(1024 * 1024))) - selectedRanges.append(dataOffset ..< (dataOffset + partSize)) - dataOffset += partSize - } - - print("\(selectedRanges)") - - let testData = NSMutableData() - testData.length = size - for range in selectedRanges { - var offset = 0 - let _ = context.addListenerForData(in: Range(range), mode: .Incremental, updated: { subdata in - subdata.withUnsafeBytes { (bytes: UnsafePointer) -> Void in - memcpy(testData.mutableBytes.advanced(by: range.lowerBound + offset), bytes, subdata.count) - } - offset += subdata.count - }) - let _ = context.addListenerForFetchedData(in: Range(range)) - XCTAssert(offset == range.count) - } - - XCTAssert(memcmp(testData.bytes, sampleData.bytes, size) == 0) - } -} -*/ diff --git a/submodules/Postbox/PostboxTests/ReadStateTableTests.swift b/submodules/Postbox/PostboxTests/ReadStateTableTests.swift deleted file mode 100644 index fcff72477a..0000000000 --- a/submodules/Postbox/PostboxTests/ReadStateTableTests.swift +++ /dev/null @@ -1,293 +0,0 @@ -import Foundation - -import XCTest - -import Postbox -@testable import Postbox - -import SwiftSignalKit - -private let peerId = PeerId(namespace: 1, id: 1) -private let namespace: Int32 = 1 -private let authorPeerId = PeerId(namespace: 1, id: 6) - -private func ==(lhs: [Media], rhs: [Media]) -> Bool { - if lhs.count != rhs.count { - return false - } - - for i in 0 ..< lhs.count { - if !lhs[i].isEqual(to: rhs[i]) { - return false - } - } - return true -} - -private enum Entry: Equatable, CustomStringConvertible { - case Message(Int32, Int32, String, [Media], MessageFlags) - case Hole(Int32, Int32, Int32) - - var description: String { - switch self { - case let .Message(id, timestamp, text, media, flags): - return "Message(\(id), \(timestamp), \(text), \(media), \(flags))" - case let .Hole(min, max, timestamp): - return "Hole(\(min), \(max), \(timestamp))" - } - } -} - -private func ==(lhs: Entry, rhs: Entry) -> Bool { - switch lhs { - case let .Message(lhsId, lhsTimestamp, lhsText, lhsMedia, lhsFlags): - switch rhs { - case let .Message(rhsId, rhsTimestamp, rhsText, rhsMedia, rhsFlags): - return lhsId == rhsId && lhsTimestamp == rhsTimestamp && lhsText == rhsText && lhsMedia == rhsMedia && lhsFlags == rhsFlags - case .Hole: - return false - } - case let .Hole(lhsMin, lhsMax, lhsMaxTimestamp): - switch rhs { - case .Message: - return false - case let .Hole(rhsMin, rhsMax, rhsMaxTimestamp): - return lhsMin == rhsMin && lhsMax == rhsMax && lhsMaxTimestamp == rhsMaxTimestamp - } - } -} - -private extension MessageTags { - static let First = MessageTags(rawValue: 1 << 0) - static let Second = MessageTags(rawValue: 1 << 1) -} - -class ReadStateTableTests: XCTestCase { - var valueBox: ValueBox? - var path: String? - - var peerTable: PeerTable? - var globalMessageIdsTable: GlobalMessageIdsTable? - var indexTable: MessageHistoryIndexTable? - var mediaTable: MessageMediaTable? - var historyTable: MessageHistoryTable? - var historyMetadataTable: MessageHistoryMetadataTable? - var unsentTable: MessageHistoryUnsentTable? - var tagsTable: MessageHistoryTagsTable? - var readStateTable: MessageHistoryReadStateTable? - var synchronizeReadStateTable: MessageHistorySynchronizeReadStateTable? - var globallyUniqueMessageIdsTable: MessageGloballyUniqueIdTable? - var globalTagsTable: GlobalMessageHistoryTagsTable? - var localTagsTable: LocalMessageHistoryTagsTable? - var textIndexTable: MessageHistoryTextIndexTable? - var messageHistoryTagsSummaryTable: MessageHistoryTagsSummaryTable? - var invalidatedMessageHistoryTagsSummaryTable: InvalidatedMessageHistoryTagsSummaryTable? - var pendingMessageActionsTable: PendingMessageActionsTable? - var pendingMessageActionsMetadataTable: PendingMessageActionsMetadataTable? - - override func setUp() { - super.setUp() - - var randomId: Int64 = 0 - arc4random_buf(&randomId, 8) - path = NSTemporaryDirectory() + "\(randomId)" - self.valueBox = SqliteValueBox(basePath: path!, queue: Queue.mainQueue()) - - let seedConfiguration = SeedConfiguration(initializeChatListWithHole: (topLevel: nil, groups: nil), initializeMessageNamespacesWithHoles: [], existingMessageTags: [.First, .Second], messageTagsWithSummary: [], existingGlobalMessageTags: [], peerNamespacesRequiringMessageTextIndex: [], peerSummaryCounterTags: { _ in PeerSummaryCounterTags(rawValue: 0) }, additionalChatListIndexNamespace: nil, chatMessagesNamespaces: Set()) - - self.globalMessageIdsTable = GlobalMessageIdsTable(valueBox: self.valueBox!, table: GlobalMessageIdsTable.tableSpec(5), namespace: namespace) - self.historyMetadataTable = MessageHistoryMetadataTable(valueBox: self.valueBox!, table: MessageHistoryMetadataTable.tableSpec(7)) - self.unsentTable = MessageHistoryUnsentTable(valueBox: self.valueBox!, table: MessageHistoryUnsentTable.tableSpec(8)) - self.invalidatedMessageHistoryTagsSummaryTable = InvalidatedMessageHistoryTagsSummaryTable(valueBox: self.valueBox!, table: MessageHistoryTagsSummaryTable.tableSpec(18)) - self.messageHistoryTagsSummaryTable = MessageHistoryTagsSummaryTable(valueBox: self.valueBox!, table: MessageHistoryTagsSummaryTable.tableSpec(15), invalidateTable: self.invalidatedMessageHistoryTagsSummaryTable!) - self.pendingMessageActionsMetadataTable = PendingMessageActionsMetadataTable(valueBox: self.valueBox!, table: PendingMessageActionsMetadataTable.tableSpec(16)) - self.pendingMessageActionsTable = PendingMessageActionsTable(valueBox: self.valueBox!, table: PendingMessageActionsTable.tableSpec(17), metadataTable: self.pendingMessageActionsMetadataTable!) - self.tagsTable = MessageHistoryTagsTable(valueBox: self.valueBox!, table: MessageHistoryTagsTable.tableSpec(9), seedConfiguration: seedConfiguration, summaryTable: self.messageHistoryTagsSummaryTable!) - self.indexTable = MessageHistoryIndexTable(valueBox: self.valueBox!, table: MessageHistoryIndexTable.tableSpec(1), globalMessageIdsTable: self.globalMessageIdsTable!, metadataTable: self.historyMetadataTable!, seedConfiguration: seedConfiguration) - self.mediaTable = MessageMediaTable(valueBox: self.valueBox!, table: MessageMediaTable.tableSpec(2)) - self.readStateTable = MessageHistoryReadStateTable(valueBox: self.valueBox!, table: MessageHistoryReadStateTable.tableSpec(10)) - self.synchronizeReadStateTable = MessageHistorySynchronizeReadStateTable(valueBox: self.valueBox!, table: MessageHistorySynchronizeReadStateTable.tableSpec(11)) - self.globallyUniqueMessageIdsTable = MessageGloballyUniqueIdTable(valueBox: self.valueBox!, table: MessageGloballyUniqueIdTable.tableSpec(12)) - self.globalTagsTable = GlobalMessageHistoryTagsTable(valueBox: self.valueBox!, table: GlobalMessageHistoryTagsTable.tableSpec(13)) - self.localTagsTable = LocalMessageHistoryTagsTable(valueBox: self.valueBox!, table: GlobalMessageHistoryTagsTable.tableSpec(19)) - self.textIndexTable = MessageHistoryTextIndexTable(valueBox: self.valueBox!, table: MessageHistoryTextIndexTable.tableSpec(14)) - self.historyTable = MessageHistoryTable(valueBox: self.valueBox!, table: MessageHistoryTable.tableSpec(4), messageHistoryIndexTable: self.indexTable!, messageMediaTable: self.mediaTable!, historyMetadataTable: self.historyMetadataTable!, globallyUniqueMessageIdsTable: self.globallyUniqueMessageIdsTable!, unsentTable: self.unsentTable!, tagsTable: self.tagsTable!, globalTagsTable: self.globalTagsTable!, localTagsTable: self.localTagsTable!, readStateTable: self.readStateTable!, synchronizeReadStateTable: self.synchronizeReadStateTable!, textIndexTable: self.textIndexTable!, summaryTable: self.messageHistoryTagsSummaryTable!, pendingActionsTable: self.pendingMessageActionsTable!) - } - - override func tearDown() { - super.tearDown() - - self.historyTable = nil - self.indexTable = nil - self.mediaTable = nil - self.peerTable = nil - self.historyMetadataTable = nil - - self.valueBox = nil - let _ = try? FileManager.default.removeItem(atPath: path!) - self.path = nil - } - - private func addMessage(_ id: Int32, _ timestamp: Int32, _ text: String = "", _ media: [Media] = [], _ flags: StoreMessageFlags = [], _ tags: MessageTags = []) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - var updatedMedia: [MediaId : Media?] = [:] - - let _ = self.historyTable!.addMessages(messages: [StoreMessage(id: MessageId(peerId: peerId, namespace: namespace, id: id), globallyUniqueId: nil, groupingKey: nil, timestamp: timestamp, flags: flags, tags: tags, globalTags: [], localTags: [], forwardInfo: nil, authorId: authorPeerId, text: text, attributes: [], media: media)], location: .Random, operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, localTagsOperations: &localTagsOperations, processMessages: nil) - } - - private func updateMessage(_ previousId: Int32, _ id: Int32, _ timestamp: Int32, _ text: String = "", _ media: [Media] = [], _ flags: StoreMessageFlags, _ tags: MessageTags) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - var updatedMedia: [MediaId : Media?] = [:] - - self.historyTable!.updateMessage(MessageId(peerId: peerId, namespace: namespace, id: previousId), message: StoreMessage(id: MessageId(peerId: peerId, namespace: namespace, id: id), globallyUniqueId: nil, groupingKey: nil, timestamp: timestamp, flags: flags, tags: tags, globalTags: [], localTags: [], forwardInfo: nil, authorId: authorPeerId, text: text, attributes: [], media: media), operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, localTagsOperations: &localTagsOperations) - } - - private func addHole(_ id: Int32) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - var updatedMedia: [MediaId : Media?] = [:] - - self.historyTable!.addHoles([MessageId(peerId: peerId, namespace: namespace, id: id)], operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, localTagsOperations: &localTagsOperations) - } - - private func removeMessages(_ ids: [Int32]) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var unsentMessageOperations: [IntermediateMessageHistoryUnsentOperation] = [] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - var globalTagsOperations: [GlobalMessageHistoryTagsOperation] = [] - var pendingActionsOperations: [PendingMessageActionsOperation] = [] - var updatedMessageActionsSummaries: [PendingMessageActionsSummaryKey: Int32] = [:] - var updatedMessageTagSummaries: [MessageHistoryTagsSummaryKey: MessageHistoryTagNamespaceSummary] = [:] - var invalidateMessageTagSummaries: [InvalidatedMessageHistoryTagsSummaryEntryOperation] = [] - var localTagsOperations: [IntermediateMessageHistoryLocalTagsOperation] = [] - var updatedMedia: [MediaId : Media?] = [:] - - self.historyTable!.removeMessages(ids.map({ MessageId(peerId: peerId, namespace: namespace, id: $0) }), operationsByPeerId: &operationsByPeerId, updatedMedia: &updatedMedia, unsentMessageOperations: &unsentMessageOperations, updatedPeerReadStateOperations: &updatedPeerReadStateOperations, globalTagsOperations: &globalTagsOperations, pendingActionsOperations: &pendingActionsOperations, updatedMessageActionsSummaries: &updatedMessageActionsSummaries, updatedMessageTagSummaries: &updatedMessageTagSummaries, invalidateMessageTagSummaries: &invalidateMessageTagSummaries, localTagsOperations: &localTagsOperations) - } - - private func expectApplyRead(_ messageId: Int32, _ expectInvalidate: Bool) { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - self.historyTable!.applyIncomingReadMaxId(MessageId(peerId: peerId, namespace: namespace, id: messageId), operationsByPeerId: &operationsByPeerId, updatedPeerReadStateOperations: &updatedPeerReadStateOperations) - - let invalidated = updatedPeerReadStateOperations.count != 0 - if expectInvalidate != invalidated { - XCTFail("applyRead: invalidated expected \(expectInvalidate), actual: \(invalidated)") - } - } - - private func expectReadState(_ maxReadId: Int32, _ maxKnownId: Int32, _ count: Int32, _ markedUnread: Bool) { - if let state = self.readStateTable!.getCombinedState(peerId)?.states.first?.1 { - switch state { - case let .idBased(maxIncomingReadId, maxOutgoingReadId, stateMaxKnownId, stateCount, stateMarkedUnread): - if maxIncomingReadId != maxReadId || stateMaxKnownId != maxKnownId || stateCount != count || stateMarkedUnread != markedUnread { - XCTFail("Expected\nmaxIncomingReadId: \(maxReadId), maxKnownId: \(maxKnownId), count: \(count) markedUnread: \(markedUnread)\nActual\nmaxIncomingReadId: \(maxIncomingReadId), maxKnownId: \(stateMaxKnownId), count: \(stateCount), markedUnread: \(stateMarkedUnread)") - } - case .indexBased: - XCTFail() - } - } else { - XCTFail("Expected\nmaxReadId: \(maxReadId), maxKnownId: \(maxKnownId), count: \(count)\nActual\nnil") - } - } - - func testResetState() { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - self.historyTable!.resetIncomingReadStates([peerId: [namespace: .idBased(maxIncomingReadId: 100, maxOutgoingReadId: 0, maxKnownId: 120, count: 130, markedUnread: false)]], operationsByPeerId: &operationsByPeerId, updatedPeerReadStateOperations: &updatedPeerReadStateOperations) - - expectReadState(100, 120, 130, false) - } - - func testAddIncomingBeforeKnown() { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - self.historyTable!.resetIncomingReadStates([peerId: [namespace: .idBased(maxIncomingReadId: 100, maxOutgoingReadId: 0, maxKnownId: 120, count: 130, markedUnread: false)]], operationsByPeerId: &operationsByPeerId, updatedPeerReadStateOperations: &updatedPeerReadStateOperations) - - self.addMessage(99, 99, "", [], [.Incoming]) - - expectReadState(100, 120, 130, false) - } - - func testAddIncomingAfterKnown() { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - self.historyTable!.resetIncomingReadStates([peerId: [namespace: .idBased(maxIncomingReadId: 100, maxOutgoingReadId: 0, maxKnownId: 120, count: 130, markedUnread: false)]], operationsByPeerId: &operationsByPeerId, updatedPeerReadStateOperations: &updatedPeerReadStateOperations) - - self.addMessage(130, 130, "", [], [.Incoming]) - - expectReadState(100, 120, 131, false) - } - - func testApplyReadThenAddIncoming() { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - self.historyTable!.resetIncomingReadStates([peerId: [namespace: .idBased(maxIncomingReadId: 100, maxOutgoingReadId: 0, maxKnownId: 100, count: 0, markedUnread: false)]], operationsByPeerId: &operationsByPeerId, updatedPeerReadStateOperations: &updatedPeerReadStateOperations) - - self.expectApplyRead(200, false) - - self.addMessage(130, 130, "", [], [.Incoming]) - - expectReadState(200, 100, 0, false) - } - - func testApplyAddIncomingThenRead() { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - self.historyTable!.resetIncomingReadStates([peerId: [namespace: .idBased(maxIncomingReadId: 100, maxOutgoingReadId: 0, maxKnownId: 100, count: 0, markedUnread: false)]], operationsByPeerId: &operationsByPeerId, updatedPeerReadStateOperations: &updatedPeerReadStateOperations) - - self.addMessage(130, 130, "", [], [.Incoming]) - - expectReadState(100, 100, 1, false) - - self.expectApplyRead(200, false) - - expectReadState(200, 100, 0, false) - } - - func testIgnoreOldRead() { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - self.historyTable!.resetIncomingReadStates([peerId: [namespace: .idBased(maxIncomingReadId: 100, maxOutgoingReadId: 0, maxKnownId: 100, count: 0, markedUnread: false)]], operationsByPeerId: &operationsByPeerId, updatedPeerReadStateOperations: &updatedPeerReadStateOperations) - - self.expectApplyRead(90, false) - - expectReadState(100, 100, 0, false) - } - - func testInvalidateReadHole() { - var operationsByPeerId: [PeerId: [MessageHistoryOperation]] = [:] - var updatedPeerReadStateOperations: [PeerId: PeerReadStateSynchronizationOperation?] = [:] - self.historyTable!.resetIncomingReadStates([peerId: [namespace: .idBased(maxIncomingReadId: 100, maxOutgoingReadId: 0, maxKnownId: 100, count: 0, markedUnread: false)]], operationsByPeerId: &operationsByPeerId, updatedPeerReadStateOperations: &updatedPeerReadStateOperations) - - self.addMessage(200, 200) - self.addHole(1) - - self.expectApplyRead(200, true) - - expectReadState(200, 100, 0, false) - } -} diff --git a/submodules/Postbox/Postbox_Xcode.xcodeproj/project.pbxproj b/submodules/Postbox/Postbox_Xcode.xcodeproj/project.pbxproj deleted file mode 100644 index abf8e5b2d5..0000000000 --- a/submodules/Postbox/Postbox_Xcode.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2903 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 9F291C9B2264CFCC00C66267 /* (null) in Sources */ = {isa = PBXBuildFile; }; - 9F5B6E762011449F00C58B2A /* PostboxLogging.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ECCB8E1FE9EB5500609802 /* PostboxLogging.swift */; }; - C20EB2A31F7179DC00DD3A57 /* PeerNotificationSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AE3EBB1F68261B0069BC90 /* PeerNotificationSettingsView.swift */; }; - C25B56FE1F431C3300581D02 /* MessageHistoryTagsSummaryTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D070479F1F3CE16500F6A8D4 /* MessageHistoryTagsSummaryTable.swift */; }; - C2A315BC1E2E730400D89000 /* PeerOperationLogTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AD23261E194D1C00A7089A /* PeerOperationLogTable.swift */; }; - C2A315BD1E2E732000D89000 /* PeerOperationLogMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AD23281E196B6400A7089A /* PeerOperationLogMetadataTable.swift */; }; - C2A315BE1E2E733900D89000 /* PeerMergedOperationLogIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D010B6191E1E463900C3E282 /* PeerMergedOperationLogIndexTable.swift */; }; - C2A315BF1E2E733900D89000 /* PeerMergedOperationLogView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F019FC1E1DA0CC00F05AB3 /* PeerMergedOperationLogView.swift */; }; - C2AC9C131E1E5D200085C7DE /* UnreadMessageCountsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A18D661E16874D004C6734 /* UnreadMessageCountsView.swift */; }; - D000CADA22006C6C0011B15D /* SharedAccountMediaManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D000CAD922006C6C0011B15D /* SharedAccountMediaManager.swift */; }; - D000CADB22006C6C0011B15D /* SharedAccountMediaManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D000CAD922006C6C0011B15D /* SharedAccountMediaManager.swift */; }; - D001388620BD942B007C9721 /* PostboxUpgrade_16to17.swift in Sources */ = {isa = PBXBuildFile; fileRef = D001388520BD942B007C9721 /* PostboxUpgrade_16to17.swift */; }; - D001388720BD942B007C9721 /* PostboxUpgrade_16to17.swift in Sources */ = {isa = PBXBuildFile; fileRef = D001388520BD942B007C9721 /* PostboxUpgrade_16to17.swift */; }; - D003E4E61B38DBDB00C22CBC /* MessageHistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D003E4E51B38DBDB00C22CBC /* MessageHistoryView.swift */; }; - D0079F5A1D592E8B00A27A2C /* ContactTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0079F591D592E8B00A27A2C /* ContactTable.swift */; }; - D0079F631D5A242500A27A2C /* ContactPeerIdsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0079F621D5A242500A27A2C /* ContactPeerIdsView.swift */; }; - D0079F651D5A457A00A27A2C /* ContactPeersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0079F641D5A457A00A27A2C /* ContactPeersView.swift */; }; - D0079F6B1D5B3AAB00A27A2C /* PeerNameIndexRepresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0079F6A1D5B3AAB00A27A2C /* PeerNameIndexRepresentation.swift */; }; - D00C7CD41E365C4E0080C3D5 /* PeerChatListInclusion.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CD31E365C4E0080C3D5 /* PeerChatListInclusion.swift */; }; - D00C7CD51E365C4E0080C3D5 /* PeerChatListInclusion.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CD31E365C4E0080C3D5 /* PeerChatListInclusion.swift */; }; - D00C7CE31E37861C0080C3D5 /* MessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CE21E37861C0080C3D5 /* MessageView.swift */; }; - D00C7CE41E37861C0080C3D5 /* MessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CE21E37861C0080C3D5 /* MessageView.swift */; }; - D00EED1E1C81F28D00341DFF /* MessageHistoryTagsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00EED1D1C81F28D00341DFF /* MessageHistoryTagsTable.swift */; }; - D0105D6B218362F2007C04A7 /* TempBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0105D6A218362F2007C04A7 /* TempBox.swift */; }; - D0105D6C218362F2007C04A7 /* TempBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0105D6A218362F2007C04A7 /* TempBox.swift */; }; - D010B61A1E1E463900C3E282 /* PeerMergedOperationLogIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D010B6191E1E463900C3E282 /* PeerMergedOperationLogIndexTable.swift */; }; - D0119CAD20C9E7A100895300 /* PostboxUpgrade_17to18.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0119CAC20C9E7A100895300 /* PostboxUpgrade_17to18.swift */; }; - D0119CAE20C9E7A100895300 /* PostboxUpgrade_17to18.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0119CAC20C9E7A100895300 /* PostboxUpgrade_17to18.swift */; }; - D015E05C2263BB3B00CB9E8A /* PostboxUpgrade_22to23.swift in Sources */ = {isa = PBXBuildFile; fileRef = D015E05B2263BB3B00CB9E8A /* PostboxUpgrade_22to23.swift */; }; - D015E05D2263BB3B00CB9E8A /* PostboxUpgrade_22to23.swift in Sources */ = {isa = PBXBuildFile; fileRef = D015E05B2263BB3B00CB9E8A /* PostboxUpgrade_22to23.swift */; }; - D015E0602265D42400CB9E8A /* GroupMessageStatsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D015E05F2265D42400CB9E8A /* GroupMessageStatsTable.swift */; }; - D015E0612265D42400CB9E8A /* GroupMessageStatsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D015E05F2265D42400CB9E8A /* GroupMessageStatsTable.swift */; }; - D018BE55218B9AA900C02DDC /* TimeBasedCleanup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018BE54218B9AA900C02DDC /* TimeBasedCleanup.swift */; }; - D018BE56218B9AA900C02DDC /* TimeBasedCleanup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018BE54218B9AA900C02DDC /* TimeBasedCleanup.swift */; }; - D019B1CF1E2E770700F80DB3 /* MessageGloballyUniqueIdTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D019B1CE1E2E770700F80DB3 /* MessageGloballyUniqueIdTable.swift */; }; - D01BAA551ED1D70C00295217 /* ManagedFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01BAA541ED1D70C00295217 /* ManagedFile.swift */; }; - D01BAA561ED1D70C00295217 /* ManagedFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01BAA541ED1D70C00295217 /* ManagedFile.swift */; }; - D01C7EDE1EF73F71008305F1 /* MessageHistoryTextIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7EDD1EF73F71008305F1 /* MessageHistoryTextIndexTable.swift */; }; - D01C7EDF1EF73F71008305F1 /* MessageHistoryTextIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7EDD1EF73F71008305F1 /* MessageHistoryTextIndexTable.swift */; }; - D01C7F071EFC1ED3008305F1 /* UnorderedItemListTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7F061EFC1ED3008305F1 /* UnorderedItemListTable.swift */; }; - D01C7F081EFC1ED3008305F1 /* UnorderedItemListTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7F061EFC1ED3008305F1 /* UnorderedItemListTable.swift */; }; - D01E79E82248F661005237FE /* PostboxUpgrade_19to20.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01E79E72248F661005237FE /* PostboxUpgrade_19to20.swift */; }; - D01E79E92248F661005237FE /* PostboxUpgrade_19to20.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01E79E72248F661005237FE /* PostboxUpgrade_19to20.swift */; }; - D01F7D9B1CBEC390008765C9 /* MessageHistorySynchronizeReadStateTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01F7D9A1CBEC390008765C9 /* MessageHistorySynchronizeReadStateTable.swift */; }; - D01F7D9D1CBF8586008765C9 /* SynchronizePeerReadStatesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01F7D9C1CBF8586008765C9 /* SynchronizePeerReadStatesView.swift */; }; - D021E0D41DB4FAE100C6B04F /* ItemCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0D31DB4FAE100C6B04F /* ItemCollection.swift */; }; - D021E0D61DB4FCFC00C6B04F /* ItemCollectionInfoTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0D51DB4FCFC00C6B04F /* ItemCollectionInfoTable.swift */; }; - D021E0D81DB4FD1300C6B04F /* ItemCollectionItemTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0D71DB4FD1300C6B04F /* ItemCollectionItemTable.swift */; }; - D021E0DC1DB5237C00C6B04F /* ItemCollectionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0DB1DB5237C00C6B04F /* ItemCollectionsView.swift */; }; - D021FC262024B83700C34AB7 /* FileSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021FC252024B83700C34AB7 /* FileSize.swift */; }; - D021FC272024B83700C34AB7 /* FileSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021FC252024B83700C34AB7 /* FileSize.swift */; }; - D03120F81DA53FF4006A2A60 /* PeerPresenceTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120F71DA53FF4006A2A60 /* PeerPresenceTable.swift */; }; - D03120FA1DA540F0006A2A60 /* CachedPeerData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120F91DA540F0006A2A60 /* CachedPeerData.swift */; }; - D03120FC1DA55427006A2A60 /* PeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120FB1DA55427006A2A60 /* PeerNotificationSettings.swift */; }; - D03120FE1DA562E9006A2A60 /* CachedPeerDataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120FD1DA562E9006A2A60 /* CachedPeerDataTable.swift */; }; - D03121001DA579A0006A2A60 /* PeerNotificationSettingsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120FF1DA579A0006A2A60 /* PeerNotificationSettingsTable.swift */; }; - D03229EE1E6B33FD0000AF9C /* SqliteInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03229ED1E6B33FD0000AF9C /* SqliteInterface.swift */; }; - D03229EF1E6B33FD0000AF9C /* SqliteInterface.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03229ED1E6B33FD0000AF9C /* SqliteInterface.swift */; }; - D033871F223554DE007A2CE4 /* HoleOperationsVector1.json in Resources */ = {isa = PBXBuildFile; fileRef = D033871E223554DE007A2CE4 /* HoleOperationsVector1.json */; }; - D03387212236C239007A2CE4 /* HoleOperationsVector2.json in Resources */ = {isa = PBXBuildFile; fileRef = D03387202236C239007A2CE4 /* HoleOperationsVector2.json */; }; - D03387522242E32B007A2CE4 /* PostboxUpgrade_18to19.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03387512242E32A007A2CE4 /* PostboxUpgrade_18to19.swift */; }; - D03387532242E32B007A2CE4 /* PostboxUpgrade_18to19.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03387512242E32A007A2CE4 /* PostboxUpgrade_18to19.swift */; }; - D033A6F71C73D512006A2EAB /* MessageHistoryUnsentTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033A6F61C73D512006A2EAB /* MessageHistoryUnsentTable.swift */; }; - D033A6F91C73E440006A2EAB /* UnsentMessageHistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033A6F81C73E440006A2EAB /* UnsentMessageHistoryView.swift */; }; - D037178B20D923CA004773C8 /* CachedItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D037178A20D923CA004773C8 /* CachedItemView.swift */; }; - D037178C20D923CA004773C8 /* CachedItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D037178A20D923CA004773C8 /* CachedItemView.swift */; }; - D039FB1B21714D9800BD1BAD /* PeerPresencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D039FB1A21714D9800BD1BAD /* PeerPresencesView.swift */; }; - D039FB1C21714D9800BD1BAD /* PeerPresencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D039FB1A21714D9800BD1BAD /* PeerPresencesView.swift */; }; - D03BCCF81C73561C0097A291 /* Table.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03BCCF71C73561C0097A291 /* Table.swift */; }; - D03E45572305C7C90049C28B /* sqlcipher.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45562305C7C90049C28B /* sqlcipher.framework */; }; - D03E457D2305CD090049C28B /* Crc32.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E457C2305CD090049C28B /* Crc32.framework */; }; - D03E457F2305CD130049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E457E2305CD130049C28B /* Foundation.framework */; }; - D03E462C2306E01C0049C28B /* sqlciphermac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E462B2306E01C0049C28B /* sqlciphermac.framework */; }; - D03E463D2306E0F60049C28B /* crc32mac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E463C2306E0F60049C28B /* crc32mac.framework */; }; - D040CA6422665370007123CE /* PostboxUpgrade_23to24.swift in Sources */ = {isa = PBXBuildFile; fileRef = D040CA6322665370007123CE /* PostboxUpgrade_23to24.swift */; }; - D040CA6522665370007123CE /* PostboxUpgrade_23to24.swift in Sources */ = {isa = PBXBuildFile; fileRef = D040CA6322665370007123CE /* PostboxUpgrade_23to24.swift */; }; - D0439B3F2289F6300067E026 /* AccountManagerAtomicState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0439B3E2289F6300067E026 /* AccountManagerAtomicState.swift */; }; - D0439B402289F6300067E026 /* AccountManagerAtomicState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0439B3E2289F6300067E026 /* AccountManagerAtomicState.swift */; }; - D044CA2A1C617D39002160FF /* SeedConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D044CA291C617D39002160FF /* SeedConfiguration.swift */; }; - D044CA2C1C617E2D002160FF /* MessageHistoryMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D044CA2B1C617E2D002160FF /* MessageHistoryMetadataTable.swift */; }; - D044CA2E1C618373002160FF /* ChatListHole.swift in Sources */ = {isa = PBXBuildFile; fileRef = D044CA2D1C618373002160FF /* ChatListHole.swift */; }; - D044E15E1B2ACB9C001EE087 /* CodingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D044E15D1B2ACB9C001EE087 /* CodingTests.swift */; }; - D044E1631B2AD677001EE087 /* MurMurHash32.m in Sources */ = {isa = PBXBuildFile; fileRef = D044E1621B2AD677001EE087 /* MurMurHash32.m */; }; - D044E1641B2AD718001EE087 /* MurMurHash32.h in Headers */ = {isa = PBXBuildFile; fileRef = D044E1611B2AD667001EE087 /* MurMurHash32.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D04614302004E24600EC0EF2 /* LocalMessageHistoryTagsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D046142F2004E24600EC0EF2 /* LocalMessageHistoryTagsTable.swift */; }; - D04614312004E24600EC0EF2 /* LocalMessageHistoryTagsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D046142F2004E24600EC0EF2 /* LocalMessageHistoryTagsTable.swift */; }; - D04614332004F2CC00EC0EF2 /* LocalMessageTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04614322004F2CC00EC0EF2 /* LocalMessageTagsView.swift */; }; - D04614342004F2CC00EC0EF2 /* LocalMessageTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04614322004F2CC00EC0EF2 /* LocalMessageTagsView.swift */; }; - D048B33D203C838500038D05 /* PostboxUpgrade_15to16.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B33C203C838500038D05 /* PostboxUpgrade_15to16.swift */; }; - D048B33E203C838500038D05 /* PostboxUpgrade_15to16.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B33C203C838500038D05 /* PostboxUpgrade_15to16.swift */; }; - D048B4A820A5CBE400C79D31 /* AdditionalChatListItemsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B4A720A5CBE400C79D31 /* AdditionalChatListItemsTable.swift */; }; - D048B4A920A5CBE400C79D31 /* AdditionalChatListItemsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B4A720A5CBE400C79D31 /* AdditionalChatListItemsTable.swift */; }; - D048B4AF20A5EEAE00C79D31 /* AdditionalChatListItemsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B4AE20A5EEAE00C79D31 /* AdditionalChatListItemsView.swift */; }; - D048B4B020A5EEAE00C79D31 /* AdditionalChatListItemsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B4AE20A5EEAE00C79D31 /* AdditionalChatListItemsView.swift */; }; - D049EAF01E44D9B900A2CD3A /* PostboxStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAEF1E44D9B900A2CD3A /* PostboxStateView.swift */; }; - D049EAF11E44D9B900A2CD3A /* PostboxStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAEF1E44D9B900A2CD3A /* PostboxStateView.swift */; }; - D050F2661E4A5B5A00988324 /* MessageGloballyUniqueIdTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D019B1CE1E2E770700F80DB3 /* MessageGloballyUniqueIdTable.swift */; }; - D050F2671E4A5B5A00988324 /* TimestampBasedMessageAttributesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B11E3266B100D5B9DE /* TimestampBasedMessageAttributesTable.swift */; }; - D050F2681E4A5B5A00988324 /* TimestampBasedMessageAttributesIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B01E3266B100D5B9DE /* TimestampBasedMessageAttributesIndexTable.swift */; }; - D050F2691E4A5B5A00988324 /* MultiplePeersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC386B1E3FCEE50044D6FE /* MultiplePeersView.swift */; }; - D055BD331B7D3D2D00F06C0A /* MediaBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D055BD321B7D3D2D00F06C0A /* MediaBox.swift */; }; - D0575AE31E9ECBB2006F2541 /* AccessChallengeDataView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AE21E9ECBB2006F2541 /* AccessChallengeDataView.swift */; }; - D0575AE41E9ECBB2006F2541 /* AccessChallengeDataView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AE21E9ECBB2006F2541 /* AccessChallengeDataView.swift */; }; - D05D8B31218F1D3D0064586F /* AccountSharedData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05D8B30218F1D3D0064586F /* AccountSharedData.swift */; }; - D05D8B32218F1D3D0064586F /* AccountSharedData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05D8B30218F1D3D0064586F /* AccountSharedData.swift */; }; - D05D8B34218F1EBB0064586F /* AccountManagerSharedDataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05D8B33218F1EBB0064586F /* AccountManagerSharedDataTable.swift */; }; - D05D8B35218F1EBB0064586F /* AccountManagerSharedDataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05D8B33218F1EBB0064586F /* AccountManagerSharedDataTable.swift */; }; - D05F09A61C9E9F9300BB6F96 /* MediaResourceStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05F09A51C9E9F9300BB6F96 /* MediaResourceStatus.swift */; }; - D0633D01225AA3F3003DD95F /* MessageHistoryViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C8FCB61C5C2D200028C27F /* MessageHistoryViewTests.swift */; }; - D0633D04225B98B1003DD95F /* AdditionalMessageHistoryViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633D03225B98B1003DD95F /* AdditionalMessageHistoryViewData.swift */; }; - D0633D05225B98B1003DD95F /* AdditionalMessageHistoryViewData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633D03225B98B1003DD95F /* AdditionalMessageHistoryViewData.swift */; }; - D0633D07225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633D06225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift */; }; - D0633D08225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633D06225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift */; }; - D0633D0A225BAD66003DD95F /* MessageHistoryAnchorIndex.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633D09225BAD66003DD95F /* MessageHistoryAnchorIndex.swift */; }; - D0633D0B225BAD66003DD95F /* MessageHistoryAnchorIndex.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633D09225BAD66003DD95F /* MessageHistoryAnchorIndex.swift */; }; - D0633D0D225BC9EF003DD95F /* MessageHistoryViewState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633D0C225BC9EF003DD95F /* MessageHistoryViewState.swift */; }; - D0633D0E225BC9EF003DD95F /* MessageHistoryViewState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633D0C225BC9EF003DD95F /* MessageHistoryViewState.swift */; }; - D06CA12C227715E70094E707 /* PeerNotificationSettingsBehaviorTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06CA12B227715E70094E707 /* PeerNotificationSettingsBehaviorTable.swift */; }; - D06CA12D227715E70094E707 /* PeerNotificationSettingsBehaviorTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06CA12B227715E70094E707 /* PeerNotificationSettingsBehaviorTable.swift */; }; - D06CA12F227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06CA12E227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift */; }; - D06CA130227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06CA12E227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift */; }; - D06CA13222772DE40094E707 /* PeerNotificationSettingsBehaviorTimestampView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06CA13122772DE40094E707 /* PeerNotificationSettingsBehaviorTimestampView.swift */; }; - D06CA13322772DE40094E707 /* PeerNotificationSettingsBehaviorTimestampView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06CA13122772DE40094E707 /* PeerNotificationSettingsBehaviorTimestampView.swift */; }; - D06ECFC520B796DC00C576C2 /* NoticeEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06ECFC420B796DC00C576C2 /* NoticeEntryView.swift */; }; - D06ECFC620B796DC00C576C2 /* NoticeEntryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06ECFC420B796DC00C576C2 /* NoticeEntryView.swift */; }; - D07047A01F3CE16500F6A8D4 /* MessageHistoryTagsSummaryTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D070479F1F3CE16500F6A8D4 /* MessageHistoryTagsSummaryTable.swift */; }; - D07047A21F3CE58200F6A8D4 /* PendingMessageActionsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047A11F3CE58200F6A8D4 /* PendingMessageActionsTable.swift */; }; - D07047A31F3CE58200F6A8D4 /* PendingMessageActionsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047A11F3CE58200F6A8D4 /* PendingMessageActionsTable.swift */; }; - D07047A51F3CF63800F6A8D4 /* MessageHistoryTagSummaryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047A41F3CF63800F6A8D4 /* MessageHistoryTagSummaryView.swift */; }; - D07047A61F3CF63800F6A8D4 /* MessageHistoryTagSummaryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047A41F3CF63800F6A8D4 /* MessageHistoryTagSummaryView.swift */; }; - D07047A81F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047A71F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift */; }; - D07047A91F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047A71F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift */; }; - D07047AB1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047AA1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift */; }; - D07047AC1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047AA1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift */; }; - D07047B11F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047B01F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift */; }; - D07047B21F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047B01F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift */; }; - D073CE741DCBF3B4007511FD /* Peer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A7831B28AE0900A402D9 /* Peer.swift */; }; - D073CE751DCBF3B4007511FD /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A79D1B28B50400A402D9 /* Message.swift */; }; - D073CE761DCBF3B4007511FD /* IntermediateMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D510F81D63BCC200A97B8A /* IntermediateMessage.swift */; }; - D073CE771DCBF3B4007511FD /* Media.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A7A11B28B7DC00A402D9 /* Media.swift */; }; - D073CE791DCBF3B4007511FD /* ChatListHole.swift in Sources */ = {isa = PBXBuildFile; fileRef = D044CA2D1C618373002160FF /* ChatListHole.swift */; }; - D073CE7A1DCBF3B4007511FD /* PeerReadState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C674CB1CBB14A700183765 /* PeerReadState.swift */; }; - D073CE7B1DCBF3B4007511FD /* PeerNameIndexRepresentation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0079F6A1D5B3AAB00A27A2C /* PeerNameIndexRepresentation.swift */; }; - D073CE7C1DCBF3B4007511FD /* CachedPeerData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120F91DA540F0006A2A60 /* CachedPeerData.swift */; }; - D073CE7D1DCBF3B4007511FD /* PeerPresence.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B844501DAC04FE005F29E1 /* PeerPresence.swift */; }; - D073CE7E1DCBF3B4007511FD /* PeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120FB1DA55427006A2A60 /* PeerNotificationSettings.swift */; }; - D073CE7F1DCBF3B4007511FD /* ItemCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0D31DB4FAE100C6B04F /* ItemCollection.swift */; }; - D073CE801DCBF3B4007511FD /* PeerChatInterfaceState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF801DCA765D00761F81 /* PeerChatInterfaceState.swift */; }; - D073CE9F1DCBF3C1007511FD /* InitialMessageHistoryData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF841DCA99C400761F81 /* InitialMessageHistoryData.swift */; }; - D073CEA01DCBF3C1007511FD /* ItemCollectionsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0DB1DB5237C00C6B04F /* ItemCollectionsView.swift */; }; - D07827C11E0079CB00071108 /* StringIndexTokens.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C01E0079CB00071108 /* StringIndexTokens.swift */; }; - D07827C31E008F7300071108 /* ReverseIndexReferenceTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C21E008F7300071108 /* ReverseIndexReferenceTable.swift */; }; - D07827C51E00B23F00071108 /* PeerNameIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C41E00B23F00071108 /* PeerNameIndexTable.swift */; }; - D079FCE61F06A3170038FADE /* NoticeTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D079FCE51F06A3170038FADE /* NoticeTable.swift */; }; - D079FCE71F06A31C0038FADE /* NoticeTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D079FCE51F06A3170038FADE /* NoticeTable.swift */; }; - D07CFF811DCA765D00761F81 /* PeerChatInterfaceState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF801DCA765D00761F81 /* PeerChatInterfaceState.swift */; }; - D07CFF831DCA909100761F81 /* PeerChatInterfaceStateTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF821DCA909100761F81 /* PeerChatInterfaceStateTable.swift */; }; - D07CFF851DCA99C400761F81 /* InitialMessageHistoryData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF841DCA99C400761F81 /* InitialMessageHistoryData.swift */; }; - D07E7B45224E227100BB053B /* PostboxUpgrade_20to21.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E7B44224E227100BB053B /* PostboxUpgrade_20to21.swift */; }; - D07E7B46224E227100BB053B /* PostboxUpgrade_20to21.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E7B44224E227100BB053B /* PostboxUpgrade_20to21.swift */; }; - D07E7B48224E562C00BB053B /* PostboxUpgrade_21to22.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E7B47224E562C00BB053B /* PostboxUpgrade_21to22.swift */; }; - D07E7B49224E562C00BB053B /* PostboxUpgrade_21to22.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E7B47224E562C00BB053B /* PostboxUpgrade_21to22.swift */; }; - D08775001E3E3D9F00A97350 /* PreferencesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08774FF1E3E3D9F00A97350 /* PreferencesTable.swift */; }; - D08775011E3E3D9F00A97350 /* PreferencesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08774FF1E3E3D9F00A97350 /* PreferencesTable.swift */; }; - D08775031E3E3E7400A97350 /* PreferencesEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08775021E3E3E7400A97350 /* PreferencesEntry.swift */; }; - D08775041E3E3E7400A97350 /* PreferencesEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08775021E3E3E7400A97350 /* PreferencesEntry.swift */; }; - D08775061E3E3F2100A97350 /* PreferencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08775051E3E3F2100A97350 /* PreferencesView.swift */; }; - D08775071E3E3F2100A97350 /* PreferencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08775051E3E3F2100A97350 /* PreferencesView.swift */; }; - D087C20C1E43C11C00D686F8 /* OrderedItemListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D087C20B1E43C11C00D686F8 /* OrderedItemListView.swift */; }; - D087C20D1E43C11C00D686F8 /* OrderedItemListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D087C20B1E43C11C00D686F8 /* OrderedItemListView.swift */; }; - D08B61C022A75C21000A46A8 /* Hash.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08B61BF22A75C21000A46A8 /* Hash.swift */; }; - D08B61C122A75C21000A46A8 /* Hash.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08B61BF22A75C21000A46A8 /* Hash.swift */; }; - D08C713C1C51283C00779C0F /* MessageHistoryIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08C713B1C51283C00779C0F /* MessageHistoryIndexTable.swift */; }; - D08C713E1C512EA500779C0F /* MessageHistoryTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08C713D1C512EA500779C0F /* MessageHistoryTable.swift */; }; - D08CEFB41D2AD8BE0015D3BC /* RedBlackTree.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CEFB31D2AD8BE0015D3BC /* RedBlackTree.swift */; }; - D08D451F1D5D2CA700A7428A /* RatingTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08D451E1D5D2CA700A7428A /* RatingTable.swift */; }; - D0943AF81FDAC53F001522CC /* ChatLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943AF71FDAC53F001522CC /* ChatLocation.swift */; }; - D0943AF91FDAC540001522CC /* ChatLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943AF71FDAC53F001522CC /* ChatLocation.swift */; }; - D0943B021FDB01D8001522CC /* PostboxUpgrade_14to15.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943B011FDB01D8001522CC /* PostboxUpgrade_14to15.swift */; }; - D0943B031FDB01D8001522CC /* PostboxUpgrade_14to15.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943B011FDB01D8001522CC /* PostboxUpgrade_14to15.swift */; }; - D0977F9C1B822DB4009994B2 /* ValueBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0977F9B1B822DB4009994B2 /* ValueBox.swift */; }; - D0977F9E1B8234DF009994B2 /* ValueBoxKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0977F9D1B8234DF009994B2 /* ValueBoxKey.swift */; }; - D0977FA01B8244D7009994B2 /* SqliteValueBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0977F9F1B8244D7009994B2 /* SqliteValueBox.swift */; }; - D098C6F11D7E11E9007784E4 /* Database.swift in Sources */ = {isa = PBXBuildFile; fileRef = D098C6F01D7E11E9007784E4 /* Database.swift */; }; - D098C6F21D7E1201007784E4 /* Database.swift in Sources */ = {isa = PBXBuildFile; fileRef = D098C6F01D7E11E9007784E4 /* Database.swift */; }; - D09ADF0C1D2EB83500C8208D /* OrderStatisticTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09ADF0B1D2EB83500C8208D /* OrderStatisticTable.swift */; }; - D0A18D671E16874D004C6734 /* UnreadMessageCountsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A18D661E16874D004C6734 /* UnreadMessageCountsView.swift */; }; - D0A352F51F5488E9001423DC /* InvalidatedMessageHistoryTagsSummaryTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A352F41F5488E9001423DC /* InvalidatedMessageHistoryTagsSummaryTable.swift */; }; - D0A352F61F5488E9001423DC /* InvalidatedMessageHistoryTagsSummaryTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A352F41F5488E9001423DC /* InvalidatedMessageHistoryTagsSummaryTable.swift */; }; - D0A352F81F549D95001423DC /* InvalidatedMessageHistoryTagSummariesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A352F71F549D95001423DC /* InvalidatedMessageHistoryTagSummariesView.swift */; }; - D0A352F91F549D95001423DC /* InvalidatedMessageHistoryTagSummariesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A352F71F549D95001423DC /* InvalidatedMessageHistoryTagSummariesView.swift */; }; - D0A7D9451C556CFE0016A115 /* MessageHistoryIndexTableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A7D9441C556CFE0016A115 /* MessageHistoryIndexTableTests.swift */; }; - D0AA55131FB4C6AB00C2AB58 /* BinarySearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AA55121FB4C6AB00C2AB58 /* BinarySearch.swift */; }; - D0AA55141FB4C6AB00C2AB58 /* BinarySearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AA55121FB4C6AB00C2AB58 /* BinarySearch.swift */; }; - D0AAD1B21E3266B100D5B9DE /* TimestampBasedMessageAttributesIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B01E3266B100D5B9DE /* TimestampBasedMessageAttributesIndexTable.swift */; }; - D0AAD1B31E3266B100D5B9DE /* TimestampBasedMessageAttributesTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B11E3266B100D5B9DE /* TimestampBasedMessageAttributesTable.swift */; }; - D0AAD1B51E32673C00D5B9DE /* TimestampBasedMessageAttributesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B41E32673C00D5B9DE /* TimestampBasedMessageAttributesView.swift */; }; - D0AAD1B61E32673C00D5B9DE /* TimestampBasedMessageAttributesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B41E32673C00D5B9DE /* TimestampBasedMessageAttributesView.swift */; }; - D0AB0B8C1D65D488002C78E7 /* MessageHistoryHolesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B8B1D65D488002C78E7 /* MessageHistoryHolesView.swift */; }; - D0AB0B8E1D65D49C002C78E7 /* ChatListHolesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B8D1D65D49C002C78E7 /* ChatListHolesView.swift */; }; - D0AB0B901D65D4AB002C78E7 /* UnsentMessageIndicesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B8F1D65D4AB002C78E7 /* UnsentMessageIndicesView.swift */; }; - D0AD23271E194D1C00A7089A /* PeerOperationLogTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AD23261E194D1C00A7089A /* PeerOperationLogTable.swift */; }; - D0AD23291E196B6400A7089A /* PeerOperationLogMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AD23281E196B6400A7089A /* PeerOperationLogMetadataTable.swift */; }; - D0AE3EBC1F68261B0069BC90 /* PeerNotificationSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AE3EBB1F68261B0069BC90 /* PeerNotificationSettingsView.swift */; }; - D0B166EA1F9D142A00976B40 /* MessageOfInterestHolesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B166E91F9D142A00976B40 /* MessageOfInterestHolesView.swift */; }; - D0B166EB1F9D142A00976B40 /* MessageOfInterestHolesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B166E91F9D142A00976B40 /* MessageOfInterestHolesView.swift */; }; - D0B167201F9EAAA900976B40 /* OrderedList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B1671F1F9EAAA900976B40 /* OrderedList.swift */; }; - D0B167211F9EAAA900976B40 /* OrderedList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B1671F1F9EAAA900976B40 /* OrderedList.swift */; }; - D0B2F75D204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F75C204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift */; }; - D0B2F75E204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F75C204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift */; }; - D0B418171D7DFAF3004562A4 /* PostboxMac.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B418151D7DFAF3004562A4 /* PostboxMac.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0B418221D7DFE0C004562A4 /* Coding.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A7871B28AE9C00A402D9 /* Coding.swift */; }; - D0B418231D7DFE0C004562A4 /* SimpleDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8741C5A334100037222 /* SimpleDictionary.swift */; }; - D0B418241D7DFE0C004562A4 /* SimpleSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9DA381C65782500855278 /* SimpleSet.swift */; }; - D0B418251D7DFE0C004562A4 /* RedBlackTree.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CEFB31D2AD8BE0015D3BC /* RedBlackTree.swift */; }; - D0B418261D7DFE0C004562A4 /* MappedFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D949F41D35353900740E02 /* MappedFile.swift */; }; - D0B418271D7DFE0C004562A4 /* IpcPipe.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D510FF1D64A58900A97B8A /* IpcPipe.swift */; }; - D0B418301D7DFE16004562A4 /* ValueBoxKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0977F9D1B8234DF009994B2 /* ValueBoxKey.swift */; }; - D0B418311D7DFE16004562A4 /* ValueBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0977F9B1B822DB4009994B2 /* ValueBox.swift */; }; - D0B418321D7DFE16004562A4 /* SqliteValueBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0977F9F1B8244D7009994B2 /* SqliteValueBox.swift */; }; - D0B418481D7DFE20004562A4 /* MessageHistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D003E4E51B38DBDB00C22CBC /* MessageHistoryView.swift */; }; - D0B418491D7DFE20004562A4 /* ChatListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E86A1C59719800037222 /* ChatListView.swift */; }; - D0B4184A1D7DFE20004562A4 /* UnsentMessageHistoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033A6F81C73E440006A2EAB /* UnsentMessageHistoryView.swift */; }; - D0B4184B1D7DFE20004562A4 /* SynchronizePeerReadStatesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01F7D9C1CBF8586008765C9 /* SynchronizePeerReadStatesView.swift */; }; - D0B4184C1D7DFE20004562A4 /* ContactPeerIdsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0079F621D5A242500A27A2C /* ContactPeerIdsView.swift */; }; - D0B4184D1D7DFE20004562A4 /* ContactPeersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0079F641D5A457A00A27A2C /* ContactPeersView.swift */; }; - D0B4184E1D7DFE20004562A4 /* MessageHistoryHolesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B8B1D65D488002C78E7 /* MessageHistoryHolesView.swift */; }; - D0B4184F1D7DFE20004562A4 /* ChatListHolesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B8D1D65D49C002C78E7 /* ChatListHolesView.swift */; }; - D0B418501D7DFE20004562A4 /* UnsentMessageIndicesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B8F1D65D4AB002C78E7 /* UnsentMessageIndicesView.swift */; }; - D0B418571D7DFE29004562A4 /* Postbox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A7811B28ADD000A402D9 /* Postbox.swift */; }; - D0B418581D7DFE29004562A4 /* SeedConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D044CA291C617D39002160FF /* SeedConfiguration.swift */; }; - D0B418591D7DFE29004562A4 /* PostboxTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D510F31D63BA8400A97B8A /* PostboxTransaction.swift */; }; - D0B4185A1D7DFE29004562A4 /* ViewTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1DE141C5E1C6900C7826E /* ViewTracker.swift */; }; - D0B4185B1D7DFE2C004562A4 /* MurMurHash32.h in Headers */ = {isa = PBXBuildFile; fileRef = D044E1611B2AD667001EE087 /* MurMurHash32.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0B4185C1D7DFE2F004562A4 /* MurMurHash32.m in Sources */ = {isa = PBXBuildFile; fileRef = D044E1621B2AD677001EE087 /* MurMurHash32.m */; }; - D0B418611D7DFE95004562A4 /* SwiftSignalKitMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B418601D7DFE95004562A4 /* SwiftSignalKitMac.framework */; }; - D0B844031DAB91A7005F29E1 /* PeerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C8E1D81A350008AEB01 /* PeerView.swift */; }; - D0B844051DAB91B5005F29E1 /* MediaBox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D055BD321B7D3D2D00F06C0A /* MediaBox.swift */; }; - D0B844061DAB91B5005F29E1 /* MediaResourceStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05F09A51C9E9F9300BB6F96 /* MediaResourceStatus.swift */; }; - D0B844071DAB91B5005F29E1 /* MediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CE63F51CA1CCB2002BC462 /* MediaResource.swift */; }; - D0B844511DAC04FE005F29E1 /* PeerPresence.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B844501DAC04FE005F29E1 /* PeerPresence.swift */; }; - D0BC386C1E3FCEE50044D6FE /* MultiplePeersView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC386B1E3FCEE50044D6FE /* MultiplePeersView.swift */; }; - D0BC38721E409E670044D6FE /* RenderedPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38711E409E670044D6FE /* RenderedPeer.swift */; }; - D0BC38731E409E670044D6FE /* RenderedPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38711E409E670044D6FE /* RenderedPeer.swift */; }; - D0BE3034206026C800FBE6D8 /* MessagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE3033206026C800FBE6D8 /* MessagesView.swift */; }; - D0BE3035206026C800FBE6D8 /* MessagesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE3033206026C800FBE6D8 /* MessagesView.swift */; }; - D0BE38391E7C1FD4000079AF /* ItemCollectionInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE38381E7C1FD4000079AF /* ItemCollectionInfoView.swift */; }; - D0BE383A1E7C1FD4000079AF /* ItemCollectionInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE38381E7C1FD4000079AF /* ItemCollectionInfoView.swift */; }; - D0BEAF631E54B2FA00BD963D /* AccountManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF621E54B2FA00BD963D /* AccountManager.swift */; }; - D0BEAF641E54B2FA00BD963D /* AccountManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF621E54B2FA00BD963D /* AccountManager.swift */; }; - D0BEAF671E54B33900BD963D /* AccountRecord.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF661E54B33900BD963D /* AccountRecord.swift */; }; - D0BEAF681E54B33900BD963D /* AccountRecord.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF661E54B33900BD963D /* AccountRecord.swift */; }; - D0BEAF6A1E54B5FB00BD963D /* AccountManagerMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF691E54B5FB00BD963D /* AccountManagerMetadataTable.swift */; }; - D0BEAF6B1E54B5FB00BD963D /* AccountManagerMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF691E54B5FB00BD963D /* AccountManagerMetadataTable.swift */; }; - D0BEAF6D1E54B77900BD963D /* AccountManagerRecordTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF6C1E54B77900BD963D /* AccountManagerRecordTable.swift */; }; - D0BEAF6E1E54B77900BD963D /* AccountManagerRecordTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF6C1E54B77900BD963D /* AccountManagerRecordTable.swift */; }; - D0BEAF701E54BC1E00BD963D /* AccountRecordsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF6F1E54BC1E00BD963D /* AccountRecordsView.swift */; }; - D0BEAF711E54BC1E00BD963D /* AccountRecordsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF6F1E54BC1E00BD963D /* AccountRecordsView.swift */; }; - D0BFE51D22AFD5AF00143D08 /* MutableBasicPeerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BFE51C22AFD5AF00143D08 /* MutableBasicPeerView.swift */; }; - D0BFE51E22AFD5AF00143D08 /* MutableBasicPeerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BFE51C22AFD5AF00143D08 /* MutableBasicPeerView.swift */; }; - D0C07F6A1B67DB4800966E43 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C07F691B67DB4800966E43 /* SwiftSignalKit.framework */; }; - D0C0B5AB1EE1AB08000F4D2C /* ReverseAssociatedPeerTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B5AA1EE1AB08000F4D2C /* ReverseAssociatedPeerTable.swift */; }; - D0C0B5AC1EE1AB08000F4D2C /* ReverseAssociatedPeerTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B5AA1EE1AB08000F4D2C /* ReverseAssociatedPeerTable.swift */; }; - D0C26D7E1FE3FA4E004ABF18 /* PinnedItemId.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C26D7D1FE3FA4E004ABF18 /* PinnedItemId.swift */; }; - D0C26D7F1FE3FA4E004ABF18 /* PinnedItemId.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C26D7D1FE3FA4E004ABF18 /* PinnedItemId.swift */; }; - D0C27B451F4B598200A4E170 /* CachedPeerDataView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C27B441F4B598200A4E170 /* CachedPeerDataView.swift */; }; - D0C27B461F4B598200A4E170 /* CachedPeerDataView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C27B441F4B598200A4E170 /* CachedPeerDataView.swift */; }; - D0C674C81CBB11C600183765 /* MessageHistoryReadStateTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C674C71CBB11C600183765 /* MessageHistoryReadStateTable.swift */; }; - D0C674CC1CBB14A700183765 /* PeerReadState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C674CB1CBB14A700183765 /* PeerReadState.swift */; }; - D0C735281C864DF300BB3149 /* PeerChatStateTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C735271C864DF300BB3149 /* PeerChatStateTable.swift */; }; - D0C9DA391C65782500855278 /* SimpleSet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9DA381C65782500855278 /* SimpleSet.swift */; }; - D0CA8E4522720064008A74C3 /* InvalidatedGroupMessageStatsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA8E4422720064008A74C3 /* InvalidatedGroupMessageStatsTable.swift */; }; - D0CA8E4622720064008A74C3 /* InvalidatedGroupMessageStatsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA8E4422720064008A74C3 /* InvalidatedGroupMessageStatsTable.swift */; }; - D0CA8E48227208FE008A74C3 /* SynchronizeGroupMessageStatsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA8E47227208FE008A74C3 /* SynchronizeGroupMessageStatsView.swift */; }; - D0CA8E49227208FE008A74C3 /* SynchronizeGroupMessageStatsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA8E47227208FE008A74C3 /* SynchronizeGroupMessageStatsView.swift */; }; - D0CA8E4E2272130B008A74C3 /* PostboxUpgrade_24to25.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA8E4D2272130B008A74C3 /* PostboxUpgrade_24to25.swift */; }; - D0CA8E4F2272130B008A74C3 /* PostboxUpgrade_24to25.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA8E4D2272130B008A74C3 /* PostboxUpgrade_24to25.swift */; }; - D0CCD61F2231CE5100EE1E08 /* PeerGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CCD61E2231CE5100EE1E08 /* PeerGroup.swift */; }; - D0CCD6202231CE5400EE1E08 /* PeerGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CCD61E2231CE5100EE1E08 /* PeerGroup.swift */; }; - D0CCD6282232887100EE1E08 /* MessageHistoryHoleIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CCD6272232887100EE1E08 /* MessageHistoryHoleIndexTable.swift */; }; - D0CCD6292232887100EE1E08 /* MessageHistoryHoleIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CCD6272232887100EE1E08 /* MessageHistoryHoleIndexTable.swift */; }; - D0CE63F61CA1CCB2002BC462 /* MediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CE63F51CA1CCB2002BC462 /* MediaResource.swift */; }; - D0CE8CF31F70249400AA2DB0 /* PostboxUpgrade_13to14.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CE8CF21F70249400AA2DB0 /* PostboxUpgrade_13to14.swift */; }; - D0CE8CF41F70249400AA2DB0 /* PostboxUpgrade_13to14.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CE8CF21F70249400AA2DB0 /* PostboxUpgrade_13to14.swift */; }; - D0CE8CF61F703B1E00AA2DB0 /* PendingPeerNotificationSettingsIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CE8CF51F703B1E00AA2DB0 /* PendingPeerNotificationSettingsIndexTable.swift */; }; - D0CE8CF71F703B1E00AA2DB0 /* PendingPeerNotificationSettingsIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CE8CF51F703B1E00AA2DB0 /* PendingPeerNotificationSettingsIndexTable.swift */; }; - D0D510F41D63BA8400A97B8A /* PostboxTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D510F31D63BA8400A97B8A /* PostboxTransaction.swift */; }; - D0D510F61D63BBE100A97B8A /* MessageHistoryOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D510F51D63BBE100A97B8A /* MessageHistoryOperation.swift */; }; - D0D510F91D63BCC200A97B8A /* IntermediateMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D510F81D63BCC200A97B8A /* IntermediateMessage.swift */; }; - D0D511001D64A58900A97B8A /* IpcPipe.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D510FF1D64A58900A97B8A /* IpcPipe.swift */; }; - D0D949F51D35353900740E02 /* MappedFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D949F41D35353900740E02 /* MappedFile.swift */; }; - D0DA1D2F1F70419D0034E892 /* PendingPeerNotificationSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DA1D2E1F70419D0034E892 /* PendingPeerNotificationSettingsView.swift */; }; - D0DA1D301F70419D0034E892 /* PendingPeerNotificationSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DA1D2E1F70419D0034E892 /* PendingPeerNotificationSettingsView.swift */; }; - D0DA44481E4C7D1E005FDCA7 /* PostboxAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DA44471E4C7D1E005FDCA7 /* PostboxAccess.swift */; }; - D0DA44491E4C7D1E005FDCA7 /* PostboxAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DA44471E4C7D1E005FDCA7 /* PostboxAccess.swift */; }; - D0DF0C8F1D81A350008AEB01 /* PeerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C8E1D81A350008AEB01 /* PeerView.swift */; }; - D0E119A0229834BC008CAE3A /* MutablePeerChatInclusionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1199F229834BC008CAE3A /* MutablePeerChatInclusionView.swift */; }; - D0E119A1229834BC008CAE3A /* MutablePeerChatInclusionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1199F229834BC008CAE3A /* MutablePeerChatInclusionView.swift */; }; - D0E1D30C1ECA1F5500FCEEF1 /* GlobalMessageHistoryTagsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1D30B1ECA1F5500FCEEF1 /* GlobalMessageHistoryTagsTable.swift */; }; - D0E1D30D1ECA1F5500FCEEF1 /* GlobalMessageHistoryTagsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1D30B1ECA1F5500FCEEF1 /* GlobalMessageHistoryTagsTable.swift */; }; - D0E1D30F1ECA53F900FCEEF1 /* GlobalMessageTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1D30E1ECA53F900FCEEF1 /* GlobalMessageTagsView.swift */; }; - D0E1D3101ECA53F900FCEEF1 /* GlobalMessageTagsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1D30E1ECA53F900FCEEF1 /* GlobalMessageTagsView.swift */; }; - D0E1DE151C5E1C6900C7826E /* ViewTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E1DE141C5E1C6900C7826E /* ViewTracker.swift */; }; - D0E23DE21E808A9400B9B6D2 /* ItemCollectionIdsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DE11E808A9400B9B6D2 /* ItemCollectionIdsView.swift */; }; - D0E23DE31E808A9400B9B6D2 /* ItemCollectionIdsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DE11E808A9400B9B6D2 /* ItemCollectionIdsView.swift */; }; - D0E3A7501B28A7E300A402D9 /* Postbox.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E3A74F1B28A7E300A402D9 /* Postbox.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0E3A7561B28A7E300A402D9 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0E3A74A1B28A7E300A402D9 /* Postbox.framework */; }; - D0E3A7821B28ADD000A402D9 /* Postbox.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A7811B28ADD000A402D9 /* Postbox.swift */; }; - D0E3A7841B28AE0900A402D9 /* Peer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A7831B28AE0900A402D9 /* Peer.swift */; }; - D0E3A7881B28AE9C00A402D9 /* Coding.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A7871B28AE9C00A402D9 /* Coding.swift */; }; - D0E3A79E1B28B50400A402D9 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A79D1B28B50400A402D9 /* Message.swift */; }; - D0E3A7A21B28B7DC00A402D9 /* Media.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E3A7A11B28B7DC00A402D9 /* Media.swift */; }; - D0ECCB8F1FE9EB5500609802 /* PostboxLogging.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ECCB8E1FE9EB5500609802 /* PostboxLogging.swift */; }; - D0F019FD1E1DA0CC00F05AB3 /* PeerMergedOperationLogView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F019FC1E1DA0CC00F05AB3 /* PeerMergedOperationLogView.swift */; }; - D0F02CDF1E99223D0065DEE2 /* Upgrades.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F02CDE1E99223D0065DEE2 /* Upgrades.swift */; }; - D0F02CE01E99223E0065DEE2 /* Upgrades.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F02CDE1E99223D0065DEE2 /* Upgrades.swift */; }; - D0F02CE21E9922F50065DEE2 /* PostboxUpgrade_12to13.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F02CE11E9922F50065DEE2 /* PostboxUpgrade_12to13.swift */; }; - D0F02CE31E9922F50065DEE2 /* PostboxUpgrade_12to13.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F02CE11E9922F50065DEE2 /* PostboxUpgrade_12to13.swift */; }; - D0F3CC721DDE1CDC008148FA /* ItemCacheTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3CC711DDE1CDC008148FA /* ItemCacheTable.swift */; }; - D0F3CC741DDE1EB9008148FA /* ItemCacheMetaTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3CC731DDE1EB9008148FA /* ItemCacheMetaTable.swift */; }; - D0F53BF31E794C6700117362 /* PeerChatStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F53BF21E794C6700117362 /* PeerChatStateView.swift */; }; - D0F53BF41E794C6700117362 /* PeerChatStateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F53BF21E794C6700117362 /* PeerChatStateView.swift */; }; - D0F7AB321DCFAB18009AD9A1 /* PeerChatTopIndexableMessageIds.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F7AB311DCFAB18009AD9A1 /* PeerChatTopIndexableMessageIds.swift */; }; - D0F7B1C01E045C62007EB8A5 /* StringIndexTokens.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C01E0079CB00071108 /* StringIndexTokens.swift */; }; - D0F7B1C31E045C6A007EB8A5 /* Table.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03BCCF71C73561C0097A291 /* Table.swift */; }; - D0F7B1C41E045C6A007EB8A5 /* GlobalMessageIdsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8721C5A1EE500037222 /* GlobalMessageIdsTable.swift */; }; - D0F7B1C51E045C6A007EB8A5 /* MessageHistoryMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D044CA2B1C617E2D002160FF /* MessageHistoryMetadataTable.swift */; }; - D0F7B1C61E045C6A007EB8A5 /* MessageHistoryIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08C713B1C51283C00779C0F /* MessageHistoryIndexTable.swift */; }; - D0F7B1C71E045C6A007EB8A5 /* MessageHistoryTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08C713D1C512EA500779C0F /* MessageHistoryTable.swift */; }; - D0F7B1C81E045C6A007EB8A5 /* MessageHistoryOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D510F51D63BBE100A97B8A /* MessageHistoryOperation.swift */; }; - D0F7B1C91E045C6A007EB8A5 /* MessageHistoryTagsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00EED1D1C81F28D00341DFF /* MessageHistoryTagsTable.swift */; }; - D0F7B1CA1E045C6A007EB8A5 /* MessageHistoryUnsentTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033A6F61C73D512006A2EAB /* MessageHistoryUnsentTable.swift */; }; - D0F7B1CB1E045C6A007EB8A5 /* ChatListTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8641C58CB7F00037222 /* ChatListTable.swift */; }; - D0F7B1CC1E045C6A007EB8A5 /* ChatListIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8661C58D08900037222 /* ChatListIndexTable.swift */; }; - D0F7B1CD1E045C6A007EB8A5 /* MessageMediaTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E85A1C565EBB00037222 /* MessageMediaTable.swift */; }; - D0F7B1CF1E045C6A007EB8A5 /* MetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E86C1C5A0E5D00037222 /* MetadataTable.swift */; }; - D0F7B1D01E045C6A007EB8A5 /* KeychainTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E86E1C5A0E7600037222 /* KeychainTable.swift */; }; - D0F7B1D11E045C6A007EB8A5 /* PeerTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8701C5A0E9B00037222 /* PeerTable.swift */; }; - D0F7B1D21E045C6A007EB8A5 /* PeerNotificationSettingsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120FF1DA579A0006A2A60 /* PeerNotificationSettingsTable.swift */; }; - D0F7B1D31E045C6A007EB8A5 /* CachedPeerDataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120FD1DA562E9006A2A60 /* CachedPeerDataTable.swift */; }; - D0F7B1D41E045C6A007EB8A5 /* PeerPresenceTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03120F71DA53FF4006A2A60 /* PeerPresenceTable.swift */; }; - D0F7B1D51E045C6A007EB8A5 /* PeerChatStateTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C735271C864DF300BB3149 /* PeerChatStateTable.swift */; }; - D0F7B1D61E045C6A007EB8A5 /* ContactTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0079F591D592E8B00A27A2C /* ContactTable.swift */; }; - D0F7B1D71E045C6A007EB8A5 /* MessageHistoryReadStateTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C674C71CBB11C600183765 /* MessageHistoryReadStateTable.swift */; }; - D0F7B1D81E045C6A007EB8A5 /* MessageHistorySynchronizeReadStateTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01F7D9A1CBEC390008765C9 /* MessageHistorySynchronizeReadStateTable.swift */; }; - D0F7B1D91E045C6A007EB8A5 /* OrderStatisticTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09ADF0B1D2EB83500C8208D /* OrderStatisticTable.swift */; }; - D0F7B1DA1E045C6A007EB8A5 /* RatingTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08D451E1D5D2CA700A7428A /* RatingTable.swift */; }; - D0F7B1DB1E045C6A007EB8A5 /* ItemCollectionInfoTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0D51DB4FCFC00C6B04F /* ItemCollectionInfoTable.swift */; }; - D0F7B1DC1E045C6A007EB8A5 /* ItemCollectionItemTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0D71DB4FD1300C6B04F /* ItemCollectionItemTable.swift */; }; - D0F7B1DD1E045C6A007EB8A5 /* PeerChatInterfaceStateTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF821DCA909100761F81 /* PeerChatInterfaceStateTable.swift */; }; - D0F7B1DE1E045C6A007EB8A5 /* PeerChatTopIndexableMessageIds.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F7AB311DCFAB18009AD9A1 /* PeerChatTopIndexableMessageIds.swift */; }; - D0F7B1DF1E045C6A007EB8A5 /* ItemCacheMetaTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3CC731DDE1EB9008148FA /* ItemCacheMetaTable.swift */; }; - D0F7B1E01E045C6A007EB8A5 /* ItemCacheTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3CC711DDE1CDC008148FA /* ItemCacheTable.swift */; }; - D0F7B1E11E045C6A007EB8A5 /* ReverseIndexReferenceTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C21E008F7300071108 /* ReverseIndexReferenceTable.swift */; }; - D0F7B1E21E045C6A007EB8A5 /* PeerNameIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C41E00B23F00071108 /* PeerNameIndexTable.swift */; }; - D0F82CFD1E4345D7007E499C /* OrderedItemListTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F82CFC1E4345D7007E499C /* OrderedItemListTable.swift */; }; - D0F82CFE1E4345D7007E499C /* OrderedItemListTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F82CFC1E4345D7007E499C /* OrderedItemListTable.swift */; }; - D0F82D0C1E439FCC007E499C /* OrderedItemListEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F82D0B1E439FCC007E499C /* OrderedItemListEntry.swift */; }; - D0F82D0D1E439FCC007E499C /* OrderedItemListEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F82D0B1E439FCC007E499C /* OrderedItemListEntry.swift */; }; - D0F82D0F1E43A024007E499C /* OrderedItemListIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F82D0E1E43A024007E499C /* OrderedItemListIndexTable.swift */; }; - D0F82D101E43A024007E499C /* OrderedItemListIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F82D0E1E43A024007E499C /* OrderedItemListIndexTable.swift */; }; - D0F9E85B1C565EBB00037222 /* MessageMediaTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E85A1C565EBB00037222 /* MessageMediaTable.swift */; }; - D0F9E8651C58CB7F00037222 /* ChatListTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8641C58CB7F00037222 /* ChatListTable.swift */; }; - D0F9E8671C58D08900037222 /* ChatListIndexTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8661C58D08900037222 /* ChatListIndexTable.swift */; }; - D0F9E86B1C59719800037222 /* ChatListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E86A1C59719800037222 /* ChatListView.swift */; }; - D0F9E86D1C5A0E5D00037222 /* MetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E86C1C5A0E5D00037222 /* MetadataTable.swift */; }; - D0F9E86F1C5A0E7600037222 /* KeychainTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E86E1C5A0E7600037222 /* KeychainTable.swift */; }; - D0F9E8711C5A0E9B00037222 /* PeerTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8701C5A0E9B00037222 /* PeerTable.swift */; }; - D0F9E8731C5A1EE500037222 /* GlobalMessageIdsTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8721C5A1EE500037222 /* GlobalMessageIdsTable.swift */; }; - D0F9E8751C5A334100037222 /* SimpleDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F9E8741C5A334100037222 /* SimpleDictionary.swift */; }; - D0FA0AC71E77F0A2005BB9B7 /* ItemCollectionInfosView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0AC61E77F0A2005BB9B7 /* ItemCollectionInfosView.swift */; }; - D0FA0AC81E77F0A2005BB9B7 /* ItemCollectionInfosView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0AC61E77F0A2005BB9B7 /* ItemCollectionInfosView.swift */; }; - D0FA0ACA1E780A26005BB9B7 /* PostboxView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0AC91E780A26005BB9B7 /* PostboxView.swift */; }; - D0FA0ACB1E780A26005BB9B7 /* PostboxView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0AC91E780A26005BB9B7 /* PostboxView.swift */; }; - D0FA0ACD1E781067005BB9B7 /* Views.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0ACC1E781067005BB9B7 /* Views.swift */; }; - D0FA0ACE1E781067005BB9B7 /* Views.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0ACC1E781067005BB9B7 /* Views.swift */; }; - D0FC194A201E8EAF00FEDBB2 /* MediaBoxFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC1949201E8EAF00FEDBB2 /* MediaBoxFile.swift */; }; - D0FC194B201E8EAF00FEDBB2 /* MediaBoxFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC1949201E8EAF00FEDBB2 /* MediaBoxFile.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - D0E3A7571B28A7E300A402D9 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D0E3A7411B28A7E300A402D9 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D0E3A7491B28A7E300A402D9; - remoteInfo = Postbox; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - D000CAD922006C6C0011B15D /* SharedAccountMediaManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedAccountMediaManager.swift; sourceTree = ""; }; - D001388520BD942B007C9721 /* PostboxUpgrade_16to17.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_16to17.swift; sourceTree = ""; }; - D003E4E51B38DBDB00C22CBC /* MessageHistoryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryView.swift; sourceTree = ""; }; - D0079F591D592E8B00A27A2C /* ContactTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactTable.swift; sourceTree = ""; }; - D0079F621D5A242500A27A2C /* ContactPeerIdsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactPeerIdsView.swift; sourceTree = ""; }; - D0079F641D5A457A00A27A2C /* ContactPeersView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactPeersView.swift; sourceTree = ""; }; - D0079F6A1D5B3AAB00A27A2C /* PeerNameIndexRepresentation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNameIndexRepresentation.swift; sourceTree = ""; }; - D00C7CD31E365C4E0080C3D5 /* PeerChatListInclusion.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerChatListInclusion.swift; sourceTree = ""; }; - D00C7CE21E37861C0080C3D5 /* MessageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageView.swift; sourceTree = ""; }; - D00EED1D1C81F28D00341DFF /* MessageHistoryTagsTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryTagsTable.swift; sourceTree = ""; }; - D0105D6A218362F2007C04A7 /* TempBox.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TempBox.swift; sourceTree = ""; }; - D010B6191E1E463900C3E282 /* PeerMergedOperationLogIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerMergedOperationLogIndexTable.swift; sourceTree = ""; }; - D0119CAC20C9E7A100895300 /* PostboxUpgrade_17to18.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_17to18.swift; sourceTree = ""; }; - D015E05B2263BB3B00CB9E8A /* PostboxUpgrade_22to23.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_22to23.swift; sourceTree = ""; }; - D015E05F2265D42400CB9E8A /* GroupMessageStatsTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupMessageStatsTable.swift; sourceTree = ""; }; - D018BE54218B9AA900C02DDC /* TimeBasedCleanup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeBasedCleanup.swift; sourceTree = ""; }; - D019B1CE1E2E770700F80DB3 /* MessageGloballyUniqueIdTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageGloballyUniqueIdTable.swift; sourceTree = ""; }; - D01BAA541ED1D70C00295217 /* ManagedFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedFile.swift; sourceTree = ""; }; - D01C7EDD1EF73F71008305F1 /* MessageHistoryTextIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryTextIndexTable.swift; sourceTree = ""; }; - D01C7F061EFC1ED3008305F1 /* UnorderedItemListTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnorderedItemListTable.swift; sourceTree = ""; }; - D01E79E72248F661005237FE /* PostboxUpgrade_19to20.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_19to20.swift; sourceTree = ""; }; - D01F7D9A1CBEC390008765C9 /* MessageHistorySynchronizeReadStateTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistorySynchronizeReadStateTable.swift; sourceTree = ""; }; - D01F7D9C1CBF8586008765C9 /* SynchronizePeerReadStatesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizePeerReadStatesView.swift; sourceTree = ""; }; - D021E0D31DB4FAE100C6B04F /* ItemCollection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollection.swift; sourceTree = ""; }; - D021E0D51DB4FCFC00C6B04F /* ItemCollectionInfoTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollectionInfoTable.swift; sourceTree = ""; }; - D021E0D71DB4FD1300C6B04F /* ItemCollectionItemTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollectionItemTable.swift; sourceTree = ""; }; - D021E0DB1DB5237C00C6B04F /* ItemCollectionsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollectionsView.swift; sourceTree = ""; }; - D021FC252024B83700C34AB7 /* FileSize.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileSize.swift; sourceTree = ""; }; - D02EB8061D2B07F300D07ED3 /* OrderStatisticTreeTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderStatisticTreeTests.swift; sourceTree = ""; }; - D03120F71DA53FF4006A2A60 /* PeerPresenceTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerPresenceTable.swift; sourceTree = ""; }; - D03120F91DA540F0006A2A60 /* CachedPeerData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedPeerData.swift; sourceTree = ""; }; - D03120FB1DA55427006A2A60 /* PeerNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNotificationSettings.swift; sourceTree = ""; }; - D03120FD1DA562E9006A2A60 /* CachedPeerDataTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedPeerDataTable.swift; sourceTree = ""; }; - D03120FF1DA579A0006A2A60 /* PeerNotificationSettingsTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNotificationSettingsTable.swift; sourceTree = ""; }; - D03229ED1E6B33FD0000AF9C /* SqliteInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SqliteInterface.swift; sourceTree = ""; }; - D033871E223554DE007A2CE4 /* HoleOperationsVector1.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = HoleOperationsVector1.json; sourceTree = ""; }; - D03387202236C239007A2CE4 /* HoleOperationsVector2.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = HoleOperationsVector2.json; sourceTree = ""; }; - D03387512242E32A007A2CE4 /* PostboxUpgrade_18to19.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_18to19.swift; sourceTree = ""; }; - D033A6F61C73D512006A2EAB /* MessageHistoryUnsentTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryUnsentTable.swift; sourceTree = ""; }; - D033A6F81C73E440006A2EAB /* UnsentMessageHistoryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnsentMessageHistoryView.swift; sourceTree = ""; }; - D037178A20D923CA004773C8 /* CachedItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CachedItemView.swift; sourceTree = ""; }; - D039FB1A21714D9800BD1BAD /* PeerPresencesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerPresencesView.swift; sourceTree = ""; }; - D03BCCF71C73561C0097A291 /* Table.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Table.swift; sourceTree = ""; }; - D03E45562305C7C90049C28B /* sqlcipher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = sqlcipher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E457A2305CD000049C28B /* Crc32.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Crc32.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E457C2305CD090049C28B /* Crc32.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Crc32.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E457E2305CD130049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - D03E462B2306E01C0049C28B /* sqlciphermac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = sqlciphermac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E463C2306E0F60049C28B /* crc32mac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = crc32mac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D040CA6322665370007123CE /* PostboxUpgrade_23to24.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_23to24.swift; sourceTree = ""; }; - D0439B3E2289F6300067E026 /* AccountManagerAtomicState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountManagerAtomicState.swift; sourceTree = ""; }; - D044CA291C617D39002160FF /* SeedConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SeedConfiguration.swift; sourceTree = ""; }; - D044CA2B1C617E2D002160FF /* MessageHistoryMetadataTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryMetadataTable.swift; sourceTree = ""; }; - D044CA2D1C618373002160FF /* ChatListHole.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListHole.swift; sourceTree = ""; }; - D044E15D1B2ACB9C001EE087 /* CodingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CodingTests.swift; sourceTree = ""; }; - D044E1611B2AD667001EE087 /* MurMurHash32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MurMurHash32.h; sourceTree = ""; }; - D044E1621B2AD677001EE087 /* MurMurHash32.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MurMurHash32.m; sourceTree = ""; }; - D046142F2004E24600EC0EF2 /* LocalMessageHistoryTagsTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalMessageHistoryTagsTable.swift; sourceTree = ""; }; - D04614322004F2CC00EC0EF2 /* LocalMessageTagsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalMessageTagsView.swift; sourceTree = ""; }; - D048B33C203C838500038D05 /* PostboxUpgrade_15to16.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_15to16.swift; sourceTree = ""; }; - D048B4A720A5CBE400C79D31 /* AdditionalChatListItemsTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdditionalChatListItemsTable.swift; sourceTree = ""; }; - D048B4AE20A5EEAE00C79D31 /* AdditionalChatListItemsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdditionalChatListItemsView.swift; sourceTree = ""; }; - D049EAEF1E44D9B900A2CD3A /* PostboxStateView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostboxStateView.swift; sourceTree = ""; }; - D055BD321B7D3D2D00F06C0A /* MediaBox.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaBox.swift; sourceTree = ""; }; - D0575AE21E9ECBB2006F2541 /* AccessChallengeDataView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccessChallengeDataView.swift; sourceTree = ""; }; - D05D8B30218F1D3D0064586F /* AccountSharedData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSharedData.swift; sourceTree = ""; }; - D05D8B33218F1EBB0064586F /* AccountManagerSharedDataTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountManagerSharedDataTable.swift; sourceTree = ""; }; - D05F09A51C9E9F9300BB6F96 /* MediaResourceStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaResourceStatus.swift; sourceTree = ""; }; - D060B77A1CF4845A0050BE9B /* ReadStateTableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReadStateTableTests.swift; sourceTree = ""; }; - D0633D03225B98B1003DD95F /* AdditionalMessageHistoryViewData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdditionalMessageHistoryViewData.swift; sourceTree = ""; }; - D0633D06225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageHistoryViewEntryAttributes.swift; sourceTree = ""; }; - D0633D09225BAD66003DD95F /* MessageHistoryAnchorIndex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageHistoryAnchorIndex.swift; sourceTree = ""; }; - D0633D0C225BC9EF003DD95F /* MessageHistoryViewState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageHistoryViewState.swift; sourceTree = ""; }; - D06CA12B227715E70094E707 /* PeerNotificationSettingsBehaviorTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerNotificationSettingsBehaviorTable.swift; sourceTree = ""; }; - D06CA12E227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerNotificationSettingsBehaviorIndexTable.swift; sourceTree = ""; }; - D06CA13122772DE40094E707 /* PeerNotificationSettingsBehaviorTimestampView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerNotificationSettingsBehaviorTimestampView.swift; sourceTree = ""; }; - D06ECFC420B796DC00C576C2 /* NoticeEntryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoticeEntryView.swift; sourceTree = ""; }; - D070479F1F3CE16500F6A8D4 /* MessageHistoryTagsSummaryTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryTagsSummaryTable.swift; sourceTree = ""; }; - D07047A11F3CE58200F6A8D4 /* PendingMessageActionsTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageActionsTable.swift; sourceTree = ""; }; - D07047A41F3CF63800F6A8D4 /* MessageHistoryTagSummaryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryTagSummaryView.swift; sourceTree = ""; }; - D07047A71F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageActionsMetadataTable.swift; sourceTree = ""; }; - D07047AA1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageActionsView.swift; sourceTree = ""; }; - D07047B01F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageActionsSummaryView.swift; sourceTree = ""; }; - D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Postbox.xcconfig; path = Postbox/Config/Postbox.xcconfig; sourceTree = ""; }; - D07827C01E0079CB00071108 /* StringIndexTokens.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringIndexTokens.swift; sourceTree = ""; }; - D07827C21E008F7300071108 /* ReverseIndexReferenceTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReverseIndexReferenceTable.swift; sourceTree = ""; }; - D07827C41E00B23F00071108 /* PeerNameIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerNameIndexTable.swift; sourceTree = ""; }; - D079FCE51F06A3170038FADE /* NoticeTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NoticeTable.swift; sourceTree = ""; }; - D07CFF801DCA765D00761F81 /* PeerChatInterfaceState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerChatInterfaceState.swift; sourceTree = ""; }; - D07CFF821DCA909100761F81 /* PeerChatInterfaceStateTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerChatInterfaceStateTable.swift; sourceTree = ""; }; - D07CFF841DCA99C400761F81 /* InitialMessageHistoryData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InitialMessageHistoryData.swift; sourceTree = ""; }; - D07E7B44224E227100BB053B /* PostboxUpgrade_20to21.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_20to21.swift; sourceTree = ""; }; - D07E7B47224E562C00BB053B /* PostboxUpgrade_21to22.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_21to22.swift; sourceTree = ""; }; - D08774FF1E3E3D9F00A97350 /* PreferencesTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesTable.swift; sourceTree = ""; }; - D08775021E3E3E7400A97350 /* PreferencesEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesEntry.swift; sourceTree = ""; }; - D08775051E3E3F2100A97350 /* PreferencesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PreferencesView.swift; sourceTree = ""; }; - D087C20B1E43C11C00D686F8 /* OrderedItemListView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderedItemListView.swift; sourceTree = ""; }; - D08B61BF22A75C21000A46A8 /* Hash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Hash.swift; sourceTree = ""; }; - D08C713B1C51283C00779C0F /* MessageHistoryIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryIndexTable.swift; sourceTree = ""; }; - D08C713D1C512EA500779C0F /* MessageHistoryTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryTable.swift; sourceTree = ""; }; - D08CEFB31D2AD8BE0015D3BC /* RedBlackTree.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RedBlackTree.swift; sourceTree = ""; }; - D08D451E1D5D2CA700A7428A /* RatingTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RatingTable.swift; sourceTree = ""; }; - D0943AF71FDAC53F001522CC /* ChatLocation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatLocation.swift; sourceTree = ""; }; - D0943B011FDB01D8001522CC /* PostboxUpgrade_14to15.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_14to15.swift; sourceTree = ""; }; - D0977F9B1B822DB4009994B2 /* ValueBox.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValueBox.swift; sourceTree = ""; }; - D0977F9D1B8234DF009994B2 /* ValueBoxKey.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValueBoxKey.swift; sourceTree = ""; }; - D0977F9F1B8244D7009994B2 /* SqliteValueBox.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SqliteValueBox.swift; sourceTree = ""; }; - D098C6F01D7E11E9007784E4 /* Database.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Database.swift; sourceTree = ""; }; - D09ADF0B1D2EB83500C8208D /* OrderStatisticTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderStatisticTable.swift; sourceTree = ""; }; - D0A18D661E16874D004C6734 /* UnreadMessageCountsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnreadMessageCountsView.swift; sourceTree = ""; }; - D0A352F41F5488E9001423DC /* InvalidatedMessageHistoryTagsSummaryTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvalidatedMessageHistoryTagsSummaryTable.swift; sourceTree = ""; }; - D0A352F71F549D95001423DC /* InvalidatedMessageHistoryTagSummariesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvalidatedMessageHistoryTagSummariesView.swift; sourceTree = ""; }; - D0A7D9441C556CFE0016A115 /* MessageHistoryIndexTableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryIndexTableTests.swift; sourceTree = ""; }; - D0AA55121FB4C6AB00C2AB58 /* BinarySearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BinarySearch.swift; sourceTree = ""; }; - D0AAD1B01E3266B100D5B9DE /* TimestampBasedMessageAttributesIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampBasedMessageAttributesIndexTable.swift; sourceTree = ""; }; - D0AAD1B11E3266B100D5B9DE /* TimestampBasedMessageAttributesTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampBasedMessageAttributesTable.swift; sourceTree = ""; }; - D0AAD1B41E32673C00D5B9DE /* TimestampBasedMessageAttributesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimestampBasedMessageAttributesView.swift; sourceTree = ""; }; - D0AB0B8B1D65D488002C78E7 /* MessageHistoryHolesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryHolesView.swift; sourceTree = ""; }; - D0AB0B8D1D65D49C002C78E7 /* ChatListHolesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListHolesView.swift; sourceTree = ""; }; - D0AB0B8F1D65D4AB002C78E7 /* UnsentMessageIndicesView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnsentMessageIndicesView.swift; sourceTree = ""; }; - D0AD23261E194D1C00A7089A /* PeerOperationLogTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerOperationLogTable.swift; sourceTree = ""; }; - D0AD23281E196B6400A7089A /* PeerOperationLogMetadataTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerOperationLogMetadataTable.swift; sourceTree = ""; }; - D0AE3EBB1F68261B0069BC90 /* PeerNotificationSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerNotificationSettingsView.swift; sourceTree = ""; }; - D0B166E91F9D142A00976B40 /* MessageOfInterestHolesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageOfInterestHolesView.swift; sourceTree = ""; }; - D0B1671F1F9EAAA900976B40 /* OrderedList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderedList.swift; sourceTree = ""; }; - D0B2F75C204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceContactImportInfoTable.swift; sourceTree = ""; }; - D0B418131D7DFAF2004562A4 /* PostboxMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PostboxMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0B418151D7DFAF3004562A4 /* PostboxMac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PostboxMac.h; sourceTree = ""; }; - D0B418161D7DFAF3004562A4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0B418601D7DFE95004562A4 /* SwiftSignalKitMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftSignalKitMac.framework; path = "../../../../Library/Developer/Xcode/DerivedData/Telegram-iOS-diblohvjozhgaifjcniwdlixlilx/Build/Products/Debug/SwiftSignalKitMac.framework"; sourceTree = ""; }; - D0B844501DAC04FE005F29E1 /* PeerPresence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerPresence.swift; sourceTree = ""; }; - D0BC386B1E3FCEE50044D6FE /* MultiplePeersView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultiplePeersView.swift; sourceTree = ""; }; - D0BC38711E409E670044D6FE /* RenderedPeer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RenderedPeer.swift; sourceTree = ""; }; - D0BE3033206026C800FBE6D8 /* MessagesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessagesView.swift; sourceTree = ""; }; - D0BE38381E7C1FD4000079AF /* ItemCollectionInfoView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollectionInfoView.swift; sourceTree = ""; }; - D0BEAF621E54B2FA00BD963D /* AccountManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountManager.swift; sourceTree = ""; }; - D0BEAF661E54B33900BD963D /* AccountRecord.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountRecord.swift; sourceTree = ""; }; - D0BEAF691E54B5FB00BD963D /* AccountManagerMetadataTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountManagerMetadataTable.swift; sourceTree = ""; }; - D0BEAF6C1E54B77900BD963D /* AccountManagerRecordTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountManagerRecordTable.swift; sourceTree = ""; }; - D0BEAF6F1E54BC1E00BD963D /* AccountRecordsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountRecordsView.swift; sourceTree = ""; }; - D0BFE51C22AFD5AF00143D08 /* MutableBasicPeerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MutableBasicPeerView.swift; sourceTree = ""; }; - D0C07F691B67DB4800966E43 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C0B5AA1EE1AB08000F4D2C /* ReverseAssociatedPeerTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReverseAssociatedPeerTable.swift; sourceTree = ""; }; - D0C26D7D1FE3FA4E004ABF18 /* PinnedItemId.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PinnedItemId.swift; sourceTree = ""; }; - D0C27B441F4B598200A4E170 /* CachedPeerDataView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedPeerDataView.swift; sourceTree = ""; }; - D0C674C71CBB11C600183765 /* MessageHistoryReadStateTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryReadStateTable.swift; sourceTree = ""; }; - D0C674CB1CBB14A700183765 /* PeerReadState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerReadState.swift; sourceTree = ""; }; - D0C735271C864DF300BB3149 /* PeerChatStateTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerChatStateTable.swift; sourceTree = ""; }; - D0C8FCB61C5C2D200028C27F /* MessageHistoryViewTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryViewTests.swift; sourceTree = ""; }; - D0C9DA381C65782500855278 /* SimpleSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SimpleSet.swift; sourceTree = ""; }; - D0CA8E4422720064008A74C3 /* InvalidatedGroupMessageStatsTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvalidatedGroupMessageStatsTable.swift; sourceTree = ""; }; - D0CA8E47227208FE008A74C3 /* SynchronizeGroupMessageStatsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SynchronizeGroupMessageStatsView.swift; sourceTree = ""; }; - D0CA8E4D2272130B008A74C3 /* PostboxUpgrade_24to25.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_24to25.swift; sourceTree = ""; }; - D0CCD61E2231CE5100EE1E08 /* PeerGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerGroup.swift; sourceTree = ""; }; - D0CCD6272232887100EE1E08 /* MessageHistoryHoleIndexTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageHistoryHoleIndexTable.swift; sourceTree = ""; }; - D0CE63F51CA1CCB2002BC462 /* MediaResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaResource.swift; sourceTree = ""; }; - D0CE8CF21F70249400AA2DB0 /* PostboxUpgrade_13to14.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_13to14.swift; sourceTree = ""; }; - D0CE8CF51F703B1E00AA2DB0 /* PendingPeerNotificationSettingsIndexTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PendingPeerNotificationSettingsIndexTable.swift; sourceTree = ""; }; - D0D510F31D63BA8400A97B8A /* PostboxTransaction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostboxTransaction.swift; sourceTree = ""; }; - D0D510F51D63BBE100A97B8A /* MessageHistoryOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryOperation.swift; sourceTree = ""; }; - D0D510F81D63BCC200A97B8A /* IntermediateMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IntermediateMessage.swift; sourceTree = ""; }; - D0D510FF1D64A58900A97B8A /* IpcPipe.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IpcPipe.swift; sourceTree = ""; }; - D0D511011D64D73D00A97B8A /* IpcNotifier.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = IpcNotifier.mm; sourceTree = ""; }; - D0D511031D64D75200A97B8A /* IpcNotifier.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpcNotifier.h; sourceTree = ""; }; - D0D949F21D35302600740E02 /* RandomAccessResourceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RandomAccessResourceTests.swift; sourceTree = ""; }; - D0D949F41D35353900740E02 /* MappedFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MappedFile.swift; sourceTree = ""; }; - D0DA1D2E1F70419D0034E892 /* PendingPeerNotificationSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PendingPeerNotificationSettingsView.swift; sourceTree = ""; }; - D0DA44471E4C7D1E005FDCA7 /* PostboxAccess.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostboxAccess.swift; sourceTree = ""; }; - D0DF0C8E1D81A350008AEB01 /* PeerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerView.swift; sourceTree = ""; }; - D0E1199F229834BC008CAE3A /* MutablePeerChatInclusionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MutablePeerChatInclusionView.swift; sourceTree = ""; }; - D0E1D30B1ECA1F5500FCEEF1 /* GlobalMessageHistoryTagsTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalMessageHistoryTagsTable.swift; sourceTree = ""; }; - D0E1D30E1ECA53F900FCEEF1 /* GlobalMessageTagsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalMessageTagsView.swift; sourceTree = ""; }; - D0E1DE141C5E1C6900C7826E /* ViewTracker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewTracker.swift; sourceTree = ""; }; - D0E23DE11E808A9400B9B6D2 /* ItemCollectionIdsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollectionIdsView.swift; sourceTree = ""; }; - D0E3A74A1B28A7E300A402D9 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0E3A74E1B28A7E300A402D9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0E3A74F1B28A7E300A402D9 /* Postbox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Postbox.h; sourceTree = ""; }; - D0E3A7551B28A7E300A402D9 /* PostboxTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PostboxTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - D0E3A75B1B28A7E300A402D9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0E3A7811B28ADD000A402D9 /* Postbox.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Postbox.swift; sourceTree = ""; }; - D0E3A7831B28AE0900A402D9 /* Peer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Peer.swift; sourceTree = ""; }; - D0E3A7871B28AE9C00A402D9 /* Coding.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Coding.swift; sourceTree = ""; }; - D0E3A79D1B28B50400A402D9 /* Message.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Message.swift; sourceTree = ""; }; - D0E3A7A11B28B7DC00A402D9 /* Media.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Media.swift; sourceTree = ""; }; - D0ECCB8E1FE9EB5500609802 /* PostboxLogging.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostboxLogging.swift; sourceTree = ""; }; - D0F019FC1E1DA0CC00F05AB3 /* PeerMergedOperationLogView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerMergedOperationLogView.swift; sourceTree = ""; }; - D0F02CDE1E99223D0065DEE2 /* Upgrades.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Upgrades.swift; sourceTree = ""; }; - D0F02CE11E9922F50065DEE2 /* PostboxUpgrade_12to13.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostboxUpgrade_12to13.swift; sourceTree = ""; }; - D0F3CC711DDE1CDC008148FA /* ItemCacheTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCacheTable.swift; sourceTree = ""; }; - D0F3CC731DDE1EB9008148FA /* ItemCacheMetaTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCacheMetaTable.swift; sourceTree = ""; }; - D0F53BF21E794C6700117362 /* PeerChatStateView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerChatStateView.swift; sourceTree = ""; }; - D0F7AB311DCFAB18009AD9A1 /* PeerChatTopIndexableMessageIds.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerChatTopIndexableMessageIds.swift; sourceTree = ""; }; - D0F82CFC1E4345D7007E499C /* OrderedItemListTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderedItemListTable.swift; sourceTree = ""; }; - D0F82D0B1E439FCC007E499C /* OrderedItemListEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderedItemListEntry.swift; sourceTree = ""; }; - D0F82D0E1E43A024007E499C /* OrderedItemListIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderedItemListIndexTable.swift; sourceTree = ""; }; - D0F82D111E43B5D4007E499C /* OrderedItemListTableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OrderedItemListTableTests.swift; sourceTree = ""; }; - D0F9E85A1C565EBB00037222 /* MessageMediaTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageMediaTable.swift; sourceTree = ""; }; - D0F9E8601C57766A00037222 /* MessageHistoryTableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageHistoryTableTests.swift; sourceTree = ""; }; - D0F9E8641C58CB7F00037222 /* ChatListTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListTable.swift; sourceTree = ""; }; - D0F9E8661C58D08900037222 /* ChatListIndexTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListIndexTable.swift; sourceTree = ""; }; - D0F9E8681C58FA9300037222 /* ChatListTableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListTableTests.swift; sourceTree = ""; }; - D0F9E86A1C59719800037222 /* ChatListView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListView.swift; sourceTree = ""; }; - D0F9E86C1C5A0E5D00037222 /* MetadataTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MetadataTable.swift; sourceTree = ""; }; - D0F9E86E1C5A0E7600037222 /* KeychainTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeychainTable.swift; sourceTree = ""; }; - D0F9E8701C5A0E9B00037222 /* PeerTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerTable.swift; sourceTree = ""; }; - D0F9E8721C5A1EE500037222 /* GlobalMessageIdsTable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalMessageIdsTable.swift; sourceTree = ""; }; - D0F9E8741C5A334100037222 /* SimpleDictionary.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SimpleDictionary.swift; sourceTree = ""; }; - D0FA0AC61E77F0A2005BB9B7 /* ItemCollectionInfosView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemCollectionInfosView.swift; sourceTree = ""; }; - D0FA0AC91E780A26005BB9B7 /* PostboxView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostboxView.swift; sourceTree = ""; }; - D0FA0ACC1E781067005BB9B7 /* Views.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Views.swift; sourceTree = ""; }; - D0FC1949201E8EAF00FEDBB2 /* MediaBoxFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaBoxFile.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - D0B4180F1D7DFAF2004562A4 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E463D2306E0F60049C28B /* crc32mac.framework in Frameworks */, - D03E462C2306E01C0049C28B /* sqlciphermac.framework in Frameworks */, - D0B418611D7DFE95004562A4 /* SwiftSignalKitMac.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0E3A7461B28A7E300A402D9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E457F2305CD130049C28B /* Foundation.framework in Frameworks */, - D03E457D2305CD090049C28B /* Crc32.framework in Frameworks */, - D03E45572305C7C90049C28B /* sqlcipher.framework in Frameworks */, - D0C07F6A1B67DB4800966E43 /* SwiftSignalKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0E3A7521B28A7E300A402D9 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D0E3A7561B28A7E300A402D9 /* Postbox.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - D0105D69218362D9007C04A7 /* Temp Box */ = { - isa = PBXGroup; - children = ( - D0105D6A218362F2007C04A7 /* TempBox.swift */, - ); - name = "Temp Box"; - sourceTree = ""; - }; - D05F09981C9CAC1100BB6F96 /* Media Box */ = { - isa = PBXGroup; - children = ( - D055BD321B7D3D2D00F06C0A /* MediaBox.swift */, - D05F09A51C9E9F9300BB6F96 /* MediaResourceStatus.swift */, - D0CE63F51CA1CCB2002BC462 /* MediaResource.swift */, - D0FC1949201E8EAF00FEDBB2 /* MediaBoxFile.swift */, - D018BE54218B9AA900C02DDC /* TimeBasedCleanup.swift */, - ); - name = "Media Box"; - sourceTree = ""; - }; - D0633D02225B988E003DD95F /* Peer History */ = { - isa = PBXGroup; - children = ( - D003E4E51B38DBDB00C22CBC /* MessageHistoryView.swift */, - D0633D03225B98B1003DD95F /* AdditionalMessageHistoryViewData.swift */, - D0633D06225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift */, - D0633D09225BAD66003DD95F /* MessageHistoryAnchorIndex.swift */, - D0633D0C225BC9EF003DD95F /* MessageHistoryViewState.swift */, - ); - name = "Peer History"; - sourceTree = ""; - }; - D07515FC1B2C44A200AE42E0 /* thirdparty */ = { - isa = PBXGroup; - children = ( - D098C6F01D7E11E9007784E4 /* Database.swift */, - ); - name = thirdparty; - sourceTree = ""; - }; - D0B418141D7DFAF3004562A4 /* PostboxMac */ = { - isa = PBXGroup; - children = ( - D0B418151D7DFAF3004562A4 /* PostboxMac.h */, - D0B418161D7DFAF3004562A4 /* Info.plist */, - ); - path = PostboxMac; - sourceTree = ""; - }; - D0B4185F1D7DFE95004562A4 /* Frameworks */ = { - isa = PBXGroup; - children = ( - D03E463C2306E0F60049C28B /* crc32mac.framework */, - D03E462B2306E01C0049C28B /* sqlciphermac.framework */, - D03E457E2305CD130049C28B /* Foundation.framework */, - D03E457C2305CD090049C28B /* Crc32.framework */, - D03E457A2305CD000049C28B /* Crc32.framework */, - D03E45562305C7C90049C28B /* sqlcipher.framework */, - D0B418601D7DFE95004562A4 /* SwiftSignalKitMac.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - D0BEAF651E54B32B00BD963D /* Account Manager */ = { - isa = PBXGroup; - children = ( - D0BEAF621E54B2FA00BD963D /* AccountManager.swift */, - D0BEAF661E54B33900BD963D /* AccountRecord.swift */, - D0BEAF691E54B5FB00BD963D /* AccountManagerMetadataTable.swift */, - D0BEAF6C1E54B77900BD963D /* AccountManagerRecordTable.swift */, - D05D8B33218F1EBB0064586F /* AccountManagerSharedDataTable.swift */, - D0BEAF6F1E54BC1E00BD963D /* AccountRecordsView.swift */, - D05D8B30218F1D3D0064586F /* AccountSharedData.swift */, - D0575AE21E9ECBB2006F2541 /* AccessChallengeDataView.swift */, - D000CAD922006C6C0011B15D /* SharedAccountMediaManager.swift */, - D06ECFC420B796DC00C576C2 /* NoticeEntryView.swift */, - D0439B3E2289F6300067E026 /* AccountManagerAtomicState.swift */, - ); - name = "Account Manager"; - sourceTree = ""; - }; - D0DA443F1E4C7834005FDCA7 /* Upgrade */ = { - isa = PBXGroup; - children = ( - D0F02CDE1E99223D0065DEE2 /* Upgrades.swift */, - D0F02CE11E9922F50065DEE2 /* PostboxUpgrade_12to13.swift */, - D0CE8CF21F70249400AA2DB0 /* PostboxUpgrade_13to14.swift */, - D0943B011FDB01D8001522CC /* PostboxUpgrade_14to15.swift */, - D048B33C203C838500038D05 /* PostboxUpgrade_15to16.swift */, - D001388520BD942B007C9721 /* PostboxUpgrade_16to17.swift */, - D0119CAC20C9E7A100895300 /* PostboxUpgrade_17to18.swift */, - D03387512242E32A007A2CE4 /* PostboxUpgrade_18to19.swift */, - D01E79E72248F661005237FE /* PostboxUpgrade_19to20.swift */, - D07E7B44224E227100BB053B /* PostboxUpgrade_20to21.swift */, - D07E7B47224E562C00BB053B /* PostboxUpgrade_21to22.swift */, - D015E05B2263BB3B00CB9E8A /* PostboxUpgrade_22to23.swift */, - D040CA6322665370007123CE /* PostboxUpgrade_23to24.swift */, - D0CA8E4D2272130B008A74C3 /* PostboxUpgrade_24to25.swift */, - ); - name = Upgrade; - sourceTree = ""; - }; - D0E1DE161C5EB06000C7826E /* Tables */ = { - isa = PBXGroup; - children = ( - D03BCCF71C73561C0097A291 /* Table.swift */, - D019B1CE1E2E770700F80DB3 /* MessageGloballyUniqueIdTable.swift */, - D0F9E8721C5A1EE500037222 /* GlobalMessageIdsTable.swift */, - D044CA2B1C617E2D002160FF /* MessageHistoryMetadataTable.swift */, - D08C713B1C51283C00779C0F /* MessageHistoryIndexTable.swift */, - D0CCD6272232887100EE1E08 /* MessageHistoryHoleIndexTable.swift */, - D08C713D1C512EA500779C0F /* MessageHistoryTable.swift */, - D0D510F51D63BBE100A97B8A /* MessageHistoryOperation.swift */, - D00EED1D1C81F28D00341DFF /* MessageHistoryTagsTable.swift */, - D070479F1F3CE16500F6A8D4 /* MessageHistoryTagsSummaryTable.swift */, - D0A352F41F5488E9001423DC /* InvalidatedMessageHistoryTagsSummaryTable.swift */, - D01C7EDD1EF73F71008305F1 /* MessageHistoryTextIndexTable.swift */, - D07047A11F3CE58200F6A8D4 /* PendingMessageActionsTable.swift */, - D07047A71F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift */, - D0E1D30B1ECA1F5500FCEEF1 /* GlobalMessageHistoryTagsTable.swift */, - D033A6F61C73D512006A2EAB /* MessageHistoryUnsentTable.swift */, - D0F9E8641C58CB7F00037222 /* ChatListTable.swift */, - D0F9E8661C58D08900037222 /* ChatListIndexTable.swift */, - D048B4A720A5CBE400C79D31 /* AdditionalChatListItemsTable.swift */, - D0F9E85A1C565EBB00037222 /* MessageMediaTable.swift */, - D0F9E86C1C5A0E5D00037222 /* MetadataTable.swift */, - D0F9E86E1C5A0E7600037222 /* KeychainTable.swift */, - D0F9E8701C5A0E9B00037222 /* PeerTable.swift */, - D03120FF1DA579A0006A2A60 /* PeerNotificationSettingsTable.swift */, - D06CA12B227715E70094E707 /* PeerNotificationSettingsBehaviorTable.swift */, - D06CA12E227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift */, - D0CE8CF51F703B1E00AA2DB0 /* PendingPeerNotificationSettingsIndexTable.swift */, - D03120FD1DA562E9006A2A60 /* CachedPeerDataTable.swift */, - D03120F71DA53FF4006A2A60 /* PeerPresenceTable.swift */, - D0C735271C864DF300BB3149 /* PeerChatStateTable.swift */, - D0079F591D592E8B00A27A2C /* ContactTable.swift */, - D0C674C71CBB11C600183765 /* MessageHistoryReadStateTable.swift */, - D01F7D9A1CBEC390008765C9 /* MessageHistorySynchronizeReadStateTable.swift */, - D0CA8E4422720064008A74C3 /* InvalidatedGroupMessageStatsTable.swift */, - D09ADF0B1D2EB83500C8208D /* OrderStatisticTable.swift */, - D08D451E1D5D2CA700A7428A /* RatingTable.swift */, - D021E0D51DB4FCFC00C6B04F /* ItemCollectionInfoTable.swift */, - D021E0D71DB4FD1300C6B04F /* ItemCollectionItemTable.swift */, - D07CFF821DCA909100761F81 /* PeerChatInterfaceStateTable.swift */, - D0F7AB311DCFAB18009AD9A1 /* PeerChatTopIndexableMessageIds.swift */, - D0F3CC731DDE1EB9008148FA /* ItemCacheMetaTable.swift */, - D0F3CC711DDE1CDC008148FA /* ItemCacheTable.swift */, - D07827C21E008F7300071108 /* ReverseIndexReferenceTable.swift */, - D07827C41E00B23F00071108 /* PeerNameIndexTable.swift */, - D0C0B5AA1EE1AB08000F4D2C /* ReverseAssociatedPeerTable.swift */, - D0AD23261E194D1C00A7089A /* PeerOperationLogTable.swift */, - D010B6191E1E463900C3E282 /* PeerMergedOperationLogIndexTable.swift */, - D0AD23281E196B6400A7089A /* PeerOperationLogMetadataTable.swift */, - D0AAD1B11E3266B100D5B9DE /* TimestampBasedMessageAttributesTable.swift */, - D0AAD1B01E3266B100D5B9DE /* TimestampBasedMessageAttributesIndexTable.swift */, - D08774FF1E3E3D9F00A97350 /* PreferencesTable.swift */, - D0F82CFC1E4345D7007E499C /* OrderedItemListTable.swift */, - D0F82D0E1E43A024007E499C /* OrderedItemListIndexTable.swift */, - D01C7F061EFC1ED3008305F1 /* UnorderedItemListTable.swift */, - D079FCE51F06A3170038FADE /* NoticeTable.swift */, - D046142F2004E24600EC0EF2 /* LocalMessageHistoryTagsTable.swift */, - D0B2F75C204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift */, - D015E05F2265D42400CB9E8A /* GroupMessageStatsTable.swift */, - ); - name = Tables; - sourceTree = ""; - }; - D0E1DE171C5EB06B00C7826E /* Objects */ = { - isa = PBXGroup; - children = ( - D0E3A7831B28AE0900A402D9 /* Peer.swift */, - D0E3A79D1B28B50400A402D9 /* Message.swift */, - D0D510F81D63BCC200A97B8A /* IntermediateMessage.swift */, - D0E3A7A11B28B7DC00A402D9 /* Media.swift */, - D044CA2D1C618373002160FF /* ChatListHole.swift */, - D0C674CB1CBB14A700183765 /* PeerReadState.swift */, - D0079F6A1D5B3AAB00A27A2C /* PeerNameIndexRepresentation.swift */, - D03120F91DA540F0006A2A60 /* CachedPeerData.swift */, - D0B844501DAC04FE005F29E1 /* PeerPresence.swift */, - D03120FB1DA55427006A2A60 /* PeerNotificationSettings.swift */, - D021E0D31DB4FAE100C6B04F /* ItemCollection.swift */, - D07CFF801DCA765D00761F81 /* PeerChatInterfaceState.swift */, - D00C7CD31E365C4E0080C3D5 /* PeerChatListInclusion.swift */, - D08775021E3E3E7400A97350 /* PreferencesEntry.swift */, - D0BC38711E409E670044D6FE /* RenderedPeer.swift */, - D0F82D0B1E439FCC007E499C /* OrderedItemListEntry.swift */, - D0943AF71FDAC53F001522CC /* ChatLocation.swift */, - D0C26D7D1FE3FA4E004ABF18 /* PinnedItemId.swift */, - D0CCD61E2231CE5100EE1E08 /* PeerGroup.swift */, - ); - name = Objects; - sourceTree = ""; - }; - D0E1DE181C5EB09300C7826E /* Utils */ = { - isa = PBXGroup; - children = ( - D0E3A7871B28AE9C00A402D9 /* Coding.swift */, - D0F9E8741C5A334100037222 /* SimpleDictionary.swift */, - D0C9DA381C65782500855278 /* SimpleSet.swift */, - D08CEFB31D2AD8BE0015D3BC /* RedBlackTree.swift */, - D0D949F41D35353900740E02 /* MappedFile.swift */, - D0D510FF1D64A58900A97B8A /* IpcPipe.swift */, - D07827C01E0079CB00071108 /* StringIndexTokens.swift */, - D03229ED1E6B33FD0000AF9C /* SqliteInterface.swift */, - D01BAA541ED1D70C00295217 /* ManagedFile.swift */, - D0B1671F1F9EAAA900976B40 /* OrderedList.swift */, - D0AA55121FB4C6AB00C2AB58 /* BinarySearch.swift */, - D0ECCB8E1FE9EB5500609802 /* PostboxLogging.swift */, - D021FC252024B83700C34AB7 /* FileSize.swift */, - D08B61BF22A75C21000A46A8 /* Hash.swift */, - ); - name = Utils; - sourceTree = ""; - }; - D0E1DE191C5EB0B500C7826E /* Value Box */ = { - isa = PBXGroup; - children = ( - D0977F9D1B8234DF009994B2 /* ValueBoxKey.swift */, - D0977F9B1B822DB4009994B2 /* ValueBox.swift */, - D0977F9F1B8244D7009994B2 /* SqliteValueBox.swift */, - ); - name = "Value Box"; - sourceTree = ""; - }; - D0E1DE1A1C5EB0DB00C7826E /* Views */ = { - isa = PBXGroup; - children = ( - D0633D02225B988E003DD95F /* Peer History */, - D049EAEF1E44D9B900A2CD3A /* PostboxStateView.swift */, - D07CFF841DCA99C400761F81 /* InitialMessageHistoryData.swift */, - D0F9E86A1C59719800037222 /* ChatListView.swift */, - D033A6F81C73E440006A2EAB /* UnsentMessageHistoryView.swift */, - D01F7D9C1CBF8586008765C9 /* SynchronizePeerReadStatesView.swift */, - D0079F621D5A242500A27A2C /* ContactPeerIdsView.swift */, - D0079F641D5A457A00A27A2C /* ContactPeersView.swift */, - D0AB0B8B1D65D488002C78E7 /* MessageHistoryHolesView.swift */, - D0AB0B8D1D65D49C002C78E7 /* ChatListHolesView.swift */, - D0AB0B8F1D65D4AB002C78E7 /* UnsentMessageIndicesView.swift */, - D0DF0C8E1D81A350008AEB01 /* PeerView.swift */, - D021E0DB1DB5237C00C6B04F /* ItemCollectionsView.swift */, - D0FA0AC61E77F0A2005BB9B7 /* ItemCollectionInfosView.swift */, - D0E23DE11E808A9400B9B6D2 /* ItemCollectionIdsView.swift */, - D0BE38381E7C1FD4000079AF /* ItemCollectionInfoView.swift */, - D0A18D661E16874D004C6734 /* UnreadMessageCountsView.swift */, - D0F019FC1E1DA0CC00F05AB3 /* PeerMergedOperationLogView.swift */, - D0AAD1B41E32673C00D5B9DE /* TimestampBasedMessageAttributesView.swift */, - D00C7CE21E37861C0080C3D5 /* MessageView.swift */, - D08775051E3E3F2100A97350 /* PreferencesView.swift */, - D0BC386B1E3FCEE50044D6FE /* MultiplePeersView.swift */, - D087C20B1E43C11C00D686F8 /* OrderedItemListView.swift */, - D0FA0AC91E780A26005BB9B7 /* PostboxView.swift */, - D0FA0ACC1E781067005BB9B7 /* Views.swift */, - D0F53BF21E794C6700117362 /* PeerChatStateView.swift */, - D0E1D30E1ECA53F900FCEEF1 /* GlobalMessageTagsView.swift */, - D07047A41F3CF63800F6A8D4 /* MessageHistoryTagSummaryView.swift */, - D07047AA1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift */, - D0A352F71F549D95001423DC /* InvalidatedMessageHistoryTagSummariesView.swift */, - D07047B01F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift */, - D0C27B441F4B598200A4E170 /* CachedPeerDataView.swift */, - D0AE3EBB1F68261B0069BC90 /* PeerNotificationSettingsView.swift */, - D0DA1D2E1F70419D0034E892 /* PendingPeerNotificationSettingsView.swift */, - D0B166E91F9D142A00976B40 /* MessageOfInterestHolesView.swift */, - D04614322004F2CC00EC0EF2 /* LocalMessageTagsView.swift */, - D0BE3033206026C800FBE6D8 /* MessagesView.swift */, - D048B4AE20A5EEAE00C79D31 /* AdditionalChatListItemsView.swift */, - D037178A20D923CA004773C8 /* CachedItemView.swift */, - D039FB1A21714D9800BD1BAD /* PeerPresencesView.swift */, - D0CA8E47227208FE008A74C3 /* SynchronizeGroupMessageStatsView.swift */, - D06CA13122772DE40094E707 /* PeerNotificationSettingsBehaviorTimestampView.swift */, - D0E1199F229834BC008CAE3A /* MutablePeerChatInclusionView.swift */, - D0BFE51C22AFD5AF00143D08 /* MutableBasicPeerView.swift */, - ); - name = Views; - sourceTree = ""; - }; - D0E3A7401B28A7E300A402D9 = { - isa = PBXGroup; - children = ( - D0C07F691B67DB4800966E43 /* SwiftSignalKit.framework */, - D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */, - D0E3A74C1B28A7E300A402D9 /* Postbox */, - D0E3A7591B28A7E300A402D9 /* PostboxTests */, - D0B418141D7DFAF3004562A4 /* PostboxMac */, - D0E3A74B1B28A7E300A402D9 /* Products */, - D0B4185F1D7DFE95004562A4 /* Frameworks */, - ); - sourceTree = ""; - }; - D0E3A74B1B28A7E300A402D9 /* Products */ = { - isa = PBXGroup; - children = ( - D0E3A74A1B28A7E300A402D9 /* Postbox.framework */, - D0E3A7551B28A7E300A402D9 /* PostboxTests.xctest */, - D0B418131D7DFAF2004562A4 /* PostboxMac.framework */, - ); - name = Products; - sourceTree = ""; - }; - D0E3A74C1B28A7E300A402D9 /* Postbox */ = { - isa = PBXGroup; - children = ( - D0DA443F1E4C7834005FDCA7 /* Upgrade */, - D07515FC1B2C44A200AE42E0 /* thirdparty */, - D0E1DE181C5EB09300C7826E /* Utils */, - D0E1DE171C5EB06B00C7826E /* Objects */, - D0E1DE191C5EB0B500C7826E /* Value Box */, - D0E1DE161C5EB06000C7826E /* Tables */, - D0E1DE1A1C5EB0DB00C7826E /* Views */, - D0105D69218362D9007C04A7 /* Temp Box */, - D05F09981C9CAC1100BB6F96 /* Media Box */, - D0E3A7811B28ADD000A402D9 /* Postbox.swift */, - D0DA44471E4C7D1E005FDCA7 /* PostboxAccess.swift */, - D044CA291C617D39002160FF /* SeedConfiguration.swift */, - D0D510F31D63BA8400A97B8A /* PostboxTransaction.swift */, - D0E1DE141C5E1C6900C7826E /* ViewTracker.swift */, - D0BEAF651E54B32B00BD963D /* Account Manager */, - D0E3A74D1B28A7E300A402D9 /* Supporting Files */, - ); - path = Postbox; - sourceTree = ""; - }; - D0E3A74D1B28A7E300A402D9 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D044E1611B2AD667001EE087 /* MurMurHash32.h */, - D044E1621B2AD677001EE087 /* MurMurHash32.m */, - D0E3A74F1B28A7E300A402D9 /* Postbox.h */, - D0E3A74E1B28A7E300A402D9 /* Info.plist */, - D0D511031D64D75200A97B8A /* IpcNotifier.h */, - D0D511011D64D73D00A97B8A /* IpcNotifier.mm */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D0E3A7591B28A7E300A402D9 /* PostboxTests */ = { - isa = PBXGroup; - children = ( - D0E3A75A1B28A7E300A402D9 /* Supporting Files */, - D044E15D1B2ACB9C001EE087 /* CodingTests.swift */, - D0A7D9441C556CFE0016A115 /* MessageHistoryIndexTableTests.swift */, - D0F9E8601C57766A00037222 /* MessageHistoryTableTests.swift */, - D0F9E8681C58FA9300037222 /* ChatListTableTests.swift */, - D0C8FCB61C5C2D200028C27F /* MessageHistoryViewTests.swift */, - D060B77A1CF4845A0050BE9B /* ReadStateTableTests.swift */, - D02EB8061D2B07F300D07ED3 /* OrderStatisticTreeTests.swift */, - D0D949F21D35302600740E02 /* RandomAccessResourceTests.swift */, - D0F82D111E43B5D4007E499C /* OrderedItemListTableTests.swift */, - ); - path = PostboxTests; - sourceTree = ""; - }; - D0E3A75A1B28A7E300A402D9 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D0E3A75B1B28A7E300A402D9 /* Info.plist */, - D033871E223554DE007A2CE4 /* HoleOperationsVector1.json */, - D03387202236C239007A2CE4 /* HoleOperationsVector2.json */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - D0B418101D7DFAF2004562A4 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D0B4185B1D7DFE2C004562A4 /* MurMurHash32.h in Headers */, - D0B418171D7DFAF3004562A4 /* PostboxMac.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0E3A7471B28A7E300A402D9 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D0E3A7501B28A7E300A402D9 /* Postbox.h in Headers */, - D044E1641B2AD718001EE087 /* MurMurHash32.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - D0B418121D7DFAF2004562A4 /* PostboxMac */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0B4181B1D7DFAF3004562A4 /* Build configuration list for PBXNativeTarget "PostboxMac" */; - buildPhases = ( - D0B4180E1D7DFAF2004562A4 /* Sources */, - D0B4180F1D7DFAF2004562A4 /* Frameworks */, - D0B418101D7DFAF2004562A4 /* Headers */, - D0B418111D7DFAF2004562A4 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PostboxMac; - productName = PostboxMac; - productReference = D0B418131D7DFAF2004562A4 /* PostboxMac.framework */; - productType = "com.apple.product-type.framework"; - }; - D0E3A7491B28A7E300A402D9 /* Postbox */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0E3A7601B28A7E300A402D9 /* Build configuration list for PBXNativeTarget "Postbox" */; - buildPhases = ( - D0E3A7451B28A7E300A402D9 /* Sources */, - D0E3A7461B28A7E300A402D9 /* Frameworks */, - D0E3A7471B28A7E300A402D9 /* Headers */, - D0E3A7481B28A7E300A402D9 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Postbox; - productName = Postbox; - productReference = D0E3A74A1B28A7E300A402D9 /* Postbox.framework */; - productType = "com.apple.product-type.framework"; - }; - D0E3A7541B28A7E300A402D9 /* PostboxTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0E3A7631B28A7E300A402D9 /* Build configuration list for PBXNativeTarget "PostboxTests" */; - buildPhases = ( - D0E3A7511B28A7E300A402D9 /* Sources */, - D0E3A7521B28A7E300A402D9 /* Frameworks */, - D0E3A7531B28A7E300A402D9 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - D0E3A7581B28A7E300A402D9 /* PBXTargetDependency */, - ); - name = PostboxTests; - productName = PostboxTests; - productReference = D0E3A7551B28A7E300A402D9 /* PostboxTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D0E3A7411B28A7E300A402D9 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftMigration = 0700; - LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0800; - ORGANIZATIONNAME = Telegram; - TargetAttributes = { - D0B418121D7DFAF2004562A4 = { - CreatedOnToolsVersion = 8.0; - ProvisioningStyle = Manual; - }; - D0E3A7491B28A7E300A402D9 = { - CreatedOnToolsVersion = 6.3.1; - ProvisioningStyle = Manual; - }; - D0E3A7541B28A7E300A402D9 = { - CreatedOnToolsVersion = 6.3.1; - ProvisioningStyle = Manual; - }; - }; - }; - buildConfigurationList = D0E3A7441B28A7E300A402D9 /* Build configuration list for PBXProject "Postbox_Xcode" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - ); - mainGroup = D0E3A7401B28A7E300A402D9; - productRefGroup = D0E3A74B1B28A7E300A402D9 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - D0E3A7491B28A7E300A402D9 /* Postbox */, - D0E3A7541B28A7E300A402D9 /* PostboxTests */, - D0B418121D7DFAF2004562A4 /* PostboxMac */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - D0B418111D7DFAF2004562A4 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0E3A7481B28A7E300A402D9 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0E3A7531B28A7E300A402D9 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D033871F223554DE007A2CE4 /* HoleOperationsVector1.json in Resources */, - D03387212236C239007A2CE4 /* HoleOperationsVector2.json in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - D0B4180E1D7DFAF2004562A4 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 9F291C9B2264CFCC00C66267 /* (null) in Sources */, - 9F5B6E762011449F00C58B2A /* PostboxLogging.swift in Sources */, - C20EB2A31F7179DC00DD3A57 /* PeerNotificationSettingsView.swift in Sources */, - C25B56FE1F431C3300581D02 /* MessageHistoryTagsSummaryTable.swift in Sources */, - D0633D08225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift in Sources */, - D050F2661E4A5B5A00988324 /* MessageGloballyUniqueIdTable.swift in Sources */, - D03229EF1E6B33FD0000AF9C /* SqliteInterface.swift in Sources */, - D0AA55141FB4C6AB00C2AB58 /* BinarySearch.swift in Sources */, - D01C7F081EFC1ED3008305F1 /* UnorderedItemListTable.swift in Sources */, - D050F2671E4A5B5A00988324 /* TimestampBasedMessageAttributesTable.swift in Sources */, - D050F2681E4A5B5A00988324 /* TimestampBasedMessageAttributesIndexTable.swift in Sources */, - D050F2691E4A5B5A00988324 /* MultiplePeersView.swift in Sources */, - C2A315BE1E2E733900D89000 /* PeerMergedOperationLogIndexTable.swift in Sources */, - D0633D05225B98B1003DD95F /* AdditionalMessageHistoryViewData.swift in Sources */, - C2A315BF1E2E733900D89000 /* PeerMergedOperationLogView.swift in Sources */, - C2A315BD1E2E732000D89000 /* PeerOperationLogMetadataTable.swift in Sources */, - D000CADB22006C6C0011B15D /* SharedAccountMediaManager.swift in Sources */, - D0575AE41E9ECBB2006F2541 /* AccessChallengeDataView.swift in Sources */, - C2A315BC1E2E730400D89000 /* PeerOperationLogTable.swift in Sources */, - D0B2F75E204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift in Sources */, - D0C26D7F1FE3FA4E004ABF18 /* PinnedItemId.swift in Sources */, - C2AC9C131E1E5D200085C7DE /* UnreadMessageCountsView.swift in Sources */, - D0B418481D7DFE20004562A4 /* MessageHistoryView.swift in Sources */, - D0F7B1DF1E045C6A007EB8A5 /* ItemCacheMetaTable.swift in Sources */, - D0F7B1C41E045C6A007EB8A5 /* GlobalMessageIdsTable.swift in Sources */, - D073CE7E1DCBF3B4007511FD /* PeerNotificationSettings.swift in Sources */, - D0F7B1DC1E045C6A007EB8A5 /* ItemCollectionItemTable.swift in Sources */, - D0F7B1C71E045C6A007EB8A5 /* MessageHistoryTable.swift in Sources */, - D0B418571D7DFE29004562A4 /* Postbox.swift in Sources */, - D0B418251D7DFE0C004562A4 /* RedBlackTree.swift in Sources */, - D07047A31F3CE58200F6A8D4 /* PendingMessageActionsTable.swift in Sources */, - D04614342004F2CC00EC0EF2 /* LocalMessageTagsView.swift in Sources */, - D0CCD6202231CE5400EE1E08 /* PeerGroup.swift in Sources */, - D0BEAF681E54B33900BD963D /* AccountRecord.swift in Sources */, - D05D8B35218F1EBB0064586F /* AccountManagerSharedDataTable.swift in Sources */, - D06CA13322772DE40094E707 /* PeerNotificationSettingsBehaviorTimestampView.swift in Sources */, - D0F7B1C61E045C6A007EB8A5 /* MessageHistoryIndexTable.swift in Sources */, - D0F7B1CD1E045C6A007EB8A5 /* MessageMediaTable.swift in Sources */, - D0B844071DAB91B5005F29E1 /* MediaResource.swift in Sources */, - D0F7B1D71E045C6A007EB8A5 /* MessageHistoryReadStateTable.swift in Sources */, - D0B418261D7DFE0C004562A4 /* MappedFile.swift in Sources */, - D048B4A920A5CBE400C79D31 /* AdditionalChatListItemsTable.swift in Sources */, - D039FB1C21714D9800BD1BAD /* PeerPresencesView.swift in Sources */, - D073CE771DCBF3B4007511FD /* Media.swift in Sources */, - D037178C20D923CA004773C8 /* CachedItemView.swift in Sources */, - D0CA8E4622720064008A74C3 /* InvalidatedGroupMessageStatsTable.swift in Sources */, - D0A352F91F549D95001423DC /* InvalidatedMessageHistoryTagSummariesView.swift in Sources */, - D0CA8E49227208FE008A74C3 /* SynchronizeGroupMessageStatsView.swift in Sources */, - D018BE56218B9AA900C02DDC /* TimeBasedCleanup.swift in Sources */, - D07E7B46224E227100BB053B /* PostboxUpgrade_20to21.swift in Sources */, - D073CE791DCBF3B4007511FD /* ChatListHole.swift in Sources */, - D0F53BF41E794C6700117362 /* PeerChatStateView.swift in Sources */, - D06CA130227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift in Sources */, - D0F82D0D1E439FCC007E499C /* OrderedItemListEntry.swift in Sources */, - D0B418591D7DFE29004562A4 /* PostboxTransaction.swift in Sources */, - D0F7B1D21E045C6A007EB8A5 /* PeerNotificationSettingsTable.swift in Sources */, - D0E23DE31E808A9400B9B6D2 /* ItemCollectionIdsView.swift in Sources */, - D0119CAE20C9E7A100895300 /* PostboxUpgrade_17to18.swift in Sources */, - D0F7B1C91E045C6A007EB8A5 /* MessageHistoryTagsTable.swift in Sources */, - D0B418271D7DFE0C004562A4 /* IpcPipe.swift in Sources */, - D0FA0ACB1E780A26005BB9B7 /* PostboxView.swift in Sources */, - D0B4184D1D7DFE20004562A4 /* ContactPeersView.swift in Sources */, - D00C7CE41E37861C0080C3D5 /* MessageView.swift in Sources */, - D08775011E3E3D9F00A97350 /* PreferencesTable.swift in Sources */, - D0F7B1CC1E045C6A007EB8A5 /* ChatListIndexTable.swift in Sources */, - D07047A61F3CF63800F6A8D4 /* MessageHistoryTagSummaryView.swift in Sources */, - D0F7B1D31E045C6A007EB8A5 /* CachedPeerDataTable.swift in Sources */, - D079FCE71F06A31C0038FADE /* NoticeTable.swift in Sources */, - D0F7B1D51E045C6A007EB8A5 /* PeerChatStateTable.swift in Sources */, - D0F82CFE1E4345D7007E499C /* OrderedItemListTable.swift in Sources */, - D0F7B1C51E045C6A007EB8A5 /* MessageHistoryMetadataTable.swift in Sources */, - D0CE8CF71F703B1E00AA2DB0 /* PendingPeerNotificationSettingsIndexTable.swift in Sources */, - D0E1D3101ECA53F900FCEEF1 /* GlobalMessageTagsView.swift in Sources */, - D08775071E3E3F2100A97350 /* PreferencesView.swift in Sources */, - D049EAF11E44D9B900A2CD3A /* PostboxStateView.swift in Sources */, - D0AAD1B61E32673C00D5B9DE /* TimestampBasedMessageAttributesView.swift in Sources */, - D0F7B1C31E045C6A007EB8A5 /* Table.swift in Sources */, - D06ECFC620B796DC00C576C2 /* NoticeEntryView.swift in Sources */, - D0F82D101E43A024007E499C /* OrderedItemListIndexTable.swift in Sources */, - D0F7B1CF1E045C6A007EB8A5 /* MetadataTable.swift in Sources */, - D0FA0ACE1E781067005BB9B7 /* Views.swift in Sources */, - D0B418501D7DFE20004562A4 /* UnsentMessageIndicesView.swift in Sources */, - D0BEAF641E54B2FA00BD963D /* AccountManager.swift in Sources */, - D015E0612265D42400CB9E8A /* GroupMessageStatsTable.swift in Sources */, - D021FC272024B83700C34AB7 /* FileSize.swift in Sources */, - D073CE7F1DCBF3B4007511FD /* ItemCollection.swift in Sources */, - D07047B21F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift in Sources */, - D0F7B1D91E045C6A007EB8A5 /* OrderStatisticTable.swift in Sources */, - D0FC194B201E8EAF00FEDBB2 /* MediaBoxFile.swift in Sources */, - D073CEA01DCBF3C1007511FD /* ItemCollectionsView.swift in Sources */, - D0439B402289F6300067E026 /* AccountManagerAtomicState.swift in Sources */, - D0BE383A1E7C1FD4000079AF /* ItemCollectionInfoView.swift in Sources */, - D0B418491D7DFE20004562A4 /* ChatListView.swift in Sources */, - D048B33E203C838500038D05 /* PostboxUpgrade_15to16.swift in Sources */, - D0F7B1D61E045C6A007EB8A5 /* ContactTable.swift in Sources */, - D0943B031FDB01D8001522CC /* PostboxUpgrade_14to15.swift in Sources */, - D0F7B1D11E045C6A007EB8A5 /* PeerTable.swift in Sources */, - D04614312004E24600EC0EF2 /* LocalMessageHistoryTagsTable.swift in Sources */, - D0F7B1DD1E045C6A007EB8A5 /* PeerChatInterfaceStateTable.swift in Sources */, - D098C6F21D7E1201007784E4 /* Database.swift in Sources */, - D07E7B49224E562C00BB053B /* PostboxUpgrade_21to22.swift in Sources */, - D0BFE51E22AFD5AF00143D08 /* MutableBasicPeerView.swift in Sources */, - D0B844061DAB91B5005F29E1 /* MediaResourceStatus.swift in Sources */, - D0F7B1DB1E045C6A007EB8A5 /* ItemCollectionInfoTable.swift in Sources */, - D0F7B1D41E045C6A007EB8A5 /* PeerPresenceTable.swift in Sources */, - D073CE761DCBF3B4007511FD /* IntermediateMessage.swift in Sources */, - D0FA0AC81E77F0A2005BB9B7 /* ItemCollectionInfosView.swift in Sources */, - D0B4185A1D7DFE29004562A4 /* ViewTracker.swift in Sources */, - D0F7B1E21E045C6A007EB8A5 /* PeerNameIndexTable.swift in Sources */, - D0E1D30D1ECA1F5500FCEEF1 /* GlobalMessageHistoryTagsTable.swift in Sources */, - D06CA12D227715E70094E707 /* PeerNotificationSettingsBehaviorTable.swift in Sources */, - D073CE7C1DCBF3B4007511FD /* CachedPeerData.swift in Sources */, - D0E119A1229834BC008CAE3A /* MutablePeerChatInclusionView.swift in Sources */, - D0F7B1DA1E045C6A007EB8A5 /* RatingTable.swift in Sources */, - D0BEAF711E54BC1E00BD963D /* AccountRecordsView.swift in Sources */, - D073CE9F1DCBF3C1007511FD /* InitialMessageHistoryData.swift in Sources */, - D0A352F61F5488E9001423DC /* InvalidatedMessageHistoryTagsSummaryTable.swift in Sources */, - D0BC38731E409E670044D6FE /* RenderedPeer.swift in Sources */, - D0F7B1DE1E045C6A007EB8A5 /* PeerChatTopIndexableMessageIds.swift in Sources */, - D0B4184A1D7DFE20004562A4 /* UnsentMessageHistoryView.swift in Sources */, - D0B418231D7DFE0C004562A4 /* SimpleDictionary.swift in Sources */, - D0B4185C1D7DFE2F004562A4 /* MurMurHash32.m in Sources */, - D0F7B1E01E045C6A007EB8A5 /* ItemCacheTable.swift in Sources */, - D07047A91F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift in Sources */, - D0DA1D301F70419D0034E892 /* PendingPeerNotificationSettingsView.swift in Sources */, - D0F7B1E11E045C6A007EB8A5 /* ReverseIndexReferenceTable.swift in Sources */, - D0CCD6292232887100EE1E08 /* MessageHistoryHoleIndexTable.swift in Sources */, - D0B418241D7DFE0C004562A4 /* SimpleSet.swift in Sources */, - D0CA8E4F2272130B008A74C3 /* PostboxUpgrade_24to25.swift in Sources */, - D073CE7B1DCBF3B4007511FD /* PeerNameIndexRepresentation.swift in Sources */, - D073CE7D1DCBF3B4007511FD /* PeerPresence.swift in Sources */, - D048B4B020A5EEAE00C79D31 /* AdditionalChatListItemsView.swift in Sources */, - D0BE3035206026C800FBE6D8 /* MessagesView.swift in Sources */, - D0B4184C1D7DFE20004562A4 /* ContactPeerIdsView.swift in Sources */, - D0DA44491E4C7D1E005FDCA7 /* PostboxAccess.swift in Sources */, - D0B167211F9EAAA900976B40 /* OrderedList.swift in Sources */, - D0CE8CF41F70249400AA2DB0 /* PostboxUpgrade_13to14.swift in Sources */, - D073CE751DCBF3B4007511FD /* Message.swift in Sources */, - D0943AF91FDAC540001522CC /* ChatLocation.swift in Sources */, - D087C20D1E43C11C00D686F8 /* OrderedItemListView.swift in Sources */, - D00C7CD51E365C4E0080C3D5 /* PeerChatListInclusion.swift in Sources */, - D0F7B1CB1E045C6A007EB8A5 /* ChatListTable.swift in Sources */, - D0B166EB1F9D142A00976B40 /* MessageOfInterestHolesView.swift in Sources */, - D0F7B1C01E045C62007EB8A5 /* StringIndexTokens.swift in Sources */, - D07047AC1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift in Sources */, - D0F7B1CA1E045C6A007EB8A5 /* MessageHistoryUnsentTable.swift in Sources */, - D03387532242E32B007A2CE4 /* PostboxUpgrade_18to19.swift in Sources */, - D01BAA561ED1D70C00295217 /* ManagedFile.swift in Sources */, - D0BEAF6B1E54B5FB00BD963D /* AccountManagerMetadataTable.swift in Sources */, - D0F02CE01E99223E0065DEE2 /* Upgrades.swift in Sources */, - D0F7B1D01E045C6A007EB8A5 /* KeychainTable.swift in Sources */, - D0BEAF6E1E54B77900BD963D /* AccountManagerRecordTable.swift in Sources */, - D0B4184F1D7DFE20004562A4 /* ChatListHolesView.swift in Sources */, - D01E79E92248F661005237FE /* PostboxUpgrade_19to20.swift in Sources */, - D0105D6C218362F2007C04A7 /* TempBox.swift in Sources */, - D0F7B1D81E045C6A007EB8A5 /* MessageHistorySynchronizeReadStateTable.swift in Sources */, - D0B418581D7DFE29004562A4 /* SeedConfiguration.swift in Sources */, - D0B418311D7DFE16004562A4 /* ValueBox.swift in Sources */, - D0633D0E225BC9EF003DD95F /* MessageHistoryViewState.swift in Sources */, - D08775041E3E3E7400A97350 /* PreferencesEntry.swift in Sources */, - D0B4184E1D7DFE20004562A4 /* MessageHistoryHolesView.swift in Sources */, - D0C0B5AC1EE1AB08000F4D2C /* ReverseAssociatedPeerTable.swift in Sources */, - D0633D0B225BAD66003DD95F /* MessageHistoryAnchorIndex.swift in Sources */, - D015E05D2263BB3B00CB9E8A /* PostboxUpgrade_22to23.swift in Sources */, - D0B844051DAB91B5005F29E1 /* MediaBox.swift in Sources */, - D0B418321D7DFE16004562A4 /* SqliteValueBox.swift in Sources */, - D040CA6522665370007123CE /* PostboxUpgrade_23to24.swift in Sources */, - D073CE741DCBF3B4007511FD /* Peer.swift in Sources */, - D073CE7A1DCBF3B4007511FD /* PeerReadState.swift in Sources */, - D0F02CE31E9922F50065DEE2 /* PostboxUpgrade_12to13.swift in Sources */, - D0C27B461F4B598200A4E170 /* CachedPeerDataView.swift in Sources */, - D073CE801DCBF3B4007511FD /* PeerChatInterfaceState.swift in Sources */, - D0F7B1C81E045C6A007EB8A5 /* MessageHistoryOperation.swift in Sources */, - D0B844031DAB91A7005F29E1 /* PeerView.swift in Sources */, - D0B418301D7DFE16004562A4 /* ValueBoxKey.swift in Sources */, - D001388720BD942B007C9721 /* PostboxUpgrade_16to17.swift in Sources */, - D08B61C122A75C21000A46A8 /* Hash.swift in Sources */, - D0B418221D7DFE0C004562A4 /* Coding.swift in Sources */, - D0B4184B1D7DFE20004562A4 /* SynchronizePeerReadStatesView.swift in Sources */, - D01C7EDF1EF73F71008305F1 /* MessageHistoryTextIndexTable.swift in Sources */, - D05D8B32218F1D3D0064586F /* AccountSharedData.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0E3A7451B28A7E300A402D9 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D08775061E3E3F2100A97350 /* PreferencesView.swift in Sources */, - D0CE8CF61F703B1E00AA2DB0 /* PendingPeerNotificationSettingsIndexTable.swift in Sources */, - D03229EE1E6B33FD0000AF9C /* SqliteInterface.swift in Sources */, - D01C7F071EFC1ED3008305F1 /* UnorderedItemListTable.swift in Sources */, - D0633D07225B98FC003DD95F /* MessageHistoryViewEntryAttributes.swift in Sources */, - D021FC262024B83700C34AB7 /* FileSize.swift in Sources */, - D0439B3F2289F6300067E026 /* AccountManagerAtomicState.swift in Sources */, - D0AA55131FB4C6AB00C2AB58 /* BinarySearch.swift in Sources */, - D0943AF81FDAC53F001522CC /* ChatLocation.swift in Sources */, - D0F3CC741DDE1EB9008148FA /* ItemCacheMetaTable.swift in Sources */, - D08D451F1D5D2CA700A7428A /* RatingTable.swift in Sources */, - D07CFF831DCA909100761F81 /* PeerChatInterfaceStateTable.swift in Sources */, - D0DA1D2F1F70419D0034E892 /* PendingPeerNotificationSettingsView.swift in Sources */, - D0F9E86F1C5A0E7600037222 /* KeychainTable.swift in Sources */, - D0633D04225B98B1003DD95F /* AdditionalMessageHistoryViewData.swift in Sources */, - D0E3A7821B28ADD000A402D9 /* Postbox.swift in Sources */, - D0575AE31E9ECBB2006F2541 /* AccessChallengeDataView.swift in Sources */, - D0CE8CF31F70249400AA2DB0 /* PostboxUpgrade_13to14.swift in Sources */, - D0E3A79E1B28B50400A402D9 /* Message.swift in Sources */, - D000CADA22006C6C0011B15D /* SharedAccountMediaManager.swift in Sources */, - D0C674C81CBB11C600183765 /* MessageHistoryReadStateTable.swift in Sources */, - D0DF0C8F1D81A350008AEB01 /* PeerView.swift in Sources */, - D0B2F75D204F551D00D3BFB9 /* DeviceContactImportInfoTable.swift in Sources */, - D0079F651D5A457A00A27A2C /* ContactPeersView.swift in Sources */, - D08CEFB41D2AD8BE0015D3BC /* RedBlackTree.swift in Sources */, - D0F82D0C1E439FCC007E499C /* OrderedItemListEntry.swift in Sources */, - D03120FE1DA562E9006A2A60 /* CachedPeerDataTable.swift in Sources */, - D044CA2E1C618373002160FF /* ChatListHole.swift in Sources */, - D044E1631B2AD677001EE087 /* MurMurHash32.m in Sources */, - D0BEAF671E54B33900BD963D /* AccountRecord.swift in Sources */, - D021E0D61DB4FCFC00C6B04F /* ItemCollectionInfoTable.swift in Sources */, - D0079F6B1D5B3AAB00A27A2C /* PeerNameIndexRepresentation.swift in Sources */, - D07047A81F3DA8D700F6A8D4 /* PendingMessageActionsMetadataTable.swift in Sources */, - D0CCD61F2231CE5100EE1E08 /* PeerGroup.swift in Sources */, - D044CA2A1C617D39002160FF /* SeedConfiguration.swift in Sources */, - D07CFF811DCA765D00761F81 /* PeerChatInterfaceState.swift in Sources */, - D06CA13222772DE40094E707 /* PeerNotificationSettingsBehaviorTimestampView.swift in Sources */, - D05D8B34218F1EBB0064586F /* AccountManagerSharedDataTable.swift in Sources */, - D00C7CE31E37861C0080C3D5 /* MessageView.swift in Sources */, - D0ECCB8F1FE9EB5500609802 /* PostboxLogging.swift in Sources */, - D01F7D9D1CBF8586008765C9 /* SynchronizePeerReadStatesView.swift in Sources */, - D0A352F81F549D95001423DC /* InvalidatedMessageHistoryTagSummariesView.swift in Sources */, - D0F53BF31E794C6700117362 /* PeerChatStateView.swift in Sources */, - D021E0D81DB4FD1300C6B04F /* ItemCollectionItemTable.swift in Sources */, - D048B4A820A5CBE400C79D31 /* AdditionalChatListItemsTable.swift in Sources */, - D039FB1B21714D9800BD1BAD /* PeerPresencesView.swift in Sources */, - D0CA8E4522720064008A74C3 /* InvalidatedGroupMessageStatsTable.swift in Sources */, - D0F9E85B1C565EBB00037222 /* MessageMediaTable.swift in Sources */, - D0CA8E48227208FE008A74C3 /* SynchronizeGroupMessageStatsView.swift in Sources */, - D037178B20D923CA004773C8 /* CachedItemView.swift in Sources */, - D049EAF01E44D9B900A2CD3A /* PostboxStateView.swift in Sources */, - D07E7B45224E227100BB053B /* PostboxUpgrade_20to21.swift in Sources */, - D018BE55218B9AA900C02DDC /* TimeBasedCleanup.swift in Sources */, - D06CA12F227720910094E707 /* PeerNotificationSettingsBehaviorIndexTable.swift in Sources */, - D0079F631D5A242500A27A2C /* ContactPeerIdsView.swift in Sources */, - D0E23DE21E808A9400B9B6D2 /* ItemCollectionIdsView.swift in Sources */, - D0AD23291E196B6400A7089A /* PeerOperationLogMetadataTable.swift in Sources */, - D015E0602265D42400CB9E8A /* GroupMessageStatsTable.swift in Sources */, - D0E1DE151C5E1C6900C7826E /* ViewTracker.swift in Sources */, - D0F9E8751C5A334100037222 /* SimpleDictionary.swift in Sources */, - D08C713E1C512EA500779C0F /* MessageHistoryTable.swift in Sources */, - D0FA0ACA1E780A26005BB9B7 /* PostboxView.swift in Sources */, - D0079F5A1D592E8B00A27A2C /* ContactTable.swift in Sources */, - D0F82CFD1E4345D7007E499C /* OrderedItemListTable.swift in Sources */, - D0AB0B8C1D65D488002C78E7 /* MessageHistoryHolesView.swift in Sources */, - D0119CAD20C9E7A100895300 /* PostboxUpgrade_17to18.swift in Sources */, - D0AAD1B51E32673C00D5B9DE /* TimestampBasedMessageAttributesView.swift in Sources */, - D010B61A1E1E463900C3E282 /* PeerMergedOperationLogIndexTable.swift in Sources */, - D0F9E8671C58D08900037222 /* ChatListIndexTable.swift in Sources */, - D079FCE61F06A3170038FADE /* NoticeTable.swift in Sources */, - D0E3A7A21B28B7DC00A402D9 /* Media.swift in Sources */, - D0E3A7881B28AE9C00A402D9 /* Coding.swift in Sources */, - D0C9DA391C65782500855278 /* SimpleSet.swift in Sources */, - D098C6F11D7E11E9007784E4 /* Database.swift in Sources */, - D0E1D30F1ECA53F900FCEEF1 /* GlobalMessageTagsView.swift in Sources */, - D0977F9E1B8234DF009994B2 /* ValueBoxKey.swift in Sources */, - D033A6F91C73E440006A2EAB /* UnsentMessageHistoryView.swift in Sources */, - D07827C31E008F7300071108 /* ReverseIndexReferenceTable.swift in Sources */, - D07047A51F3CF63800F6A8D4 /* MessageHistoryTagSummaryView.swift in Sources */, - D09ADF0C1D2EB83500C8208D /* OrderStatisticTable.swift in Sources */, - D0CE63F61CA1CCB2002BC462 /* MediaResource.swift in Sources */, - D0F82D0F1E43A024007E499C /* OrderedItemListIndexTable.swift in Sources */, - D0FA0ACD1E781067005BB9B7 /* Views.swift in Sources */, - D03121001DA579A0006A2A60 /* PeerNotificationSettingsTable.swift in Sources */, - D0BEAF631E54B2FA00BD963D /* AccountManager.swift in Sources */, - D0AD23271E194D1C00A7089A /* PeerOperationLogTable.swift in Sources */, - D06ECFC520B796DC00C576C2 /* NoticeEntryView.swift in Sources */, - D021E0D41DB4FAE100C6B04F /* ItemCollection.swift in Sources */, - D0D510F91D63BCC200A97B8A /* IntermediateMessage.swift in Sources */, - D04614332004F2CC00EC0EF2 /* LocalMessageTagsView.swift in Sources */, - D0BE38391E7C1FD4000079AF /* ItemCollectionInfoView.swift in Sources */, - D0F9E86B1C59719800037222 /* ChatListView.swift in Sources */, - D0D949F51D35353900740E02 /* MappedFile.swift in Sources */, - D003E4E61B38DBDB00C22CBC /* MessageHistoryView.swift in Sources */, - D0AB0B8E1D65D49C002C78E7 /* ChatListHolesView.swift in Sources */, - D0AAD1B21E3266B100D5B9DE /* TimestampBasedMessageAttributesIndexTable.swift in Sources */, - D07827C51E00B23F00071108 /* PeerNameIndexTable.swift in Sources */, - D03120FA1DA540F0006A2A60 /* CachedPeerData.swift in Sources */, - D0977FA01B8244D7009994B2 /* SqliteValueBox.swift in Sources */, - D07047AB1F3DD8D100F6A8D4 /* PendingMessageActionsView.swift in Sources */, - D07047A01F3CE16500F6A8D4 /* MessageHistoryTagsSummaryTable.swift in Sources */, - D0FA0AC71E77F0A2005BB9B7 /* ItemCollectionInfosView.swift in Sources */, - D0F019FD1E1DA0CC00F05AB3 /* PeerMergedOperationLogView.swift in Sources */, - D07E7B48224E562C00BB053B /* PostboxUpgrade_21to22.swift in Sources */, - D048B33D203C838500038D05 /* PostboxUpgrade_15to16.swift in Sources */, - D0F9E8651C58CB7F00037222 /* ChatListTable.swift in Sources */, - D0E1D30C1ECA1F5500FCEEF1 /* GlobalMessageHistoryTagsTable.swift in Sources */, - D0F9E8711C5A0E9B00037222 /* PeerTable.swift in Sources */, - D0BC386C1E3FCEE50044D6FE /* MultiplePeersView.swift in Sources */, - D0C26D7E1FE3FA4E004ABF18 /* PinnedItemId.swift in Sources */, - D06CA12C227715E70094E707 /* PeerNotificationSettingsBehaviorTable.swift in Sources */, - D0BEAF701E54BC1E00BD963D /* AccountRecordsView.swift in Sources */, - D07CFF851DCA99C400761F81 /* InitialMessageHistoryData.swift in Sources */, - D0A352F51F5488E9001423DC /* InvalidatedMessageHistoryTagsSummaryTable.swift in Sources */, - D087C20C1E43C11C00D686F8 /* OrderedItemListView.swift in Sources */, - D05F09A61C9E9F9300BB6F96 /* MediaResourceStatus.swift in Sources */, - D033A6F71C73D512006A2EAB /* MessageHistoryUnsentTable.swift in Sources */, - D00C7CD41E365C4E0080C3D5 /* PeerChatListInclusion.swift in Sources */, - D0A18D671E16874D004C6734 /* UnreadMessageCountsView.swift in Sources */, - D0B844511DAC04FE005F29E1 /* PeerPresence.swift in Sources */, - D07827C11E0079CB00071108 /* StringIndexTokens.swift in Sources */, - D0F3CC721DDE1CDC008148FA /* ItemCacheTable.swift in Sources */, - D0E119A0229834BC008CAE3A /* MutablePeerChatInclusionView.swift in Sources */, - D08C713C1C51283C00779C0F /* MessageHistoryIndexTable.swift in Sources */, - D019B1CF1E2E770700F80DB3 /* MessageGloballyUniqueIdTable.swift in Sources */, - D0F9E86D1C5A0E5D00037222 /* MetadataTable.swift in Sources */, - D0CCD6282232887100EE1E08 /* MessageHistoryHoleIndexTable.swift in Sources */, - D0CA8E4E2272130B008A74C3 /* PostboxUpgrade_24to25.swift in Sources */, - D0DA44481E4C7D1E005FDCA7 /* PostboxAccess.swift in Sources */, - D0B167201F9EAAA900976B40 /* OrderedList.swift in Sources */, - D048B4AF20A5EEAE00C79D31 /* AdditionalChatListItemsView.swift in Sources */, - D0BE3034206026C800FBE6D8 /* MessagesView.swift in Sources */, - D040CA6422665370007123CE /* PostboxUpgrade_23to24.swift in Sources */, - D0E3A7841B28AE0900A402D9 /* Peer.swift in Sources */, - D0D510F61D63BBE100A97B8A /* MessageHistoryOperation.swift in Sources */, - D0BC38721E409E670044D6FE /* RenderedPeer.swift in Sources */, - D08775031E3E3E7400A97350 /* PreferencesEntry.swift in Sources */, - D08B61C022A75C21000A46A8 /* Hash.swift in Sources */, - D0AB0B901D65D4AB002C78E7 /* UnsentMessageIndicesView.swift in Sources */, - D0B166EA1F9D142A00976B40 /* MessageOfInterestHolesView.swift in Sources */, - D07047A21F3CE58200F6A8D4 /* PendingMessageActionsTable.swift in Sources */, - D01BAA551ED1D70C00295217 /* ManagedFile.swift in Sources */, - D0BEAF6A1E54B5FB00BD963D /* AccountManagerMetadataTable.swift in Sources */, - D0F02CDF1E99223D0065DEE2 /* Upgrades.swift in Sources */, - D08775001E3E3D9F00A97350 /* PreferencesTable.swift in Sources */, - D0BEAF6D1E54B77900BD963D /* AccountManagerRecordTable.swift in Sources */, - D03387522242E32B007A2CE4 /* PostboxUpgrade_18to19.swift in Sources */, - D03120F81DA53FF4006A2A60 /* PeerPresenceTable.swift in Sources */, - D0F9E8731C5A1EE500037222 /* GlobalMessageIdsTable.swift in Sources */, - D0AE3EBC1F68261B0069BC90 /* PeerNotificationSettingsView.swift in Sources */, - D04614302004E24600EC0EF2 /* LocalMessageHistoryTagsTable.swift in Sources */, - D00EED1E1C81F28D00341DFF /* MessageHistoryTagsTable.swift in Sources */, - D044CA2C1C617E2D002160FF /* MessageHistoryMetadataTable.swift in Sources */, - D01E79E82248F661005237FE /* PostboxUpgrade_19to20.swift in Sources */, - D0105D6B218362F2007C04A7 /* TempBox.swift in Sources */, - D0FC194A201E8EAF00FEDBB2 /* MediaBoxFile.swift in Sources */, - D03120FC1DA55427006A2A60 /* PeerNotificationSettings.swift in Sources */, - D0943B021FDB01D8001522CC /* PostboxUpgrade_14to15.swift in Sources */, - D0F7AB321DCFAB18009AD9A1 /* PeerChatTopIndexableMessageIds.swift in Sources */, - D015E05C2263BB3B00CB9E8A /* PostboxUpgrade_22to23.swift in Sources */, - D0633D0D225BC9EF003DD95F /* MessageHistoryViewState.swift in Sources */, - D03BCCF81C73561C0097A291 /* Table.swift in Sources */, - D0C0B5AB1EE1AB08000F4D2C /* ReverseAssociatedPeerTable.swift in Sources */, - D021E0DC1DB5237C00C6B04F /* ItemCollectionsView.swift in Sources */, - D0633D0A225BAD66003DD95F /* MessageHistoryAnchorIndex.swift in Sources */, - D0C735281C864DF300BB3149 /* PeerChatStateTable.swift in Sources */, - D0AAD1B31E3266B100D5B9DE /* TimestampBasedMessageAttributesTable.swift in Sources */, - D01F7D9B1CBEC390008765C9 /* MessageHistorySynchronizeReadStateTable.swift in Sources */, - D0F02CE21E9922F50065DEE2 /* PostboxUpgrade_12to13.swift in Sources */, - D055BD331B7D3D2D00F06C0A /* MediaBox.swift in Sources */, - D0C27B451F4B598200A4E170 /* CachedPeerDataView.swift in Sources */, - D0C674CC1CBB14A700183765 /* PeerReadState.swift in Sources */, - D0D510F41D63BA8400A97B8A /* PostboxTransaction.swift in Sources */, - D0977F9C1B822DB4009994B2 /* ValueBox.swift in Sources */, - D0BFE51D22AFD5AF00143D08 /* MutableBasicPeerView.swift in Sources */, - D001388620BD942B007C9721 /* PostboxUpgrade_16to17.swift in Sources */, - D0D511001D64A58900A97B8A /* IpcPipe.swift in Sources */, - D01C7EDE1EF73F71008305F1 /* MessageHistoryTextIndexTable.swift in Sources */, - D07047B11F3DE40400F6A8D4 /* PendingMessageActionsSummaryView.swift in Sources */, - D05D8B31218F1D3D0064586F /* AccountSharedData.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0E3A7511B28A7E300A402D9 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D044E15E1B2ACB9C001EE087 /* CodingTests.swift in Sources */, - D0633D01225AA3F3003DD95F /* MessageHistoryViewTests.swift in Sources */, - D0A7D9451C556CFE0016A115 /* MessageHistoryIndexTableTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - D0E3A7581B28A7E300A402D9 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D0E3A7491B28A7E300A402D9 /* Postbox */; - targetProxy = D0E3A7571B28A7E300A402D9 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - C22069C81E8EB4BF00E82730 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyapp; - }; - C22069C91E8EB4BF00E82730 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = Postbox/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = mh_dylib; - MODULEMAP_PRIVATE_FILE = ""; - OTHER_CFLAGS = ""; - PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - STRIP_SWIFT_SYMBOLS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - }; - name = ReleaseHockeyapp; - }; - C22069CA1E8EB4BF00E82730 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - "/Users/peter/Documents/PostBoxTest/submodules/SSignalKit/build/Debug-iphoneos", - ); - INFOPLIST_FILE = PostboxTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; - }; - name = ReleaseHockeyapp; - }; - C22069CB1E8EB4BF00E82730 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = PostboxMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/Postbox/module.private-mac.modulemap"; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = ReleaseHockeyapp; - }; - D021D4F8219CB1B90064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugFork; - }; - D021D4F9219CB1B90064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = Postbox/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = mh_dylib; - MODULEMAP_PRIVATE_FILE = ""; - OTHER_CFLAGS = ""; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - STRIP_SWIFT_SYMBOLS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - }; - name = DebugFork; - }; - D021D4FA219CB1B90064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - "/Users/peter/Documents/PostBoxTest/submodules/SSignalKit/build/Debug-iphoneos", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = PostboxTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 3.0; - }; - name = DebugFork; - }; - D021D4FB219CB1B90064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - GCC_OPTIMIZATION_LEVEL = s; - INFOPLIST_FILE = PostboxMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/Postbox/module.private-mac.modulemap"; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 5.0; - }; - name = DebugFork; - }; - D0364D5122B3E385002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = HockeyappMacAlpha; - }; - D0364D5222B3E385002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = Postbox/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = mh_dylib; - MODULEMAP_PRIVATE_FILE = ""; - OTHER_CFLAGS = ""; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - STRIP_SWIFT_SYMBOLS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - }; - name = HockeyappMacAlpha; - }; - D0364D5322B3E385002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - "/Users/peter/Documents/PostBoxTest/submodules/SSignalKit/build/Debug-iphoneos", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = PostboxTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 3.0; - }; - name = HockeyappMacAlpha; - }; - D0364D5422B3E385002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - GCC_OPTIMIZATION_LEVEL = s; - INFOPLIST_FILE = PostboxMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/Postbox/module.private-mac.modulemap"; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = HockeyappMacAlpha; - }; - D079FD0C1F06BE070038FADE /* DebugAppStore */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStore; - }; - D079FD0D1F06BE070038FADE /* DebugAppStore */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = Postbox/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = mh_dylib; - MODULEMAP_PRIVATE_FILE = ""; - OTHER_CFLAGS = ""; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - STRIP_SWIFT_SYMBOLS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - }; - name = DebugAppStore; - }; - D079FD0E1F06BE070038FADE /* DebugAppStore */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - "/Users/peter/Documents/PostBoxTest/submodules/SSignalKit/build/Debug-iphoneos", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = PostboxTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 3.0; - }; - name = DebugAppStore; - }; - D079FD0F1F06BE070038FADE /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - GCC_OPTIMIZATION_LEVEL = s; - INFOPLIST_FILE = PostboxMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/Postbox/module.private-mac.modulemap"; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 5.0; - }; - name = DebugAppStore; - }; - D086A5711CC0116A00F08284 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStore; - }; - D086A5721CC0116A00F08284 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = Postbox/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = mh_dylib; - MODULEMAP_PRIVATE_FILE = ""; - OTHER_CFLAGS = ""; - PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - STRIP_SWIFT_SYMBOLS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - }; - name = ReleaseAppStore; - }; - D086A5731CC0116A00F08284 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - "/Users/peter/Documents/PostBoxTest/submodules/SSignalKit/build/Debug-iphoneos", - ); - INFOPLIST_FILE = PostboxTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 3.0; - }; - name = ReleaseAppStore; - }; - D0924FD81FE52BF1003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; - D0924FD91FE52BF1003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = Postbox/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = mh_dylib; - MODULEMAP_PRIVATE_FILE = ""; - OTHER_CFLAGS = ""; - PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - STRIP_SWIFT_SYMBOLS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - }; - name = ReleaseHockeyappInternal; - }; - D0924FDA1FE52BF1003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - "/Users/peter/Documents/PostBoxTest/submodules/SSignalKit/build/Debug-iphoneos", - ); - INFOPLIST_FILE = PostboxTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; - }; - name = ReleaseHockeyappInternal; - }; - D0924FDB1FE52BF1003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = PostboxMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/Postbox/module.private-mac.modulemap"; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = ReleaseHockeyappInternal; - }; - D0ADF924212B3AC400310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - D0ADF925212B3AC400310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = Postbox/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = mh_dylib; - MODULEMAP_PRIVATE_FILE = ""; - OTHER_CFLAGS = ""; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - STRIP_SWIFT_SYMBOLS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - }; - name = DebugAppStoreLLC; - }; - D0ADF926212B3AC400310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - "/Users/peter/Documents/PostBoxTest/submodules/SSignalKit/build/Debug-iphoneos", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = PostboxTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 3.0; - }; - name = DebugAppStoreLLC; - }; - D0ADF927212B3AC400310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - GCC_OPTIMIZATION_LEVEL = s; - INFOPLIST_FILE = PostboxMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/Postbox/module.private-mac.modulemap"; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 5.0; - }; - name = DebugAppStoreLLC; - }; - D0B418181D7DFAF3004562A4 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - GCC_OPTIMIZATION_LEVEL = s; - INFOPLIST_FILE = PostboxMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/Postbox/module.private-mac.modulemap"; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = DebugHockeyapp; - }; - D0B4181A1D7DFAF3004562A4 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = PostboxMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/Postbox/module.private-mac.modulemap"; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = ReleaseAppStore; - }; - D0CE6EE5213DC2EC00BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EE6213DC2EC00BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = Postbox/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = mh_dylib; - MODULEMAP_PRIVATE_FILE = ""; - OTHER_CFLAGS = ""; - PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - STRIP_SWIFT_SYMBOLS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EE7213DC2EC00BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - "/Users/peter/Documents/PostBoxTest/submodules/SSignalKit/build/Debug-iphoneos", - ); - INFOPLIST_FILE = PostboxTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 3.0; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EE8213DC2EC00BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = PostboxMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/Postbox/module.private-mac.modulemap"; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.PostboxMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = ReleaseAppStoreLLC; - }; - D0E3A75E1B28A7E300A402D9 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D0E3A7611B28A7E300A402D9 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEAD_CODE_STRIPPING = YES; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - INFOPLIST_FILE = Postbox/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = mh_dylib; - MODULEMAP_PRIVATE_FILE = ""; - OTHER_CFLAGS = ""; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - STRIP_SWIFT_SYMBOLS = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - }; - name = DebugHockeyapp; - }; - D0E3A7641B28A7E300A402D9 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D07516491B2D9E2500AE42E0 /* Postbox.xcconfig */; - buildSettings = { - DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - "/Users/peter/Documents/PostBoxTest/submodules/SSignalKit/build/Debug-iphoneos", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = PostboxTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 3.0; - }; - name = DebugHockeyapp; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - D0B4181B1D7DFAF3004562A4 /* Build configuration list for PBXNativeTarget "PostboxMac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0B418181D7DFAF3004562A4 /* DebugHockeyapp */, - D0364D5422B3E385002A6EF0 /* HockeyappMacAlpha */, - D021D4FB219CB1B90064BEBA /* DebugFork */, - D079FD0F1F06BE070038FADE /* DebugAppStore */, - D0ADF927212B3AC400310BBC /* DebugAppStoreLLC */, - C22069CB1E8EB4BF00E82730 /* ReleaseHockeyapp */, - D0924FDB1FE52BF1003F693F /* ReleaseHockeyappInternal */, - D0B4181A1D7DFAF3004562A4 /* ReleaseAppStore */, - D0CE6EE8213DC2EC00BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = DebugHockeyapp; - }; - D0E3A7441B28A7E300A402D9 /* Build configuration list for PBXProject "Postbox_Xcode" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0E3A75E1B28A7E300A402D9 /* DebugHockeyapp */, - D0364D5122B3E385002A6EF0 /* HockeyappMacAlpha */, - D021D4F8219CB1B90064BEBA /* DebugFork */, - D079FD0C1F06BE070038FADE /* DebugAppStore */, - D0ADF924212B3AC400310BBC /* DebugAppStoreLLC */, - C22069C81E8EB4BF00E82730 /* ReleaseHockeyapp */, - D0924FD81FE52BF1003F693F /* ReleaseHockeyappInternal */, - D086A5711CC0116A00F08284 /* ReleaseAppStore */, - D0CE6EE5213DC2EC00BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = DebugHockeyapp; - }; - D0E3A7601B28A7E300A402D9 /* Build configuration list for PBXNativeTarget "Postbox" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0E3A7611B28A7E300A402D9 /* DebugHockeyapp */, - D0364D5222B3E385002A6EF0 /* HockeyappMacAlpha */, - D021D4F9219CB1B90064BEBA /* DebugFork */, - D079FD0D1F06BE070038FADE /* DebugAppStore */, - D0ADF925212B3AC400310BBC /* DebugAppStoreLLC */, - C22069C91E8EB4BF00E82730 /* ReleaseHockeyapp */, - D0924FD91FE52BF1003F693F /* ReleaseHockeyappInternal */, - D086A5721CC0116A00F08284 /* ReleaseAppStore */, - D0CE6EE6213DC2EC00BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = DebugHockeyapp; - }; - D0E3A7631B28A7E300A402D9 /* Build configuration list for PBXNativeTarget "PostboxTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0E3A7641B28A7E300A402D9 /* DebugHockeyapp */, - D0364D5322B3E385002A6EF0 /* HockeyappMacAlpha */, - D021D4FA219CB1B90064BEBA /* DebugFork */, - D079FD0E1F06BE070038FADE /* DebugAppStore */, - D0ADF926212B3AC400310BBC /* DebugAppStoreLLC */, - C22069CA1E8EB4BF00E82730 /* ReleaseHockeyapp */, - D0924FDA1FE52BF1003F693F /* ReleaseHockeyappInternal */, - D086A5731CC0116A00F08284 /* ReleaseAppStore */, - D0CE6EE7213DC2EC00BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = DebugHockeyapp; - }; -/* End XCConfigurationList section */ - }; - rootObject = D0E3A7411B28A7E300A402D9 /* Project object */; -} diff --git a/submodules/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/submodules/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 088de55706..0000000000 --- a/submodules/Postbox/Postbox_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/submodules/Postbox/Postbox_Xcode.xcodeproj/xcshareddata/xcschemes/Postbox.xcscheme b/submodules/Postbox/Postbox_Xcode.xcodeproj/xcshareddata/xcschemes/Postbox.xcscheme deleted file mode 100644 index d00e8a8a4e..0000000000 --- a/submodules/Postbox/Postbox_Xcode.xcodeproj/xcshareddata/xcschemes/Postbox.xcscheme +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/submodules/Postbox/Postbox_Xcode.xcodeproj/xcshareddata/xcschemes/PostboxMac.xcscheme b/submodules/Postbox/Postbox_Xcode.xcodeproj/xcshareddata/xcschemes/PostboxMac.xcscheme deleted file mode 100644 index e6e0385ba2..0000000000 --- a/submodules/Postbox/Postbox_Xcode.xcodeproj/xcshareddata/xcschemes/PostboxMac.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/submodules/Postbox/Postbox_Xcode.xcodeproj/xcshareddata/xcschemes/PostboxTests.xcscheme b/submodules/Postbox/Postbox_Xcode.xcodeproj/xcshareddata/xcschemes/PostboxTests.xcscheme deleted file mode 100644 index 83d158d854..0000000000 --- a/submodules/Postbox/Postbox_Xcode.xcodeproj/xcshareddata/xcschemes/PostboxTests.xcscheme +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/submodules/Postbox/Postbox/AccessChallengeDataView.swift b/submodules/Postbox/Sources/AccessChallengeDataView.swift similarity index 100% rename from submodules/Postbox/Postbox/AccessChallengeDataView.swift rename to submodules/Postbox/Sources/AccessChallengeDataView.swift diff --git a/submodules/Postbox/Postbox/AccountManager.swift b/submodules/Postbox/Sources/AccountManager.swift similarity index 99% rename from submodules/Postbox/Postbox/AccountManager.swift rename to submodules/Postbox/Sources/AccountManager.swift index d4c4c58c90..7fd29dd977 100644 --- a/submodules/Postbox/Postbox/AccountManager.swift +++ b/submodules/Postbox/Sources/AccountManager.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import SwiftSignalKitMac -#else - import SwiftSignalKit -#endif +import SwiftSignalKit public struct AccountManagerModifier { public let getRecords: () -> [AccountRecord] diff --git a/submodules/Postbox/Postbox/AccountManagerAtomicState.swift b/submodules/Postbox/Sources/AccountManagerAtomicState.swift similarity index 100% rename from submodules/Postbox/Postbox/AccountManagerAtomicState.swift rename to submodules/Postbox/Sources/AccountManagerAtomicState.swift diff --git a/submodules/Postbox/Postbox/AccountManagerMetadataTable.swift b/submodules/Postbox/Sources/AccountManagerMetadataTable.swift similarity index 100% rename from submodules/Postbox/Postbox/AccountManagerMetadataTable.swift rename to submodules/Postbox/Sources/AccountManagerMetadataTable.swift diff --git a/submodules/Postbox/Postbox/AccountManagerRecordTable.swift b/submodules/Postbox/Sources/AccountManagerRecordTable.swift similarity index 100% rename from submodules/Postbox/Postbox/AccountManagerRecordTable.swift rename to submodules/Postbox/Sources/AccountManagerRecordTable.swift diff --git a/submodules/Postbox/Postbox/AccountManagerSharedDataTable.swift b/submodules/Postbox/Sources/AccountManagerSharedDataTable.swift similarity index 100% rename from submodules/Postbox/Postbox/AccountManagerSharedDataTable.swift rename to submodules/Postbox/Sources/AccountManagerSharedDataTable.swift diff --git a/submodules/Postbox/Postbox/AccountRecord.swift b/submodules/Postbox/Sources/AccountRecord.swift similarity index 100% rename from submodules/Postbox/Postbox/AccountRecord.swift rename to submodules/Postbox/Sources/AccountRecord.swift diff --git a/submodules/Postbox/Postbox/AccountRecordsView.swift b/submodules/Postbox/Sources/AccountRecordsView.swift similarity index 100% rename from submodules/Postbox/Postbox/AccountRecordsView.swift rename to submodules/Postbox/Sources/AccountRecordsView.swift diff --git a/submodules/Postbox/Postbox/AccountSharedData.swift b/submodules/Postbox/Sources/AccountSharedData.swift similarity index 100% rename from submodules/Postbox/Postbox/AccountSharedData.swift rename to submodules/Postbox/Sources/AccountSharedData.swift diff --git a/submodules/Postbox/Postbox/AdditionalChatListItemsTable.swift b/submodules/Postbox/Sources/AdditionalChatListItemsTable.swift similarity index 100% rename from submodules/Postbox/Postbox/AdditionalChatListItemsTable.swift rename to submodules/Postbox/Sources/AdditionalChatListItemsTable.swift diff --git a/submodules/Postbox/Postbox/AdditionalChatListItemsView.swift b/submodules/Postbox/Sources/AdditionalChatListItemsView.swift similarity index 100% rename from submodules/Postbox/Postbox/AdditionalChatListItemsView.swift rename to submodules/Postbox/Sources/AdditionalChatListItemsView.swift diff --git a/submodules/Postbox/Postbox/AdditionalMessageHistoryViewData.swift b/submodules/Postbox/Sources/AdditionalMessageHistoryViewData.swift similarity index 100% rename from submodules/Postbox/Postbox/AdditionalMessageHistoryViewData.swift rename to submodules/Postbox/Sources/AdditionalMessageHistoryViewData.swift diff --git a/submodules/Postbox/Postbox/BinarySearch.swift b/submodules/Postbox/Sources/BinarySearch.swift similarity index 100% rename from submodules/Postbox/Postbox/BinarySearch.swift rename to submodules/Postbox/Sources/BinarySearch.swift diff --git a/submodules/Postbox/Postbox/CachedItemView.swift b/submodules/Postbox/Sources/CachedItemView.swift similarity index 100% rename from submodules/Postbox/Postbox/CachedItemView.swift rename to submodules/Postbox/Sources/CachedItemView.swift diff --git a/submodules/Postbox/Postbox/CachedPeerData.swift b/submodules/Postbox/Sources/CachedPeerData.swift similarity index 100% rename from submodules/Postbox/Postbox/CachedPeerData.swift rename to submodules/Postbox/Sources/CachedPeerData.swift diff --git a/submodules/Postbox/Postbox/CachedPeerDataTable.swift b/submodules/Postbox/Sources/CachedPeerDataTable.swift similarity index 100% rename from submodules/Postbox/Postbox/CachedPeerDataTable.swift rename to submodules/Postbox/Sources/CachedPeerDataTable.swift diff --git a/submodules/Postbox/Postbox/CachedPeerDataView.swift b/submodules/Postbox/Sources/CachedPeerDataView.swift similarity index 100% rename from submodules/Postbox/Postbox/CachedPeerDataView.swift rename to submodules/Postbox/Sources/CachedPeerDataView.swift diff --git a/submodules/Postbox/Postbox/ChatListHole.swift b/submodules/Postbox/Sources/ChatListHole.swift similarity index 100% rename from submodules/Postbox/Postbox/ChatListHole.swift rename to submodules/Postbox/Sources/ChatListHole.swift diff --git a/submodules/Postbox/Postbox/ChatListHolesView.swift b/submodules/Postbox/Sources/ChatListHolesView.swift similarity index 100% rename from submodules/Postbox/Postbox/ChatListHolesView.swift rename to submodules/Postbox/Sources/ChatListHolesView.swift diff --git a/submodules/Postbox/Postbox/ChatListIndexTable.swift b/submodules/Postbox/Sources/ChatListIndexTable.swift similarity index 100% rename from submodules/Postbox/Postbox/ChatListIndexTable.swift rename to submodules/Postbox/Sources/ChatListIndexTable.swift diff --git a/submodules/Postbox/Postbox/ChatListTable.swift b/submodules/Postbox/Sources/ChatListTable.swift similarity index 100% rename from submodules/Postbox/Postbox/ChatListTable.swift rename to submodules/Postbox/Sources/ChatListTable.swift diff --git a/submodules/Postbox/Postbox/ChatListView.swift b/submodules/Postbox/Sources/ChatListView.swift similarity index 100% rename from submodules/Postbox/Postbox/ChatListView.swift rename to submodules/Postbox/Sources/ChatListView.swift diff --git a/submodules/Postbox/Postbox/ChatLocation.swift b/submodules/Postbox/Sources/ChatLocation.swift similarity index 100% rename from submodules/Postbox/Postbox/ChatLocation.swift rename to submodules/Postbox/Sources/ChatLocation.swift diff --git a/submodules/Postbox/Postbox/Coding.swift b/submodules/Postbox/Sources/Coding.swift similarity index 99% rename from submodules/Postbox/Postbox/Coding.swift rename to submodules/Postbox/Sources/Coding.swift index 0954655601..d69995fb19 100644 --- a/submodules/Postbox/Postbox/Coding.swift +++ b/submodules/Postbox/Sources/Coding.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import sqlciphermac -#else import sqlcipher -#endif public protocol PostboxCoding { init(decoder: PostboxDecoder) diff --git a/submodules/Postbox/Postbox/Config/Postbox.xcconfig b/submodules/Postbox/Sources/Config.xcconfig/Postbox.xcconfig similarity index 100% rename from submodules/Postbox/Postbox/Config/Postbox.xcconfig rename to submodules/Postbox/Sources/Config.xcconfig/Postbox.xcconfig diff --git a/submodules/Postbox/Postbox/ContactPeerIdsView.swift b/submodules/Postbox/Sources/ContactPeerIdsView.swift similarity index 100% rename from submodules/Postbox/Postbox/ContactPeerIdsView.swift rename to submodules/Postbox/Sources/ContactPeerIdsView.swift diff --git a/submodules/Postbox/Postbox/ContactPeersView.swift b/submodules/Postbox/Sources/ContactPeersView.swift similarity index 100% rename from submodules/Postbox/Postbox/ContactPeersView.swift rename to submodules/Postbox/Sources/ContactPeersView.swift diff --git a/submodules/Postbox/Postbox/ContactTable.swift b/submodules/Postbox/Sources/ContactTable.swift similarity index 100% rename from submodules/Postbox/Postbox/ContactTable.swift rename to submodules/Postbox/Sources/ContactTable.swift diff --git a/submodules/Postbox/Postbox/Database.swift b/submodules/Postbox/Sources/Database.swift similarity index 98% rename from submodules/Postbox/Postbox/Database.swift rename to submodules/Postbox/Sources/Database.swift index 337a10b5ed..a832a1f52f 100644 --- a/submodules/Postbox/Postbox/Database.swift +++ b/submodules/Postbox/Sources/Database.swift @@ -22,11 +22,7 @@ // THE SOFTWARE. // -#if os(macOS) -import sqlciphermac -#else import sqlcipher -#endif public final class Database { internal var handle: OpaquePointer? = nil diff --git a/submodules/Postbox/Postbox/DeviceContactImportInfoTable.swift b/submodules/Postbox/Sources/DeviceContactImportInfoTable.swift similarity index 100% rename from submodules/Postbox/Postbox/DeviceContactImportInfoTable.swift rename to submodules/Postbox/Sources/DeviceContactImportInfoTable.swift diff --git a/submodules/Postbox/Postbox/FileSize.swift b/submodules/Postbox/Sources/FileSize.swift similarity index 100% rename from submodules/Postbox/Postbox/FileSize.swift rename to submodules/Postbox/Sources/FileSize.swift diff --git a/submodules/Postbox/Postbox/GlobalMessageHistoryTagsTable.swift b/submodules/Postbox/Sources/GlobalMessageHistoryTagsTable.swift similarity index 100% rename from submodules/Postbox/Postbox/GlobalMessageHistoryTagsTable.swift rename to submodules/Postbox/Sources/GlobalMessageHistoryTagsTable.swift diff --git a/submodules/Postbox/Postbox/GlobalMessageIdsTable.swift b/submodules/Postbox/Sources/GlobalMessageIdsTable.swift similarity index 100% rename from submodules/Postbox/Postbox/GlobalMessageIdsTable.swift rename to submodules/Postbox/Sources/GlobalMessageIdsTable.swift diff --git a/submodules/Postbox/Postbox/GlobalMessageTagsView.swift b/submodules/Postbox/Sources/GlobalMessageTagsView.swift similarity index 100% rename from submodules/Postbox/Postbox/GlobalMessageTagsView.swift rename to submodules/Postbox/Sources/GlobalMessageTagsView.swift diff --git a/submodules/Postbox/Postbox/GroupMessageStatsTable.swift b/submodules/Postbox/Sources/GroupMessageStatsTable.swift similarity index 100% rename from submodules/Postbox/Postbox/GroupMessageStatsTable.swift rename to submodules/Postbox/Sources/GroupMessageStatsTable.swift diff --git a/submodules/Postbox/Postbox/Hash.swift b/submodules/Postbox/Sources/Hash.swift similarity index 85% rename from submodules/Postbox/Postbox/Hash.swift rename to submodules/Postbox/Sources/Hash.swift index ae94ce3fb2..7df219a841 100644 --- a/submodules/Postbox/Postbox/Hash.swift +++ b/submodules/Postbox/Sources/Hash.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import sqlciphermac -#else import sqlcipher -#endif public enum HashFunctions { public static func murMurHash32(_ s: String) -> Int32 { diff --git a/submodules/MtProtoKit/Info.plist b/submodules/Postbox/Sources/Info.plist similarity index 100% rename from submodules/MtProtoKit/Info.plist rename to submodules/Postbox/Sources/Info.plist diff --git a/submodules/Postbox/Postbox/InitialMessageHistoryData.swift b/submodules/Postbox/Sources/InitialMessageHistoryData.swift similarity index 100% rename from submodules/Postbox/Postbox/InitialMessageHistoryData.swift rename to submodules/Postbox/Sources/InitialMessageHistoryData.swift diff --git a/submodules/Postbox/Postbox/IntermediateMessage.swift b/submodules/Postbox/Sources/IntermediateMessage.swift similarity index 100% rename from submodules/Postbox/Postbox/IntermediateMessage.swift rename to submodules/Postbox/Sources/IntermediateMessage.swift diff --git a/submodules/Postbox/Postbox/InvalidatedGroupMessageStatsTable.swift b/submodules/Postbox/Sources/InvalidatedGroupMessageStatsTable.swift similarity index 100% rename from submodules/Postbox/Postbox/InvalidatedGroupMessageStatsTable.swift rename to submodules/Postbox/Sources/InvalidatedGroupMessageStatsTable.swift diff --git a/submodules/Postbox/Postbox/InvalidatedMessageHistoryTagSummariesView.swift b/submodules/Postbox/Sources/InvalidatedMessageHistoryTagSummariesView.swift similarity index 100% rename from submodules/Postbox/Postbox/InvalidatedMessageHistoryTagSummariesView.swift rename to submodules/Postbox/Sources/InvalidatedMessageHistoryTagSummariesView.swift diff --git a/submodules/Postbox/Postbox/InvalidatedMessageHistoryTagsSummaryTable.swift b/submodules/Postbox/Sources/InvalidatedMessageHistoryTagsSummaryTable.swift similarity index 100% rename from submodules/Postbox/Postbox/InvalidatedMessageHistoryTagsSummaryTable.swift rename to submodules/Postbox/Sources/InvalidatedMessageHistoryTagsSummaryTable.swift diff --git a/submodules/Postbox/Postbox/IpcNotifier.h b/submodules/Postbox/Sources/IpcNotifier.h similarity index 100% rename from submodules/Postbox/Postbox/IpcNotifier.h rename to submodules/Postbox/Sources/IpcNotifier.h diff --git a/submodules/Postbox/Postbox/IpcNotifier.mm b/submodules/Postbox/Sources/IpcNotifier.mm similarity index 100% rename from submodules/Postbox/Postbox/IpcNotifier.mm rename to submodules/Postbox/Sources/IpcNotifier.mm diff --git a/submodules/Postbox/Postbox/IpcPipe.swift b/submodules/Postbox/Sources/IpcPipe.swift similarity index 95% rename from submodules/Postbox/Postbox/IpcPipe.swift rename to submodules/Postbox/Sources/IpcPipe.swift index aeb3e74651..9c1280f61a 100644 --- a/submodules/Postbox/Postbox/IpcPipe.swift +++ b/submodules/Postbox/Sources/IpcPipe.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import SwiftSignalKitMac -#else - import SwiftSignalKit -#endif +import SwiftSignalKit func ipcNotify(basePath: String, data: Int64) { DispatchQueue.global(qos: .default).async { diff --git a/submodules/Postbox/Postbox/ItemCacheMetaTable.swift b/submodules/Postbox/Sources/ItemCacheMetaTable.swift similarity index 100% rename from submodules/Postbox/Postbox/ItemCacheMetaTable.swift rename to submodules/Postbox/Sources/ItemCacheMetaTable.swift diff --git a/submodules/Postbox/Postbox/ItemCacheTable.swift b/submodules/Postbox/Sources/ItemCacheTable.swift similarity index 100% rename from submodules/Postbox/Postbox/ItemCacheTable.swift rename to submodules/Postbox/Sources/ItemCacheTable.swift diff --git a/submodules/Postbox/Postbox/ItemCollection.swift b/submodules/Postbox/Sources/ItemCollection.swift similarity index 100% rename from submodules/Postbox/Postbox/ItemCollection.swift rename to submodules/Postbox/Sources/ItemCollection.swift diff --git a/submodules/Postbox/Postbox/ItemCollectionIdsView.swift b/submodules/Postbox/Sources/ItemCollectionIdsView.swift similarity index 100% rename from submodules/Postbox/Postbox/ItemCollectionIdsView.swift rename to submodules/Postbox/Sources/ItemCollectionIdsView.swift diff --git a/submodules/Postbox/Postbox/ItemCollectionInfoTable.swift b/submodules/Postbox/Sources/ItemCollectionInfoTable.swift similarity index 100% rename from submodules/Postbox/Postbox/ItemCollectionInfoTable.swift rename to submodules/Postbox/Sources/ItemCollectionInfoTable.swift diff --git a/submodules/Postbox/Postbox/ItemCollectionInfoView.swift b/submodules/Postbox/Sources/ItemCollectionInfoView.swift similarity index 100% rename from submodules/Postbox/Postbox/ItemCollectionInfoView.swift rename to submodules/Postbox/Sources/ItemCollectionInfoView.swift diff --git a/submodules/Postbox/Postbox/ItemCollectionInfosView.swift b/submodules/Postbox/Sources/ItemCollectionInfosView.swift similarity index 100% rename from submodules/Postbox/Postbox/ItemCollectionInfosView.swift rename to submodules/Postbox/Sources/ItemCollectionInfosView.swift diff --git a/submodules/Postbox/Postbox/ItemCollectionItemTable.swift b/submodules/Postbox/Sources/ItemCollectionItemTable.swift similarity index 100% rename from submodules/Postbox/Postbox/ItemCollectionItemTable.swift rename to submodules/Postbox/Sources/ItemCollectionItemTable.swift diff --git a/submodules/Postbox/Postbox/ItemCollectionsView.swift b/submodules/Postbox/Sources/ItemCollectionsView.swift similarity index 100% rename from submodules/Postbox/Postbox/ItemCollectionsView.swift rename to submodules/Postbox/Sources/ItemCollectionsView.swift diff --git a/submodules/Postbox/Postbox/KeychainTable.swift b/submodules/Postbox/Sources/KeychainTable.swift similarity index 100% rename from submodules/Postbox/Postbox/KeychainTable.swift rename to submodules/Postbox/Sources/KeychainTable.swift diff --git a/submodules/Postbox/Postbox/LocalMessageHistoryTagsTable.swift b/submodules/Postbox/Sources/LocalMessageHistoryTagsTable.swift similarity index 100% rename from submodules/Postbox/Postbox/LocalMessageHistoryTagsTable.swift rename to submodules/Postbox/Sources/LocalMessageHistoryTagsTable.swift diff --git a/submodules/Postbox/Postbox/LocalMessageTagsView.swift b/submodules/Postbox/Sources/LocalMessageTagsView.swift similarity index 100% rename from submodules/Postbox/Postbox/LocalMessageTagsView.swift rename to submodules/Postbox/Sources/LocalMessageTagsView.swift diff --git a/submodules/Postbox/Postbox/ManagedFile.swift b/submodules/Postbox/Sources/ManagedFile.swift similarity index 97% rename from submodules/Postbox/Postbox/ManagedFile.swift rename to submodules/Postbox/Sources/ManagedFile.swift index 52e476f3bf..5891e95e17 100644 --- a/submodules/Postbox/Postbox/ManagedFile.swift +++ b/submodules/Postbox/Sources/ManagedFile.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import SwiftSignalKitMac -#else - import SwiftSignalKit -#endif +import SwiftSignalKit public enum ManagedFileMode { case read diff --git a/submodules/Postbox/Postbox/MappedFile.swift b/submodules/Postbox/Sources/MappedFile.swift similarity index 100% rename from submodules/Postbox/Postbox/MappedFile.swift rename to submodules/Postbox/Sources/MappedFile.swift diff --git a/submodules/Postbox/Postbox/Media.swift b/submodules/Postbox/Sources/Media.swift similarity index 100% rename from submodules/Postbox/Postbox/Media.swift rename to submodules/Postbox/Sources/Media.swift diff --git a/submodules/Postbox/Postbox/MediaBox.swift b/submodules/Postbox/Sources/MediaBox.swift similarity index 99% rename from submodules/Postbox/Postbox/MediaBox.swift rename to submodules/Postbox/Sources/MediaBox.swift index 49cd9abf6c..7e6fac7fcc 100644 --- a/submodules/Postbox/Postbox/MediaBox.swift +++ b/submodules/Postbox/Sources/MediaBox.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import SwiftSignalKitMac -#else - import SwiftSignalKit -#endif +import SwiftSignalKit private final class ResourceStatusContext { var status: MediaResourceStatus? diff --git a/submodules/Postbox/Postbox/MediaBoxFile.swift b/submodules/Postbox/Sources/MediaBoxFile.swift similarity index 99% rename from submodules/Postbox/Postbox/MediaBoxFile.swift rename to submodules/Postbox/Sources/MediaBoxFile.swift index b23f0862f4..1808a46492 100644 --- a/submodules/Postbox/Postbox/MediaBoxFile.swift +++ b/submodules/Postbox/Sources/MediaBoxFile.swift @@ -1,15 +1,8 @@ import Foundation -#if os(iOS) import SwiftSignalKit -#else -import SwiftSignalKitMac -#endif -#if os(iOS) import Crc32 -#else -import crc32mac -#endif + private final class MediaBoxFileMap { fileprivate(set) var sum: Int32 diff --git a/submodules/Postbox/Postbox/MediaResource.swift b/submodules/Postbox/Sources/MediaResource.swift similarity index 100% rename from submodules/Postbox/Postbox/MediaResource.swift rename to submodules/Postbox/Sources/MediaResource.swift diff --git a/submodules/Postbox/Postbox/MediaResourceStatus.swift b/submodules/Postbox/Sources/MediaResourceStatus.swift similarity index 91% rename from submodules/Postbox/Postbox/MediaResourceStatus.swift rename to submodules/Postbox/Sources/MediaResourceStatus.swift index e63beaa4bb..189a992326 100644 --- a/submodules/Postbox/Postbox/MediaResourceStatus.swift +++ b/submodules/Postbox/Sources/MediaResourceStatus.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import SwiftSignalKitMac -#else - import SwiftSignalKit -#endif +import SwiftSignalKit public enum MediaResourceStatus: Equatable { case Remote diff --git a/submodules/Postbox/Postbox/Message.swift b/submodules/Postbox/Sources/Message.swift similarity index 100% rename from submodules/Postbox/Postbox/Message.swift rename to submodules/Postbox/Sources/Message.swift diff --git a/submodules/Postbox/Postbox/MessageGloballyUniqueIdTable.swift b/submodules/Postbox/Sources/MessageGloballyUniqueIdTable.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageGloballyUniqueIdTable.swift rename to submodules/Postbox/Sources/MessageGloballyUniqueIdTable.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryAnchorIndex.swift b/submodules/Postbox/Sources/MessageHistoryAnchorIndex.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryAnchorIndex.swift rename to submodules/Postbox/Sources/MessageHistoryAnchorIndex.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryHoleIndexTable.swift b/submodules/Postbox/Sources/MessageHistoryHoleIndexTable.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryHoleIndexTable.swift rename to submodules/Postbox/Sources/MessageHistoryHoleIndexTable.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryHolesView.swift b/submodules/Postbox/Sources/MessageHistoryHolesView.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryHolesView.swift rename to submodules/Postbox/Sources/MessageHistoryHolesView.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryIndexTable.swift b/submodules/Postbox/Sources/MessageHistoryIndexTable.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryIndexTable.swift rename to submodules/Postbox/Sources/MessageHistoryIndexTable.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryMetadataTable.swift b/submodules/Postbox/Sources/MessageHistoryMetadataTable.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryMetadataTable.swift rename to submodules/Postbox/Sources/MessageHistoryMetadataTable.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryOperation.swift b/submodules/Postbox/Sources/MessageHistoryOperation.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryOperation.swift rename to submodules/Postbox/Sources/MessageHistoryOperation.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryReadStateTable.swift b/submodules/Postbox/Sources/MessageHistoryReadStateTable.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryReadStateTable.swift rename to submodules/Postbox/Sources/MessageHistoryReadStateTable.swift diff --git a/submodules/Postbox/Postbox/MessageHistorySynchronizeReadStateTable.swift b/submodules/Postbox/Sources/MessageHistorySynchronizeReadStateTable.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistorySynchronizeReadStateTable.swift rename to submodules/Postbox/Sources/MessageHistorySynchronizeReadStateTable.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryTable.swift b/submodules/Postbox/Sources/MessageHistoryTable.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryTable.swift rename to submodules/Postbox/Sources/MessageHistoryTable.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryTagSummaryView.swift b/submodules/Postbox/Sources/MessageHistoryTagSummaryView.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryTagSummaryView.swift rename to submodules/Postbox/Sources/MessageHistoryTagSummaryView.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryTagsSummaryTable.swift b/submodules/Postbox/Sources/MessageHistoryTagsSummaryTable.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryTagsSummaryTable.swift rename to submodules/Postbox/Sources/MessageHistoryTagsSummaryTable.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryTagsTable.swift b/submodules/Postbox/Sources/MessageHistoryTagsTable.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryTagsTable.swift rename to submodules/Postbox/Sources/MessageHistoryTagsTable.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryTextIndexTable.swift b/submodules/Postbox/Sources/MessageHistoryTextIndexTable.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryTextIndexTable.swift rename to submodules/Postbox/Sources/MessageHistoryTextIndexTable.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryUnsentTable.swift b/submodules/Postbox/Sources/MessageHistoryUnsentTable.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryUnsentTable.swift rename to submodules/Postbox/Sources/MessageHistoryUnsentTable.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryView.swift b/submodules/Postbox/Sources/MessageHistoryView.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryView.swift rename to submodules/Postbox/Sources/MessageHistoryView.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryViewEntryAttributes.swift b/submodules/Postbox/Sources/MessageHistoryViewEntryAttributes.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryViewEntryAttributes.swift rename to submodules/Postbox/Sources/MessageHistoryViewEntryAttributes.swift diff --git a/submodules/Postbox/Postbox/MessageHistoryViewState.swift b/submodules/Postbox/Sources/MessageHistoryViewState.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageHistoryViewState.swift rename to submodules/Postbox/Sources/MessageHistoryViewState.swift diff --git a/submodules/Postbox/Postbox/MessageMediaTable.swift b/submodules/Postbox/Sources/MessageMediaTable.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageMediaTable.swift rename to submodules/Postbox/Sources/MessageMediaTable.swift diff --git a/submodules/Postbox/Postbox/MessageOfInterestHolesView.swift b/submodules/Postbox/Sources/MessageOfInterestHolesView.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageOfInterestHolesView.swift rename to submodules/Postbox/Sources/MessageOfInterestHolesView.swift diff --git a/submodules/Postbox/Postbox/MessageView.swift b/submodules/Postbox/Sources/MessageView.swift similarity index 100% rename from submodules/Postbox/Postbox/MessageView.swift rename to submodules/Postbox/Sources/MessageView.swift diff --git a/submodules/Postbox/Postbox/MessagesView.swift b/submodules/Postbox/Sources/MessagesView.swift similarity index 100% rename from submodules/Postbox/Postbox/MessagesView.swift rename to submodules/Postbox/Sources/MessagesView.swift diff --git a/submodules/Postbox/Postbox/MetadataTable.swift b/submodules/Postbox/Sources/MetadataTable.swift similarity index 100% rename from submodules/Postbox/Postbox/MetadataTable.swift rename to submodules/Postbox/Sources/MetadataTable.swift diff --git a/submodules/Postbox/Postbox/MultiplePeersView.swift b/submodules/Postbox/Sources/MultiplePeersView.swift similarity index 100% rename from submodules/Postbox/Postbox/MultiplePeersView.swift rename to submodules/Postbox/Sources/MultiplePeersView.swift diff --git a/submodules/Postbox/Postbox/MurMurHash32.h b/submodules/Postbox/Sources/MurMurHash32.h similarity index 100% rename from submodules/Postbox/Postbox/MurMurHash32.h rename to submodules/Postbox/Sources/MurMurHash32.h diff --git a/submodules/Postbox/Postbox/MurMurHash32.m b/submodules/Postbox/Sources/MurMurHash32.m similarity index 100% rename from submodules/Postbox/Postbox/MurMurHash32.m rename to submodules/Postbox/Sources/MurMurHash32.m diff --git a/submodules/Postbox/Postbox/MutableBasicPeerView.swift b/submodules/Postbox/Sources/MutableBasicPeerView.swift similarity index 100% rename from submodules/Postbox/Postbox/MutableBasicPeerView.swift rename to submodules/Postbox/Sources/MutableBasicPeerView.swift diff --git a/submodules/Postbox/Postbox/MutablePeerChatInclusionView.swift b/submodules/Postbox/Sources/MutablePeerChatInclusionView.swift similarity index 100% rename from submodules/Postbox/Postbox/MutablePeerChatInclusionView.swift rename to submodules/Postbox/Sources/MutablePeerChatInclusionView.swift diff --git a/submodules/Postbox/Postbox/NoticeEntryView.swift b/submodules/Postbox/Sources/NoticeEntryView.swift similarity index 100% rename from submodules/Postbox/Postbox/NoticeEntryView.swift rename to submodules/Postbox/Sources/NoticeEntryView.swift diff --git a/submodules/Postbox/Postbox/NoticeTable.swift b/submodules/Postbox/Sources/NoticeTable.swift similarity index 100% rename from submodules/Postbox/Postbox/NoticeTable.swift rename to submodules/Postbox/Sources/NoticeTable.swift diff --git a/submodules/Postbox/Postbox/OrderStatisticTable.swift b/submodules/Postbox/Sources/OrderStatisticTable.swift similarity index 100% rename from submodules/Postbox/Postbox/OrderStatisticTable.swift rename to submodules/Postbox/Sources/OrderStatisticTable.swift diff --git a/submodules/Postbox/Postbox/OrderedItemListEntry.swift b/submodules/Postbox/Sources/OrderedItemListEntry.swift similarity index 100% rename from submodules/Postbox/Postbox/OrderedItemListEntry.swift rename to submodules/Postbox/Sources/OrderedItemListEntry.swift diff --git a/submodules/Postbox/Postbox/OrderedItemListIndexTable.swift b/submodules/Postbox/Sources/OrderedItemListIndexTable.swift similarity index 100% rename from submodules/Postbox/Postbox/OrderedItemListIndexTable.swift rename to submodules/Postbox/Sources/OrderedItemListIndexTable.swift diff --git a/submodules/Postbox/Postbox/OrderedItemListTable.swift b/submodules/Postbox/Sources/OrderedItemListTable.swift similarity index 100% rename from submodules/Postbox/Postbox/OrderedItemListTable.swift rename to submodules/Postbox/Sources/OrderedItemListTable.swift diff --git a/submodules/Postbox/Postbox/OrderedItemListView.swift b/submodules/Postbox/Sources/OrderedItemListView.swift similarity index 100% rename from submodules/Postbox/Postbox/OrderedItemListView.swift rename to submodules/Postbox/Sources/OrderedItemListView.swift diff --git a/submodules/Postbox/Postbox/OrderedList.swift b/submodules/Postbox/Sources/OrderedList.swift similarity index 100% rename from submodules/Postbox/Postbox/OrderedList.swift rename to submodules/Postbox/Sources/OrderedList.swift diff --git a/submodules/Postbox/Postbox/Peer.swift b/submodules/Postbox/Sources/Peer.swift similarity index 100% rename from submodules/Postbox/Postbox/Peer.swift rename to submodules/Postbox/Sources/Peer.swift diff --git a/submodules/Postbox/Postbox/PeerChatInterfaceState.swift b/submodules/Postbox/Sources/PeerChatInterfaceState.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerChatInterfaceState.swift rename to submodules/Postbox/Sources/PeerChatInterfaceState.swift diff --git a/submodules/Postbox/Postbox/PeerChatInterfaceStateTable.swift b/submodules/Postbox/Sources/PeerChatInterfaceStateTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerChatInterfaceStateTable.swift rename to submodules/Postbox/Sources/PeerChatInterfaceStateTable.swift diff --git a/submodules/Postbox/Postbox/PeerChatListInclusion.swift b/submodules/Postbox/Sources/PeerChatListInclusion.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerChatListInclusion.swift rename to submodules/Postbox/Sources/PeerChatListInclusion.swift diff --git a/submodules/Postbox/Postbox/PeerChatStateTable.swift b/submodules/Postbox/Sources/PeerChatStateTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerChatStateTable.swift rename to submodules/Postbox/Sources/PeerChatStateTable.swift diff --git a/submodules/Postbox/Postbox/PeerChatStateView.swift b/submodules/Postbox/Sources/PeerChatStateView.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerChatStateView.swift rename to submodules/Postbox/Sources/PeerChatStateView.swift diff --git a/submodules/Postbox/Postbox/PeerChatTopIndexableMessageIds.swift b/submodules/Postbox/Sources/PeerChatTopIndexableMessageIds.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerChatTopIndexableMessageIds.swift rename to submodules/Postbox/Sources/PeerChatTopIndexableMessageIds.swift diff --git a/submodules/Postbox/Postbox/PeerGroup.swift b/submodules/Postbox/Sources/PeerGroup.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerGroup.swift rename to submodules/Postbox/Sources/PeerGroup.swift diff --git a/submodules/Postbox/Postbox/PeerMergedOperationLogIndexTable.swift b/submodules/Postbox/Sources/PeerMergedOperationLogIndexTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerMergedOperationLogIndexTable.swift rename to submodules/Postbox/Sources/PeerMergedOperationLogIndexTable.swift diff --git a/submodules/Postbox/Postbox/PeerMergedOperationLogView.swift b/submodules/Postbox/Sources/PeerMergedOperationLogView.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerMergedOperationLogView.swift rename to submodules/Postbox/Sources/PeerMergedOperationLogView.swift diff --git a/submodules/Postbox/Postbox/PeerNameIndexRepresentation.swift b/submodules/Postbox/Sources/PeerNameIndexRepresentation.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerNameIndexRepresentation.swift rename to submodules/Postbox/Sources/PeerNameIndexRepresentation.swift diff --git a/submodules/Postbox/Postbox/PeerNameIndexTable.swift b/submodules/Postbox/Sources/PeerNameIndexTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerNameIndexTable.swift rename to submodules/Postbox/Sources/PeerNameIndexTable.swift diff --git a/submodules/Postbox/Postbox/PeerNotificationSettings.swift b/submodules/Postbox/Sources/PeerNotificationSettings.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerNotificationSettings.swift rename to submodules/Postbox/Sources/PeerNotificationSettings.swift diff --git a/submodules/Postbox/Postbox/PeerNotificationSettingsBehaviorIndexTable.swift b/submodules/Postbox/Sources/PeerNotificationSettingsBehaviorIndexTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerNotificationSettingsBehaviorIndexTable.swift rename to submodules/Postbox/Sources/PeerNotificationSettingsBehaviorIndexTable.swift diff --git a/submodules/Postbox/Postbox/PeerNotificationSettingsBehaviorTable.swift b/submodules/Postbox/Sources/PeerNotificationSettingsBehaviorTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerNotificationSettingsBehaviorTable.swift rename to submodules/Postbox/Sources/PeerNotificationSettingsBehaviorTable.swift diff --git a/submodules/Postbox/Postbox/PeerNotificationSettingsBehaviorTimestampView.swift b/submodules/Postbox/Sources/PeerNotificationSettingsBehaviorTimestampView.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerNotificationSettingsBehaviorTimestampView.swift rename to submodules/Postbox/Sources/PeerNotificationSettingsBehaviorTimestampView.swift diff --git a/submodules/Postbox/Postbox/PeerNotificationSettingsTable.swift b/submodules/Postbox/Sources/PeerNotificationSettingsTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerNotificationSettingsTable.swift rename to submodules/Postbox/Sources/PeerNotificationSettingsTable.swift diff --git a/submodules/Postbox/Postbox/PeerNotificationSettingsView.swift b/submodules/Postbox/Sources/PeerNotificationSettingsView.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerNotificationSettingsView.swift rename to submodules/Postbox/Sources/PeerNotificationSettingsView.swift diff --git a/submodules/Postbox/Postbox/PeerOperationLogMetadataTable.swift b/submodules/Postbox/Sources/PeerOperationLogMetadataTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerOperationLogMetadataTable.swift rename to submodules/Postbox/Sources/PeerOperationLogMetadataTable.swift diff --git a/submodules/Postbox/Postbox/PeerOperationLogTable.swift b/submodules/Postbox/Sources/PeerOperationLogTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerOperationLogTable.swift rename to submodules/Postbox/Sources/PeerOperationLogTable.swift diff --git a/submodules/Postbox/Postbox/PeerPresence.swift b/submodules/Postbox/Sources/PeerPresence.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerPresence.swift rename to submodules/Postbox/Sources/PeerPresence.swift diff --git a/submodules/Postbox/Postbox/PeerPresenceTable.swift b/submodules/Postbox/Sources/PeerPresenceTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerPresenceTable.swift rename to submodules/Postbox/Sources/PeerPresenceTable.swift diff --git a/submodules/Postbox/Postbox/PeerPresencesView.swift b/submodules/Postbox/Sources/PeerPresencesView.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerPresencesView.swift rename to submodules/Postbox/Sources/PeerPresencesView.swift diff --git a/submodules/Postbox/Postbox/PeerReadState.swift b/submodules/Postbox/Sources/PeerReadState.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerReadState.swift rename to submodules/Postbox/Sources/PeerReadState.swift diff --git a/submodules/Postbox/Postbox/PeerTable.swift b/submodules/Postbox/Sources/PeerTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerTable.swift rename to submodules/Postbox/Sources/PeerTable.swift diff --git a/submodules/Postbox/Postbox/PeerView.swift b/submodules/Postbox/Sources/PeerView.swift similarity index 100% rename from submodules/Postbox/Postbox/PeerView.swift rename to submodules/Postbox/Sources/PeerView.swift diff --git a/submodules/Postbox/Postbox/PendingMessageActionsMetadataTable.swift b/submodules/Postbox/Sources/PendingMessageActionsMetadataTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PendingMessageActionsMetadataTable.swift rename to submodules/Postbox/Sources/PendingMessageActionsMetadataTable.swift diff --git a/submodules/Postbox/Postbox/PendingMessageActionsSummaryView.swift b/submodules/Postbox/Sources/PendingMessageActionsSummaryView.swift similarity index 100% rename from submodules/Postbox/Postbox/PendingMessageActionsSummaryView.swift rename to submodules/Postbox/Sources/PendingMessageActionsSummaryView.swift diff --git a/submodules/Postbox/Postbox/PendingMessageActionsTable.swift b/submodules/Postbox/Sources/PendingMessageActionsTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PendingMessageActionsTable.swift rename to submodules/Postbox/Sources/PendingMessageActionsTable.swift diff --git a/submodules/Postbox/Postbox/PendingMessageActionsView.swift b/submodules/Postbox/Sources/PendingMessageActionsView.swift similarity index 100% rename from submodules/Postbox/Postbox/PendingMessageActionsView.swift rename to submodules/Postbox/Sources/PendingMessageActionsView.swift diff --git a/submodules/Postbox/Postbox/PendingPeerNotificationSettingsIndexTable.swift b/submodules/Postbox/Sources/PendingPeerNotificationSettingsIndexTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PendingPeerNotificationSettingsIndexTable.swift rename to submodules/Postbox/Sources/PendingPeerNotificationSettingsIndexTable.swift diff --git a/submodules/Postbox/Postbox/PendingPeerNotificationSettingsView.swift b/submodules/Postbox/Sources/PendingPeerNotificationSettingsView.swift similarity index 100% rename from submodules/Postbox/Postbox/PendingPeerNotificationSettingsView.swift rename to submodules/Postbox/Sources/PendingPeerNotificationSettingsView.swift diff --git a/submodules/Postbox/Postbox/PinnedItemId.swift b/submodules/Postbox/Sources/PinnedItemId.swift similarity index 100% rename from submodules/Postbox/Postbox/PinnedItemId.swift rename to submodules/Postbox/Sources/PinnedItemId.swift diff --git a/submodules/Postbox/Postbox/Postbox.h b/submodules/Postbox/Sources/Postbox.h similarity index 100% rename from submodules/Postbox/Postbox/Postbox.h rename to submodules/Postbox/Sources/Postbox.h diff --git a/submodules/Postbox/Postbox/Postbox.swift b/submodules/Postbox/Sources/Postbox.swift similarity index 99% rename from submodules/Postbox/Postbox/Postbox.swift rename to submodules/Postbox/Sources/Postbox.swift index d9de5d0a43..5de768cab7 100644 --- a/submodules/Postbox/Postbox/Postbox.swift +++ b/submodules/Postbox/Sources/Postbox.swift @@ -1,10 +1,6 @@ import Foundation -#if os(macOS) - import SwiftSignalKitMac -#else - import SwiftSignalKit -#endif +import SwiftSignalKit public protocol PeerChatState: PostboxCoding { func equals(_ other: PeerChatState) -> Bool diff --git a/submodules/Postbox/Postbox/PostboxAccess.swift b/submodules/Postbox/Sources/PostboxAccess.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxAccess.swift rename to submodules/Postbox/Sources/PostboxAccess.swift diff --git a/submodules/Postbox/Postbox/PostboxLogging.swift b/submodules/Postbox/Sources/PostboxLogging.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxLogging.swift rename to submodules/Postbox/Sources/PostboxLogging.swift diff --git a/submodules/Postbox/Postbox/PostboxStateView.swift b/submodules/Postbox/Sources/PostboxStateView.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxStateView.swift rename to submodules/Postbox/Sources/PostboxStateView.swift diff --git a/submodules/Postbox/Postbox/PostboxTransaction.swift b/submodules/Postbox/Sources/PostboxTransaction.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxTransaction.swift rename to submodules/Postbox/Sources/PostboxTransaction.swift diff --git a/submodules/Postbox/Postbox/PostboxUpgrade_12to13.swift b/submodules/Postbox/Sources/PostboxUpgrade_12to13.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxUpgrade_12to13.swift rename to submodules/Postbox/Sources/PostboxUpgrade_12to13.swift diff --git a/submodules/Postbox/Postbox/PostboxUpgrade_13to14.swift b/submodules/Postbox/Sources/PostboxUpgrade_13to14.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxUpgrade_13to14.swift rename to submodules/Postbox/Sources/PostboxUpgrade_13to14.swift diff --git a/submodules/Postbox/Postbox/PostboxUpgrade_14to15.swift b/submodules/Postbox/Sources/PostboxUpgrade_14to15.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxUpgrade_14to15.swift rename to submodules/Postbox/Sources/PostboxUpgrade_14to15.swift diff --git a/submodules/Postbox/Postbox/PostboxUpgrade_15to16.swift b/submodules/Postbox/Sources/PostboxUpgrade_15to16.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxUpgrade_15to16.swift rename to submodules/Postbox/Sources/PostboxUpgrade_15to16.swift diff --git a/submodules/Postbox/Postbox/PostboxUpgrade_16to17.swift b/submodules/Postbox/Sources/PostboxUpgrade_16to17.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxUpgrade_16to17.swift rename to submodules/Postbox/Sources/PostboxUpgrade_16to17.swift diff --git a/submodules/Postbox/Postbox/PostboxUpgrade_17to18.swift b/submodules/Postbox/Sources/PostboxUpgrade_17to18.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxUpgrade_17to18.swift rename to submodules/Postbox/Sources/PostboxUpgrade_17to18.swift diff --git a/submodules/Postbox/Postbox/PostboxUpgrade_18to19.swift b/submodules/Postbox/Sources/PostboxUpgrade_18to19.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxUpgrade_18to19.swift rename to submodules/Postbox/Sources/PostboxUpgrade_18to19.swift diff --git a/submodules/Postbox/Postbox/PostboxUpgrade_19to20.swift b/submodules/Postbox/Sources/PostboxUpgrade_19to20.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxUpgrade_19to20.swift rename to submodules/Postbox/Sources/PostboxUpgrade_19to20.swift diff --git a/submodules/Postbox/Postbox/PostboxUpgrade_20to21.swift b/submodules/Postbox/Sources/PostboxUpgrade_20to21.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxUpgrade_20to21.swift rename to submodules/Postbox/Sources/PostboxUpgrade_20to21.swift diff --git a/submodules/Postbox/Postbox/PostboxUpgrade_21to22.swift b/submodules/Postbox/Sources/PostboxUpgrade_21to22.swift similarity index 89% rename from submodules/Postbox/Postbox/PostboxUpgrade_21to22.swift rename to submodules/Postbox/Sources/PostboxUpgrade_21to22.swift index 871d55b2f2..070ab8c6a0 100644 --- a/submodules/Postbox/Postbox/PostboxUpgrade_21to22.swift +++ b/submodules/Postbox/Sources/PostboxUpgrade_21to22.swift @@ -1,10 +1,6 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -#else import SwiftSignalKit -#endif func postboxUpgrade_21to22(queue: Queue, basePath: String, valueBox: ValueBox, encryptionParameters: ValueBoxEncryptionParameters, progress: (Float) -> Void) -> String? { postboxLog("Upgrade 21->22 started") diff --git a/submodules/Postbox/Postbox/PostboxUpgrade_22to23.swift b/submodules/Postbox/Sources/PostboxUpgrade_22to23.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxUpgrade_22to23.swift rename to submodules/Postbox/Sources/PostboxUpgrade_22to23.swift diff --git a/submodules/Postbox/Postbox/PostboxUpgrade_23to24.swift b/submodules/Postbox/Sources/PostboxUpgrade_23to24.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxUpgrade_23to24.swift rename to submodules/Postbox/Sources/PostboxUpgrade_23to24.swift diff --git a/submodules/Postbox/Postbox/PostboxUpgrade_24to25.swift b/submodules/Postbox/Sources/PostboxUpgrade_24to25.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxUpgrade_24to25.swift rename to submodules/Postbox/Sources/PostboxUpgrade_24to25.swift diff --git a/submodules/Postbox/Postbox/PostboxView.swift b/submodules/Postbox/Sources/PostboxView.swift similarity index 100% rename from submodules/Postbox/Postbox/PostboxView.swift rename to submodules/Postbox/Sources/PostboxView.swift diff --git a/submodules/Postbox/Postbox/PreferencesEntry.swift b/submodules/Postbox/Sources/PreferencesEntry.swift similarity index 100% rename from submodules/Postbox/Postbox/PreferencesEntry.swift rename to submodules/Postbox/Sources/PreferencesEntry.swift diff --git a/submodules/Postbox/Postbox/PreferencesTable.swift b/submodules/Postbox/Sources/PreferencesTable.swift similarity index 100% rename from submodules/Postbox/Postbox/PreferencesTable.swift rename to submodules/Postbox/Sources/PreferencesTable.swift diff --git a/submodules/Postbox/Postbox/PreferencesView.swift b/submodules/Postbox/Sources/PreferencesView.swift similarity index 100% rename from submodules/Postbox/Postbox/PreferencesView.swift rename to submodules/Postbox/Sources/PreferencesView.swift diff --git a/submodules/Postbox/Postbox/RatingTable.swift b/submodules/Postbox/Sources/RatingTable.swift similarity index 100% rename from submodules/Postbox/Postbox/RatingTable.swift rename to submodules/Postbox/Sources/RatingTable.swift diff --git a/submodules/Postbox/Postbox/RedBlackTree.swift b/submodules/Postbox/Sources/RedBlackTree.swift similarity index 100% rename from submodules/Postbox/Postbox/RedBlackTree.swift rename to submodules/Postbox/Sources/RedBlackTree.swift diff --git a/submodules/Postbox/Postbox/RenderedPeer.swift b/submodules/Postbox/Sources/RenderedPeer.swift similarity index 100% rename from submodules/Postbox/Postbox/RenderedPeer.swift rename to submodules/Postbox/Sources/RenderedPeer.swift diff --git a/submodules/Postbox/Postbox/ReverseAssociatedPeerTable.swift b/submodules/Postbox/Sources/ReverseAssociatedPeerTable.swift similarity index 100% rename from submodules/Postbox/Postbox/ReverseAssociatedPeerTable.swift rename to submodules/Postbox/Sources/ReverseAssociatedPeerTable.swift diff --git a/submodules/Postbox/Postbox/ReverseIndexReferenceTable.swift b/submodules/Postbox/Sources/ReverseIndexReferenceTable.swift similarity index 100% rename from submodules/Postbox/Postbox/ReverseIndexReferenceTable.swift rename to submodules/Postbox/Sources/ReverseIndexReferenceTable.swift diff --git a/submodules/Postbox/Postbox/SeedConfiguration.swift b/submodules/Postbox/Sources/SeedConfiguration.swift similarity index 100% rename from submodules/Postbox/Postbox/SeedConfiguration.swift rename to submodules/Postbox/Sources/SeedConfiguration.swift diff --git a/submodules/Postbox/Postbox/SharedAccountMediaManager.swift b/submodules/Postbox/Sources/SharedAccountMediaManager.swift similarity index 100% rename from submodules/Postbox/Postbox/SharedAccountMediaManager.swift rename to submodules/Postbox/Sources/SharedAccountMediaManager.swift diff --git a/submodules/Postbox/Postbox/SimpleDictionary.swift b/submodules/Postbox/Sources/SimpleDictionary.swift similarity index 100% rename from submodules/Postbox/Postbox/SimpleDictionary.swift rename to submodules/Postbox/Sources/SimpleDictionary.swift diff --git a/submodules/Postbox/Postbox/SimpleSet.swift b/submodules/Postbox/Sources/SimpleSet.swift similarity index 100% rename from submodules/Postbox/Postbox/SimpleSet.swift rename to submodules/Postbox/Sources/SimpleSet.swift diff --git a/submodules/Postbox/Postbox/SqliteInterface.swift b/submodules/Postbox/Sources/SqliteInterface.swift similarity index 99% rename from submodules/Postbox/Postbox/SqliteInterface.swift rename to submodules/Postbox/Sources/SqliteInterface.swift index f682424f5b..1d898913e9 100644 --- a/submodules/Postbox/Postbox/SqliteInterface.swift +++ b/submodules/Postbox/Sources/SqliteInterface.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import sqlciphermac -#else import sqlcipher -#endif private final class SqliteInterfaceStatement { let statement: OpaquePointer? diff --git a/submodules/Postbox/Postbox/SqliteValueBox.swift b/submodules/Postbox/Sources/SqliteValueBox.swift similarity index 99% rename from submodules/Postbox/Postbox/SqliteValueBox.swift rename to submodules/Postbox/Sources/SqliteValueBox.swift index a81166736c..3c9777f952 100644 --- a/submodules/Postbox/Postbox/SqliteValueBox.swift +++ b/submodules/Postbox/Sources/SqliteValueBox.swift @@ -1,14 +1,6 @@ import Foundation -#if os(macOS) -import sqlciphermac -#else import sqlcipher -#endif -#if os(macOS) - import SwiftSignalKitMac -#else - import SwiftSignalKit -#endif +import SwiftSignalKit private struct SqliteValueBoxTable { let table: ValueBoxTable diff --git a/submodules/Postbox/Postbox/StringIndexTokens.swift b/submodules/Postbox/Sources/StringIndexTokens.swift similarity index 98% rename from submodules/Postbox/Postbox/StringIndexTokens.swift rename to submodules/Postbox/Sources/StringIndexTokens.swift index c02156e0d1..6ca16057c8 100644 --- a/submodules/Postbox/Postbox/StringIndexTokens.swift +++ b/submodules/Postbox/Sources/StringIndexTokens.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import sqlciphermac -#else import sqlcipher -#endif public enum StringIndexTokenTransliteration { case none diff --git a/submodules/Postbox/Postbox/SynchronizeGroupMessageStatsView.swift b/submodules/Postbox/Sources/SynchronizeGroupMessageStatsView.swift similarity index 100% rename from submodules/Postbox/Postbox/SynchronizeGroupMessageStatsView.swift rename to submodules/Postbox/Sources/SynchronizeGroupMessageStatsView.swift diff --git a/submodules/Postbox/Postbox/SynchronizePeerReadStatesView.swift b/submodules/Postbox/Sources/SynchronizePeerReadStatesView.swift similarity index 100% rename from submodules/Postbox/Postbox/SynchronizePeerReadStatesView.swift rename to submodules/Postbox/Sources/SynchronizePeerReadStatesView.swift diff --git a/submodules/Postbox/Postbox/Table.swift b/submodules/Postbox/Sources/Table.swift similarity index 100% rename from submodules/Postbox/Postbox/Table.swift rename to submodules/Postbox/Sources/Table.swift diff --git a/submodules/Postbox/Postbox/TempBox.swift b/submodules/Postbox/Sources/TempBox.swift similarity index 99% rename from submodules/Postbox/Postbox/TempBox.swift rename to submodules/Postbox/Sources/TempBox.swift index 202f11d832..d602c01814 100644 --- a/submodules/Postbox/Postbox/TempBox.swift +++ b/submodules/Postbox/Sources/TempBox.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -#else import SwiftSignalKit -#endif private final class TempBoxFileContext { let directory: String diff --git a/submodules/Postbox/Postbox/TimeBasedCleanup.swift b/submodules/Postbox/Sources/TimeBasedCleanup.swift similarity index 97% rename from submodules/Postbox/Postbox/TimeBasedCleanup.swift rename to submodules/Postbox/Sources/TimeBasedCleanup.swift index 2028c44674..c2946c2769 100644 --- a/submodules/Postbox/Postbox/TimeBasedCleanup.swift +++ b/submodules/Postbox/Sources/TimeBasedCleanup.swift @@ -1,15 +1,7 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -#else import SwiftSignalKit -#endif - -#if os(macOS) -private typealias SignalKitTimer = SwiftSignalKitMac.Timer -#else private typealias SignalKitTimer = SwiftSignalKit.Timer -#endif + private func scanFiles(at path: String, olderThan minTimestamp: Int32, _ f: (String) -> Void) { guard let enumerator = FileManager.default.enumerator(at: URL(fileURLWithPath: path), includingPropertiesForKeys: [.contentModificationDateKey, .isDirectoryKey], options: [.skipsSubdirectoryDescendants], errorHandler: nil) else { diff --git a/submodules/Postbox/Postbox/TimestampBasedMessageAttributesIndexTable.swift b/submodules/Postbox/Sources/TimestampBasedMessageAttributesIndexTable.swift similarity index 100% rename from submodules/Postbox/Postbox/TimestampBasedMessageAttributesIndexTable.swift rename to submodules/Postbox/Sources/TimestampBasedMessageAttributesIndexTable.swift diff --git a/submodules/Postbox/Postbox/TimestampBasedMessageAttributesTable.swift b/submodules/Postbox/Sources/TimestampBasedMessageAttributesTable.swift similarity index 100% rename from submodules/Postbox/Postbox/TimestampBasedMessageAttributesTable.swift rename to submodules/Postbox/Sources/TimestampBasedMessageAttributesTable.swift diff --git a/submodules/Postbox/Postbox/TimestampBasedMessageAttributesView.swift b/submodules/Postbox/Sources/TimestampBasedMessageAttributesView.swift similarity index 100% rename from submodules/Postbox/Postbox/TimestampBasedMessageAttributesView.swift rename to submodules/Postbox/Sources/TimestampBasedMessageAttributesView.swift diff --git a/submodules/Postbox/Postbox/UnorderedItemListTable.swift b/submodules/Postbox/Sources/UnorderedItemListTable.swift similarity index 100% rename from submodules/Postbox/Postbox/UnorderedItemListTable.swift rename to submodules/Postbox/Sources/UnorderedItemListTable.swift diff --git a/submodules/Postbox/Postbox/UnreadMessageCountsView.swift b/submodules/Postbox/Sources/UnreadMessageCountsView.swift similarity index 100% rename from submodules/Postbox/Postbox/UnreadMessageCountsView.swift rename to submodules/Postbox/Sources/UnreadMessageCountsView.swift diff --git a/submodules/Postbox/Postbox/UnsentMessageHistoryView.swift b/submodules/Postbox/Sources/UnsentMessageHistoryView.swift similarity index 100% rename from submodules/Postbox/Postbox/UnsentMessageHistoryView.swift rename to submodules/Postbox/Sources/UnsentMessageHistoryView.swift diff --git a/submodules/Postbox/Postbox/UnsentMessageIndicesView.swift b/submodules/Postbox/Sources/UnsentMessageIndicesView.swift similarity index 100% rename from submodules/Postbox/Postbox/UnsentMessageIndicesView.swift rename to submodules/Postbox/Sources/UnsentMessageIndicesView.swift diff --git a/submodules/Postbox/Postbox/Upgrades.swift b/submodules/Postbox/Sources/Upgrades.swift similarity index 95% rename from submodules/Postbox/Postbox/Upgrades.swift rename to submodules/Postbox/Sources/Upgrades.swift index 4cce537b00..c1fddb3163 100644 --- a/submodules/Postbox/Postbox/Upgrades.swift +++ b/submodules/Postbox/Sources/Upgrades.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -#else import SwiftSignalKit -#endif enum PostboxUpgradeOperation { case inplace((MetadataTable, ValueBox, (Float) -> Void) -> Void) diff --git a/submodules/Postbox/Postbox/ValueBox.swift b/submodules/Postbox/Sources/ValueBox.swift similarity index 100% rename from submodules/Postbox/Postbox/ValueBox.swift rename to submodules/Postbox/Sources/ValueBox.swift diff --git a/submodules/Postbox/Postbox/ValueBoxKey.swift b/submodules/Postbox/Sources/ValueBoxKey.swift similarity index 100% rename from submodules/Postbox/Postbox/ValueBoxKey.swift rename to submodules/Postbox/Sources/ValueBoxKey.swift diff --git a/submodules/Postbox/Postbox/ViewTracker.swift b/submodules/Postbox/Sources/ViewTracker.swift similarity index 99% rename from submodules/Postbox/Postbox/ViewTracker.swift rename to submodules/Postbox/Sources/ViewTracker.swift index 81d925b351..bd232da91f 100644 --- a/submodules/Postbox/Postbox/ViewTracker.swift +++ b/submodules/Postbox/Sources/ViewTracker.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import SwiftSignalKitMac -#else - import SwiftSignalKit -#endif +import SwiftSignalKit public enum ViewUpdateType { case Initial diff --git a/submodules/Postbox/Postbox/Views.swift b/submodules/Postbox/Sources/Views.swift similarity index 100% rename from submodules/Postbox/Postbox/Views.swift rename to submodules/Postbox/Sources/Views.swift diff --git a/submodules/Postbox/Postbox/module.private.modulemap b/submodules/Postbox/Sources/module.private.modulemap similarity index 100% rename from submodules/Postbox/Postbox/module.private.modulemap rename to submodules/Postbox/Sources/module.private.modulemap diff --git a/submodules/SSignalKit/SSignalKit/Info.plist b/submodules/SSignalKit/SSignalKit/Info.plist deleted file mode 100644 index d3de8eefb6..0000000000 --- a/submodules/SSignalKit/SSignalKit/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/submodules/SSignalKit/SSignalKit_Xcode.xcodeproj/project.pbxproj b/submodules/SSignalKit/SSignalKit_Xcode.xcodeproj/project.pbxproj deleted file mode 100644 index ee34aed008..0000000000 --- a/submodules/SSignalKit/SSignalKit_Xcode.xcodeproj/project.pbxproj +++ /dev/null @@ -1,2536 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - D0085AE71B28285400EAF753 /* SSignal+Timing.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AB11B28285400EAF753 /* SSignal+Timing.m */; }; - D0085AE81B28285400EAF753 /* SThreadPool.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AB21B28285400EAF753 /* SThreadPool.m */; }; - D0085AE91B28285400EAF753 /* SQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AB31B28285400EAF753 /* SQueue.m */; }; - D0085AEA1B28285400EAF753 /* SSignal+Take.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AB41B28285400EAF753 /* SSignal+Take.m */; }; - D0085AEB1B28285400EAF753 /* SSignal+Meta.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AB51B28285400EAF753 /* SSignal+Meta.m */; }; - D0085AEC1B28285400EAF753 /* SSignal+Accumulate.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AB61B28285400EAF753 /* SSignal+Accumulate.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085AED1B28285400EAF753 /* SSignal+Single.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AB71B28285400EAF753 /* SSignal+Single.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085AEE1B28285400EAF753 /* SSignal.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AB81B28285400EAF753 /* SSignal.m */; }; - D0085AEF1B28285400EAF753 /* SSignalKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AB91B28285400EAF753 /* SSignalKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085AF01B28285400EAF753 /* SMulticastSignalManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ABA1B28285400EAF753 /* SMulticastSignalManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085AF11B28285400EAF753 /* SMulticastSignalManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ABB1B28285400EAF753 /* SMulticastSignalManager.m */; }; - D0085AF21B28285400EAF753 /* SSignal+Combine.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ABC1B28285400EAF753 /* SSignal+Combine.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085AF31B28285400EAF753 /* SSignal+Combine.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ABD1B28285400EAF753 /* SSignal+Combine.m */; }; - D0085AF41B28285400EAF753 /* SSignal+Pipe.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ABE1B28285400EAF753 /* SSignal+Pipe.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085AF51B28285400EAF753 /* SSignal+Pipe.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ABF1B28285400EAF753 /* SSignal+Pipe.m */; }; - D0085AF61B28285400EAF753 /* SSignal+SideEffects.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AC01B28285400EAF753 /* SSignal+SideEffects.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085AF71B28285400EAF753 /* SSignal+SideEffects.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AC11B28285400EAF753 /* SSignal+SideEffects.m */; }; - D0085AF81B28285400EAF753 /* SSignal+Catch.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AC21B28285400EAF753 /* SSignal+Catch.m */; }; - D0085AF91B28285400EAF753 /* SSignal+Catch.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AC31B28285400EAF753 /* SSignal+Catch.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085AFA1B28285400EAF753 /* SSignal+Take.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AC41B28285400EAF753 /* SSignal+Take.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085AFB1B28285400EAF753 /* SSignal+Accumulate.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AC51B28285400EAF753 /* SSignal+Accumulate.m */; }; - D0085AFC1B28285400EAF753 /* SQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AC61B28285400EAF753 /* SQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085AFD1B28285400EAF753 /* SSignal+Meta.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AC71B28285400EAF753 /* SSignal+Meta.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085AFE1B28285400EAF753 /* SSignal+Timing.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AC81B28285400EAF753 /* SSignal+Timing.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085AFF1B28285400EAF753 /* SSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AC91B28285400EAF753 /* SSubscriber.m */; }; - D0085B001B28285400EAF753 /* SSignal+Dispatch.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ACA1B28285400EAF753 /* SSignal+Dispatch.m */; }; - D0085B011B28285400EAF753 /* SThreadPoolTask.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ACB1B28285400EAF753 /* SThreadPoolTask.m */; }; - D0085B021B28285400EAF753 /* SThreadPoolQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ACC1B28285400EAF753 /* SThreadPoolQueue.m */; }; - D0085B031B28285400EAF753 /* SThreadPoolQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ACD1B28285400EAF753 /* SThreadPoolQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B041B28285400EAF753 /* SThreadPool.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ACE1B28285400EAF753 /* SThreadPool.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B051B28285400EAF753 /* SThreadPoolTask.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ACF1B28285400EAF753 /* SThreadPoolTask.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B061B28285400EAF753 /* SDisposableSet.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AD01B28285400EAF753 /* SDisposableSet.m */; }; - D0085B071B28285400EAF753 /* SMetaDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AD11B28285400EAF753 /* SMetaDisposable.m */; }; - D0085B081B28285400EAF753 /* SSignal+Multicast.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AD21B28285400EAF753 /* SSignal+Multicast.m */; }; - D0085B091B28285400EAF753 /* SSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AD31B28285400EAF753 /* SSubscriber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B0A1B28285400EAF753 /* SDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AD41B28285400EAF753 /* SDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B0B1B28285400EAF753 /* SSignal.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AD51B28285400EAF753 /* SSignal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B0C1B28285400EAF753 /* SSignal+Mapping.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AD61B28285400EAF753 /* SSignal+Mapping.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B0D1B28285400EAF753 /* SSignal+Mapping.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AD71B28285400EAF753 /* SSignal+Mapping.m */; }; - D0085B0E1B28285400EAF753 /* SSignal+Single.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AD81B28285400EAF753 /* SSignal+Single.m */; }; - D0085B0F1B28285400EAF753 /* SAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AD91B28285400EAF753 /* SAtomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B101B28285400EAF753 /* SAtomic.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ADA1B28285400EAF753 /* SAtomic.m */; }; - D0085B111B28285400EAF753 /* SBag.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ADB1B28285400EAF753 /* SBag.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B121B28285400EAF753 /* SBag.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ADC1B28285400EAF753 /* SBag.m */; }; - D0085B131B28285400EAF753 /* SBlockDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ADD1B28285400EAF753 /* SBlockDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B141B28285400EAF753 /* SBlockDisposable.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085ADE1B28285400EAF753 /* SBlockDisposable.m */; }; - D0085B151B28285400EAF753 /* SDisposableSet.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085ADF1B28285400EAF753 /* SDisposableSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B181B28285400EAF753 /* SMetaDisposable.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AE21B28285400EAF753 /* SMetaDisposable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B191B28285400EAF753 /* SSignal+Dispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AE31B28285400EAF753 /* SSignal+Dispatch.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B1A1B28285400EAF753 /* SSignal+Multicast.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AE41B28285400EAF753 /* SSignal+Multicast.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B1B1B28285400EAF753 /* STimer.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085AE51B28285400EAF753 /* STimer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B1C1B28285400EAF753 /* STimer.m in Sources */ = {isa = PBXBuildFile; fileRef = D0085AE61B28285400EAF753 /* STimer.m */; }; - D0085B271B282B9800EAF753 /* SwiftSignalKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D0085B261B282B9800EAF753 /* SwiftSignalKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0085B2D1B282B9800EAF753 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0085B221B282B9800EAF753 /* SwiftSignalKit.framework */; }; - D0085B501B282BEE00EAF753 /* Signal_Timing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B3C1B282BEE00EAF753 /* Signal_Timing.swift */; }; - D0085B511B282BEE00EAF753 /* Signal_SideEffects.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B3D1B282BEE00EAF753 /* Signal_SideEffects.swift */; }; - D0085B521B282BEE00EAF753 /* Signal_Dispatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B3E1B282BEE00EAF753 /* Signal_Dispatch.swift */; }; - D0085B531B282BEE00EAF753 /* ThreadPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B3F1B282BEE00EAF753 /* ThreadPool.swift */; }; - D0085B541B282BEE00EAF753 /* Timer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B401B282BEE00EAF753 /* Timer.swift */; }; - D0085B551B282BEE00EAF753 /* Queue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B411B282BEE00EAF753 /* Queue.swift */; }; - D0085B561B282BEE00EAF753 /* ValuePipe.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B421B282BEE00EAF753 /* ValuePipe.swift */; }; - D0085B571B282BEE00EAF753 /* Bag.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B431B282BEE00EAF753 /* Bag.swift */; }; - D0085B581B282BEE00EAF753 /* Signal_Take.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B441B282BEE00EAF753 /* Signal_Take.swift */; }; - D0085B591B282BEE00EAF753 /* Signal_Catch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B451B282BEE00EAF753 /* Signal_Catch.swift */; }; - D0085B5A1B282BEE00EAF753 /* Signal_Single.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B461B282BEE00EAF753 /* Signal_Single.swift */; }; - D0085B5B1B282BEE00EAF753 /* Signal_Meta.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B471B282BEE00EAF753 /* Signal_Meta.swift */; }; - D0085B5C1B282BEE00EAF753 /* Signal_Combine.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B481B282BEE00EAF753 /* Signal_Combine.swift */; }; - D0085B5D1B282BEE00EAF753 /* Atomic.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B491B282BEE00EAF753 /* Atomic.swift */; }; - D0085B5E1B282BEE00EAF753 /* Signal_Reduce.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4A1B282BEE00EAF753 /* Signal_Reduce.swift */; }; - D0085B5F1B282BEE00EAF753 /* Signal.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4B1B282BEE00EAF753 /* Signal.swift */; }; - D0085B601B282BEE00EAF753 /* Disposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4C1B282BEE00EAF753 /* Disposable.swift */; }; - D0085B611B282BEE00EAF753 /* Signal_Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4D1B282BEE00EAF753 /* Signal_Mapping.swift */; }; - D0085B621B282BEE00EAF753 /* Subscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4E1B282BEE00EAF753 /* Subscriber.swift */; }; - D0085B661B282C2800EAF753 /* SwiftSignalKitFunctionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B631B282C2800EAF753 /* SwiftSignalKitFunctionsTests.swift */; }; - D0085B671B282C2800EAF753 /* DeallocatingObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B641B282C2800EAF753 /* DeallocatingObject.swift */; }; - D0085B681B282C2800EAF753 /* SwiftSignalKitBasicTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B651B282C2800EAF753 /* SwiftSignalKitBasicTests.swift */; }; - D02720B11CD0E005006F1506 /* PerformanceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02720B01CD0E005006F1506 /* PerformanceTests.swift */; }; - D0445DE41A7C2CA500267924 /* SSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0445DD81A7C2CA500267924 /* SSignalKit.framework */; }; - D0445E571A7C3FB400267924 /* SDisposableTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D0445E561A7C3FB400267924 /* SDisposableTests.m */; }; - D0467D1820D7F7BC0055C28F /* Signal_Loop.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0467D1720D7F7BC0055C28F /* Signal_Loop.swift */; }; - D0467D1920D7F7BC0055C28F /* Signal_Loop.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0467D1720D7F7BC0055C28F /* Signal_Loop.swift */; }; - D053B4001F16881000E2D58A /* QueueLocalObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053B3FF1F16881000E2D58A /* QueueLocalObject.swift */; }; - D053B4011F16881000E2D58A /* QueueLocalObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053B3FF1F16881000E2D58A /* QueueLocalObject.swift */; }; - D05F09A81C9EF77100BB6F96 /* Multicast.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05F09A71C9EF77100BB6F96 /* Multicast.swift */; }; - D066BD0A1C7FE06700D7A576 /* Lock.swift in Sources */ = {isa = PBXBuildFile; fileRef = D066BD091C7FE06700D7A576 /* Lock.swift */; }; - D06F106C1A85561E00485185 /* SSignalBasicTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D06F106B1A85561E00485185 /* SSignalBasicTests.m */; }; - D06F10711A855E2D00485185 /* DeallocatingObject.m in Sources */ = {isa = PBXBuildFile; fileRef = D06F10701A855E2D00485185 /* DeallocatingObject.m */; }; - D06F10731A85882000485185 /* SSignalPerformanceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D06F10721A85882000485185 /* SSignalPerformanceTests.m */; }; - D07A5CFD1BBDE6E400451791 /* Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07A5CFC1BBDE6E400451791 /* Promise.swift */; }; - D09FD73E1BA9BAB900FF0A4F /* SVariable.h in Headers */ = {isa = PBXBuildFile; fileRef = D09FD73C1BA9BAB900FF0A4F /* SVariable.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D09FD73F1BA9BAB900FF0A4F /* SVariable.m in Sources */ = {isa = PBXBuildFile; fileRef = D09FD73D1BA9BAB900FF0A4F /* SVariable.m */; }; - D0B417F11D7DFA63004562A4 /* SwiftSignalKitMac.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B417EF1D7DFA63004562A4 /* SwiftSignalKitMac.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0B417F61D7DFAAB004562A4 /* Signal_Timing.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B3C1B282BEE00EAF753 /* Signal_Timing.swift */; }; - D0B417F71D7DFAAB004562A4 /* Signal_SideEffects.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B3D1B282BEE00EAF753 /* Signal_SideEffects.swift */; }; - D0B417F81D7DFAAB004562A4 /* Signal_Dispatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B3E1B282BEE00EAF753 /* Signal_Dispatch.swift */; }; - D0B417F91D7DFAAB004562A4 /* ThreadPool.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B3F1B282BEE00EAF753 /* ThreadPool.swift */; }; - D0B417FA1D7DFAAB004562A4 /* Timer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B401B282BEE00EAF753 /* Timer.swift */; }; - D0B417FB1D7DFAAB004562A4 /* Queue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B411B282BEE00EAF753 /* Queue.swift */; }; - D0B417FC1D7DFAAB004562A4 /* ValuePipe.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B421B282BEE00EAF753 /* ValuePipe.swift */; }; - D0B417FD1D7DFAAB004562A4 /* Bag.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B431B282BEE00EAF753 /* Bag.swift */; }; - D0B417FE1D7DFAAB004562A4 /* Signal_Take.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B441B282BEE00EAF753 /* Signal_Take.swift */; }; - D0B417FF1D7DFAAB004562A4 /* Signal_Catch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B451B282BEE00EAF753 /* Signal_Catch.swift */; }; - D0B418001D7DFAAB004562A4 /* Signal_Single.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B461B282BEE00EAF753 /* Signal_Single.swift */; }; - D0B418011D7DFAAB004562A4 /* Signal_Meta.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B471B282BEE00EAF753 /* Signal_Meta.swift */; }; - D0B418021D7DFAAB004562A4 /* Signal_Combine.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B481B282BEE00EAF753 /* Signal_Combine.swift */; }; - D0B418031D7DFAAB004562A4 /* Signal_Merge.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC1A391CA3284F0056AE9A /* Signal_Merge.swift */; }; - D0B418041D7DFAAB004562A4 /* Atomic.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B491B282BEE00EAF753 /* Atomic.swift */; }; - D0B418051D7DFAAB004562A4 /* Signal_Reduce.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4A1B282BEE00EAF753 /* Signal_Reduce.swift */; }; - D0B418061D7DFAAB004562A4 /* Signal_Materialize.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CD17B11CC17C83007C5650 /* Signal_Materialize.swift */; }; - D0B418071D7DFAAB004562A4 /* Signal.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4B1B282BEE00EAF753 /* Signal.swift */; }; - D0B418081D7DFAAB004562A4 /* Disposable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4C1B282BEE00EAF753 /* Disposable.swift */; }; - D0B418091D7DFAAB004562A4 /* Signal_Mapping.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4D1B282BEE00EAF753 /* Signal_Mapping.swift */; }; - D0B4180A1D7DFAAB004562A4 /* Subscriber.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0085B4E1B282BEE00EAF753 /* Subscriber.swift */; }; - D0B4180B1D7DFAAB004562A4 /* Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07A5CFC1BBDE6E400451791 /* Promise.swift */; }; - D0B4180C1D7DFAAB004562A4 /* Multicast.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05F09A71C9EF77100BB6F96 /* Multicast.swift */; }; - D0B4180D1D7DFAAB004562A4 /* Lock.swift in Sources */ = {isa = PBXBuildFile; fileRef = D066BD091C7FE06700D7A576 /* Lock.swift */; }; - D0CD17B21CC17C83007C5650 /* Signal_Materialize.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CD17B11CC17C83007C5650 /* Signal_Materialize.swift */; }; - D0FC1A3A1CA3284F0056AE9A /* Signal_Merge.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC1A391CA3284F0056AE9A /* Signal_Merge.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - D0085B2E1B282B9800EAF753 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D0445DCF1A7C2CA500267924 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D0085B211B282B9800EAF753; - remoteInfo = SwiftSignalKit; - }; - D0445DE51A7C2CA500267924 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D0445DCF1A7C2CA500267924 /* Project object */; - proxyType = 1; - remoteGlobalIDString = D0445DD71A7C2CA500267924; - remoteInfo = SSignalKit; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - D0085AB11B28285400EAF753 /* SSignal+Timing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Timing.m"; sourceTree = ""; }; - D0085AB21B28285400EAF753 /* SThreadPool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SThreadPool.m; sourceTree = ""; }; - D0085AB31B28285400EAF753 /* SQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SQueue.m; sourceTree = ""; }; - D0085AB41B28285400EAF753 /* SSignal+Take.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Take.m"; sourceTree = ""; }; - D0085AB51B28285400EAF753 /* SSignal+Meta.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Meta.m"; sourceTree = ""; }; - D0085AB61B28285400EAF753 /* SSignal+Accumulate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Accumulate.h"; sourceTree = ""; }; - D0085AB71B28285400EAF753 /* SSignal+Single.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Single.h"; sourceTree = ""; }; - D0085AB81B28285400EAF753 /* SSignal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SSignal.m; sourceTree = ""; }; - D0085AB91B28285400EAF753 /* SSignalKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SSignalKit.h; sourceTree = ""; }; - D0085ABA1B28285400EAF753 /* SMulticastSignalManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMulticastSignalManager.h; sourceTree = ""; }; - D0085ABB1B28285400EAF753 /* SMulticastSignalManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMulticastSignalManager.m; sourceTree = ""; }; - D0085ABC1B28285400EAF753 /* SSignal+Combine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Combine.h"; sourceTree = ""; }; - D0085ABD1B28285400EAF753 /* SSignal+Combine.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Combine.m"; sourceTree = ""; }; - D0085ABE1B28285400EAF753 /* SSignal+Pipe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Pipe.h"; sourceTree = ""; }; - D0085ABF1B28285400EAF753 /* SSignal+Pipe.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Pipe.m"; sourceTree = ""; }; - D0085AC01B28285400EAF753 /* SSignal+SideEffects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+SideEffects.h"; sourceTree = ""; }; - D0085AC11B28285400EAF753 /* SSignal+SideEffects.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+SideEffects.m"; sourceTree = ""; }; - D0085AC21B28285400EAF753 /* SSignal+Catch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Catch.m"; sourceTree = ""; }; - D0085AC31B28285400EAF753 /* SSignal+Catch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Catch.h"; sourceTree = ""; }; - D0085AC41B28285400EAF753 /* SSignal+Take.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Take.h"; sourceTree = ""; }; - D0085AC51B28285400EAF753 /* SSignal+Accumulate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Accumulate.m"; sourceTree = ""; }; - D0085AC61B28285400EAF753 /* SQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SQueue.h; sourceTree = ""; }; - D0085AC71B28285400EAF753 /* SSignal+Meta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Meta.h"; sourceTree = ""; }; - D0085AC81B28285400EAF753 /* SSignal+Timing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Timing.h"; sourceTree = ""; }; - D0085AC91B28285400EAF753 /* SSubscriber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SSubscriber.m; sourceTree = ""; }; - D0085ACA1B28285400EAF753 /* SSignal+Dispatch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Dispatch.m"; sourceTree = ""; }; - D0085ACB1B28285400EAF753 /* SThreadPoolTask.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SThreadPoolTask.m; sourceTree = ""; }; - D0085ACC1B28285400EAF753 /* SThreadPoolQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SThreadPoolQueue.m; sourceTree = ""; }; - D0085ACD1B28285400EAF753 /* SThreadPoolQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SThreadPoolQueue.h; sourceTree = ""; }; - D0085ACE1B28285400EAF753 /* SThreadPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SThreadPool.h; sourceTree = ""; }; - D0085ACF1B28285400EAF753 /* SThreadPoolTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SThreadPoolTask.h; sourceTree = ""; }; - D0085AD01B28285400EAF753 /* SDisposableSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDisposableSet.m; sourceTree = ""; }; - D0085AD11B28285400EAF753 /* SMetaDisposable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SMetaDisposable.m; sourceTree = ""; }; - D0085AD21B28285400EAF753 /* SSignal+Multicast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Multicast.m"; sourceTree = ""; }; - D0085AD31B28285400EAF753 /* SSubscriber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SSubscriber.h; sourceTree = ""; }; - D0085AD41B28285400EAF753 /* SDisposable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDisposable.h; sourceTree = ""; }; - D0085AD51B28285400EAF753 /* SSignal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SSignal.h; sourceTree = ""; }; - D0085AD61B28285400EAF753 /* SSignal+Mapping.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Mapping.h"; sourceTree = ""; }; - D0085AD71B28285400EAF753 /* SSignal+Mapping.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Mapping.m"; sourceTree = ""; }; - D0085AD81B28285400EAF753 /* SSignal+Single.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SSignal+Single.m"; sourceTree = ""; }; - D0085AD91B28285400EAF753 /* SAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SAtomic.h; sourceTree = ""; }; - D0085ADA1B28285400EAF753 /* SAtomic.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SAtomic.m; sourceTree = ""; }; - D0085ADB1B28285400EAF753 /* SBag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBag.h; sourceTree = ""; }; - D0085ADC1B28285400EAF753 /* SBag.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBag.m; sourceTree = ""; }; - D0085ADD1B28285400EAF753 /* SBlockDisposable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBlockDisposable.h; sourceTree = ""; }; - D0085ADE1B28285400EAF753 /* SBlockDisposable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBlockDisposable.m; sourceTree = ""; }; - D0085ADF1B28285400EAF753 /* SDisposableSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDisposableSet.h; sourceTree = ""; }; - D0085AE21B28285400EAF753 /* SMetaDisposable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMetaDisposable.h; sourceTree = ""; }; - D0085AE31B28285400EAF753 /* SSignal+Dispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Dispatch.h"; sourceTree = ""; }; - D0085AE41B28285400EAF753 /* SSignal+Multicast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SSignal+Multicast.h"; sourceTree = ""; }; - D0085AE51B28285400EAF753 /* STimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = STimer.h; sourceTree = ""; }; - D0085AE61B28285400EAF753 /* STimer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = STimer.m; sourceTree = ""; }; - D0085B221B282B9800EAF753 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0085B251B282B9800EAF753 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0085B261B282B9800EAF753 /* SwiftSignalKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SwiftSignalKit.h; sourceTree = ""; }; - D0085B2C1B282B9800EAF753 /* SwiftSignalKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SwiftSignalKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - D0085B321B282B9800EAF753 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0085B3B1B282BEE00EAF753 /* SwiftSignalKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SwiftSignalKit.h; sourceTree = ""; }; - D0085B3C1B282BEE00EAF753 /* Signal_Timing.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Timing.swift; sourceTree = ""; }; - D0085B3D1B282BEE00EAF753 /* Signal_SideEffects.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_SideEffects.swift; sourceTree = ""; }; - D0085B3E1B282BEE00EAF753 /* Signal_Dispatch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Dispatch.swift; sourceTree = ""; }; - D0085B3F1B282BEE00EAF753 /* ThreadPool.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThreadPool.swift; sourceTree = ""; }; - D0085B401B282BEE00EAF753 /* Timer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Timer.swift; sourceTree = ""; }; - D0085B411B282BEE00EAF753 /* Queue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Queue.swift; sourceTree = ""; }; - D0085B421B282BEE00EAF753 /* ValuePipe.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValuePipe.swift; sourceTree = ""; }; - D0085B431B282BEE00EAF753 /* Bag.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Bag.swift; sourceTree = ""; }; - D0085B441B282BEE00EAF753 /* Signal_Take.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Take.swift; sourceTree = ""; }; - D0085B451B282BEE00EAF753 /* Signal_Catch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Catch.swift; sourceTree = ""; }; - D0085B461B282BEE00EAF753 /* Signal_Single.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Single.swift; sourceTree = ""; }; - D0085B471B282BEE00EAF753 /* Signal_Meta.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Meta.swift; sourceTree = ""; }; - D0085B481B282BEE00EAF753 /* Signal_Combine.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Combine.swift; sourceTree = ""; }; - D0085B491B282BEE00EAF753 /* Atomic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Atomic.swift; sourceTree = ""; }; - D0085B4A1B282BEE00EAF753 /* Signal_Reduce.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Reduce.swift; sourceTree = ""; }; - D0085B4B1B282BEE00EAF753 /* Signal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal.swift; sourceTree = ""; }; - D0085B4C1B282BEE00EAF753 /* Disposable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Disposable.swift; sourceTree = ""; }; - D0085B4D1B282BEE00EAF753 /* Signal_Mapping.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Mapping.swift; sourceTree = ""; }; - D0085B4E1B282BEE00EAF753 /* Subscriber.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Subscriber.swift; sourceTree = ""; }; - D0085B631B282C2800EAF753 /* SwiftSignalKitFunctionsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftSignalKitFunctionsTests.swift; sourceTree = ""; }; - D0085B641B282C2800EAF753 /* DeallocatingObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeallocatingObject.swift; sourceTree = ""; }; - D0085B651B282C2800EAF753 /* SwiftSignalKitBasicTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftSignalKitBasicTests.swift; sourceTree = ""; }; - D02720B01CD0E005006F1506 /* PerformanceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PerformanceTests.swift; sourceTree = ""; }; - D0445DD81A7C2CA500267924 /* SSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0445DDC1A7C2CA500267924 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0445DE31A7C2CA500267924 /* SSignalKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SSignalKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - D0445DE91A7C2CA500267924 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0445E561A7C3FB400267924 /* SDisposableTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDisposableTests.m; sourceTree = ""; }; - D0467D1720D7F7BC0055C28F /* Signal_Loop.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Signal_Loop.swift; sourceTree = ""; }; - D053B3FF1F16881000E2D58A /* QueueLocalObject.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QueueLocalObject.swift; sourceTree = ""; }; - D05F09A71C9EF77100BB6F96 /* Multicast.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Multicast.swift; sourceTree = ""; }; - D066BD091C7FE06700D7A576 /* Lock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Lock.swift; sourceTree = ""; }; - D06F106B1A85561E00485185 /* SSignalBasicTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SSignalBasicTests.m; sourceTree = ""; }; - D06F106F1A855E2D00485185 /* DeallocatingObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeallocatingObject.h; sourceTree = ""; }; - D06F10701A855E2D00485185 /* DeallocatingObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DeallocatingObject.m; sourceTree = ""; }; - D06F10721A85882000485185 /* SSignalPerformanceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SSignalPerformanceTests.m; sourceTree = ""; }; - D07A5CFC1BBDE6E400451791 /* Promise.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Promise.swift; sourceTree = ""; }; - D09FD73C1BA9BAB900FF0A4F /* SVariable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVariable.h; sourceTree = ""; }; - D09FD73D1BA9BAB900FF0A4F /* SVariable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVariable.m; sourceTree = ""; }; - D0B417ED1D7DFA63004562A4 /* SwiftSignalKitMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftSignalKitMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0B417EF1D7DFA63004562A4 /* SwiftSignalKitMac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SwiftSignalKitMac.h; sourceTree = ""; }; - D0B417F01D7DFA63004562A4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0CD17B11CC17C83007C5650 /* Signal_Materialize.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Materialize.swift; sourceTree = ""; }; - D0FC1A391CA3284F0056AE9A /* Signal_Merge.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Signal_Merge.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - D0085B1E1B282B9800EAF753 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0085B291B282B9800EAF753 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D0085B2D1B282B9800EAF753 /* SwiftSignalKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0445DD41A7C2CA500267924 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0445DE01A7C2CA500267924 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D0445DE41A7C2CA500267924 /* SSignalKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0B417E91D7DFA63004562A4 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - D0085B231B282B9800EAF753 /* SwiftSignalKit */ = { - isa = PBXGroup; - children = ( - D0085B3B1B282BEE00EAF753 /* SwiftSignalKit.h */, - D0085B3C1B282BEE00EAF753 /* Signal_Timing.swift */, - D0085B3D1B282BEE00EAF753 /* Signal_SideEffects.swift */, - D0085B3E1B282BEE00EAF753 /* Signal_Dispatch.swift */, - D0085B3F1B282BEE00EAF753 /* ThreadPool.swift */, - D0085B401B282BEE00EAF753 /* Timer.swift */, - D0085B411B282BEE00EAF753 /* Queue.swift */, - D0085B421B282BEE00EAF753 /* ValuePipe.swift */, - D0085B431B282BEE00EAF753 /* Bag.swift */, - D0085B441B282BEE00EAF753 /* Signal_Take.swift */, - D0085B451B282BEE00EAF753 /* Signal_Catch.swift */, - D0085B461B282BEE00EAF753 /* Signal_Single.swift */, - D0085B471B282BEE00EAF753 /* Signal_Meta.swift */, - D0085B481B282BEE00EAF753 /* Signal_Combine.swift */, - D0FC1A391CA3284F0056AE9A /* Signal_Merge.swift */, - D0085B491B282BEE00EAF753 /* Atomic.swift */, - D0085B4A1B282BEE00EAF753 /* Signal_Reduce.swift */, - D0CD17B11CC17C83007C5650 /* Signal_Materialize.swift */, - D0085B4B1B282BEE00EAF753 /* Signal.swift */, - D0085B4C1B282BEE00EAF753 /* Disposable.swift */, - D0085B4D1B282BEE00EAF753 /* Signal_Mapping.swift */, - D0467D1720D7F7BC0055C28F /* Signal_Loop.swift */, - D0085B4E1B282BEE00EAF753 /* Subscriber.swift */, - D07A5CFC1BBDE6E400451791 /* Promise.swift */, - D05F09A71C9EF77100BB6F96 /* Multicast.swift */, - D066BD091C7FE06700D7A576 /* Lock.swift */, - D053B3FF1F16881000E2D58A /* QueueLocalObject.swift */, - D0085B261B282B9800EAF753 /* SwiftSignalKit.h */, - D0085B241B282B9800EAF753 /* Supporting Files */, - ); - path = SwiftSignalKit; - sourceTree = ""; - }; - D0085B241B282B9800EAF753 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D0085B251B282B9800EAF753 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D0085B301B282B9800EAF753 /* SwiftSignalKitTests */ = { - isa = PBXGroup; - children = ( - D0085B631B282C2800EAF753 /* SwiftSignalKitFunctionsTests.swift */, - D0085B641B282C2800EAF753 /* DeallocatingObject.swift */, - D0085B651B282C2800EAF753 /* SwiftSignalKitBasicTests.swift */, - D02720B01CD0E005006F1506 /* PerformanceTests.swift */, - D0085B311B282B9800EAF753 /* Supporting Files */, - ); - path = SwiftSignalKitTests; - sourceTree = ""; - }; - D0085B311B282B9800EAF753 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D0085B321B282B9800EAF753 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D0445DCE1A7C2CA500267924 = { - isa = PBXGroup; - children = ( - D0445DDA1A7C2CA500267924 /* SSignalKit */, - D0445DE71A7C2CA500267924 /* SSignalKitTests */, - D0085B231B282B9800EAF753 /* SwiftSignalKit */, - D0085B301B282B9800EAF753 /* SwiftSignalKitTests */, - D0B417EE1D7DFA63004562A4 /* SwiftSignalKitMac */, - D0445DD91A7C2CA500267924 /* Products */, - ); - sourceTree = ""; - }; - D0445DD91A7C2CA500267924 /* Products */ = { - isa = PBXGroup; - children = ( - D0445DD81A7C2CA500267924 /* SSignalKit.framework */, - D0445DE31A7C2CA500267924 /* SSignalKitTests.xctest */, - D0085B221B282B9800EAF753 /* SwiftSignalKit.framework */, - D0085B2C1B282B9800EAF753 /* SwiftSignalKitTests.xctest */, - D0B417ED1D7DFA63004562A4 /* SwiftSignalKitMac.framework */, - ); - name = Products; - sourceTree = ""; - }; - D0445DDA1A7C2CA500267924 /* SSignalKit */ = { - isa = PBXGroup; - children = ( - D0085AD91B28285400EAF753 /* SAtomic.h */, - D0085ADA1B28285400EAF753 /* SAtomic.m */, - D0085ADB1B28285400EAF753 /* SBag.h */, - D0085ADC1B28285400EAF753 /* SBag.m */, - D0085AD31B28285400EAF753 /* SSubscriber.h */, - D0085AC91B28285400EAF753 /* SSubscriber.m */, - D0085AD41B28285400EAF753 /* SDisposable.h */, - D0085ADF1B28285400EAF753 /* SDisposableSet.h */, - D0085AD01B28285400EAF753 /* SDisposableSet.m */, - D0085AE21B28285400EAF753 /* SMetaDisposable.h */, - D0085AD11B28285400EAF753 /* SMetaDisposable.m */, - D0085ADD1B28285400EAF753 /* SBlockDisposable.h */, - D0085ADE1B28285400EAF753 /* SBlockDisposable.m */, - D0085ACE1B28285400EAF753 /* SThreadPool.h */, - D0085AB21B28285400EAF753 /* SThreadPool.m */, - D0085ACF1B28285400EAF753 /* SThreadPoolTask.h */, - D0085ACB1B28285400EAF753 /* SThreadPoolTask.m */, - D0085ACD1B28285400EAF753 /* SThreadPoolQueue.h */, - D0085ACC1B28285400EAF753 /* SThreadPoolQueue.m */, - D0085AC61B28285400EAF753 /* SQueue.h */, - D0085AB31B28285400EAF753 /* SQueue.m */, - D0085AE51B28285400EAF753 /* STimer.h */, - D0085AE61B28285400EAF753 /* STimer.m */, - D0085AD51B28285400EAF753 /* SSignal.h */, - D0085AB81B28285400EAF753 /* SSignal.m */, - D0085AB71B28285400EAF753 /* SSignal+Single.h */, - D0085AD81B28285400EAF753 /* SSignal+Single.m */, - D0085AD61B28285400EAF753 /* SSignal+Mapping.h */, - D0085AD71B28285400EAF753 /* SSignal+Mapping.m */, - D0085ABC1B28285400EAF753 /* SSignal+Combine.h */, - D0085ABD1B28285400EAF753 /* SSignal+Combine.m */, - D0085AB61B28285400EAF753 /* SSignal+Accumulate.h */, - D0085AC51B28285400EAF753 /* SSignal+Accumulate.m */, - D0085AC01B28285400EAF753 /* SSignal+SideEffects.h */, - D0085AC11B28285400EAF753 /* SSignal+SideEffects.m */, - D0085AC41B28285400EAF753 /* SSignal+Take.h */, - D0085AB41B28285400EAF753 /* SSignal+Take.m */, - D0085AC81B28285400EAF753 /* SSignal+Timing.h */, - D0085AB11B28285400EAF753 /* SSignal+Timing.m */, - D0085AC71B28285400EAF753 /* SSignal+Meta.h */, - D0085AB51B28285400EAF753 /* SSignal+Meta.m */, - D0085ABE1B28285400EAF753 /* SSignal+Pipe.h */, - D0085ABF1B28285400EAF753 /* SSignal+Pipe.m */, - D0085AC31B28285400EAF753 /* SSignal+Catch.h */, - D0085AC21B28285400EAF753 /* SSignal+Catch.m */, - D0085AE31B28285400EAF753 /* SSignal+Dispatch.h */, - D0085ACA1B28285400EAF753 /* SSignal+Dispatch.m */, - D0085AE41B28285400EAF753 /* SSignal+Multicast.h */, - D0085AD21B28285400EAF753 /* SSignal+Multicast.m */, - D0085ABA1B28285400EAF753 /* SMulticastSignalManager.h */, - D0085ABB1B28285400EAF753 /* SMulticastSignalManager.m */, - D09FD73C1BA9BAB900FF0A4F /* SVariable.h */, - D09FD73D1BA9BAB900FF0A4F /* SVariable.m */, - D0085AB91B28285400EAF753 /* SSignalKit.h */, - D0445DDB1A7C2CA500267924 /* Supporting Files */, - ); - path = SSignalKit; - sourceTree = ""; - }; - D0445DDB1A7C2CA500267924 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D0445DDC1A7C2CA500267924 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D0445DE71A7C2CA500267924 /* SSignalKitTests */ = { - isa = PBXGroup; - children = ( - D06F106F1A855E2D00485185 /* DeallocatingObject.h */, - D06F10701A855E2D00485185 /* DeallocatingObject.m */, - D0445DE81A7C2CA500267924 /* Supporting Files */, - D0445E561A7C3FB400267924 /* SDisposableTests.m */, - D06F106B1A85561E00485185 /* SSignalBasicTests.m */, - D06F10721A85882000485185 /* SSignalPerformanceTests.m */, - ); - path = SSignalKitTests; - sourceTree = ""; - }; - D0445DE81A7C2CA500267924 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D0445DE91A7C2CA500267924 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D0B417EE1D7DFA63004562A4 /* SwiftSignalKitMac */ = { - isa = PBXGroup; - children = ( - D0B417EF1D7DFA63004562A4 /* SwiftSignalKitMac.h */, - D0B417F01D7DFA63004562A4 /* Info.plist */, - ); - path = SwiftSignalKitMac; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - D0085B1F1B282B9800EAF753 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D0085B271B282B9800EAF753 /* SwiftSignalKit.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0445DD51A7C2CA500267924 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D0085AF61B28285400EAF753 /* SSignal+SideEffects.h in Headers */, - D0085AFD1B28285400EAF753 /* SSignal+Meta.h in Headers */, - D09FD73E1BA9BAB900FF0A4F /* SVariable.h in Headers */, - D0085AFE1B28285400EAF753 /* SSignal+Timing.h in Headers */, - D0085B0A1B28285400EAF753 /* SDisposable.h in Headers */, - D0085B111B28285400EAF753 /* SBag.h in Headers */, - D0085AF21B28285400EAF753 /* SSignal+Combine.h in Headers */, - D0085AFA1B28285400EAF753 /* SSignal+Take.h in Headers */, - D0085B0B1B28285400EAF753 /* SSignal.h in Headers */, - D0085AED1B28285400EAF753 /* SSignal+Single.h in Headers */, - D0085AF01B28285400EAF753 /* SMulticastSignalManager.h in Headers */, - D0085AF91B28285400EAF753 /* SSignal+Catch.h in Headers */, - D0085B151B28285400EAF753 /* SDisposableSet.h in Headers */, - D0085B0C1B28285400EAF753 /* SSignal+Mapping.h in Headers */, - D0085AFC1B28285400EAF753 /* SQueue.h in Headers */, - D0085B031B28285400EAF753 /* SThreadPoolQueue.h in Headers */, - D0085B091B28285400EAF753 /* SSubscriber.h in Headers */, - D0085B041B28285400EAF753 /* SThreadPool.h in Headers */, - D0085AEC1B28285400EAF753 /* SSignal+Accumulate.h in Headers */, - D0085B1B1B28285400EAF753 /* STimer.h in Headers */, - D0085AF41B28285400EAF753 /* SSignal+Pipe.h in Headers */, - D0085B181B28285400EAF753 /* SMetaDisposable.h in Headers */, - D0085B051B28285400EAF753 /* SThreadPoolTask.h in Headers */, - D0085B1A1B28285400EAF753 /* SSignal+Multicast.h in Headers */, - D0085B191B28285400EAF753 /* SSignal+Dispatch.h in Headers */, - D0085AEF1B28285400EAF753 /* SSignalKit.h in Headers */, - D0085B131B28285400EAF753 /* SBlockDisposable.h in Headers */, - D0085B0F1B28285400EAF753 /* SAtomic.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0B417EA1D7DFA63004562A4 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D0B417F11D7DFA63004562A4 /* SwiftSignalKitMac.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - D0085B211B282B9800EAF753 /* SwiftSignalKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0085B351B282B9800EAF753 /* Build configuration list for PBXNativeTarget "SwiftSignalKit" */; - buildPhases = ( - D0085B1D1B282B9800EAF753 /* Sources */, - D0085B1E1B282B9800EAF753 /* Frameworks */, - D0085B1F1B282B9800EAF753 /* Headers */, - D0085B201B282B9800EAF753 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SwiftSignalKit; - productName = SwiftSignalKit; - productReference = D0085B221B282B9800EAF753 /* SwiftSignalKit.framework */; - productType = "com.apple.product-type.framework"; - }; - D0085B2B1B282B9800EAF753 /* SwiftSignalKitTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0085B381B282B9800EAF753 /* Build configuration list for PBXNativeTarget "SwiftSignalKitTests" */; - buildPhases = ( - D0085B281B282B9800EAF753 /* Sources */, - D0085B291B282B9800EAF753 /* Frameworks */, - D0085B2A1B282B9800EAF753 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - D0085B2F1B282B9800EAF753 /* PBXTargetDependency */, - ); - name = SwiftSignalKitTests; - productName = SwiftSignalKitTests; - productReference = D0085B2C1B282B9800EAF753 /* SwiftSignalKitTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - D0445DD71A7C2CA500267924 /* SSignalKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0445DEE1A7C2CA500267924 /* Build configuration list for PBXNativeTarget "SSignalKit" */; - buildPhases = ( - D0445DD31A7C2CA500267924 /* Sources */, - D0445DD41A7C2CA500267924 /* Frameworks */, - D0445DD51A7C2CA500267924 /* Headers */, - D0445DD61A7C2CA500267924 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SSignalKit; - productName = SSignalKit; - productReference = D0445DD81A7C2CA500267924 /* SSignalKit.framework */; - productType = "com.apple.product-type.framework"; - }; - D0445DE21A7C2CA500267924 /* SSignalKitTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0445DF11A7C2CA500267924 /* Build configuration list for PBXNativeTarget "SSignalKitTests" */; - buildPhases = ( - D0445DDF1A7C2CA500267924 /* Sources */, - D0445DE01A7C2CA500267924 /* Frameworks */, - D0445DE11A7C2CA500267924 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - D0445DE61A7C2CA500267924 /* PBXTargetDependency */, - ); - name = SSignalKitTests; - productName = SSignalKitTests; - productReference = D0445DE31A7C2CA500267924 /* SSignalKitTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - D0B417EC1D7DFA63004562A4 /* SwiftSignalKitMac */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0B417F21D7DFA63004562A4 /* Build configuration list for PBXNativeTarget "SwiftSignalKitMac" */; - buildPhases = ( - D0B417E81D7DFA63004562A4 /* Sources */, - D0B417E91D7DFA63004562A4 /* Frameworks */, - D0B417EA1D7DFA63004562A4 /* Headers */, - D0B417EB1D7DFA63004562A4 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SwiftSignalKitMac; - productName = SwiftSignalKitMac; - productReference = D0B417ED1D7DFA63004562A4 /* SwiftSignalKitMac.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D0445DCF1A7C2CA500267924 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftMigration = 0700; - LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0800; - ORGANIZATIONNAME = Telegram; - TargetAttributes = { - D0085B211B282B9800EAF753 = { - CreatedOnToolsVersion = 6.3.1; - ProvisioningStyle = Manual; - }; - D0085B2B1B282B9800EAF753 = { - CreatedOnToolsVersion = 6.3.1; - }; - D0445DD71A7C2CA500267924 = { - CreatedOnToolsVersion = 6.1.1; - ProvisioningStyle = Manual; - }; - D0445DE21A7C2CA500267924 = { - CreatedOnToolsVersion = 6.1.1; - }; - D0B417EC1D7DFA63004562A4 = { - CreatedOnToolsVersion = 8.0; - ProvisioningStyle = Manual; - }; - }; - }; - buildConfigurationList = D0445DD21A7C2CA500267924 /* Build configuration list for PBXProject "SSignalKit_Xcode" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - ); - mainGroup = D0445DCE1A7C2CA500267924; - productRefGroup = D0445DD91A7C2CA500267924 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - D0445DD71A7C2CA500267924 /* SSignalKit */, - D0445DE21A7C2CA500267924 /* SSignalKitTests */, - D0085B211B282B9800EAF753 /* SwiftSignalKit */, - D0085B2B1B282B9800EAF753 /* SwiftSignalKitTests */, - D0B417EC1D7DFA63004562A4 /* SwiftSignalKitMac */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - D0085B201B282B9800EAF753 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0085B2A1B282B9800EAF753 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0445DD61A7C2CA500267924 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0445DE11A7C2CA500267924 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0B417EB1D7DFA63004562A4 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - D0085B1D1B282B9800EAF753 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D0085B521B282BEE00EAF753 /* Signal_Dispatch.swift in Sources */, - D0085B561B282BEE00EAF753 /* ValuePipe.swift in Sources */, - D0085B551B282BEE00EAF753 /* Queue.swift in Sources */, - D0085B591B282BEE00EAF753 /* Signal_Catch.swift in Sources */, - D0085B601B282BEE00EAF753 /* Disposable.swift in Sources */, - D0FC1A3A1CA3284F0056AE9A /* Signal_Merge.swift in Sources */, - D0085B531B282BEE00EAF753 /* ThreadPool.swift in Sources */, - D0CD17B21CC17C83007C5650 /* Signal_Materialize.swift in Sources */, - D0085B5F1B282BEE00EAF753 /* Signal.swift in Sources */, - D07A5CFD1BBDE6E400451791 /* Promise.swift in Sources */, - D0085B5E1B282BEE00EAF753 /* Signal_Reduce.swift in Sources */, - D0085B621B282BEE00EAF753 /* Subscriber.swift in Sources */, - D066BD0A1C7FE06700D7A576 /* Lock.swift in Sources */, - D0085B581B282BEE00EAF753 /* Signal_Take.swift in Sources */, - D05F09A81C9EF77100BB6F96 /* Multicast.swift in Sources */, - D0085B501B282BEE00EAF753 /* Signal_Timing.swift in Sources */, - D0085B541B282BEE00EAF753 /* Timer.swift in Sources */, - D0085B5B1B282BEE00EAF753 /* Signal_Meta.swift in Sources */, - D0085B571B282BEE00EAF753 /* Bag.swift in Sources */, - D0467D1820D7F7BC0055C28F /* Signal_Loop.swift in Sources */, - D0085B5A1B282BEE00EAF753 /* Signal_Single.swift in Sources */, - D053B4001F16881000E2D58A /* QueueLocalObject.swift in Sources */, - D0085B611B282BEE00EAF753 /* Signal_Mapping.swift in Sources */, - D0085B5C1B282BEE00EAF753 /* Signal_Combine.swift in Sources */, - D0085B5D1B282BEE00EAF753 /* Atomic.swift in Sources */, - D0085B511B282BEE00EAF753 /* Signal_SideEffects.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0085B281B282B9800EAF753 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D0085B671B282C2800EAF753 /* DeallocatingObject.swift in Sources */, - D0085B681B282C2800EAF753 /* SwiftSignalKitBasicTests.swift in Sources */, - D02720B11CD0E005006F1506 /* PerformanceTests.swift in Sources */, - D0085B661B282C2800EAF753 /* SwiftSignalKitFunctionsTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0445DD31A7C2CA500267924 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D0085AE91B28285400EAF753 /* SQueue.m in Sources */, - D09FD73F1BA9BAB900FF0A4F /* SVariable.m in Sources */, - D0085B141B28285400EAF753 /* SBlockDisposable.m in Sources */, - D0085B001B28285400EAF753 /* SSignal+Dispatch.m in Sources */, - D0085AE71B28285400EAF753 /* SSignal+Timing.m in Sources */, - D0085AEB1B28285400EAF753 /* SSignal+Meta.m in Sources */, - D0085B0D1B28285400EAF753 /* SSignal+Mapping.m in Sources */, - D0085AF81B28285400EAF753 /* SSignal+Catch.m in Sources */, - D0085AF11B28285400EAF753 /* SMulticastSignalManager.m in Sources */, - D0085B071B28285400EAF753 /* SMetaDisposable.m in Sources */, - D0085B101B28285400EAF753 /* SAtomic.m in Sources */, - D0085B121B28285400EAF753 /* SBag.m in Sources */, - D0085AEE1B28285400EAF753 /* SSignal.m in Sources */, - D0085B021B28285400EAF753 /* SThreadPoolQueue.m in Sources */, - D0085AFF1B28285400EAF753 /* SSubscriber.m in Sources */, - D0085B081B28285400EAF753 /* SSignal+Multicast.m in Sources */, - D0085B1C1B28285400EAF753 /* STimer.m in Sources */, - D0085AF51B28285400EAF753 /* SSignal+Pipe.m in Sources */, - D0085AF31B28285400EAF753 /* SSignal+Combine.m in Sources */, - D0085AF71B28285400EAF753 /* SSignal+SideEffects.m in Sources */, - D0085AEA1B28285400EAF753 /* SSignal+Take.m in Sources */, - D0085B061B28285400EAF753 /* SDisposableSet.m in Sources */, - D0085AE81B28285400EAF753 /* SThreadPool.m in Sources */, - D0085B011B28285400EAF753 /* SThreadPoolTask.m in Sources */, - D0085B0E1B28285400EAF753 /* SSignal+Single.m in Sources */, - D0085AFB1B28285400EAF753 /* SSignal+Accumulate.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0445DDF1A7C2CA500267924 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D06F106C1A85561E00485185 /* SSignalBasicTests.m in Sources */, - D06F10711A855E2D00485185 /* DeallocatingObject.m in Sources */, - D06F10731A85882000485185 /* SSignalPerformanceTests.m in Sources */, - D0445E571A7C3FB400267924 /* SDisposableTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0B417E81D7DFA63004562A4 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D0B417F61D7DFAAB004562A4 /* Signal_Timing.swift in Sources */, - D0B417F71D7DFAAB004562A4 /* Signal_SideEffects.swift in Sources */, - D0B417F81D7DFAAB004562A4 /* Signal_Dispatch.swift in Sources */, - D0B417F91D7DFAAB004562A4 /* ThreadPool.swift in Sources */, - D0B417FA1D7DFAAB004562A4 /* Timer.swift in Sources */, - D0B417FB1D7DFAAB004562A4 /* Queue.swift in Sources */, - D0B417FC1D7DFAAB004562A4 /* ValuePipe.swift in Sources */, - D0B417FD1D7DFAAB004562A4 /* Bag.swift in Sources */, - D0B417FE1D7DFAAB004562A4 /* Signal_Take.swift in Sources */, - D0B417FF1D7DFAAB004562A4 /* Signal_Catch.swift in Sources */, - D0B418001D7DFAAB004562A4 /* Signal_Single.swift in Sources */, - D0B418011D7DFAAB004562A4 /* Signal_Meta.swift in Sources */, - D0B418021D7DFAAB004562A4 /* Signal_Combine.swift in Sources */, - D0B418031D7DFAAB004562A4 /* Signal_Merge.swift in Sources */, - D0B418041D7DFAAB004562A4 /* Atomic.swift in Sources */, - D0B418051D7DFAAB004562A4 /* Signal_Reduce.swift in Sources */, - D0B418061D7DFAAB004562A4 /* Signal_Materialize.swift in Sources */, - D0B418071D7DFAAB004562A4 /* Signal.swift in Sources */, - D0B418081D7DFAAB004562A4 /* Disposable.swift in Sources */, - D0467D1920D7F7BC0055C28F /* Signal_Loop.swift in Sources */, - D0B418091D7DFAAB004562A4 /* Signal_Mapping.swift in Sources */, - D053B4011F16881000E2D58A /* QueueLocalObject.swift in Sources */, - D0B4180A1D7DFAAB004562A4 /* Subscriber.swift in Sources */, - D0B4180B1D7DFAAB004562A4 /* Promise.swift in Sources */, - D0B4180C1D7DFAAB004562A4 /* Multicast.swift in Sources */, - D0B4180D1D7DFAAB004562A4 /* Lock.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - D0085B2F1B282B9800EAF753 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D0085B211B282B9800EAF753 /* SwiftSignalKit */; - targetProxy = D0085B2E1B282B9800EAF753 /* PBXContainerItemProxy */; - }; - D0445DE61A7C2CA500267924 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D0445DD71A7C2CA500267924 /* SSignalKit */; - targetProxy = D0445DE51A7C2CA500267924 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - D0085B361B282B9800EAF753 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ARCHS = "$(ARCHS_STANDARD)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SwiftSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_SWIFT_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_REFLECTION_METADATA_LEVEL = none; - SWIFT_VERSION = 5.0; - }; - name = DebugHockeyapp; - }; - D0085B371B282B9800EAF753 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ARCHS = "$(ARCHS_STANDARD)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = SwiftSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_SWIFT_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = none; - SWIFT_VERSION = 5.0; - }; - name = ReleaseHockeyapp; - }; - D0085B391B282B9800EAF753 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SwiftSignalKitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; - }; - name = DebugHockeyapp; - }; - D0085B3A1B282B9800EAF753 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = SwiftSignalKitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; - }; - name = ReleaseHockeyapp; - }; - D021D502219CB1D90064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - ENABLE_BITCODE = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugFork; - }; - D021D503219CB1D90064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = SSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - }; - name = DebugFork; - }; - D021D504219CB1D90064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SSignalKitTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-framework", - XCTest, - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugFork; - }; - D021D505219CB1D90064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ARCHS = "$(ARCHS_STANDARD)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SwiftSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_SWIFT_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_REFLECTION_METADATA_LEVEL = none; - SWIFT_VERSION = 5.0; - }; - name = DebugFork; - }; - D021D506219CB1D90064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SwiftSignalKitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; - }; - name = DebugFork; - }; - D021D507219CB1D90064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = SwiftSignalKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKitMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = DebugFork; - }; - D0364D5522B3E38E002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - ENABLE_BITCODE = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = HockeyappMacAlpha; - }; - D0364D5622B3E38E002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = SSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - }; - name = HockeyappMacAlpha; - }; - D0364D5722B3E38E002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SSignalKitTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-framework", - XCTest, - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = HockeyappMacAlpha; - }; - D0364D5822B3E38E002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ARCHS = "$(ARCHS_STANDARD)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SwiftSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_SWIFT_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_REFLECTION_METADATA_LEVEL = none; - SWIFT_VERSION = 5.0; - }; - name = HockeyappMacAlpha; - }; - D0364D5922B3E38E002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SwiftSignalKitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; - }; - name = HockeyappMacAlpha; - }; - D0364D5A22B3E38E002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = SwiftSignalKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKitMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = HockeyappMacAlpha; - }; - D0445DEC1A7C2CA500267924 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - ENABLE_BITCODE = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D0445DED1A7C2CA500267924 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - ENABLE_BITCODE = NO; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyapp; - }; - D0445DEF1A7C2CA500267924 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = SSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - }; - name = DebugHockeyapp; - }; - D0445DF01A7C2CA500267924 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = SSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - }; - name = ReleaseHockeyapp; - }; - D0445DF21A7C2CA500267924 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SSignalKitTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-framework", - XCTest, - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugHockeyapp; - }; - D0445DF31A7C2CA500267924 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - INFOPLIST_FILE = SSignalKitTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-framework", - XCTest, - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseHockeyapp; - }; - D086A5741CC0117500F08284 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - ENABLE_BITCODE = NO; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStore; - }; - D086A5751CC0117500F08284 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = SSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - }; - name = ReleaseAppStore; - }; - D086A5761CC0117500F08284 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - INFOPLIST_FILE = SSignalKitTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-framework", - XCTest, - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseAppStore; - }; - D086A5771CC0117500F08284 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ARCHS = "$(ARCHS_STANDARD)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = SwiftSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_SWIFT_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = none; - SWIFT_VERSION = 5.0; - }; - name = ReleaseAppStore; - }; - D086A5781CC0117500F08284 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = SwiftSignalKitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; - }; - name = ReleaseAppStore; - }; - D0924FE21FE52C0A003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - ENABLE_BITCODE = NO; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; - D0924FE31FE52C0A003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = SSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - }; - name = ReleaseHockeyappInternal; - }; - D0924FE41FE52C0A003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - INFOPLIST_FILE = SSignalKitTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-framework", - XCTest, - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseHockeyappInternal; - }; - D0924FE51FE52C0A003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ARCHS = "$(ARCHS_STANDARD)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = SwiftSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_SWIFT_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = none; - SWIFT_VERSION = 5.0; - }; - name = ReleaseHockeyappInternal; - }; - D0924FE61FE52C0A003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = SwiftSignalKitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; - }; - name = ReleaseHockeyappInternal; - }; - D0924FE71FE52C0A003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = SwiftSignalKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKitMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = ReleaseHockeyappInternal; - }; - D0ADF92E212B3AD400310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - ENABLE_BITCODE = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - D0ADF92F212B3AD400310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = SSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - }; - name = DebugAppStoreLLC; - }; - D0ADF930212B3AD400310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SSignalKitTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-framework", - XCTest, - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugAppStoreLLC; - }; - D0ADF931212B3AD400310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ARCHS = "$(ARCHS_STANDARD)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SwiftSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_SWIFT_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_REFLECTION_METADATA_LEVEL = none; - SWIFT_VERSION = 5.0; - }; - name = DebugAppStoreLLC; - }; - D0ADF932212B3AD400310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SwiftSignalKitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; - }; - name = DebugAppStoreLLC; - }; - D0ADF933212B3AD400310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = SwiftSignalKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKitMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - }; - name = DebugAppStoreLLC; - }; - D0B417F31D7DFA63004562A4 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = SwiftSignalKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKitMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = DebugHockeyapp; - }; - D0B417F41D7DFA63004562A4 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = SwiftSignalKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKitMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = ReleaseHockeyapp; - }; - D0B417F51D7DFA63004562A4 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = SwiftSignalKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKitMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = ReleaseAppStore; - }; - D0CE6EEF213DC30100BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - CURRENT_PROJECT_VERSION = 1; - ENABLE_BITCODE = NO; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EF0213DC30100BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = SSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EF1213DC30100BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - INFOPLIST_FILE = SSignalKitTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-framework", - XCTest, - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EF2213DC30100BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ARCHS = "$(ARCHS_STANDARD)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = SwiftSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_SWIFT_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = none; - SWIFT_VERSION = 5.0; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EF3213DC30100BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = SwiftSignalKitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EF4213DC30100BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = SwiftSignalKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKitMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = ReleaseAppStoreLLC; - }; - D0DB57B61E5C4B7A0071854C /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - ENABLE_BITCODE = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStore; - }; - D0DB57B71E5C4B7A0071854C /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - INFOPLIST_FILE = SSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - ONLY_ACTIVE_ARCH = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = X834Q8SBVP/; - SKIP_INSTALL = YES; - }; - name = DebugAppStore; - }; - D0DB57B81E5C4B7A0071854C /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SSignalKitTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-framework", - XCTest, - "-ObjC", - ); - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugAppStore; - }; - D0DB57B91E5C4B7A0071854C /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ARCHS = "$(ARCHS_STANDARD)"; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_BITCODE = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SwiftSignalKit/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_SWIFT_FLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_REFLECTION_METADATA_LEVEL = none; - SWIFT_VERSION = 5.0; - }; - name = DebugAppStore; - }; - D0DB57BA1E5C4B7A0071854C /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = SwiftSignalKitTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.telegram.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; - }; - name = DebugAppStore; - }; - D0DB57BB1E5C4B7A0071854C /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = SwiftSignalKitMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.10; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.SwiftSignalKitMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = DebugAppStore; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - D0085B351B282B9800EAF753 /* Build configuration list for PBXNativeTarget "SwiftSignalKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0085B361B282B9800EAF753 /* DebugHockeyapp */, - D0364D5822B3E38E002A6EF0 /* HockeyappMacAlpha */, - D021D505219CB1D90064BEBA /* DebugFork */, - D0DB57B91E5C4B7A0071854C /* DebugAppStore */, - D0ADF931212B3AD400310BBC /* DebugAppStoreLLC */, - D0085B371B282B9800EAF753 /* ReleaseHockeyapp */, - D0924FE51FE52C0A003F693F /* ReleaseHockeyappInternal */, - D086A5771CC0117500F08284 /* ReleaseAppStore */, - D0CE6EF2213DC30100BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseHockeyapp; - }; - D0085B381B282B9800EAF753 /* Build configuration list for PBXNativeTarget "SwiftSignalKitTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0085B391B282B9800EAF753 /* DebugHockeyapp */, - D0364D5922B3E38E002A6EF0 /* HockeyappMacAlpha */, - D021D506219CB1D90064BEBA /* DebugFork */, - D0DB57BA1E5C4B7A0071854C /* DebugAppStore */, - D0ADF932212B3AD400310BBC /* DebugAppStoreLLC */, - D0085B3A1B282B9800EAF753 /* ReleaseHockeyapp */, - D0924FE61FE52C0A003F693F /* ReleaseHockeyappInternal */, - D086A5781CC0117500F08284 /* ReleaseAppStore */, - D0CE6EF3213DC30100BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseHockeyapp; - }; - D0445DD21A7C2CA500267924 /* Build configuration list for PBXProject "SSignalKit_Xcode" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0445DEC1A7C2CA500267924 /* DebugHockeyapp */, - D0364D5522B3E38E002A6EF0 /* HockeyappMacAlpha */, - D021D502219CB1D90064BEBA /* DebugFork */, - D0DB57B61E5C4B7A0071854C /* DebugAppStore */, - D0ADF92E212B3AD400310BBC /* DebugAppStoreLLC */, - D0445DED1A7C2CA500267924 /* ReleaseHockeyapp */, - D0924FE21FE52C0A003F693F /* ReleaseHockeyappInternal */, - D086A5741CC0117500F08284 /* ReleaseAppStore */, - D0CE6EEF213DC30100BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseHockeyapp; - }; - D0445DEE1A7C2CA500267924 /* Build configuration list for PBXNativeTarget "SSignalKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0445DEF1A7C2CA500267924 /* DebugHockeyapp */, - D0364D5622B3E38E002A6EF0 /* HockeyappMacAlpha */, - D021D503219CB1D90064BEBA /* DebugFork */, - D0DB57B71E5C4B7A0071854C /* DebugAppStore */, - D0ADF92F212B3AD400310BBC /* DebugAppStoreLLC */, - D0445DF01A7C2CA500267924 /* ReleaseHockeyapp */, - D0924FE31FE52C0A003F693F /* ReleaseHockeyappInternal */, - D086A5751CC0117500F08284 /* ReleaseAppStore */, - D0CE6EF0213DC30100BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseHockeyapp; - }; - D0445DF11A7C2CA500267924 /* Build configuration list for PBXNativeTarget "SSignalKitTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0445DF21A7C2CA500267924 /* DebugHockeyapp */, - D0364D5722B3E38E002A6EF0 /* HockeyappMacAlpha */, - D021D504219CB1D90064BEBA /* DebugFork */, - D0DB57B81E5C4B7A0071854C /* DebugAppStore */, - D0ADF930212B3AD400310BBC /* DebugAppStoreLLC */, - D0445DF31A7C2CA500267924 /* ReleaseHockeyapp */, - D0924FE41FE52C0A003F693F /* ReleaseHockeyappInternal */, - D086A5761CC0117500F08284 /* ReleaseAppStore */, - D0CE6EF1213DC30100BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseHockeyapp; - }; - D0B417F21D7DFA63004562A4 /* Build configuration list for PBXNativeTarget "SwiftSignalKitMac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0B417F31D7DFA63004562A4 /* DebugHockeyapp */, - D0364D5A22B3E38E002A6EF0 /* HockeyappMacAlpha */, - D021D507219CB1D90064BEBA /* DebugFork */, - D0DB57BB1E5C4B7A0071854C /* DebugAppStore */, - D0ADF933212B3AD400310BBC /* DebugAppStoreLLC */, - D0B417F41D7DFA63004562A4 /* ReleaseHockeyapp */, - D0924FE71FE52C0A003F693F /* ReleaseHockeyappInternal */, - D0B417F51D7DFA63004562A4 /* ReleaseAppStore */, - D0CE6EF4213DC30100BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseHockeyapp; - }; -/* End XCConfigurationList section */ - }; - rootObject = D0445DCF1A7C2CA500267924 /* Project object */; -} diff --git a/submodules/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/submodules/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 2141ad337b..0000000000 --- a/submodules/SSignalKit/SSignalKit_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/submodules/SSignalKit/SwiftSignalKit copy-Info.plist b/submodules/SSignalKit/SwiftSignalKit copy-Info.plist deleted file mode 100644 index d3de8eefb6..0000000000 --- a/submodules/SSignalKit/SwiftSignalKit copy-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/submodules/SSignalKit/SwiftSignalKitMac/Info.plist b/submodules/SSignalKit/SwiftSignalKitMac/Info.plist deleted file mode 100644 index ab41b55afe..0000000000 --- a/submodules/SSignalKit/SwiftSignalKitMac/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSHumanReadableCopyright - Copyright © 2016 Telegram. All rights reserved. - NSPrincipalClass - - - diff --git a/submodules/SSignalKit/SwiftSignalKitMac/SwiftSignalKitMac.h b/submodules/SSignalKit/SwiftSignalKitMac/SwiftSignalKitMac.h deleted file mode 100644 index eef45f9dd5..0000000000 --- a/submodules/SSignalKit/SwiftSignalKitMac/SwiftSignalKitMac.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// SwiftSignalKitMac.h -// SwiftSignalKitMac -// -// Created by Peter on 9/5/16. -// Copyright © 2016 Telegram. All rights reserved. -// - -#import - -//! Project version number for SwiftSignalKitMac. -FOUNDATION_EXPORT double SwiftSignalKitMacVersionNumber; - -//! Project version string for SwiftSignalKitMac. -FOUNDATION_EXPORT const unsigned char SwiftSignalKitMacVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/submodules/SyncCore/Sources/AccountEnvironmentAttribute.swift b/submodules/SyncCore/Sources/AccountEnvironmentAttribute.swift index e850b9d881..dda33baa2f 100644 --- a/submodules/SyncCore/Sources/AccountEnvironmentAttribute.swift +++ b/submodules/SyncCore/Sources/AccountEnvironmentAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif public enum AccountEnvironment: Int32 { case production = 0 diff --git a/submodules/SyncCore/Sources/AccountSortOrderAttribute.swift b/submodules/SyncCore/Sources/AccountSortOrderAttribute.swift index 371e66dd43..39ebfb4c92 100644 --- a/submodules/SyncCore/Sources/AccountSortOrderAttribute.swift +++ b/submodules/SyncCore/Sources/AccountSortOrderAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif public final class AccountSortOrderAttribute: AccountRecordAttribute { public let order: Int32 diff --git a/submodules/SyncCore/Sources/AppConfiguration.swift b/submodules/SyncCore/Sources/AppConfiguration.swift index e56aaa4536..745e36f5b3 100644 --- a/submodules/SyncCore/Sources/AppConfiguration.swift +++ b/submodules/SyncCore/Sources/AppConfiguration.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public struct AppConfiguration: PreferencesEntry, Equatable { public var data: JSON? diff --git a/submodules/SyncCore/Sources/ArchivedStickerPacksInfo.swift b/submodules/SyncCore/Sources/ArchivedStickerPacksInfo.swift index bc3160252a..da13628cac 100644 --- a/submodules/SyncCore/Sources/ArchivedStickerPacksInfo.swift +++ b/submodules/SyncCore/Sources/ArchivedStickerPacksInfo.swift @@ -1,9 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox + public struct ArchivedStickerPacksInfoId { public let rawValue: MemoryBuffer diff --git a/submodules/SyncCore/Sources/AuthorSignatureMessageAttribute.swift b/submodules/SyncCore/Sources/AuthorSignatureMessageAttribute.swift index 7dbbd432be..aa42b748be 100644 --- a/submodules/SyncCore/Sources/AuthorSignatureMessageAttribute.swift +++ b/submodules/SyncCore/Sources/AuthorSignatureMessageAttribute.swift @@ -1,9 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox + public class AuthorSignatureMessageAttribute: MessageAttribute { public let signature: String diff --git a/submodules/SyncCore/Sources/CachedGroupData.swift b/submodules/SyncCore/Sources/CachedGroupData.swift index 50349f4828..91050b0eae 100644 --- a/submodules/SyncCore/Sources/CachedGroupData.swift +++ b/submodules/SyncCore/Sources/CachedGroupData.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public final class CachedPeerBotInfo: PostboxCoding, Equatable { public let peerId: PeerId diff --git a/submodules/SyncCore/Sources/CachedUserData.swift b/submodules/SyncCore/Sources/CachedUserData.swift index 56d878b1ac..9fbd21b727 100644 --- a/submodules/SyncCore/Sources/CachedUserData.swift +++ b/submodules/SyncCore/Sources/CachedUserData.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public final class CachedUserData: CachedPeerData { public let about: String? diff --git a/submodules/SyncCore/Sources/ChannelMessageStateVersionAttribute.swift b/submodules/SyncCore/Sources/ChannelMessageStateVersionAttribute.swift index 4e352ed0a6..cb47d634a1 100644 --- a/submodules/SyncCore/Sources/ChannelMessageStateVersionAttribute.swift +++ b/submodules/SyncCore/Sources/ChannelMessageStateVersionAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public class ChannelMessageStateVersionAttribute: MessageAttribute { public let pts: Int32 diff --git a/submodules/SyncCore/Sources/CloudChatRemoveMessagesOperation.swift b/submodules/SyncCore/Sources/CloudChatRemoveMessagesOperation.swift index e022318bba..610bd6de7b 100644 --- a/submodules/SyncCore/Sources/CloudChatRemoveMessagesOperation.swift +++ b/submodules/SyncCore/Sources/CloudChatRemoveMessagesOperation.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public enum InteractiveMessagesDeletionType: Int32 { case forLocalPeer = 0 diff --git a/submodules/SyncCore/Sources/ConsumableContentMessageAttribute.swift b/submodules/SyncCore/Sources/ConsumableContentMessageAttribute.swift index 029615a641..bc8d0a06b9 100644 --- a/submodules/SyncCore/Sources/ConsumableContentMessageAttribute.swift +++ b/submodules/SyncCore/Sources/ConsumableContentMessageAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public class ConsumableContentMessageAttribute: MessageAttribute { public let consumed: Bool diff --git a/submodules/SyncCore/Sources/ConsumablePersonalMentionMessageAttribute.swift b/submodules/SyncCore/Sources/ConsumablePersonalMentionMessageAttribute.swift index 4cb1268dc5..89e59a7cff 100644 --- a/submodules/SyncCore/Sources/ConsumablePersonalMentionMessageAttribute.swift +++ b/submodules/SyncCore/Sources/ConsumablePersonalMentionMessageAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public class ConsumablePersonalMentionMessageAttribute: MessageAttribute { public let consumed: Bool diff --git a/submodules/SyncCore/Sources/ConsumePersonalMessageAction.swift b/submodules/SyncCore/Sources/ConsumePersonalMessageAction.swift index b69350979b..1ac5ce6a2e 100644 --- a/submodules/SyncCore/Sources/ConsumePersonalMessageAction.swift +++ b/submodules/SyncCore/Sources/ConsumePersonalMessageAction.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public final class ConsumePersonalMessageAction: PendingMessageActionData { public init() { diff --git a/submodules/SyncCore/Sources/ContactsSettings.swift b/submodules/SyncCore/Sources/ContactsSettings.swift index 794d7b394c..015285012f 100644 --- a/submodules/SyncCore/Sources/ContactsSettings.swift +++ b/submodules/SyncCore/Sources/ContactsSettings.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif public struct ContactsSettings: Equatable, PreferencesEntry { public var synchronizeContacts: Bool diff --git a/submodules/SyncCore/Sources/ContentRequiresValidationMessageAttribute.swift b/submodules/SyncCore/Sources/ContentRequiresValidationMessageAttribute.swift index 8fbcab08ec..b23717f147 100644 --- a/submodules/SyncCore/Sources/ContentRequiresValidationMessageAttribute.swift +++ b/submodules/SyncCore/Sources/ContentRequiresValidationMessageAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif public class ContentRequiresValidationMessageAttribute: MessageAttribute { public init() { diff --git a/submodules/SyncCore/Sources/EditedMessageAttribute.swift b/submodules/SyncCore/Sources/EditedMessageAttribute.swift index 81f61f73ac..8b6683362f 100644 --- a/submodules/SyncCore/Sources/EditedMessageAttribute.swift +++ b/submodules/SyncCore/Sources/EditedMessageAttribute.swift @@ -1,9 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox + public class EditedMessageAttribute: MessageAttribute { public let date: Int32 diff --git a/submodules/SyncCore/Sources/FeaturedStickerPack.swift b/submodules/SyncCore/Sources/FeaturedStickerPack.swift index d5765a0d39..156cd8be14 100644 --- a/submodules/SyncCore/Sources/FeaturedStickerPack.swift +++ b/submodules/SyncCore/Sources/FeaturedStickerPack.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public struct FeaturedStickerPackItemId { public let rawValue: MemoryBuffer diff --git a/submodules/SyncCore/Sources/ForwardSourceInfoAttribute.swift b/submodules/SyncCore/Sources/ForwardSourceInfoAttribute.swift index ef7a631349..c0a849ec63 100644 --- a/submodules/SyncCore/Sources/ForwardSourceInfoAttribute.swift +++ b/submodules/SyncCore/Sources/ForwardSourceInfoAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public class ForwardSourceInfoAttribute: MessageAttribute { public let messageId: MessageId diff --git a/submodules/SyncCore/Sources/InlineBotMessageAttribute.swift b/submodules/SyncCore/Sources/InlineBotMessageAttribute.swift index 073c7c8339..51b93722a9 100644 --- a/submodules/SyncCore/Sources/InlineBotMessageAttribute.swift +++ b/submodules/SyncCore/Sources/InlineBotMessageAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public class InlineBotMessageAttribute: MessageAttribute { public let peerId: PeerId? diff --git a/submodules/SyncCore/Sources/InstantPage.swift b/submodules/SyncCore/Sources/InstantPage.swift index 9a32d74b3f..a5654ef0e0 100644 --- a/submodules/SyncCore/Sources/InstantPage.swift +++ b/submodules/SyncCore/Sources/InstantPage.swift @@ -1,5 +1,4 @@ import Postbox -import UIKit private enum InstantPageBlockType: Int32 { case unsupported = 0 @@ -70,7 +69,7 @@ public indirect enum InstantPageBlock: PostboxCoding, Equatable { case video(id: MediaId, caption: InstantPageCaption, autoplay: Bool, loop: Bool) case audio(id: MediaId, caption: InstantPageCaption) case cover(InstantPageBlock) - case webEmbed(url: String?, html: String?, dimensions: CGSize?, caption: InstantPageCaption, stretchToWidth: Bool, allowScrolling: Bool, coverId: MediaId?) + case webEmbed(url: String?, html: String?, dimensions: PixelDimensions?, caption: InstantPageCaption, stretchToWidth: Bool, allowScrolling: Bool, coverId: MediaId?) case postEmbed(url: String, webpageId: MediaId?, avatarId: MediaId?, author: String, date: Int32, blocks: [InstantPageBlock], caption: InstantPageCaption) case collage(items: [InstantPageBlock], caption: InstantPageCaption) case slideshow(items: [InstantPageBlock], caption: InstantPageCaption) @@ -79,7 +78,7 @@ public indirect enum InstantPageBlock: PostboxCoding, Equatable { case table(title: RichText, rows: [InstantPageTableRow], bordered: Bool, striped: Bool) case details(title: RichText, blocks: [InstantPageBlock], expanded: Bool) case relatedArticles(title: RichText, articles: [InstantPageRelatedArticle]) - case map(latitude: Double, longitude: Double, zoom: Int32, dimensions: CGSize, caption: InstantPageCaption) + case map(latitude: Double, longitude: Double, zoom: Int32, dimensions: PixelDimensions, caption: InstantPageCaption) public init(decoder: PostboxDecoder) { switch decoder.decodeInt32ForKey("r", orElse: 0) { @@ -126,9 +125,9 @@ public indirect enum InstantPageBlock: PostboxCoding, Equatable { if let coverIdNamespace = decoder.decodeOptionalInt32ForKey("ci.n"), let coverIdId = decoder.decodeOptionalInt64ForKey("ci.i") { coverId = MediaId(namespace: coverIdNamespace, id: coverIdId) } - var dimensions: CGSize? + var dimensions: PixelDimensions? if let width = decoder.decodeOptionalInt32ForKey("sw"), let height = decoder.decodeOptionalInt32ForKey("sh") { - dimensions = CGSize(width: CGFloat(width), height: CGFloat(height)) + dimensions = PixelDimensions(width: width, height: height) } self = .webEmbed(url: decoder.decodeOptionalStringForKey("u"), html: decoder.decodeOptionalStringForKey("h"), dimensions: dimensions, caption: decodeCaption(decoder), stretchToWidth: decoder.decodeInt32ForKey("st", orElse: 0) != 0, allowScrolling: decoder.decodeInt32ForKey("as", orElse: 0) != 0, coverId: coverId) case InstantPageBlockType.postEmbed.rawValue: @@ -156,7 +155,7 @@ public indirect enum InstantPageBlock: PostboxCoding, Equatable { case InstantPageBlockType.relatedArticles.rawValue: self = .relatedArticles(title: decoder.decodeObjectForKey("t", decoder: { RichText(decoder: $0) }) as! RichText, articles: decoder.decodeObjectArrayWithDecoderForKey("a")) case InstantPageBlockType.map.rawValue: - self = .map(latitude: decoder.decodeDoubleForKey("lat", orElse: 0.0), longitude: decoder.decodeDoubleForKey("lon", orElse: 0.0), zoom: decoder.decodeInt32ForKey("z", orElse: 0), dimensions: CGSize(width: CGFloat(decoder.decodeInt32ForKey("sw", orElse: 0)), height: CGFloat(decoder.decodeInt32ForKey("sh", orElse: 0))), caption: decodeCaption(decoder)) + self = .map(latitude: decoder.decodeDoubleForKey("lat", orElse: 0.0), longitude: decoder.decodeDoubleForKey("lon", orElse: 0.0), zoom: decoder.decodeInt32ForKey("z", orElse: 0), dimensions: PixelDimensions(width: decoder.decodeInt32ForKey("sw", orElse: 0), height: decoder.decodeInt32ForKey("sh", orElse: 0)), caption: decodeCaption(decoder)) default: self = .unsupported } diff --git a/submodules/SyncCore/Sources/Localization.swift b/submodules/SyncCore/Sources/Localization.swift index 73831673aa..21805c0c6c 100644 --- a/submodules/SyncCore/Sources/Localization.swift +++ b/submodules/SyncCore/Sources/Localization.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public enum LocalizationEntry: Equatable { case string(key: String, value: String) diff --git a/submodules/SyncCore/Sources/LocalizationSettings.swift b/submodules/SyncCore/Sources/LocalizationSettings.swift index 4328477ffd..43dd26d943 100644 --- a/submodules/SyncCore/Sources/LocalizationSettings.swift +++ b/submodules/SyncCore/Sources/LocalizationSettings.swift @@ -1,9 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox + public final class LocalizationComponent: Equatable, PostboxCoding { public let languageCode: String diff --git a/submodules/SyncCore/Sources/LoggedOutAccountAttribute.swift b/submodules/SyncCore/Sources/LoggedOutAccountAttribute.swift index c7e0283d51..5e17ab5c76 100644 --- a/submodules/SyncCore/Sources/LoggedOutAccountAttribute.swift +++ b/submodules/SyncCore/Sources/LoggedOutAccountAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public final class LoggedOutAccountAttribute: AccountRecordAttribute { public init() { diff --git a/submodules/SyncCore/Sources/Namespaces.swift b/submodules/SyncCore/Sources/Namespaces.swift index 25ec05a3a7..f35cc6db1e 100644 --- a/submodules/SyncCore/Sources/Namespaces.swift +++ b/submodules/SyncCore/Sources/Namespaces.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public struct Namespaces { public struct Message { diff --git a/submodules/SyncCore/Sources/NotificationInfoMessageAttribute.swift b/submodules/SyncCore/Sources/NotificationInfoMessageAttribute.swift index 6be45cb692..95c7dff56f 100644 --- a/submodules/SyncCore/Sources/NotificationInfoMessageAttribute.swift +++ b/submodules/SyncCore/Sources/NotificationInfoMessageAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public struct NotificationInfoMessageAttributeFlags: OptionSet { public var rawValue: Int32 diff --git a/submodules/SyncCore/Sources/OutgoingChatContextResultMessageAttribute.swift b/submodules/SyncCore/Sources/OutgoingChatContextResultMessageAttribute.swift index 6c803a5c8e..b6117cd959 100644 --- a/submodules/SyncCore/Sources/OutgoingChatContextResultMessageAttribute.swift +++ b/submodules/SyncCore/Sources/OutgoingChatContextResultMessageAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public class OutgoingChatContextResultMessageAttribute: MessageAttribute { public let queryId: Int64 diff --git a/submodules/SyncCore/Sources/OutgoingContentInfoMessageAttribute.swift b/submodules/SyncCore/Sources/OutgoingContentInfoMessageAttribute.swift index 75be97b25a..8c0227ef24 100644 --- a/submodules/SyncCore/Sources/OutgoingContentInfoMessageAttribute.swift +++ b/submodules/SyncCore/Sources/OutgoingContentInfoMessageAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public struct OutgoingContentInfoFlags: OptionSet { public var rawValue: Int32 diff --git a/submodules/SyncCore/Sources/OutgoingMessageInfoAttribute.swift b/submodules/SyncCore/Sources/OutgoingMessageInfoAttribute.swift index 1dd1907241..42856b9faf 100644 --- a/submodules/SyncCore/Sources/OutgoingMessageInfoAttribute.swift +++ b/submodules/SyncCore/Sources/OutgoingMessageInfoAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public struct OutgoingMessageInfoFlags: OptionSet { public var rawValue: Int32 diff --git a/submodules/SyncCore/Sources/OutgoingScheduleInfoMessageAttribute.swift b/submodules/SyncCore/Sources/OutgoingScheduleInfoMessageAttribute.swift index 89ef938877..10a4755a1d 100644 --- a/submodules/SyncCore/Sources/OutgoingScheduleInfoMessageAttribute.swift +++ b/submodules/SyncCore/Sources/OutgoingScheduleInfoMessageAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public class OutgoingScheduleInfoMessageAttribute: MessageAttribute { public let scheduleTime: Int32 diff --git a/submodules/SyncCore/Sources/PeerGroupMessageStateVersionAttribute.swift b/submodules/SyncCore/Sources/PeerGroupMessageStateVersionAttribute.swift index 35679cf77a..320b9ccece 100644 --- a/submodules/SyncCore/Sources/PeerGroupMessageStateVersionAttribute.swift +++ b/submodules/SyncCore/Sources/PeerGroupMessageStateVersionAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public class PeerGroupMessageStateVersionAttribute: MessageAttribute { public let stateIndex: Int32 diff --git a/submodules/SyncCore/Sources/PixelDimensions.swift b/submodules/SyncCore/Sources/PixelDimensions.swift new file mode 100644 index 0000000000..49f95ddc92 --- /dev/null +++ b/submodules/SyncCore/Sources/PixelDimensions.swift @@ -0,0 +1,8 @@ +public struct PixelDimensions : Equatable { + public let width: Int32 + public let height: Int32 + public init(width: Int32, height: Int32) { + self.width = width + self.height = height + } +} diff --git a/submodules/SyncCore/Sources/RecentMediaItem.swift b/submodules/SyncCore/Sources/RecentMediaItem.swift index 8a1af5f343..461c41cd7d 100644 --- a/submodules/SyncCore/Sources/RecentMediaItem.swift +++ b/submodules/SyncCore/Sources/RecentMediaItem.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public struct RecentMediaItemId { public let rawValue: MemoryBuffer diff --git a/submodules/SyncCore/Sources/RecentPeerItem.swift b/submodules/SyncCore/Sources/RecentPeerItem.swift index d6b95c43f3..f7c66347c3 100644 --- a/submodules/SyncCore/Sources/RecentPeerItem.swift +++ b/submodules/SyncCore/Sources/RecentPeerItem.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public struct RecentPeerItemId { public let rawValue: MemoryBuffer diff --git a/submodules/SyncCore/Sources/ReplyMessageAttribute.swift b/submodules/SyncCore/Sources/ReplyMessageAttribute.swift index 83c12f4c05..cbcc36b5fa 100644 --- a/submodules/SyncCore/Sources/ReplyMessageAttribute.swift +++ b/submodules/SyncCore/Sources/ReplyMessageAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public class ReplyMessageAttribute: MessageAttribute { public let messageId: MessageId diff --git a/submodules/SyncCore/Sources/RestrictedContentMessageAttribute.swift b/submodules/SyncCore/Sources/RestrictedContentMessageAttribute.swift index 1da95cc0df..5180cccf8b 100644 --- a/submodules/SyncCore/Sources/RestrictedContentMessageAttribute.swift +++ b/submodules/SyncCore/Sources/RestrictedContentMessageAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif public class RestrictedContentMessageAttribute: MessageAttribute { public let rules: [RestrictionRule] diff --git a/submodules/SyncCore/Sources/RichText.swift b/submodules/SyncCore/Sources/RichText.swift index ee6fe719d2..9942f88083 100644 --- a/submodules/SyncCore/Sources/RichText.swift +++ b/submodules/SyncCore/Sources/RichText.swift @@ -1,5 +1,4 @@ import Postbox -import UIKit private enum RichTextTypes: Int32 { case empty = 0 @@ -35,7 +34,7 @@ public indirect enum RichText: PostboxCoding, Equatable { case superscript(RichText) case marked(RichText) case phone(text: RichText, phone: String) - case image(id: MediaId, dimensions: CGSize) + case image(id: MediaId, dimensions: PixelDimensions) case anchor(text: RichText, name: String) public init(decoder: PostboxDecoder) { @@ -75,7 +74,7 @@ public indirect enum RichText: PostboxCoding, Equatable { case RichTextTypes.phone.rawValue: self = .phone(text: decoder.decodeObjectForKey("t", decoder: { RichText(decoder: $0) }) as! RichText, phone: decoder.decodeStringForKey("p", orElse: "")) case RichTextTypes.image.rawValue: - self = .image(id: MediaId(namespace: decoder.decodeInt32ForKey("i.n", orElse: 0), id: decoder.decodeInt64ForKey("i.i", orElse: 0)), dimensions: CGSize(width: CGFloat(decoder.decodeInt32ForKey("sw", orElse: 0)), height: CGFloat(decoder.decodeInt32ForKey("sh", orElse: 0)))) + self = .image(id: MediaId(namespace: decoder.decodeInt32ForKey("i.n", orElse: 0), id: decoder.decodeInt64ForKey("i.i", orElse: 0)), dimensions: PixelDimensions(width: decoder.decodeInt32ForKey("sw", orElse: 0), height: decoder.decodeInt32ForKey("sh", orElse: 0))) case RichTextTypes.anchor.rawValue: self = .anchor(text: decoder.decodeObjectForKey("t", decoder: { RichText(decoder: $0) }) as! RichText, name: decoder.decodeStringForKey("n", orElse: "")) default: diff --git a/submodules/SyncCore/Sources/SavedStickerItem.swift b/submodules/SyncCore/Sources/SavedStickerItem.swift index b5b6318af1..b834f409a4 100644 --- a/submodules/SyncCore/Sources/SavedStickerItem.swift +++ b/submodules/SyncCore/Sources/SavedStickerItem.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public final class SavedStickerItem: OrderedItemListEntryContents, Equatable { public let file: TelegramMediaFile diff --git a/submodules/SyncCore/Sources/SearchBotsConfiguration.swift b/submodules/SyncCore/Sources/SearchBotsConfiguration.swift index b67aa0081d..f2d8972db8 100644 --- a/submodules/SyncCore/Sources/SearchBotsConfiguration.swift +++ b/submodules/SyncCore/Sources/SearchBotsConfiguration.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif public struct SearchBotsConfiguration: Equatable, PreferencesEntry { public let imageBotUsername: String? diff --git a/submodules/SyncCore/Sources/SecretChatIncomingDecryptedOperation.swift b/submodules/SyncCore/Sources/SecretChatIncomingDecryptedOperation.swift index 3ae051707b..677ad82a8c 100644 --- a/submodules/SyncCore/Sources/SecretChatIncomingDecryptedOperation.swift +++ b/submodules/SyncCore/Sources/SecretChatIncomingDecryptedOperation.swift @@ -1,9 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox + public struct SecretChatOperationSequenceInfo: PostboxCoding { public let topReceivedOperationIndex: Int32 diff --git a/submodules/SyncCore/Sources/SecretChatKeychain.swift b/submodules/SyncCore/Sources/SecretChatKeychain.swift index eb73b5171b..ebd09cc0b2 100644 --- a/submodules/SyncCore/Sources/SecretChatKeychain.swift +++ b/submodules/SyncCore/Sources/SecretChatKeychain.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public enum SecretChatKeyValidity: PostboxCoding, Equatable { case indefinite diff --git a/submodules/SyncCore/Sources/SecretChatSettings.swift b/submodules/SyncCore/Sources/SecretChatSettings.swift index 10c9e50f9d..88050f1e89 100644 --- a/submodules/SyncCore/Sources/SecretChatSettings.swift +++ b/submodules/SyncCore/Sources/SecretChatSettings.swift @@ -1,9 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif + public struct SecretChatSettings: Equatable, PreferencesEntry { public private(set) var acceptOnThisDevice: Bool diff --git a/submodules/SyncCore/Sources/SecretChatState.swift b/submodules/SyncCore/Sources/SecretChatState.swift index 42237651a9..26164481a5 100644 --- a/submodules/SyncCore/Sources/SecretChatState.swift +++ b/submodules/SyncCore/Sources/SecretChatState.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public enum SecretChatRole: Int32 { case creator diff --git a/submodules/SyncCore/Sources/SourceReferenceMessageAttribute.swift b/submodules/SyncCore/Sources/SourceReferenceMessageAttribute.swift index a510222be2..5865f83a21 100644 --- a/submodules/SyncCore/Sources/SourceReferenceMessageAttribute.swift +++ b/submodules/SyncCore/Sources/SourceReferenceMessageAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public class SourceReferenceMessageAttribute: MessageAttribute { public let messageId: MessageId diff --git a/submodules/SyncCore/Sources/SynchronizeConsumeMessageContentsOperation.swift b/submodules/SyncCore/Sources/SynchronizeConsumeMessageContentsOperation.swift index 6b9ff64194..513346c772 100644 --- a/submodules/SyncCore/Sources/SynchronizeConsumeMessageContentsOperation.swift +++ b/submodules/SyncCore/Sources/SynchronizeConsumeMessageContentsOperation.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public final class SynchronizeConsumeMessageContentsOperation: PostboxCoding { public let messageIds: [MessageId] diff --git a/submodules/SyncCore/Sources/SynchronizeInstalledStickerPacksOperations.swift b/submodules/SyncCore/Sources/SynchronizeInstalledStickerPacksOperations.swift index 75fd7f0613..331274806a 100644 --- a/submodules/SyncCore/Sources/SynchronizeInstalledStickerPacksOperations.swift +++ b/submodules/SyncCore/Sources/SynchronizeInstalledStickerPacksOperations.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public enum SynchronizeInstalledStickerPacksOperationNamespace: Int32 { case stickers = 0 diff --git a/submodules/SyncCore/Sources/SynchronizePinnedChatsOperation.swift b/submodules/SyncCore/Sources/SynchronizePinnedChatsOperation.swift index d579c8ead6..4f9fd6b5ff 100644 --- a/submodules/SyncCore/Sources/SynchronizePinnedChatsOperation.swift +++ b/submodules/SyncCore/Sources/SynchronizePinnedChatsOperation.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox private struct PreviousPeerItemId: PostboxCoding { public let id: PinnedItemId diff --git a/submodules/SyncCore/Sources/SynchronizeableChatInputState.swift b/submodules/SyncCore/Sources/SynchronizeableChatInputState.swift index 6ef8498ab9..6211d31c87 100644 --- a/submodules/SyncCore/Sources/SynchronizeableChatInputState.swift +++ b/submodules/SyncCore/Sources/SynchronizeableChatInputState.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public struct SynchronizeableChatInputState: PostboxCoding, Equatable { public let replyToMessageId: MessageId? diff --git a/submodules/SyncCore/Sources/TelegramMediaExpiredContent.swift b/submodules/SyncCore/Sources/TelegramMediaExpiredContent.swift index dc90b36be9..17f650d664 100644 --- a/submodules/SyncCore/Sources/TelegramMediaExpiredContent.swift +++ b/submodules/SyncCore/Sources/TelegramMediaExpiredContent.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public enum TelegramMediaExpiredContentData: Int32 { case image diff --git a/submodules/SyncCore/Sources/TelegramMediaFile.swift b/submodules/SyncCore/Sources/TelegramMediaFile.swift index 0b05162042..535e7eae78 100644 --- a/submodules/SyncCore/Sources/TelegramMediaFile.swift +++ b/submodules/SyncCore/Sources/TelegramMediaFile.swift @@ -1,5 +1,4 @@ import Postbox -import UIKit private let typeFileName: Int32 = 0 private let typeSticker: Int32 = 1 @@ -112,9 +111,9 @@ public struct StickerMaskCoords: PostboxCoding { public enum TelegramMediaFileAttribute: PostboxCoding { case FileName(fileName: String) case Sticker(displayText: String, packReference: StickerPackReference?, maskData: StickerMaskCoords?) - case ImageSize(size: CGSize) + case ImageSize(size: PixelDimensions) case Animated - case Video(duration: Int, size: CGSize, flags: TelegramMediaVideoFlags) + case Video(duration: Int, size: PixelDimensions, flags: TelegramMediaVideoFlags) case Audio(isVoice: Bool, duration: Int, title: String?, performer: String?, waveform: MemoryBuffer?) case HasLinkedStickers @@ -126,11 +125,11 @@ public enum TelegramMediaFileAttribute: PostboxCoding { case typeSticker: self = .Sticker(displayText: decoder.decodeStringForKey("dt", orElse: ""), packReference: decoder.decodeObjectForKey("pr", decoder: { StickerPackReference(decoder: $0) }) as? StickerPackReference, maskData: decoder.decodeObjectForKey("mc", decoder: { StickerMaskCoords(decoder: $0) }) as? StickerMaskCoords) case typeImageSize: - self = .ImageSize(size: CGSize(width: CGFloat(decoder.decodeInt32ForKey("w", orElse: 0)), height: CGFloat(decoder.decodeInt32ForKey("h", orElse: 0)))) + self = .ImageSize(size: PixelDimensions(width: decoder.decodeInt32ForKey("w", orElse: 0), height: decoder.decodeInt32ForKey("h", orElse: 0))) case typeAnimated: self = .Animated case typeVideo: - self = .Video(duration: Int(decoder.decodeInt32ForKey("du", orElse: 0)), size: CGSize(width: CGFloat(decoder.decodeInt32ForKey("w", orElse: 0)), height: CGFloat(decoder.decodeInt32ForKey("h", orElse: 0))), flags: TelegramMediaVideoFlags(rawValue: decoder.decodeInt32ForKey("f", orElse: 0))) + self = .Video(duration: Int(decoder.decodeInt32ForKey("du", orElse: 0)), size: PixelDimensions(width: decoder.decodeInt32ForKey("w", orElse: 0), height: decoder.decodeInt32ForKey("h", orElse: 0)), flags: TelegramMediaVideoFlags(rawValue: decoder.decodeInt32ForKey("f", orElse: 0))) case typeAudio: let waveformBuffer = decoder.decodeBytesForKeyNoCopy("wf") var waveform: MemoryBuffer? diff --git a/submodules/SyncCore/Sources/TelegramMediaImage.swift b/submodules/SyncCore/Sources/TelegramMediaImage.swift index 39e98b62aa..e474fcf24c 100644 --- a/submodules/SyncCore/Sources/TelegramMediaImage.swift +++ b/submodules/SyncCore/Sources/TelegramMediaImage.swift @@ -1,5 +1,4 @@ import Postbox -import UIKit public enum TelegramMediaImageReference: PostboxCoding, Equatable { case cloud(imageId: Int64, accessHash: Int64, fileReference: Data?) @@ -90,7 +89,7 @@ public final class TelegramMediaImage: Media, Equatable { } } - public func representationForDisplayAtSize(_ size: CGSize) -> TelegramMediaImageRepresentation? { + public func representationForDisplayAtSize(_ size: PixelDimensions) -> TelegramMediaImageRepresentation? { if self.representations.count == 0 { return nil } else { @@ -100,7 +99,7 @@ public final class TelegramMediaImage: Media, Equatable { for i in 0 ..< self.representations.count { let representationDimensions = self.representations[i].dimensions - if dimensions.width >= size.width - CGFloat.ulpOfOne && dimensions.height >= size.height - CGFloat.ulpOfOne { + if dimensions.width >= size.width && dimensions.height >= size.height { if representationDimensions.width >= size.width && representationDimensions.height >= dimensions.height && representationDimensions.width < dimensions.width && representationDimensions.height < dimensions.height { dimensions = representationDimensions index = i @@ -168,22 +167,22 @@ public final class TelegramMediaImage: Media, Equatable { } public final class TelegramMediaImageRepresentation: PostboxCoding, Equatable, CustomStringConvertible { - public let dimensions: CGSize + public let dimensions: PixelDimensions public let resource: TelegramMediaResource - public init(dimensions: CGSize, resource: TelegramMediaResource) { + public init(dimensions: PixelDimensions, resource: TelegramMediaResource) { self.dimensions = dimensions self.resource = resource } public init(decoder: PostboxDecoder) { - self.dimensions = CGSize(width: CGFloat(decoder.decodeInt32ForKey("dx", orElse: 0)), height: CGFloat(decoder.decodeInt32ForKey("dy", orElse: 0))) + self.dimensions = PixelDimensions(width: decoder.decodeInt32ForKey("dx", orElse: 0), height: decoder.decodeInt32ForKey("dy", orElse: 0)) self.resource = decoder.decodeObjectForKey("r") as? TelegramMediaResource ?? EmptyMediaResource() } public func encode(_ encoder: PostboxEncoder) { - encoder.encodeInt32(Int32(self.dimensions.width), forKey: "dx") - encoder.encodeInt32(Int32(self.dimensions.height), forKey: "dy") + encoder.encodeInt32(self.dimensions.width, forKey: "dx") + encoder.encodeInt32(self.dimensions.height, forKey: "dy") encoder.encodeObject(self.resource, forKey: "r") } diff --git a/submodules/SyncCore/Sources/TelegramMediaInvoice.swift b/submodules/SyncCore/Sources/TelegramMediaInvoice.swift index 0db835780b..8c9e8c425e 100644 --- a/submodules/SyncCore/Sources/TelegramMediaInvoice.swift +++ b/submodules/SyncCore/Sources/TelegramMediaInvoice.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public struct TelegramMediaInvoiceFlags: OptionSet { public var rawValue: Int32 diff --git a/submodules/SyncCore/Sources/TelegramMediaResource.swift b/submodules/SyncCore/Sources/TelegramMediaResource.swift index 688e801fc4..130f9d28b1 100644 --- a/submodules/SyncCore/Sources/TelegramMediaResource.swift +++ b/submodules/SyncCore/Sources/TelegramMediaResource.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public protocol TelegramMediaResource: MediaResource, PostboxCoding { } diff --git a/submodules/SyncCore/Sources/TelegramMediaUnsupported.swift b/submodules/SyncCore/Sources/TelegramMediaUnsupported.swift index 6df8541ac7..9995166213 100644 --- a/submodules/SyncCore/Sources/TelegramMediaUnsupported.swift +++ b/submodules/SyncCore/Sources/TelegramMediaUnsupported.swift @@ -1,9 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox + public final class TelegramMediaUnsupported: Media { public let id: MediaId? = nil diff --git a/submodules/SyncCore/Sources/TelegramMediaWebFile.swift b/submodules/SyncCore/Sources/TelegramMediaWebFile.swift index 1986f60bb6..37fd324f2c 100644 --- a/submodules/SyncCore/Sources/TelegramMediaWebFile.swift +++ b/submodules/SyncCore/Sources/TelegramMediaWebFile.swift @@ -1,5 +1,4 @@ import Postbox -import UIKit public class TelegramMediaWebFile: Media { public let resource: TelegramMediaResource diff --git a/submodules/SyncCore/Sources/TelegramMediaWebpage.swift b/submodules/SyncCore/Sources/TelegramMediaWebpage.swift index dd4b0a8f42..9a0ef4d6d9 100644 --- a/submodules/SyncCore/Sources/TelegramMediaWebpage.swift +++ b/submodules/SyncCore/Sources/TelegramMediaWebpage.swift @@ -1,5 +1,4 @@ import Postbox -import UIKit public final class TelegramMediaWebpageLoadedContent: PostboxCoding, Equatable { public let url: String @@ -11,7 +10,7 @@ public final class TelegramMediaWebpageLoadedContent: PostboxCoding, Equatable { public let text: String? public let embedUrl: String? public let embedType: String? - public let embedSize: CGSize? + public let embedSize: PixelDimensions? public let duration: Int? public let author: String? @@ -20,7 +19,7 @@ public final class TelegramMediaWebpageLoadedContent: PostboxCoding, Equatable { public let files: [TelegramMediaFile]? public let instantPage: InstantPage? - public init(url: String, displayUrl: String, hash: Int32, type: String?, websiteName: String?, title: String?, text: String?, embedUrl: String?, embedType: String?, embedSize: CGSize?, duration: Int?, author: String?, image: TelegramMediaImage?, file: TelegramMediaFile?, files: [TelegramMediaFile]?, instantPage: InstantPage?) { + public init(url: String, displayUrl: String, hash: Int32, type: String?, websiteName: String?, title: String?, text: String?, embedUrl: String?, embedType: String?, embedSize: PixelDimensions?, duration: Int?, author: String?, image: TelegramMediaImage?, file: TelegramMediaFile?, files: [TelegramMediaFile]?, instantPage: InstantPage?) { self.url = url self.displayUrl = displayUrl self.hash = hash @@ -50,7 +49,7 @@ public final class TelegramMediaWebpageLoadedContent: PostboxCoding, Equatable { self.embedUrl = decoder.decodeOptionalStringForKey("eu") self.embedType = decoder.decodeOptionalStringForKey("et") if let embedSizeWidth = decoder.decodeOptionalInt32ForKey("esw"), let embedSizeHeight = decoder.decodeOptionalInt32ForKey("esh") { - self.embedSize = CGSize(width: CGFloat(embedSizeWidth), height: CGFloat(embedSizeHeight)) + self.embedSize = PixelDimensions(width: embedSizeWidth, height: embedSizeHeight) } else { self.embedSize = nil } diff --git a/submodules/SyncCore/Sources/TelegramSecretChat.swift b/submodules/SyncCore/Sources/TelegramSecretChat.swift index aa5e6a2933..ae051c80ab 100644 --- a/submodules/SyncCore/Sources/TelegramSecretChat.swift +++ b/submodules/SyncCore/Sources/TelegramSecretChat.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public final class TelegramSecretChat: Peer { public let id: PeerId diff --git a/submodules/SyncCore/Sources/ViewCountMessageAttribute.swift b/submodules/SyncCore/Sources/ViewCountMessageAttribute.swift index 3faa295fcd..100ecee759 100644 --- a/submodules/SyncCore/Sources/ViewCountMessageAttribute.swift +++ b/submodules/SyncCore/Sources/ViewCountMessageAttribute.swift @@ -1,9 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox + public class ViewCountMessageAttribute: MessageAttribute { public let count: Int diff --git a/submodules/SyncCore/Sources/VoipConfiguration.swift b/submodules/SyncCore/Sources/VoipConfiguration.swift index ae87506c63..ddc94d0152 100644 --- a/submodules/SyncCore/Sources/VoipConfiguration.swift +++ b/submodules/SyncCore/Sources/VoipConfiguration.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif public enum VoiceCallP2PMode: Int32 { case never = 0 diff --git a/submodules/SyncCore/Sources/WasScheduledMessageAttribute.swift b/submodules/SyncCore/Sources/WasScheduledMessageAttribute.swift index 1bff00104e..00696fa9fd 100644 --- a/submodules/SyncCore/Sources/WasScheduledMessageAttribute.swift +++ b/submodules/SyncCore/Sources/WasScheduledMessageAttribute.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif public class WasScheduledMessageAttribute: MessageAttribute { public init() { diff --git a/submodules/TelegramApi/Info.plist b/submodules/TelegramApi/Info.plist deleted file mode 100644 index e1fe4cfb7b..0000000000 --- a/submodules/TelegramApi/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - - diff --git a/submodules/TelegramApi/TelegramApi copy-Info.plist b/submodules/TelegramApi/TelegramApi copy-Info.plist deleted file mode 100644 index e1fe4cfb7b..0000000000 --- a/submodules/TelegramApi/TelegramApi copy-Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - - diff --git a/submodules/TelegramApi/TelegramApi copy2-Info.plist b/submodules/TelegramApi/TelegramApi copy2-Info.plist deleted file mode 100644 index e1fe4cfb7b..0000000000 --- a/submodules/TelegramApi/TelegramApi copy2-Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - - diff --git a/submodules/TelegramApi/TelegramApi_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramApi/TelegramApi_Xcode.xcodeproj/project.pbxproj deleted file mode 100644 index 224b5f5417..0000000000 --- a/submodules/TelegramApi/TelegramApi_Xcode.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1285 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 09E9601B22C2BE4900B13673 /* SecretApiLayer101.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E9601A22C2BE4900B13673 /* SecretApiLayer101.swift */; }; - D035732422B5C1FC00F0920D /* TelegramApi.h in Headers */ = {isa = PBXBuildFile; fileRef = D035732222B5C1FC00F0920D /* TelegramApi.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D035733422B5C29900F0920D /* Api0.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733022B5C29900F0920D /* Api0.swift */; }; - D035733522B5C29900F0920D /* Api2.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733122B5C29900F0920D /* Api2.swift */; }; - D035733622B5C29900F0920D /* Api1.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733222B5C29900F0920D /* Api1.swift */; }; - D035733722B5C29900F0920D /* Api3.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733322B5C29900F0920D /* Api3.swift */; }; - D035733922B5C2E200F0920D /* Buffer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733822B5C2E200F0920D /* Buffer.swift */; }; - D035733B22B5C31400F0920D /* TelegramApiLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733A22B5C31400F0920D /* TelegramApiLogger.swift */; }; - D035733D22B5C39100F0920D /* DeserializeFunctionResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733C22B5C39100F0920D /* DeserializeFunctionResponse.swift */; }; - D035734722B5C9BF00F0920D /* SecretApiLayer46.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035734422B5C9BF00F0920D /* SecretApiLayer46.swift */; }; - D035734822B5C9BF00F0920D /* SecretApiLayer8.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035734522B5C9BF00F0920D /* SecretApiLayer8.swift */; }; - D035734922B5C9BF00F0920D /* SecretApiLayer73.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035734622B5C9BF00F0920D /* SecretApiLayer73.swift */; }; - D05FDC3A22CA453E0060BFE3 /* SecretApiLayer101.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E9601A22C2BE4900B13673 /* SecretApiLayer101.swift */; }; - D0CC4AC422BA46F30088F36D /* TelegramApi.h in Headers */ = {isa = PBXBuildFile; fileRef = D035732222B5C1FC00F0920D /* TelegramApi.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0CC4AC622BA46F30088F36D /* SecretApiLayer46.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035734422B5C9BF00F0920D /* SecretApiLayer46.swift */; }; - D0CC4AC722BA46F30088F36D /* Api1.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733222B5C29900F0920D /* Api1.swift */; }; - D0CC4AC822BA46F30088F36D /* Api0.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733022B5C29900F0920D /* Api0.swift */; }; - D0CC4AC922BA46F30088F36D /* Api3.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733322B5C29900F0920D /* Api3.swift */; }; - D0CC4ACA22BA46F30088F36D /* SecretApiLayer73.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035734622B5C9BF00F0920D /* SecretApiLayer73.swift */; }; - D0CC4ACB22BA46F30088F36D /* TelegramApiLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733A22B5C31400F0920D /* TelegramApiLogger.swift */; }; - D0CC4ACC22BA46F30088F36D /* Buffer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733822B5C2E200F0920D /* Buffer.swift */; }; - D0CC4ACD22BA46F30088F36D /* DeserializeFunctionResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733C22B5C39100F0920D /* DeserializeFunctionResponse.swift */; }; - D0CC4ACE22BA46F30088F36D /* SecretApiLayer8.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035734522B5C9BF00F0920D /* SecretApiLayer8.swift */; }; - D0CC4ACF22BA46F30088F36D /* Api2.swift in Sources */ = {isa = PBXBuildFile; fileRef = D035733122B5C29900F0920D /* Api2.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 09E9601A22C2BE4900B13673 /* SecretApiLayer101.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretApiLayer101.swift; sourceTree = ""; }; - D035731F22B5C1FC00F0920D /* TelegramApi.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TelegramApi.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D035732222B5C1FC00F0920D /* TelegramApi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TelegramApi.h; sourceTree = ""; }; - D035732322B5C1FC00F0920D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D035733022B5C29900F0920D /* Api0.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Api0.swift; sourceTree = ""; }; - D035733122B5C29900F0920D /* Api2.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Api2.swift; sourceTree = ""; }; - D035733222B5C29900F0920D /* Api1.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Api1.swift; sourceTree = ""; }; - D035733322B5C29900F0920D /* Api3.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Api3.swift; sourceTree = ""; }; - D035733822B5C2E200F0920D /* Buffer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Buffer.swift; sourceTree = ""; }; - D035733A22B5C31400F0920D /* TelegramApiLogger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TelegramApiLogger.swift; sourceTree = ""; }; - D035733C22B5C39100F0920D /* DeserializeFunctionResponse.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeserializeFunctionResponse.swift; sourceTree = ""; }; - D035734422B5C9BF00F0920D /* SecretApiLayer46.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretApiLayer46.swift; sourceTree = ""; }; - D035734522B5C9BF00F0920D /* SecretApiLayer8.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretApiLayer8.swift; sourceTree = ""; }; - D035734622B5C9BF00F0920D /* SecretApiLayer73.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretApiLayer73.swift; sourceTree = ""; }; - D0CC4AD922BA46F30088F36D /* TelegramApiMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TelegramApiMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - D035731C22B5C1FC00F0920D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0CC4AD022BA46F30088F36D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - D035731522B5C1FC00F0920D = { - isa = PBXGroup; - children = ( - D035732322B5C1FC00F0920D /* Info.plist */, - D035732122B5C1FC00F0920D /* Sources */, - D035732022B5C1FC00F0920D /* Products */, - ); - sourceTree = ""; - }; - D035732022B5C1FC00F0920D /* Products */ = { - isa = PBXGroup; - children = ( - D035731F22B5C1FC00F0920D /* TelegramApi.framework */, - D0CC4AD922BA46F30088F36D /* TelegramApiMac.framework */, - ); - name = Products; - sourceTree = ""; - }; - D035732122B5C1FC00F0920D /* Sources */ = { - isa = PBXGroup; - children = ( - D035734522B5C9BF00F0920D /* SecretApiLayer8.swift */, - D035734422B5C9BF00F0920D /* SecretApiLayer46.swift */, - D035734622B5C9BF00F0920D /* SecretApiLayer73.swift */, - 09E9601A22C2BE4900B13673 /* SecretApiLayer101.swift */, - D035733C22B5C39100F0920D /* DeserializeFunctionResponse.swift */, - D035733A22B5C31400F0920D /* TelegramApiLogger.swift */, - D035733822B5C2E200F0920D /* Buffer.swift */, - D035733022B5C29900F0920D /* Api0.swift */, - D035733222B5C29900F0920D /* Api1.swift */, - D035733122B5C29900F0920D /* Api2.swift */, - D035733322B5C29900F0920D /* Api3.swift */, - D035732222B5C1FC00F0920D /* TelegramApi.h */, - ); - path = Sources; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - D035731A22B5C1FC00F0920D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D035732422B5C1FC00F0920D /* TelegramApi.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0CC4AC322BA46F30088F36D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D0CC4AC422BA46F30088F36D /* TelegramApi.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - D035731E22B5C1FC00F0920D /* TelegramApi */ = { - isa = PBXNativeTarget; - buildConfigurationList = D035732722B5C1FC00F0920D /* Build configuration list for PBXNativeTarget "TelegramApi" */; - buildPhases = ( - D035731A22B5C1FC00F0920D /* Headers */, - D035731B22B5C1FC00F0920D /* Sources */, - D035731C22B5C1FC00F0920D /* Frameworks */, - D035731D22B5C1FC00F0920D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = TelegramApi; - productName = TelegramApi; - productReference = D035731F22B5C1FC00F0920D /* TelegramApi.framework */; - productType = "com.apple.product-type.framework"; - }; - D0CC4AC222BA46F30088F36D /* TelegramApiMac */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0CC4AD222BA46F30088F36D /* Build configuration list for PBXNativeTarget "TelegramApiMac" */; - buildPhases = ( - D0CC4AC322BA46F30088F36D /* Headers */, - D0CC4AC522BA46F30088F36D /* Sources */, - D0CC4AD022BA46F30088F36D /* Frameworks */, - D0CC4AD122BA46F30088F36D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = TelegramApiMac; - productName = TelegramApi; - productReference = D0CC4AD922BA46F30088F36D /* TelegramApiMac.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D035731622B5C1FC00F0920D /* Project object */ = { - isa = PBXProject; - attributes = { - DefaultBuildSystemTypeForWorkspace = Latest; - LastUpgradeCheck = 1010; - ORGANIZATIONNAME = "Telegram LLP"; - TargetAttributes = { - D035731E22B5C1FC00F0920D = { - CreatedOnToolsVersion = 10.1; - LastSwiftMigration = 1010; - }; - }; - }; - buildConfigurationList = D035731922B5C1FC00F0920D /* Build configuration list for PBXProject "TelegramApi_Xcode" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = D035731522B5C1FC00F0920D; - productRefGroup = D035732022B5C1FC00F0920D /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - D035731E22B5C1FC00F0920D /* TelegramApi */, - D0CC4AC222BA46F30088F36D /* TelegramApiMac */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - D035731D22B5C1FC00F0920D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0CC4AD122BA46F30088F36D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - D035731B22B5C1FC00F0920D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D035734722B5C9BF00F0920D /* SecretApiLayer46.swift in Sources */, - D035733622B5C29900F0920D /* Api1.swift in Sources */, - D035733422B5C29900F0920D /* Api0.swift in Sources */, - D035733722B5C29900F0920D /* Api3.swift in Sources */, - D035734922B5C9BF00F0920D /* SecretApiLayer73.swift in Sources */, - D035733B22B5C31400F0920D /* TelegramApiLogger.swift in Sources */, - D035733922B5C2E200F0920D /* Buffer.swift in Sources */, - D035733D22B5C39100F0920D /* DeserializeFunctionResponse.swift in Sources */, - D035734822B5C9BF00F0920D /* SecretApiLayer8.swift in Sources */, - D035733522B5C29900F0920D /* Api2.swift in Sources */, - 09E9601B22C2BE4900B13673 /* SecretApiLayer101.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0CC4AC522BA46F30088F36D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D05FDC3A22CA453E0060BFE3 /* SecretApiLayer101.swift in Sources */, - D0CC4AC622BA46F30088F36D /* SecretApiLayer46.swift in Sources */, - D0CC4AC722BA46F30088F36D /* Api1.swift in Sources */, - D0CC4AC822BA46F30088F36D /* Api0.swift in Sources */, - D0CC4AC922BA46F30088F36D /* Api3.swift in Sources */, - D0CC4ACA22BA46F30088F36D /* SecretApiLayer73.swift in Sources */, - D0CC4ACB22BA46F30088F36D /* TelegramApiLogger.swift in Sources */, - D0CC4ACC22BA46F30088F36D /* Buffer.swift in Sources */, - D0CC4ACD22BA46F30088F36D /* DeserializeFunctionResponse.swift in Sources */, - D0CC4ACE22BA46F30088F36D /* SecretApiLayer8.swift in Sources */, - D0CC4ACF22BA46F30088F36D /* Api2.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - D0276B8422C17FAA003155D8 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStore; - }; - D0276B8522C17FAA003155D8 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseAppStore; - }; - D0276B8622C17FAA003155D8 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = macosx; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseAppStore; - }; - D0276B8722C17FB2003155D8 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyapp; - }; - D0276B8822C17FB2003155D8 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseHockeyapp; - }; - D0276B8922C17FB2003155D8 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = macosx; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseHockeyapp; - }; - D035732522B5C1FC00F0920D /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D035732622B5C1FC00F0920D /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; - D035732822B5C1FC00F0920D /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugHockeyapp; - }; - D035732922B5C1FC00F0920D /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseHockeyappInternal; - }; - D035732A22B5C23200F0920D /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - D035732B22B5C23200F0920D /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugAppStoreLLC; - }; - D035732C22B5C24100F0920D /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - D035732D22B5C24100F0920D /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseAppStoreLLC; - }; - D0CC4AA522BA44AD0088F36D /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStore; - }; - D0CC4AA622BA44AD0088F36D /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugAppStore; - }; - D0CC4AA722BA44B70088F36D /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = HockeyappMacAlpha; - }; - D0CC4AA822BA44B70088F36D /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = HockeyappMacAlpha; - }; - D0CC4AD322BA46F30088F36D /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugHockeyapp; - }; - D0CC4AD422BA46F30088F36D /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = HockeyappMacAlpha; - }; - D0CC4AD522BA46F30088F36D /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugAppStore; - }; - D0CC4AD622BA46F30088F36D /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = macosx; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugAppStoreLLC; - }; - D0CC4AD722BA46F30088F36D /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = macosx; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseHockeyappInternal; - }; - D0CC4AD822BA46F30088F36D /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramApi; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = macosx; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseAppStoreLLC; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - D035731922B5C1FC00F0920D /* Build configuration list for PBXProject "TelegramApi_Xcode" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D035732522B5C1FC00F0920D /* DebugHockeyapp */, - D0CC4AA722BA44B70088F36D /* HockeyappMacAlpha */, - D0CC4AA522BA44AD0088F36D /* DebugAppStore */, - D035732A22B5C23200F0920D /* DebugAppStoreLLC */, - D035732622B5C1FC00F0920D /* ReleaseHockeyappInternal */, - D035732C22B5C24100F0920D /* ReleaseAppStoreLLC */, - D0276B8422C17FAA003155D8 /* ReleaseAppStore */, - D0276B8722C17FB2003155D8 /* ReleaseHockeyapp */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseHockeyappInternal; - }; - D035732722B5C1FC00F0920D /* Build configuration list for PBXNativeTarget "TelegramApi" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D035732822B5C1FC00F0920D /* DebugHockeyapp */, - D0CC4AA822BA44B70088F36D /* HockeyappMacAlpha */, - D0CC4AA622BA44AD0088F36D /* DebugAppStore */, - D035732B22B5C23200F0920D /* DebugAppStoreLLC */, - D035732922B5C1FC00F0920D /* ReleaseHockeyappInternal */, - D035732D22B5C24100F0920D /* ReleaseAppStoreLLC */, - D0276B8522C17FAA003155D8 /* ReleaseAppStore */, - D0276B8822C17FB2003155D8 /* ReleaseHockeyapp */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseHockeyappInternal; - }; - D0CC4AD222BA46F30088F36D /* Build configuration list for PBXNativeTarget "TelegramApiMac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0CC4AD322BA46F30088F36D /* DebugHockeyapp */, - D0CC4AD422BA46F30088F36D /* HockeyappMacAlpha */, - D0CC4AD522BA46F30088F36D /* DebugAppStore */, - D0CC4AD622BA46F30088F36D /* DebugAppStoreLLC */, - D0CC4AD722BA46F30088F36D /* ReleaseHockeyappInternal */, - D0CC4AD822BA46F30088F36D /* ReleaseAppStoreLLC */, - D0276B8622C17FAA003155D8 /* ReleaseAppStore */, - D0276B8922C17FB2003155D8 /* ReleaseHockeyapp */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseHockeyappInternal; - }; -/* End XCConfigurationList section */ - }; - rootObject = D035731622B5C1FC00F0920D /* Project object */; -} diff --git a/submodules/TelegramCore/Sources/AccessSecureId.swift b/submodules/TelegramCore/Sources/AccessSecureId.swift index 92f85bfc82..8800f0b254 100644 --- a/submodules/TelegramCore/Sources/AccessSecureId.swift +++ b/submodules/TelegramCore/Sources/AccessSecureId.swift @@ -1,17 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import MtProtoKitMac - import SwiftSignalKitMac -#else - import Postbox - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif - import SwiftSignalKit -#endif +import Postbox +import MtProtoKit +import SwiftSignalKit private enum GenerateSecureSecretError { case generic diff --git a/submodules/TelegramCore/Sources/Account.swift b/submodules/TelegramCore/Sources/Account.swift index bb884e5a9d..f1fecc8907 100644 --- a/submodules/TelegramCore/Sources/Account.swift +++ b/submodules/TelegramCore/Sources/Account.swift @@ -1,20 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif - import UIKit -#endif +import Postbox +import SwiftSignalKit +import MtProtoKit +import TelegramApi import SyncCore import EncryptionProvider @@ -685,9 +673,9 @@ public final class AccountAuxiliaryMethods { public let updatePeerChatInputState: (PeerChatInterfaceState?, SynchronizeableChatInputState?) -> PeerChatInterfaceState? public let fetchResource: (Account, MediaResource, Signal<[(Range, MediaBoxFetchPriority)], NoError>, MediaResourceFetchParameters?) -> Signal? public let fetchResourceMediaReferenceHash: (MediaResource) -> Signal - public let prepareSecretThumbnailData: (MediaResourceData) -> (CGSize, Data)? + public let prepareSecretThumbnailData: (MediaResourceData) -> (PixelDimensions, Data)? - public init(updatePeerChatInputState: @escaping (PeerChatInterfaceState?, SynchronizeableChatInputState?) -> PeerChatInterfaceState?, fetchResource: @escaping (Account, MediaResource, Signal<[(Range, MediaBoxFetchPriority)], NoError>, MediaResourceFetchParameters?) -> Signal?, fetchResourceMediaReferenceHash: @escaping (MediaResource) -> Signal, prepareSecretThumbnailData: @escaping (MediaResourceData) -> (CGSize, Data)?) { + public init(updatePeerChatInputState: @escaping (PeerChatInterfaceState?, SynchronizeableChatInputState?) -> PeerChatInterfaceState?, fetchResource: @escaping (Account, MediaResource, Signal<[(Range, MediaBoxFetchPriority)], NoError>, MediaResourceFetchParameters?) -> Signal?, fetchResourceMediaReferenceHash: @escaping (MediaResource) -> Signal, prepareSecretThumbnailData: @escaping (MediaResourceData) -> (PixelDimensions, Data)?) { self.updatePeerChatInputState = updatePeerChatInputState self.fetchResource = fetchResource self.fetchResourceMediaReferenceHash = fetchResourceMediaReferenceHash diff --git a/submodules/TelegramCore/Sources/AccountIntermediateState.swift b/submodules/TelegramCore/Sources/AccountIntermediateState.swift index a225b50f5f..41a9f05278 100644 --- a/submodules/TelegramCore/Sources/AccountIntermediateState.swift +++ b/submodules/TelegramCore/Sources/AccountIntermediateState.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/AccountManager.swift b/submodules/TelegramCore/Sources/AccountManager.swift index d0c071fe8d..1dd2d29748 100644 --- a/submodules/TelegramCore/Sources/AccountManager.swift +++ b/submodules/TelegramCore/Sources/AccountManager.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/AccountState.swift b/submodules/TelegramCore/Sources/AccountState.swift index 074c926b38..8d5956e6ea 100644 --- a/submodules/TelegramCore/Sources/AccountState.swift +++ b/submodules/TelegramCore/Sources/AccountState.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift b/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift index b159425fe9..dc9f3f6f5f 100644 --- a/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift +++ b/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/AccountStateManager.swift b/submodules/TelegramCore/Sources/AccountStateManager.swift index 367650344f..0b70467eb2 100644 --- a/submodules/TelegramCore/Sources/AccountStateManager.swift +++ b/submodules/TelegramCore/Sources/AccountStateManager.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore @@ -41,11 +30,7 @@ private enum AccountStateManagerAddOperationPosition { case last } -#if os(macOS) - private typealias SignalKitTimer = SwiftSignalKitMac.Timer -#else - private typealias SignalKitTimer = SwiftSignalKit.Timer -#endif +private typealias SignalKitTimer = SwiftSignalKit.Timer private enum CustomOperationEvent { case Next(T) diff --git a/submodules/TelegramCore/Sources/AccountStateReset.swift b/submodules/TelegramCore/Sources/AccountStateReset.swift index 3c3f49d531..02d0d22972 100644 --- a/submodules/TelegramCore/Sources/AccountStateReset.swift +++ b/submodules/TelegramCore/Sources/AccountStateReset.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/AccountViewTracker.swift b/submodules/TelegramCore/Sources/AccountViewTracker.swift index 479ba6c3df..02275089c9 100644 --- a/submodules/TelegramCore/Sources/AccountViewTracker.swift +++ b/submodules/TelegramCore/Sources/AccountViewTracker.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ActiveSessionsContext.swift b/submodules/TelegramCore/Sources/ActiveSessionsContext.swift index b71f867c9b..7beeaba0a8 100644 --- a/submodules/TelegramCore/Sources/ActiveSessionsContext.swift +++ b/submodules/TelegramCore/Sources/ActiveSessionsContext.swift @@ -1,17 +1,7 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -#else import Postbox import SwiftSignalKit -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit public struct ActiveSessionsContextState: Equatable { public var isLoadingMore: Bool diff --git a/submodules/TelegramCore/Sources/AddPeerMember.swift b/submodules/TelegramCore/Sources/AddPeerMember.swift index 693592c196..5b3b6cac71 100644 --- a/submodules/TelegramCore/Sources/AddPeerMember.swift +++ b/submodules/TelegramCore/Sources/AddPeerMember.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/AddressNames.swift b/submodules/TelegramCore/Sources/AddressNames.swift index 7a620736ee..d98ddd5239 100644 --- a/submodules/TelegramCore/Sources/AddressNames.swift +++ b/submodules/TelegramCore/Sources/AddressNames.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ApiGroupOrChannel.swift b/submodules/TelegramCore/Sources/ApiGroupOrChannel.swift index 2822810631..f930f5b555 100644 --- a/submodules/TelegramCore/Sources/ApiGroupOrChannel.swift +++ b/submodules/TelegramCore/Sources/ApiGroupOrChannel.swift @@ -1,12 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import UIKit - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore @@ -25,8 +19,8 @@ func imageRepresentationsForApiChatPhoto(_ photo: Api.ChatPhoto) -> [TelegramMed case let .fileLocationToBeDeprecated(volumeId, localId): fullSizeResource = CloudPeerPhotoSizeMediaResource(datacenterId: dcId, sizeSpec: .fullSize, volumeId: volumeId, localId: localId) } - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: 80.0, height: 80.0), resource: smallResource)) - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: 640.0, height: 640.0), resource: fullSizeResource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: 80, height: 80), resource: smallResource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: 640, height: 640), resource: fullSizeResource)) case .chatPhotoEmpty: break } diff --git a/submodules/TelegramCore/Sources/ApiUtils.swift b/submodules/TelegramCore/Sources/ApiUtils.swift index 7a0b867860..8b4b19cb23 100644 --- a/submodules/TelegramCore/Sources/ApiUtils.swift +++ b/submodules/TelegramCore/Sources/ApiUtils.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -import TelegramApiMac -#else import Postbox import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/AppChangelog.swift b/submodules/TelegramCore/Sources/AppChangelog.swift index d3febb325a..cde72fe2d7 100644 --- a/submodules/TelegramCore/Sources/AppChangelog.swift +++ b/submodules/TelegramCore/Sources/AppChangelog.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import Postbox -import TelegramApi import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/AppChangelogState.swift b/submodules/TelegramCore/Sources/AppChangelogState.swift index 71d57ee213..8e229d22fc 100644 --- a/submodules/TelegramCore/Sources/AppChangelogState.swift +++ b/submodules/TelegramCore/Sources/AppChangelogState.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -#else import Postbox import SwiftSignalKit import MtProtoKit -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/AppUpdate.swift b/submodules/TelegramCore/Sources/AppUpdate.swift index fa6fc6dfbe..5ab4dc5c7d 100644 --- a/submodules/TelegramCore/Sources/AppUpdate.swift +++ b/submodules/TelegramCore/Sources/AppUpdate.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import MtProtoKit +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/ApplyMaxReadIndexInteractively.swift b/submodules/TelegramCore/Sources/ApplyMaxReadIndexInteractively.swift index 0f178c3fcf..c75b823b79 100644 --- a/submodules/TelegramCore/Sources/ApplyMaxReadIndexInteractively.swift +++ b/submodules/TelegramCore/Sources/ApplyMaxReadIndexInteractively.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ApplyUpdateMessage.swift b/submodules/TelegramCore/Sources/ApplyUpdateMessage.swift index 307c6b8665..21480f45a2 100644 --- a/submodules/TelegramCore/Sources/ApplyUpdateMessage.swift +++ b/submodules/TelegramCore/Sources/ApplyUpdateMessage.swift @@ -1,14 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import TelegramApi - import Postbox - import SwiftSignalKit - import UIKit -#endif +import TelegramApi +import Postbox +import SwiftSignalKit import SyncCore @@ -16,7 +9,7 @@ func applyMediaResourceChanges(from: Media, to: Media, postbox: Postbox) { if let fromImage = from as? TelegramMediaImage, let toImage = to as? TelegramMediaImage { let fromSmallestRepresentation = smallestImageRepresentation(fromImage.representations) if let fromSmallestRepresentation = fromSmallestRepresentation, let toSmallestRepresentation = smallestImageRepresentation(toImage.representations) { - let leeway: CGFloat = 4.0 + let leeway: Int32 = 4 let widthDifference = fromSmallestRepresentation.dimensions.width - toSmallestRepresentation.dimensions.width let heightDifference = fromSmallestRepresentation.dimensions.height - toSmallestRepresentation.dimensions.height if abs(widthDifference) < leeway && abs(heightDifference) < leeway { diff --git a/submodules/TelegramCore/Sources/ArchivedStickerPacks.swift b/submodules/TelegramCore/Sources/ArchivedStickerPacks.swift index 686fb20863..396145132c 100644 --- a/submodules/TelegramCore/Sources/ArchivedStickerPacks.swift +++ b/submodules/TelegramCore/Sources/ArchivedStickerPacks.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/Authorization.swift b/submodules/TelegramCore/Sources/Authorization.swift index 12897b5599..6708108d95 100644 --- a/submodules/TelegramCore/Sources/Authorization.swift +++ b/submodules/TelegramCore/Sources/Authorization.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/AutodownloadSettings.swift b/submodules/TelegramCore/Sources/AutodownloadSettings.swift index dde6126a1d..141a6ac9d1 100644 --- a/submodules/TelegramCore/Sources/AutodownloadSettings.swift +++ b/submodules/TelegramCore/Sources/AutodownloadSettings.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/BlockedPeers.swift b/submodules/TelegramCore/Sources/BlockedPeers.swift index c94525d68f..984b00388b 100644 --- a/submodules/TelegramCore/Sources/BlockedPeers.swift +++ b/submodules/TelegramCore/Sources/BlockedPeers.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/BlockedPeersContext.swift b/submodules/TelegramCore/Sources/BlockedPeersContext.swift index 6e323724b3..47841eb2c9 100644 --- a/submodules/TelegramCore/Sources/BlockedPeersContext.swift +++ b/submodules/TelegramCore/Sources/BlockedPeersContext.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import TelegramApi import Postbox import SwiftSignalKit -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/BotInfo.swift b/submodules/TelegramCore/Sources/BotInfo.swift index 2a471286f3..f39d6b38af 100644 --- a/submodules/TelegramCore/Sources/BotInfo.swift +++ b/submodules/TelegramCore/Sources/BotInfo.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/BotPaymentForm.swift b/submodules/TelegramCore/Sources/BotPaymentForm.swift index ba891678ae..92c69c949c 100644 --- a/submodules/TelegramCore/Sources/BotPaymentForm.swift +++ b/submodules/TelegramCore/Sources/BotPaymentForm.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import MtProtoKitMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif - import SwiftSignalKit -#endif +import Postbox +import MtProtoKit +import SwiftSignalKit +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/CacheStorageSettings.swift b/submodules/TelegramCore/Sources/CacheStorageSettings.swift index 85d691dee6..5253e81003 100644 --- a/submodules/TelegramCore/Sources/CacheStorageSettings.swift +++ b/submodules/TelegramCore/Sources/CacheStorageSettings.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/CachedChannelData.swift b/submodules/TelegramCore/Sources/CachedChannelData.swift index 0c293d7b98..bb8b4e580c 100644 --- a/submodules/TelegramCore/Sources/CachedChannelData.swift +++ b/submodules/TelegramCore/Sources/CachedChannelData.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/CachedChannelParticipants.swift b/submodules/TelegramCore/Sources/CachedChannelParticipants.swift index d9eda4b38e..8b6b1b79d8 100644 --- a/submodules/TelegramCore/Sources/CachedChannelParticipants.swift +++ b/submodules/TelegramCore/Sources/CachedChannelParticipants.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/CachedGroupParticipants.swift b/submodules/TelegramCore/Sources/CachedGroupParticipants.swift index 648971e628..ceb0b1839c 100644 --- a/submodules/TelegramCore/Sources/CachedGroupParticipants.swift +++ b/submodules/TelegramCore/Sources/CachedGroupParticipants.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/CachedSentMediaReferences.swift b/submodules/TelegramCore/Sources/CachedSentMediaReferences.swift index 47d9a9c5d7..bd975a161d 100644 --- a/submodules/TelegramCore/Sources/CachedSentMediaReferences.swift +++ b/submodules/TelegramCore/Sources/CachedSentMediaReferences.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/CachedStickerPack.swift b/submodules/TelegramCore/Sources/CachedStickerPack.swift index d9c8e5f2f4..00f7a95fc4 100644 --- a/submodules/TelegramCore/Sources/CachedStickerPack.swift +++ b/submodules/TelegramCore/Sources/CachedStickerPack.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/CallSessionManager.swift b/submodules/TelegramCore/Sources/CallSessionManager.swift index b070067629..ccef1bc02e 100644 --- a/submodules/TelegramCore/Sources/CallSessionManager.swift +++ b/submodules/TelegramCore/Sources/CallSessionManager.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import MtProtoKitMac -import SwiftSignalKitMac -import TelegramApiMac -#else import Postbox -import TelegramApi -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif +import MtProtoKit import SwiftSignalKit -#endif +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/CanSendMessagesToPeer.swift b/submodules/TelegramCore/Sources/CanSendMessagesToPeer.swift index cb13ee91f2..49fecd5af5 100644 --- a/submodules/TelegramCore/Sources/CanSendMessagesToPeer.swift +++ b/submodules/TelegramCore/Sources/CanSendMessagesToPeer.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox import SyncCore diff --git a/submodules/TelegramCore/Sources/CancelAccountReset.swift b/submodules/TelegramCore/Sources/CancelAccountReset.swift index c2d3e65e9d..b4ea9e3810 100644 --- a/submodules/TelegramCore/Sources/CancelAccountReset.swift +++ b/submodules/TelegramCore/Sources/CancelAccountReset.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import TelegramApi import Postbox import SwiftSignalKit -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ChangeAccountPhoneNumber.swift b/submodules/TelegramCore/Sources/ChangeAccountPhoneNumber.swift index 1ad85b8b42..ead9b86134 100644 --- a/submodules/TelegramCore/Sources/ChangeAccountPhoneNumber.swift +++ b/submodules/TelegramCore/Sources/ChangeAccountPhoneNumber.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ChangePeerNotificationSettings.swift b/submodules/TelegramCore/Sources/ChangePeerNotificationSettings.swift index 757e9932e6..163ffe3637 100644 --- a/submodules/TelegramCore/Sources/ChangePeerNotificationSettings.swift +++ b/submodules/TelegramCore/Sources/ChangePeerNotificationSettings.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ChannelAdminEventLogContext.swift b/submodules/TelegramCore/Sources/ChannelAdminEventLogContext.swift index 08a91cf544..965bc9a765 100644 --- a/submodules/TelegramCore/Sources/ChannelAdminEventLogContext.swift +++ b/submodules/TelegramCore/Sources/ChannelAdminEventLogContext.swift @@ -1,10 +1,5 @@ -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit public struct ChannelAdminEventLogEntry: Comparable { public let stableId: UInt32 diff --git a/submodules/TelegramCore/Sources/ChannelAdminEventLogs.swift b/submodules/TelegramCore/Sources/ChannelAdminEventLogs.swift index f9cc410b83..5d3ec84adc 100644 --- a/submodules/TelegramCore/Sources/ChannelAdminEventLogs.swift +++ b/submodules/TelegramCore/Sources/ChannelAdminEventLogs.swift @@ -1,18 +1,7 @@ -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ChannelAdmins.swift b/submodules/TelegramCore/Sources/ChannelAdmins.swift index 955cee3886..10d4591c3c 100644 --- a/submodules/TelegramCore/Sources/ChannelAdmins.swift +++ b/submodules/TelegramCore/Sources/ChannelAdmins.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ChannelBlacklist.swift b/submodules/TelegramCore/Sources/ChannelBlacklist.swift index c0c8be64ff..db3eb8c9f6 100644 --- a/submodules/TelegramCore/Sources/ChannelBlacklist.swift +++ b/submodules/TelegramCore/Sources/ChannelBlacklist.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ChannelCreation.swift b/submodules/TelegramCore/Sources/ChannelCreation.swift index 04e5eb9d0f..4fbe458d0d 100644 --- a/submodules/TelegramCore/Sources/ChannelCreation.swift +++ b/submodules/TelegramCore/Sources/ChannelCreation.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit public enum CreateChannelError { case generic diff --git a/submodules/TelegramCore/Sources/ChannelHistoryAvailabilitySettings.swift b/submodules/TelegramCore/Sources/ChannelHistoryAvailabilitySettings.swift index b4c2946403..3d05721897 100644 --- a/submodules/TelegramCore/Sources/ChannelHistoryAvailabilitySettings.swift +++ b/submodules/TelegramCore/Sources/ChannelHistoryAvailabilitySettings.swift @@ -1,12 +1,6 @@ -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ChannelMembers.swift b/submodules/TelegramCore/Sources/ChannelMembers.swift index 28d51d41f0..e2bcdf9e5f 100644 --- a/submodules/TelegramCore/Sources/ChannelMembers.swift +++ b/submodules/TelegramCore/Sources/ChannelMembers.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift b/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift index 4da968c512..b66c178ffb 100644 --- a/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift +++ b/submodules/TelegramCore/Sources/ChannelOwnershipTransfer.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -import PostboxMac -import TelegramApiMac -#else import SwiftSignalKit import Postbox import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/ChannelParticipants.swift b/submodules/TelegramCore/Sources/ChannelParticipants.swift index 77796e0a20..e3fb732676 100644 --- a/submodules/TelegramCore/Sources/ChannelParticipants.swift +++ b/submodules/TelegramCore/Sources/ChannelParticipants.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ChannelState.swift b/submodules/TelegramCore/Sources/ChannelState.swift index 490f597857..504cd68f65 100644 --- a/submodules/TelegramCore/Sources/ChannelState.swift +++ b/submodules/TelegramCore/Sources/ChannelState.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/ChannelStats.swift b/submodules/TelegramCore/Sources/ChannelStats.swift index 29bcdb4731..216598a7ef 100644 --- a/submodules/TelegramCore/Sources/ChannelStats.swift +++ b/submodules/TelegramCore/Sources/ChannelStats.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -import PostboxMac -import TelegramApiMac -#else import SwiftSignalKit import Postbox import TelegramApi -#endif public enum ChannelStatsUrlError { case generic diff --git a/submodules/TelegramCore/Sources/ChatContextResult.swift b/submodules/TelegramCore/Sources/ChatContextResult.swift index f0486de13f..4e88a72936 100644 --- a/submodules/TelegramCore/Sources/ChatContextResult.swift +++ b/submodules/TelegramCore/Sources/ChatContextResult.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ChatHistoryPreloadManager.swift b/submodules/TelegramCore/Sources/ChatHistoryPreloadManager.swift index e386f32ddb..907ded383c 100644 --- a/submodules/TelegramCore/Sources/ChatHistoryPreloadManager.swift +++ b/submodules/TelegramCore/Sources/ChatHistoryPreloadManager.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ChatOnlineMembers.swift b/submodules/TelegramCore/Sources/ChatOnlineMembers.swift index 1689e5d350..6be97c6046 100644 --- a/submodules/TelegramCore/Sources/ChatOnlineMembers.swift +++ b/submodules/TelegramCore/Sources/ChatOnlineMembers.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -import PostboxMac -import TelegramApiMac -#else import SwiftSignalKit import Postbox import TelegramApi -#endif public func chatOnlineMembers(postbox: Postbox, network: Network, peerId: PeerId) -> Signal { return postbox.transaction { transaction -> Api.InputPeer? in diff --git a/submodules/TelegramCore/Sources/CheckPeerChatServiceActions.swift b/submodules/TelegramCore/Sources/CheckPeerChatServiceActions.swift index 07b82cbbd0..d72f1b809a 100644 --- a/submodules/TelegramCore/Sources/CheckPeerChatServiceActions.swift +++ b/submodules/TelegramCore/Sources/CheckPeerChatServiceActions.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ClearCloudDrafts.swift b/submodules/TelegramCore/Sources/ClearCloudDrafts.swift index cacb4354a8..7a5038ce2e 100644 --- a/submodules/TelegramCore/Sources/ClearCloudDrafts.swift +++ b/submodules/TelegramCore/Sources/ClearCloudDrafts.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import TelegramApiMac -#else import Postbox import SwiftSignalKit import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/CloudFileMediaResource.swift b/submodules/TelegramCore/Sources/CloudFileMediaResource.swift index a90846e2d3..71a2ac6b6a 100644 --- a/submodules/TelegramCore/Sources/CloudFileMediaResource.swift +++ b/submodules/TelegramCore/Sources/CloudFileMediaResource.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/CollectCacheUsageStats.swift b/submodules/TelegramCore/Sources/CollectCacheUsageStats.swift index 5d0caf84b8..1c3bc503de 100644 --- a/submodules/TelegramCore/Sources/CollectCacheUsageStats.swift +++ b/submodules/TelegramCore/Sources/CollectCacheUsageStats.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ConfirmTwoStepRecoveryEmail.swift b/submodules/TelegramCore/Sources/ConfirmTwoStepRecoveryEmail.swift index b41c81ed52..dcc5c4433f 100644 --- a/submodules/TelegramCore/Sources/ConfirmTwoStepRecoveryEmail.swift +++ b/submodules/TelegramCore/Sources/ConfirmTwoStepRecoveryEmail.swift @@ -1,17 +1,7 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import SwiftSignalKit +import MtProtoKit import TelegramApi -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif public enum ConfirmTwoStepRecoveryEmailError { diff --git a/submodules/TelegramCore/Sources/ContactManagement.swift b/submodules/TelegramCore/Sources/ContactManagement.swift index 7afd214e68..bf5d391db8 100644 --- a/submodules/TelegramCore/Sources/ContactManagement.swift +++ b/submodules/TelegramCore/Sources/ContactManagement.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import TelegramApi - import Postbox - import SwiftSignalKit -#endif +import TelegramApi +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ContactSyncManager.swift b/submodules/TelegramCore/Sources/ContactSyncManager.swift index d6434ff194..83b1d3db2a 100644 --- a/submodules/TelegramCore/Sources/ContactSyncManager.swift +++ b/submodules/TelegramCore/Sources/ContactSyncManager.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import TelegramApiMac -#else import Postbox import SwiftSignalKit import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/ContentPrivacySettings.swift b/submodules/TelegramCore/Sources/ContentPrivacySettings.swift index 478a44a6a6..8fade1383e 100644 --- a/submodules/TelegramCore/Sources/ContentPrivacySettings.swift +++ b/submodules/TelegramCore/Sources/ContentPrivacySettings.swift @@ -1,17 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac -#else - import Postbox - import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ConvertGroupToSupergroup.swift b/submodules/TelegramCore/Sources/ConvertGroupToSupergroup.swift index 33924cb7f7..58218b6df9 100644 --- a/submodules/TelegramCore/Sources/ConvertGroupToSupergroup.swift +++ b/submodules/TelegramCore/Sources/ConvertGroupToSupergroup.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit public enum ConvertGroupToSupergroupError { case generic diff --git a/submodules/TelegramCore/Sources/CoreSettings.swift b/submodules/TelegramCore/Sources/CoreSettings.swift index 9d5fcd7c3f..6fed549367 100644 --- a/submodules/TelegramCore/Sources/CoreSettings.swift +++ b/submodules/TelegramCore/Sources/CoreSettings.swift @@ -1,17 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac -#else - import Postbox - import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/CreateGroup.swift b/submodules/TelegramCore/Sources/CreateGroup.swift index 7e9af71004..ec68df3240 100644 --- a/submodules/TelegramCore/Sources/CreateGroup.swift +++ b/submodules/TelegramCore/Sources/CreateGroup.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit public enum CreateGroupError { case generic diff --git a/submodules/TelegramCore/Sources/CreateSecretChat.swift b/submodules/TelegramCore/Sources/CreateSecretChat.swift index 8c45695434..af89fe7793 100644 --- a/submodules/TelegramCore/Sources/CreateSecretChat.swift +++ b/submodules/TelegramCore/Sources/CreateSecretChat.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit public enum CreateSecretChatError { case generic diff --git a/submodules/TelegramCore/Sources/DecryptedResourceData.swift b/submodules/TelegramCore/Sources/DecryptedResourceData.swift index 238bfe8b80..3d12912b66 100644 --- a/submodules/TelegramCore/Sources/DecryptedResourceData.swift +++ b/submodules/TelegramCore/Sources/DecryptedResourceData.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public func decryptedResourceData(data: MediaResourceData, resource: MediaResource, params: Any) -> Data? { guard data.complete else { diff --git a/submodules/TelegramCore/Sources/DeepLinkInfo.swift b/submodules/TelegramCore/Sources/DeepLinkInfo.swift index f9432ad501..c56272ad08 100644 --- a/submodules/TelegramCore/Sources/DeepLinkInfo.swift +++ b/submodules/TelegramCore/Sources/DeepLinkInfo.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -import TelegramApiMac -#else import SwiftSignalKit import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/DeleteAccount.swift b/submodules/TelegramCore/Sources/DeleteAccount.swift index 336862467f..6ef229ca72 100644 --- a/submodules/TelegramCore/Sources/DeleteAccount.swift +++ b/submodules/TelegramCore/Sources/DeleteAccount.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -import PostboxMac -import TelegramApiMac -#else import SwiftSignalKit import Postbox import TelegramApi -#endif public enum DeleteAccountError { case generic diff --git a/submodules/TelegramCore/Sources/DeleteMessages.swift b/submodules/TelegramCore/Sources/DeleteMessages.swift index b0636ba150..e271570313 100644 --- a/submodules/TelegramCore/Sources/DeleteMessages.swift +++ b/submodules/TelegramCore/Sources/DeleteMessages.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -#else import Postbox import SwiftSignalKit -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/DeleteMessagesInteractively.swift b/submodules/TelegramCore/Sources/DeleteMessagesInteractively.swift index e98bf4e555..dd3c1fe45d 100644 --- a/submodules/TelegramCore/Sources/DeleteMessagesInteractively.swift +++ b/submodules/TelegramCore/Sources/DeleteMessagesInteractively.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/DeviceContact.swift b/submodules/TelegramCore/Sources/DeviceContact.swift index 2343224b67..47ef63c7e3 100644 --- a/submodules/TelegramCore/Sources/DeviceContact.swift +++ b/submodules/TelegramCore/Sources/DeviceContact.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/Download.swift b/submodules/TelegramCore/Sources/Download.swift index 472806c414..c8aa58eb28 100644 --- a/submodules/TelegramCore/Sources/Download.swift +++ b/submodules/TelegramCore/Sources/Download.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import MtProtoKitMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif - import SwiftSignalKit -#endif +import Postbox +import MtProtoKit +import SwiftSignalKit +import TelegramApi private func roundUp(_ value: Int, to multiple: Int) -> Int { if multiple == 0 { diff --git a/submodules/TelegramCore/Sources/EarliestUnseenPersonalMentionMessage.swift b/submodules/TelegramCore/Sources/EarliestUnseenPersonalMentionMessage.swift index 59e12df2de..1a776e92da 100644 --- a/submodules/TelegramCore/Sources/EarliestUnseenPersonalMentionMessage.swift +++ b/submodules/TelegramCore/Sources/EarliestUnseenPersonalMentionMessage.swift @@ -1,17 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac -#else - import Postbox - import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/EmojiKeywords.swift b/submodules/TelegramCore/Sources/EmojiKeywords.swift index 9c34d89fb5..03f7d35eb8 100644 --- a/submodules/TelegramCore/Sources/EmojiKeywords.swift +++ b/submodules/TelegramCore/Sources/EmojiKeywords.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -#else import Postbox import SwiftSignalKit -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/EnqueueMessage.swift b/submodules/TelegramCore/Sources/EnqueueMessage.swift index 17c715bbd3..4900cfc999 100644 --- a/submodules/TelegramCore/Sources/EnqueueMessage.swift +++ b/submodules/TelegramCore/Sources/EnqueueMessage.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ExportMessageLink.swift b/submodules/TelegramCore/Sources/ExportMessageLink.swift index ce3d309dec..75be0fce4c 100644 --- a/submodules/TelegramCore/Sources/ExportMessageLink.swift +++ b/submodules/TelegramCore/Sources/ExportMessageLink.swift @@ -1,13 +1,7 @@ -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit public func exportMessageLink(account: Account, peerId: PeerId, messageId: MessageId) -> Signal { return account.postbox.transaction { transaction -> Peer? in diff --git a/submodules/TelegramCore/Sources/ExportedInvitation.swift b/submodules/TelegramCore/Sources/ExportedInvitation.swift index 0a01853a77..ec0b1d3dfc 100644 --- a/submodules/TelegramCore/Sources/ExportedInvitation.swift +++ b/submodules/TelegramCore/Sources/ExportedInvitation.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/Fetch.swift b/submodules/TelegramCore/Sources/Fetch.swift index d88db40a36..34b3a5c0c8 100644 --- a/submodules/TelegramCore/Sources/Fetch.swift +++ b/submodules/TelegramCore/Sources/Fetch.swift @@ -1,11 +1,8 @@ import Foundation - -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -#else import Postbox import SwiftSignalKit + +#if os(iOS) import Photos #endif diff --git a/submodules/TelegramCore/Sources/FetchChatList.swift b/submodules/TelegramCore/Sources/FetchChatList.swift index 63a2b83545..5f957e8447 100644 --- a/submodules/TelegramCore/Sources/FetchChatList.swift +++ b/submodules/TelegramCore/Sources/FetchChatList.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/FetchHttpResource.swift b/submodules/TelegramCore/Sources/FetchHttpResource.swift index 1306387511..2f706e618a 100644 --- a/submodules/TelegramCore/Sources/FetchHttpResource.swift +++ b/submodules/TelegramCore/Sources/FetchHttpResource.swift @@ -1,17 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac -#else - import Postbox - import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import MtProtoKit public func fetchHttpResource(url: String) -> Signal { if let url = URL(string: url) { diff --git a/submodules/TelegramCore/Sources/FetchSecretFileResource.swift b/submodules/TelegramCore/Sources/FetchSecretFileResource.swift index d9e808219f..2de2c1caa1 100644 --- a/submodules/TelegramCore/Sources/FetchSecretFileResource.swift +++ b/submodules/TelegramCore/Sources/FetchSecretFileResource.swift @@ -1,17 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac -#else - import Postbox - import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/FetchedMediaResource.swift b/submodules/TelegramCore/Sources/FetchedMediaResource.swift index 2647c14389..baed487729 100644 --- a/submodules/TelegramCore/Sources/FetchedMediaResource.swift +++ b/submodules/TelegramCore/Sources/FetchedMediaResource.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -#else import Postbox import SwiftSignalKit -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/FindChannelById.swift b/submodules/TelegramCore/Sources/FindChannelById.swift index e0b7d0fadf..ec269da970 100644 --- a/submodules/TelegramCore/Sources/FindChannelById.swift +++ b/submodules/TelegramCore/Sources/FindChannelById.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -import PostboxMac -import TelegramApiMac -#else import SwiftSignalKit import Postbox import TelegramApi -#endif public func findChannelById(postbox: Postbox, network: Network, channelId: Int32) -> Signal { return network.request(Api.functions.channels.getChannels(id: [.inputChannel(channelId: channelId, accessHash: 0)])) diff --git a/submodules/TelegramCore/Sources/ForwardGame.swift b/submodules/TelegramCore/Sources/ForwardGame.swift index c2facd228f..93dcd7b540 100644 --- a/submodules/TelegramCore/Sources/ForwardGame.swift +++ b/submodules/TelegramCore/Sources/ForwardGame.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit public func forwardGameWithScore(account: Account, messageId: MessageId, to peerId: PeerId) -> Signal { return account.postbox.transaction { transaction -> Signal in diff --git a/submodules/TelegramCore/Sources/GlobalNotificationSettings.swift b/submodules/TelegramCore/Sources/GlobalNotificationSettings.swift index 60b985f39a..5b10b8ac7d 100644 --- a/submodules/TelegramCore/Sources/GlobalNotificationSettings.swift +++ b/submodules/TelegramCore/Sources/GlobalNotificationSettings.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/GrantSecureIdAccess.swift b/submodules/TelegramCore/Sources/GrantSecureIdAccess.swift index b9e9c6a65e..ef93a7ac0f 100644 --- a/submodules/TelegramCore/Sources/GrantSecureIdAccess.swift +++ b/submodules/TelegramCore/Sources/GrantSecureIdAccess.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import MtProtoKitMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif - import SwiftSignalKit -#endif +import Postbox +import MtProtoKit +import SwiftSignalKit +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/GroupReturnAndLeft.swift b/submodules/TelegramCore/Sources/GroupReturnAndLeft.swift index 6606d85d5a..cd73a70abd 100644 --- a/submodules/TelegramCore/Sources/GroupReturnAndLeft.swift +++ b/submodules/TelegramCore/Sources/GroupReturnAndLeft.swift @@ -1,19 +1,8 @@ -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit public func returnGroup(account: Account, peerId: PeerId) -> Signal { return account.postbox.loadedPeerWithId(account.peerId) diff --git a/submodules/TelegramCore/Sources/GroupsInCommon.swift b/submodules/TelegramCore/Sources/GroupsInCommon.swift index 64a91fe6dc..a81c7c9213 100644 --- a/submodules/TelegramCore/Sources/GroupsInCommon.swift +++ b/submodules/TelegramCore/Sources/GroupsInCommon.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit public func groupsInCommon(account:Account, peerId:PeerId) -> Signal<[PeerId], NoError> { return account.postbox.transaction { transaction -> Signal<[PeerId], NoError> in diff --git a/submodules/TelegramCore/Sources/HistoryViewStateValidation.swift b/submodules/TelegramCore/Sources/HistoryViewStateValidation.swift index 29e86a3631..be92a00e73 100644 --- a/submodules/TelegramCore/Sources/HistoryViewStateValidation.swift +++ b/submodules/TelegramCore/Sources/HistoryViewStateValidation.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/Holes.swift b/submodules/TelegramCore/Sources/Holes.swift index cccfda604c..711946cc3d 100644 --- a/submodules/TelegramCore/Sources/Holes.swift +++ b/submodules/TelegramCore/Sources/Holes.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ImageRepresentationsUtils.swift b/submodules/TelegramCore/Sources/ImageRepresentationsUtils.swift index 4e95f26989..96f118189f 100644 --- a/submodules/TelegramCore/Sources/ImageRepresentationsUtils.swift +++ b/submodules/TelegramCore/Sources/ImageRepresentationsUtils.swift @@ -1,18 +1,6 @@ -#if os(macOS) - import PostboxMac - import TelegramApiMac - import MtProtoKitMac -#else - import Postbox - import UIKit - import TelegramApi -#if BUCK - import MtProtoKit -#else - import MtProtoKitDynamic -#endif -#endif - +import Postbox +import TelegramApi +import MtProtoKit import SyncCore public func smallestImageRepresentation(_ representations: [TelegramMediaImageRepresentation]) -> TelegramMediaImageRepresentation? { @@ -53,7 +41,7 @@ public func largestImageRepresentation(_ representations: [TelegramMediaImageRep } } -public func imageRepresentationLargerThan(_ representations: [TelegramMediaImageRepresentation], size: CGSize) -> TelegramMediaImageRepresentation? { +public func imageRepresentationLargerThan(_ representations: [TelegramMediaImageRepresentation], size: PixelDimensions) -> TelegramMediaImageRepresentation? { if representations.count == 0 { return nil } else { diff --git a/submodules/TelegramCore/Sources/ImportContact.swift b/submodules/TelegramCore/Sources/ImportContact.swift index 04aecfb348..0783431a6d 100644 --- a/submodules/TelegramCore/Sources/ImportContact.swift +++ b/submodules/TelegramCore/Sources/ImportContact.swift @@ -1,12 +1,6 @@ -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/InitializeAccountAfterLogin.swift b/submodules/TelegramCore/Sources/InitializeAccountAfterLogin.swift index a2bb3e5704..22c47f26f3 100644 --- a/submodules/TelegramCore/Sources/InitializeAccountAfterLogin.swift +++ b/submodules/TelegramCore/Sources/InitializeAccountAfterLogin.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -import PostboxMac -#else import SwiftSignalKit import Postbox -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/InstallInteractiveReadMessagesAction.swift b/submodules/TelegramCore/Sources/InstallInteractiveReadMessagesAction.swift index b546f5e722..d24d8915ef 100644 --- a/submodules/TelegramCore/Sources/InstallInteractiveReadMessagesAction.swift +++ b/submodules/TelegramCore/Sources/InstallInteractiveReadMessagesAction.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/InstantPage.swift b/submodules/TelegramCore/Sources/InstantPage.swift index 536c2bd55d..66b1b8dac3 100644 --- a/submodules/TelegramCore/Sources/InstantPage.swift +++ b/submodules/TelegramCore/Sources/InstantPage.swift @@ -1,12 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import UIKit - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore @@ -135,9 +129,9 @@ extension InstantPageBlock { case let .pageBlockCover(cover): self = .cover(InstantPageBlock(apiBlock: cover)) case let .pageBlockEmbed(flags, url, html, posterPhotoId, w, h, caption): - var dimensions: CGSize? + var dimensions: PixelDimensions? if let w = w, let h = h { - dimensions = CGSize(width: CGFloat(w), height: CGFloat(h)) + dimensions = PixelDimensions(width: w, height: h) } self = .webEmbed(url: url, html: html, dimensions: dimensions, caption: InstantPageCaption(apiCaption: caption), stretchToWidth: (flags & (1 << 0)) != 0, allowScrolling: (flags & (1 << 3)) != 0, coverId: posterPhotoId.flatMap { MediaId(namespace: Namespaces.Media.CloudImage, id: $0) }) case let .pageBlockEmbedPost(url, webpageId, authorPhotoId, author, date, blocks, caption): @@ -165,7 +159,7 @@ extension InstantPageBlock { case let .pageBlockMap(geo, zoom, w, h, caption): switch geo { case let .geoPoint(long, lat, _): - self = .map(latitude: lat, longitude: long, zoom: zoom, dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), caption: InstantPageCaption(apiCaption: caption)) + self = .map(latitude: lat, longitude: long, zoom: zoom, dimensions: PixelDimensions(width: w, height: h), caption: InstantPageCaption(apiCaption: caption)) default: self = .unsupported } diff --git a/submodules/TelegramCore/Sources/InvitationLinks.swift b/submodules/TelegramCore/Sources/InvitationLinks.swift index 8bc210127b..516ba47d0b 100644 --- a/submodules/TelegramCore/Sources/InvitationLinks.swift +++ b/submodules/TelegramCore/Sources/InvitationLinks.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/JSON.swift b/submodules/TelegramCore/Sources/JSON.swift index 5174d4861a..a902ae10de 100644 --- a/submodules/TelegramCore/Sources/JSON.swift +++ b/submodules/TelegramCore/Sources/JSON.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -import TelegramApiMac -#else import Postbox import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/JoinChannel.swift b/submodules/TelegramCore/Sources/JoinChannel.swift index b9705d6163..e230dd947c 100644 --- a/submodules/TelegramCore/Sources/JoinChannel.swift +++ b/submodules/TelegramCore/Sources/JoinChannel.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/JoinLink.swift b/submodules/TelegramCore/Sources/JoinLink.swift index ffbfdb3618..b037b017c5 100644 --- a/submodules/TelegramCore/Sources/JoinLink.swift +++ b/submodules/TelegramCore/Sources/JoinLink.swift @@ -1,18 +1,7 @@ -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/LimitsConfiguration.swift b/submodules/TelegramCore/Sources/LimitsConfiguration.swift index ab8774fefb..f276164a35 100644 --- a/submodules/TelegramCore/Sources/LimitsConfiguration.swift +++ b/submodules/TelegramCore/Sources/LimitsConfiguration.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox import SyncCore diff --git a/submodules/TelegramCore/Sources/LoadMessagesIfNecessary.swift b/submodules/TelegramCore/Sources/LoadMessagesIfNecessary.swift index 0a39026554..deba93d87b 100644 --- a/submodules/TelegramCore/Sources/LoadMessagesIfNecessary.swift +++ b/submodules/TelegramCore/Sources/LoadMessagesIfNecessary.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/LoadedPeer.swift b/submodules/TelegramCore/Sources/LoadedPeer.swift index 225296214c..bc1ba40ed2 100644 --- a/submodules/TelegramCore/Sources/LoadedPeer.swift +++ b/submodules/TelegramCore/Sources/LoadedPeer.swift @@ -1,12 +1,6 @@ -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/LoadedPeerFromMessage.swift b/submodules/TelegramCore/Sources/LoadedPeerFromMessage.swift index fdb6c7a573..7137701715 100644 --- a/submodules/TelegramCore/Sources/LoadedPeerFromMessage.swift +++ b/submodules/TelegramCore/Sources/LoadedPeerFromMessage.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/LoadedStickerPack.swift b/submodules/TelegramCore/Sources/LoadedStickerPack.swift index b268f490b9..5a657b13b1 100644 --- a/submodules/TelegramCore/Sources/LoadedStickerPack.swift +++ b/submodules/TelegramCore/Sources/LoadedStickerPack.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/LocalizationInfo.swift b/submodules/TelegramCore/Sources/LocalizationInfo.swift index 2b0e3b928f..893d4de9a1 100644 --- a/submodules/TelegramCore/Sources/LocalizationInfo.swift +++ b/submodules/TelegramCore/Sources/LocalizationInfo.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/LocalizationListState.swift b/submodules/TelegramCore/Sources/LocalizationListState.swift index af8b286739..662173ff39 100644 --- a/submodules/TelegramCore/Sources/LocalizationListState.swift +++ b/submodules/TelegramCore/Sources/LocalizationListState.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import TelegramApiMac -#else import Postbox import SwiftSignalKit import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/LocalizationPreview.swift b/submodules/TelegramCore/Sources/LocalizationPreview.swift index 8502f0d5cd..919c74c013 100644 --- a/submodules/TelegramCore/Sources/LocalizationPreview.swift +++ b/submodules/TelegramCore/Sources/LocalizationPreview.swift @@ -1,18 +1,7 @@ -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else -import TelegramApi import Postbox import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/Localizations.swift b/submodules/TelegramCore/Sources/Localizations.swift index 3125095b8f..4f6e4fdef6 100644 --- a/submodules/TelegramCore/Sources/Localizations.swift +++ b/submodules/TelegramCore/Sources/Localizations.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/Log.swift b/submodules/TelegramCore/Sources/Log.swift index 7d9cf8a649..0341d6f8ea 100644 --- a/submodules/TelegramCore/Sources/Log.swift +++ b/submodules/TelegramCore/Sources/Log.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import SwiftSignalKitMac - import PostboxMac - import TelegramApiMac -#else - import SwiftSignalKit - import Postbox - import TelegramApi -#endif +import SwiftSignalKit +import Postbox +import TelegramApi private let queue = DispatchQueue(label: "org.telegram.Telegram.trace", qos: .utility) diff --git a/submodules/TelegramCore/Sources/LoggingSettings.swift b/submodules/TelegramCore/Sources/LoggingSettings.swift index 83ddd82f14..e76881ccf5 100644 --- a/submodules/TelegramCore/Sources/LoggingSettings.swift +++ b/submodules/TelegramCore/Sources/LoggingSettings.swift @@ -1,14 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac -#else - import Postbox - import SwiftSignalKit - import MtProtoKit -#endif - +import Postbox +import SwiftSignalKit +import MtProtoKit import SyncCore public func updateLoggingSettings(accountManager: AccountManager, _ f: @escaping (LoggingSettings) -> LoggingSettings) -> Signal { diff --git a/submodules/TelegramCore/Sources/MD5.swift b/submodules/TelegramCore/Sources/MD5.swift index a70571eae5..c970e11ad0 100644 --- a/submodules/TelegramCore/Sources/MD5.swift +++ b/submodules/TelegramCore/Sources/MD5.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public extension MemoryBuffer { func md5Digest() -> Data { diff --git a/submodules/TelegramCore/Sources/MacInternalUpdater.swift b/submodules/TelegramCore/Sources/MacInternalUpdater.swift index aa45d24ae8..68a02b46e4 100644 --- a/submodules/TelegramCore/Sources/MacInternalUpdater.swift +++ b/submodules/TelegramCore/Sources/MacInternalUpdater.swift @@ -1,8 +1,9 @@ #if os(macOS) -import TelegramApiMac -import SwiftSignalKitMac -import PostboxMac +import TelegramApi +import SwiftSignalKit +import Postbox +import SyncCore public enum InternalUpdaterError { case generic diff --git a/submodules/TelegramCore/Sources/ManageChannelDiscussionGroup.swift b/submodules/TelegramCore/Sources/ManageChannelDiscussionGroup.swift index 0c9b541273..12ba154557 100644 --- a/submodules/TelegramCore/Sources/ManageChannelDiscussionGroup.swift +++ b/submodules/TelegramCore/Sources/ManageChannelDiscussionGroup.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -import PostboxMac -import TelegramApiMac -#else import SwiftSignalKit import Postbox import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedAccountPresence.swift b/submodules/TelegramCore/Sources/ManagedAccountPresence.swift index c81fe98124..b14f0fbc95 100644 --- a/submodules/TelegramCore/Sources/ManagedAccountPresence.swift +++ b/submodules/TelegramCore/Sources/ManagedAccountPresence.swift @@ -1,25 +1,11 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import TelegramApi import Postbox import SwiftSignalKit -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit -#if os(macOS) -private typealias SignalKitTimer = SwiftSignalKitMac.Timer -#else private typealias SignalKitTimer = SwiftSignalKit.Timer -#endif + private final class AccountPresenceManagerImpl { private let queue: Queue diff --git a/submodules/TelegramCore/Sources/ManagedAnimatedEmojiUpdates.swift b/submodules/TelegramCore/Sources/ManagedAnimatedEmojiUpdates.swift index 4083e8209f..cf1c15e97c 100644 --- a/submodules/TelegramCore/Sources/ManagedAnimatedEmojiUpdates.swift +++ b/submodules/TelegramCore/Sources/ManagedAnimatedEmojiUpdates.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import Postbox import SwiftSignalKit import TelegramApi -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif -#endif func managedAnimatedEmojiUpdates(postbox: Postbox, network: Network) -> Signal { let poll = loadedStickerPack(postbox: postbox, network: network, reference: .animatedEmoji, forceActualized: false) diff --git a/submodules/TelegramCore/Sources/ManagedAppConfigurationUpdates.swift b/submodules/TelegramCore/Sources/ManagedAppConfigurationUpdates.swift index c5d5af7c87..78ef70938e 100644 --- a/submodules/TelegramCore/Sources/ManagedAppConfigurationUpdates.swift +++ b/submodules/TelegramCore/Sources/ManagedAppConfigurationUpdates.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedAutodownloadSettingsUpdates.swift b/submodules/TelegramCore/Sources/ManagedAutodownloadSettingsUpdates.swift index 5e3fcac489..620fe11e9c 100644 --- a/submodules/TelegramCore/Sources/ManagedAutodownloadSettingsUpdates.swift +++ b/submodules/TelegramCore/Sources/ManagedAutodownloadSettingsUpdates.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedAutoremoveMessageOperations.swift b/submodules/TelegramCore/Sources/ManagedAutoremoveMessageOperations.swift index 6c1eb22563..543ef83235 100644 --- a/submodules/TelegramCore/Sources/ManagedAutoremoveMessageOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedAutoremoveMessageOperations.swift @@ -1,27 +1,12 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore -#if os(macOS) - private typealias SignalKitTimer = SwiftSignalKitMac.Timer -#else - private typealias SignalKitTimer = SwiftSignalKit.Timer -#endif +private typealias SignalKitTimer = SwiftSignalKit.Timer private final class ManagedAutoremoveMessageOperationsHelper { var entry: (TimestampBasedMessageAttributesEntry, MetaDisposable)? diff --git a/submodules/TelegramCore/Sources/ManagedChatListHoles.swift b/submodules/TelegramCore/Sources/ManagedChatListHoles.swift index cf2462f09e..8dbe238d06 100644 --- a/submodules/TelegramCore/Sources/ManagedChatListHoles.swift +++ b/submodules/TelegramCore/Sources/ManagedChatListHoles.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit private final class ManagedChatListHolesState { private var holeDisposables: [ChatListHolesEntry: Disposable] = [:] diff --git a/submodules/TelegramCore/Sources/ManagedCloudChatRemoveMessagesOperations.swift b/submodules/TelegramCore/Sources/ManagedCloudChatRemoveMessagesOperations.swift index 27c209b072..ab0a9b1479 100644 --- a/submodules/TelegramCore/Sources/ManagedCloudChatRemoveMessagesOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedCloudChatRemoveMessagesOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedConfigurationUpdates.swift b/submodules/TelegramCore/Sources/ManagedConfigurationUpdates.swift index 73466b6d2c..99512d4bf1 100644 --- a/submodules/TelegramCore/Sources/ManagedConfigurationUpdates.swift +++ b/submodules/TelegramCore/Sources/ManagedConfigurationUpdates.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedConsumePersonalMessagesActions.swift b/submodules/TelegramCore/Sources/ManagedConsumePersonalMessagesActions.swift index d01fa03578..6b61f851a5 100644 --- a/submodules/TelegramCore/Sources/ManagedConsumePersonalMessagesActions.swift +++ b/submodules/TelegramCore/Sources/ManagedConsumePersonalMessagesActions.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedGlobalNotificationSettings.swift b/submodules/TelegramCore/Sources/ManagedGlobalNotificationSettings.swift index c545d3d4d7..9987f93d5e 100644 --- a/submodules/TelegramCore/Sources/ManagedGlobalNotificationSettings.swift +++ b/submodules/TelegramCore/Sources/ManagedGlobalNotificationSettings.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedLocalInputActivities.swift b/submodules/TelegramCore/Sources/ManagedLocalInputActivities.swift index 49aeb75457..d60413963c 100644 --- a/submodules/TelegramCore/Sources/ManagedLocalInputActivities.swift +++ b/submodules/TelegramCore/Sources/ManagedLocalInputActivities.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedLocalizationUpdatesOperations.swift b/submodules/TelegramCore/Sources/ManagedLocalizationUpdatesOperations.swift index 4be6e72e7c..5fe08cb49b 100644 --- a/submodules/TelegramCore/Sources/ManagedLocalizationUpdatesOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedLocalizationUpdatesOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedMessageHistoryHoles.swift b/submodules/TelegramCore/Sources/ManagedMessageHistoryHoles.swift index e4c4397184..aa18476599 100644 --- a/submodules/TelegramCore/Sources/ManagedMessageHistoryHoles.swift +++ b/submodules/TelegramCore/Sources/ManagedMessageHistoryHoles.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit private final class ManagedMessageHistoryHolesState { private var holeDisposables: [MessageHistoryHolesViewEntry: Disposable] = [:] diff --git a/submodules/TelegramCore/Sources/ManagedNotificationSettingsBehaviors.swift b/submodules/TelegramCore/Sources/ManagedNotificationSettingsBehaviors.swift index 98a16f66b0..8e05df8933 100644 --- a/submodules/TelegramCore/Sources/ManagedNotificationSettingsBehaviors.swift +++ b/submodules/TelegramCore/Sources/ManagedNotificationSettingsBehaviors.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -#else import Postbox import SwiftSignalKit -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedPendingPeerNotificationSettings.swift b/submodules/TelegramCore/Sources/ManagedPendingPeerNotificationSettings.swift index 7f4a4bec2f..40de26d393 100644 --- a/submodules/TelegramCore/Sources/ManagedPendingPeerNotificationSettings.swift +++ b/submodules/TelegramCore/Sources/ManagedPendingPeerNotificationSettings.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedProxyInfoUpdates.swift b/submodules/TelegramCore/Sources/ManagedProxyInfoUpdates.swift index 1f4f3e6949..9e98e06ae2 100644 --- a/submodules/TelegramCore/Sources/ManagedProxyInfoUpdates.swift +++ b/submodules/TelegramCore/Sources/ManagedProxyInfoUpdates.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import TelegramApi import Postbox import SwiftSignalKit -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedRecentStickers.swift b/submodules/TelegramCore/Sources/ManagedRecentStickers.swift index 3f17508b77..739fcd0034 100644 --- a/submodules/TelegramCore/Sources/ManagedRecentStickers.swift +++ b/submodules/TelegramCore/Sources/ManagedRecentStickers.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedSecretChatOutgoingOperations.swift b/submodules/TelegramCore/Sources/ManagedSecretChatOutgoingOperations.swift index c94fe4582d..6ee05fe6e0 100644 --- a/submodules/TelegramCore/Sources/ManagedSecretChatOutgoingOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedSecretChatOutgoingOperations.swift @@ -1,20 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif - import UIKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit +import MtProtoKit import SyncCore @@ -742,7 +730,7 @@ private func decryptedEntities101(_ entities: [MessageTextEntity]?) -> [SecretAp return result } -private func boxedDecryptedMessage(transaction: Transaction, message: Message, globallyUniqueId: Int64, uploadedFile: SecretChatOutgoingFile?, thumbnailData: [MediaId: (CGSize, Data)], layer: SecretChatLayer) -> BoxedDecryptedMessage { +private func boxedDecryptedMessage(transaction: Transaction, message: Message, globallyUniqueId: Int64, uploadedFile: SecretChatOutgoingFile?, thumbnailData: [MediaId: (PixelDimensions, Data)], layer: SecretChatLayer) -> BoxedDecryptedMessage { let media: Media? = message.media.first var messageAutoremoveTimeout: Int32 = 0 var replyGlobalId: Int64? = nil @@ -780,8 +768,8 @@ private func boxedDecryptedMessage(transaction: Transaction, message: Message, g let thumbH: Int32 let thumb: Buffer if let (thumbnailSize, data) = thumbnailData[image.imageId] { - thumbW = Int32(thumbnailSize.width) - thumbH = Int32(thumbnailSize.height) + thumbW = thumbnailSize.width + thumbH = thumbnailSize.height thumb = Buffer(data: data) } else { thumbW = 90 @@ -839,8 +827,8 @@ private func boxedDecryptedMessage(transaction: Transaction, message: Message, g let thumbH: Int32 let thumb: Buffer if let (thumbnailSize, data) = thumbnailData[file.fileId] { - thumbW = Int32(thumbnailSize.width) - thumbH = Int32(thumbnailSize.height) + thumbW = thumbnailSize.width + thumbH = thumbnailSize.height thumb = Buffer(data: data) } else { thumbW = 0 @@ -1326,10 +1314,10 @@ private func replaceOutgoingOperationWithEmptyMessage(transaction: Transaction, } } -private func resourceThumbnailData(auxiliaryMethods: AccountAuxiliaryMethods, mediaBox: MediaBox, resource: MediaResource, mediaId: MediaId) -> Signal<(MediaId, CGSize, Data)?, NoError> { +private func resourceThumbnailData(auxiliaryMethods: AccountAuxiliaryMethods, mediaBox: MediaBox, resource: MediaResource, mediaId: MediaId) -> Signal<(MediaId, PixelDimensions, Data)?, NoError> { return mediaBox.resourceData(resource, option: .complete(waitUntilFetchStatus: false)) |> take(1) - |> map { data -> (MediaId, CGSize, Data)? in + |> map { data -> (MediaId, PixelDimensions, Data)? in if data.complete, let (mappedSize, mappedData) = auxiliaryMethods.prepareSecretThumbnailData(data) { return (mediaId, mappedSize, mappedData) } else { @@ -1338,8 +1326,8 @@ private func resourceThumbnailData(auxiliaryMethods: AccountAuxiliaryMethods, me } } -private func messageWithThumbnailData(auxiliaryMethods: AccountAuxiliaryMethods, mediaBox: MediaBox, message: Message) -> Signal<[MediaId: (CGSize, Data)], NoError> { - var signals: [Signal<(MediaId, CGSize, Data)?, NoError>] = [] +private func messageWithThumbnailData(auxiliaryMethods: AccountAuxiliaryMethods, mediaBox: MediaBox, message: Message) -> Signal<[MediaId: (PixelDimensions, Data)], NoError> { + var signals: [Signal<(MediaId, PixelDimensions, Data)?, NoError>] = [] for media in message.media { if let image = media as? TelegramMediaImage { if let smallestRepresentation = smallestImageRepresentation(image.representations) { @@ -1353,7 +1341,7 @@ private func messageWithThumbnailData(auxiliaryMethods: AccountAuxiliaryMethods, } return combineLatest(signals) |> map { values in - var result: [MediaId: (CGSize, Data)] = [:] + var result: [MediaId: (PixelDimensions, Data)] = [:] for value in values { if let value = value { result[value.0] = (value.1, value.2) @@ -1364,7 +1352,7 @@ private func messageWithThumbnailData(auxiliaryMethods: AccountAuxiliaryMethods, } private func sendMessage(auxiliaryMethods: AccountAuxiliaryMethods, postbox: Postbox, network: Network, messageId: MessageId, file: SecretChatOutgoingFile?, tagLocalIndex: Int32, wasDelivered: Bool, layer: SecretChatLayer) -> Signal { - return postbox.transaction { transaction -> Signal<[MediaId: (CGSize, Data)], NoError> in + return postbox.transaction { transaction -> Signal<[MediaId: (PixelDimensions, Data)], NoError> in if let message = transaction.getMessage(messageId) { return messageWithThumbnailData(auxiliaryMethods: auxiliaryMethods, mediaBox: postbox.mediaBox, message: message) } else { diff --git a/submodules/TelegramCore/Sources/ManagedServiceViews.swift b/submodules/TelegramCore/Sources/ManagedServiceViews.swift index 93fd480cbc..03eaf49c90 100644 --- a/submodules/TelegramCore/Sources/ManagedServiceViews.swift +++ b/submodules/TelegramCore/Sources/ManagedServiceViews.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit func managedServiceViews(accountPeerId: PeerId, network: Network, postbox: Postbox, stateManager: AccountStateManager, pendingMessageManager: PendingMessageManager) -> Signal { return Signal { _ in diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizeAppLogEventsOperations.swift b/submodules/TelegramCore/Sources/ManagedSynchronizeAppLogEventsOperations.swift index 8627918b47..74d8e82257 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizeAppLogEventsOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizeAppLogEventsOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizeChatInputStateOperations.swift b/submodules/TelegramCore/Sources/ManagedSynchronizeChatInputStateOperations.swift index 40399ec9cb..a24cc86557 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizeChatInputStateOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizeChatInputStateOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizeConsumeMessageContentsOperations.swift b/submodules/TelegramCore/Sources/ManagedSynchronizeConsumeMessageContentsOperations.swift index 4da9fb23b6..0c3e326348 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizeConsumeMessageContentsOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizeConsumeMessageContentsOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizeEmojiKeywordsOperations.swift b/submodules/TelegramCore/Sources/ManagedSynchronizeEmojiKeywordsOperations.swift index 4461e27d58..bbe1a92d9d 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizeEmojiKeywordsOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizeEmojiKeywordsOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import TelegramApi import Postbox import SwiftSignalKit -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizeGroupMessageStats.swift b/submodules/TelegramCore/Sources/ManagedSynchronizeGroupMessageStats.swift index b8c020dc97..6971259ca5 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizeGroupMessageStats.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizeGroupMessageStats.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import TelegramApiMac -#else import Postbox import SwiftSignalKit import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizeGroupedPeersOperations.swift b/submodules/TelegramCore/Sources/ManagedSynchronizeGroupedPeersOperations.swift index 6a297cefb7..1a286a5da9 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizeGroupedPeersOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizeGroupedPeersOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizeInstalledStickerPacksOperations.swift b/submodules/TelegramCore/Sources/ManagedSynchronizeInstalledStickerPacksOperations.swift index a05eb632a4..4b3c294219 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizeInstalledStickerPacksOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizeInstalledStickerPacksOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift b/submodules/TelegramCore/Sources/ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift index 18d82367af..9dc90ba65d 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import TelegramApi import Postbox import SwiftSignalKit -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift b/submodules/TelegramCore/Sources/ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift index 17bd941e78..174ee4d9e3 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizePeerReadStates.swift b/submodules/TelegramCore/Sources/ManagedSynchronizePeerReadStates.swift index 1e0f2382d7..ba0b8de09e 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizePeerReadStates.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizePeerReadStates.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit private final class ManagedSynchronizePeerReadStatesState { private var synchronizeDisposables: [PeerId: (PeerReadStateSynchronizationOperation, Disposable)] = [:] diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizePinnedChatsOperations.swift b/submodules/TelegramCore/Sources/ManagedSynchronizePinnedChatsOperations.swift index 31773ee887..8de969c9f1 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizePinnedChatsOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizePinnedChatsOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizeRecentlyUsedMediaOperations.swift b/submodules/TelegramCore/Sources/ManagedSynchronizeRecentlyUsedMediaOperations.swift index fec1b03094..f451b9f4c1 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizeRecentlyUsedMediaOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizeRecentlyUsedMediaOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import TelegramApi import Postbox import SwiftSignalKit -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizeSavedGifsOperations.swift b/submodules/TelegramCore/Sources/ManagedSynchronizeSavedGifsOperations.swift index 8003ee0258..f82c9b2fce 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizeSavedGifsOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizeSavedGifsOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedSynchronizeSavedStickersOperations.swift b/submodules/TelegramCore/Sources/ManagedSynchronizeSavedStickersOperations.swift index 080e26626e..3026b42eb1 100644 --- a/submodules/TelegramCore/Sources/ManagedSynchronizeSavedStickersOperations.swift +++ b/submodules/TelegramCore/Sources/ManagedSynchronizeSavedStickersOperations.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ManagedVoipConfigurationUpdates.swift b/submodules/TelegramCore/Sources/ManagedVoipConfigurationUpdates.swift index 0852dd7544..b3da17c751 100644 --- a/submodules/TelegramCore/Sources/ManagedVoipConfigurationUpdates.swift +++ b/submodules/TelegramCore/Sources/ManagedVoipConfigurationUpdates.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit func managedVoipConfigurationUpdates(postbox: Postbox, network: Network) -> Signal { let poll = Signal { subscriber in diff --git a/submodules/TelegramCore/Sources/MarkAllChatsAsRead.swift b/submodules/TelegramCore/Sources/MarkAllChatsAsRead.swift index 37d37c24f4..8a3481c9e5 100644 --- a/submodules/TelegramCore/Sources/MarkAllChatsAsRead.swift +++ b/submodules/TelegramCore/Sources/MarkAllChatsAsRead.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import TelegramApi import Postbox import SwiftSignalKit -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/MarkMessageContentAsConsumedInteractively.swift b/submodules/TelegramCore/Sources/MarkMessageContentAsConsumedInteractively.swift index 47cc924977..d3233fe88f 100644 --- a/submodules/TelegramCore/Sources/MarkMessageContentAsConsumedInteractively.swift +++ b/submodules/TelegramCore/Sources/MarkMessageContentAsConsumedInteractively.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/MediaResourceNetworkStatsTag.swift b/submodules/TelegramCore/Sources/MediaResourceNetworkStatsTag.swift index 0dd31adc82..8518603109 100644 --- a/submodules/TelegramCore/Sources/MediaResourceNetworkStatsTag.swift +++ b/submodules/TelegramCore/Sources/MediaResourceNetworkStatsTag.swift @@ -1,8 +1,4 @@ -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public enum MediaResourceStatsCategory { case generic diff --git a/submodules/TelegramCore/Sources/MemoryBufferExtensions.swift b/submodules/TelegramCore/Sources/MemoryBufferExtensions.swift index 10d3009e3b..91adc8d5b8 100644 --- a/submodules/TelegramCore/Sources/MemoryBufferExtensions.swift +++ b/submodules/TelegramCore/Sources/MemoryBufferExtensions.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi public extension MemoryBuffer { diff --git a/submodules/TelegramCore/Sources/MessageMediaPreuploadManager.swift b/submodules/TelegramCore/Sources/MessageMediaPreuploadManager.swift index cc4feb46b8..28bff2285f 100644 --- a/submodules/TelegramCore/Sources/MessageMediaPreuploadManager.swift +++ b/submodules/TelegramCore/Sources/MessageMediaPreuploadManager.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/MessageReactionList.swift b/submodules/TelegramCore/Sources/MessageReactionList.swift index 1b4682b058..3b7d205bf7 100644 --- a/submodules/TelegramCore/Sources/MessageReactionList.swift +++ b/submodules/TelegramCore/Sources/MessageReactionList.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import Postbox import SwiftSignalKit import TelegramApi -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/MessageReactions.swift b/submodules/TelegramCore/Sources/MessageReactions.swift index 4a3cd265f0..6bc15de67e 100644 --- a/submodules/TelegramCore/Sources/MessageReactions.swift +++ b/submodules/TelegramCore/Sources/MessageReactions.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import Postbox import SwiftSignalKit import TelegramApi -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/MessageUtils.swift b/submodules/TelegramCore/Sources/MessageUtils.swift index b53da14414..e76e84e9bc 100644 --- a/submodules/TelegramCore/Sources/MessageUtils.swift +++ b/submodules/TelegramCore/Sources/MessageUtils.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox import SyncCore diff --git a/submodules/TelegramCore/Sources/MultipartFetch.swift b/submodules/TelegramCore/Sources/MultipartFetch.swift index 84b071e7e0..85eff452bc 100644 --- a/submodules/TelegramCore/Sources/MultipartFetch.swift +++ b/submodules/TelegramCore/Sources/MultipartFetch.swift @@ -1,27 +1,12 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore -#if os(macOS) - private typealias SignalKitTimer = SwiftSignalKitMac.Timer -#else - private typealias SignalKitTimer = SwiftSignalKit.Timer -#endif +private typealias SignalKitTimer = SwiftSignalKit.Timer private final class MultipartDownloadState { let aesKey: Data diff --git a/submodules/TelegramCore/Sources/MultipartUpload.swift b/submodules/TelegramCore/Sources/MultipartUpload.swift index 4b3a2ac29b..39bbaa396e 100644 --- a/submodules/TelegramCore/Sources/MultipartUpload.swift +++ b/submodules/TelegramCore/Sources/MultipartUpload.swift @@ -1,27 +1,13 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import TelegramApi +import SwiftSignalKit +import MtProtoKit import SyncCore -#if os(macOS) - private typealias SignalKitTimer = SwiftSignalKitMac.Timer -#else - private typealias SignalKitTimer = SwiftSignalKit.Timer -#endif +private typealias SignalKitTimer = SwiftSignalKit.Timer + private struct UploadPart { let fileId: Int64 diff --git a/submodules/TelegramCore/Sources/MultiplexedRequestManager.swift b/submodules/TelegramCore/Sources/MultiplexedRequestManager.swift index 8917d87150..670659d81a 100644 --- a/submodules/TelegramCore/Sources/MultiplexedRequestManager.swift +++ b/submodules/TelegramCore/Sources/MultiplexedRequestManager.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import TelegramApi import Postbox import SwiftSignalKit -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit enum MultiplexedRequestTarget: Equatable, Hashable { case main(Int) @@ -78,11 +67,8 @@ private struct MultiplexedRequestTargetTimerKey: Equatable, Hashable { let id: Int32 } -#if os(macOS) -private typealias SignalKitTimer = SwiftSignalKitMac.Timer -#else private typealias SignalKitTimer = SwiftSignalKit.Timer -#endif + private final class MultiplexedRequestManagerContext { private let queue: Queue diff --git a/submodules/TelegramCore/Sources/Network.swift b/submodules/TelegramCore/Sources/Network.swift index 6908c0f947..4fca882c2f 100644 --- a/submodules/TelegramCore/Sources/Network.swift +++ b/submodules/TelegramCore/Sources/Network.swift @@ -1,18 +1,11 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif + +import Postbox +import TelegramApi +import SwiftSignalKit +import MtProtoKit + +#if os(iOS) import CloudData #endif @@ -423,8 +416,9 @@ public struct NetworkInitializationArguments { self.encryptionProvider = encryptionProvider } } - +#if os(iOS) private let cloudDataContext = Atomic(value: nil) +#endif func initializedNetwork(arguments: NetworkInitializationArguments, supplementary: Bool, datacenterId: Int, keychain: Keychain, basePath: String, testingEnvironment: Bool, languageCode: String?, proxySettings: ProxySettings?, networkSettings: NetworkSettings?, phoneNumber: String?) -> Signal { return Signal { subscriber in diff --git a/submodules/TelegramCore/Sources/NetworkLogging.m b/submodules/TelegramCore/Sources/NetworkLogging.m index 44d1e2ef7e..710c71d5d0 100644 --- a/submodules/TelegramCore/Sources/NetworkLogging.m +++ b/submodules/TelegramCore/Sources/NetworkLogging.m @@ -2,13 +2,7 @@ #import -#ifdef BUCK -# import -#elif TARGET_OS_IOS -# import -#else -# import -#endif +#import static void (*bridgingTrace)(NSString *, NSString *); void setBridgingTraceFunction(void (*f)(NSString *, NSString *)) { diff --git a/submodules/TelegramCore/Sources/NetworkSettings.swift b/submodules/TelegramCore/Sources/NetworkSettings.swift index b7e543c0bc..39d2f071c0 100644 --- a/submodules/TelegramCore/Sources/NetworkSettings.swift +++ b/submodules/TelegramCore/Sources/NetworkSettings.swift @@ -1,17 +1,7 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -#else import Postbox import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/NetworkType.swift b/submodules/TelegramCore/Sources/NetworkType.swift index c626628c6b..9cdf3833b6 100644 --- a/submodules/TelegramCore/Sources/NetworkType.swift +++ b/submodules/TelegramCore/Sources/NetworkType.swift @@ -1,8 +1,7 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -#else import SwiftSignalKit +import MtProtoKit +#if os(iOS) import CoreTelephony #endif diff --git a/submodules/TelegramCore/Sources/NotificationAutolockReportManager.swift b/submodules/TelegramCore/Sources/NotificationAutolockReportManager.swift index 13dd8da607..cdc0cd3fda 100644 --- a/submodules/TelegramCore/Sources/NotificationAutolockReportManager.swift +++ b/submodules/TelegramCore/Sources/NotificationAutolockReportManager.swift @@ -1,25 +1,11 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import TelegramApi import Postbox import SwiftSignalKit -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit -#if os(macOS) -private typealias SignalKitTimer = SwiftSignalKitMac.Timer -#else private typealias SignalKitTimer = SwiftSignalKit.Timer -#endif + private final class NotificationAutolockReportManagerImpl { private let queue: Queue diff --git a/submodules/TelegramCore/Sources/NotificationExceptionsList.swift b/submodules/TelegramCore/Sources/NotificationExceptionsList.swift index 46742dc7f8..e5fb3f8934 100644 --- a/submodules/TelegramCore/Sources/NotificationExceptionsList.swift +++ b/submodules/TelegramCore/Sources/NotificationExceptionsList.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -import PostboxMac -import TelegramApiMac -#else import SwiftSignalKit import Postbox import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/OutgoingMessageWithChatContextResult.swift b/submodules/TelegramCore/Sources/OutgoingMessageWithChatContextResult.swift index 7216745876..fb299307a9 100644 --- a/submodules/TelegramCore/Sources/OutgoingMessageWithChatContextResult.swift +++ b/submodules/TelegramCore/Sources/OutgoingMessageWithChatContextResult.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit - import UIKit -#endif - +import Postbox +import SwiftSignalKit import SyncCore -private func aspectFitSize(_ size: CGSize, to: CGSize) -> CGSize { - let scale = min(to.width / max(1.0, size.width), to.height / max(1.0, size.height)) - return CGSize(width: floor(size.width * scale), height: floor(size.height * scale)) -} public func outgoingMessageWithChatContextResult(to peerId: PeerId, results: ChatContextResultCollection, result: ChatContextResult, hideVia: Bool = false, scheduleTime: Int32? = nil) -> EnqueueMessage? { var attributes: [MessageAttribute] = [] @@ -65,7 +54,7 @@ public func outgoingMessageWithChatContextResult(to peerId: PeerId, results: Cha var randomId: Int64 = 0 arc4random_buf(&randomId, 8) let thumbnailResource = thumbnail.resource - let imageDimensions = thumbnail.dimensions ?? CGSize(width: 128.0, height: 128.0) + let imageDimensions = thumbnail.dimensions ?? PixelDimensions(width: 128, height: 128) let tmpImage = TelegramMediaImage(imageId: MediaId(namespace: Namespaces.Media.LocalImage, id: randomId), representations: [TelegramMediaImageRepresentation(dimensions: imageDimensions, resource: thumbnailResource)], immediateThumbnailData: nil, reference: nil, partialReference: nil) return .message(text: caption, attributes: attributes, mediaReference: .standalone(media: tmpImage), replyToMessageId: nil, localGroupingKey: nil) } else { @@ -77,7 +66,7 @@ public func outgoingMessageWithChatContextResult(to peerId: PeerId, results: Cha var randomId: Int64 = 0 arc4random_buf(&randomId, 8) let thumbnailResource = thumbnail.resource - previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: thumbnail.dimensions ?? CGSize(width: 128.0, height: 128.0), resource: thumbnailResource)) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: thumbnail.dimensions ?? PixelDimensions(width: 128, height: 128), resource: thumbnailResource)) } var fileName = "file" if let content = content { diff --git a/submodules/TelegramCore/Sources/PeerAccessRestrictionInfo.swift b/submodules/TelegramCore/Sources/PeerAccessRestrictionInfo.swift index e2bc4e985a..f0d56ab74b 100644 --- a/submodules/TelegramCore/Sources/PeerAccessRestrictionInfo.swift +++ b/submodules/TelegramCore/Sources/PeerAccessRestrictionInfo.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/PeerAdmins.swift b/submodules/TelegramCore/Sources/PeerAdmins.swift index 1cb1ffee31..d5bc504a0c 100644 --- a/submodules/TelegramCore/Sources/PeerAdmins.swift +++ b/submodules/TelegramCore/Sources/PeerAdmins.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/PeerCommands.swift b/submodules/TelegramCore/Sources/PeerCommands.swift index 60e928dfb5..3f6686ae98 100644 --- a/submodules/TelegramCore/Sources/PeerCommands.swift +++ b/submodules/TelegramCore/Sources/PeerCommands.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/PeerContactSettings.swift b/submodules/TelegramCore/Sources/PeerContactSettings.swift index a69cac1d6c..34dfeacfb4 100644 --- a/submodules/TelegramCore/Sources/PeerContactSettings.swift +++ b/submodules/TelegramCore/Sources/PeerContactSettings.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/PeerInputActivity.swift b/submodules/TelegramCore/Sources/PeerInputActivity.swift index 350d2c4f93..a7ab25a7bd 100644 --- a/submodules/TelegramCore/Sources/PeerInputActivity.swift +++ b/submodules/TelegramCore/Sources/PeerInputActivity.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import TelegramApiMac -#else import TelegramApi -#endif public enum PeerInputActivity: Comparable { case typingText diff --git a/submodules/TelegramCore/Sources/PeerInputActivityManager.swift b/submodules/TelegramCore/Sources/PeerInputActivityManager.swift index 03bec756a0..6885576d96 100644 --- a/submodules/TelegramCore/Sources/PeerInputActivityManager.swift +++ b/submodules/TelegramCore/Sources/PeerInputActivityManager.swift @@ -1,17 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit -#if os(macOS) - private typealias SignalKitTimer = SwiftSignalKitMac.Timer -#else - private typealias SignalKitTimer = SwiftSignalKit.Timer -#endif +private typealias SignalKitTimer = SwiftSignalKit.Timer private struct ActivityRecord { let peerId: PeerId diff --git a/submodules/TelegramCore/Sources/PeerLiveLocationsContext.swift b/submodules/TelegramCore/Sources/PeerLiveLocationsContext.swift index 5f37477a14..3f6941bafc 100644 --- a/submodules/TelegramCore/Sources/PeerLiveLocationsContext.swift +++ b/submodules/TelegramCore/Sources/PeerLiveLocationsContext.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/PeerParticipants.swift b/submodules/TelegramCore/Sources/PeerParticipants.swift index 7587d8acbc..6f12d25956 100644 --- a/submodules/TelegramCore/Sources/PeerParticipants.swift +++ b/submodules/TelegramCore/Sources/PeerParticipants.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/PeerPhotoUpdater.swift b/submodules/TelegramCore/Sources/PeerPhotoUpdater.swift index 862a79b9f4..d41e73d73e 100644 --- a/submodules/TelegramCore/Sources/PeerPhotoUpdater.swift +++ b/submodules/TelegramCore/Sources/PeerPhotoUpdater.swift @@ -1,20 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif - import UIKit -#endif +import Postbox +import SwiftSignalKit +import MtProtoKit +import TelegramApi import SyncCore @@ -98,7 +86,7 @@ public func updatePeerPhotoInternal(postbox: Postbox, network: Network, stateMan case let .photoSize(_, location, w, h, _): switch location { case let .fileLocationToBeDeprecated(volumeId, localId): - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: CloudPeerPhotoSizeMediaResource(datacenterId: dcId, sizeSpec: w <= 200 ? .small : .fullSize, volumeId: volumeId, localId: localId))) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: CloudPeerPhotoSizeMediaResource(datacenterId: dcId, sizeSpec: w <= 200 ? .small : .fullSize, volumeId: volumeId, localId: localId))) } default: break diff --git a/submodules/TelegramCore/Sources/PeerSpecificStickerPack.swift b/submodules/TelegramCore/Sources/PeerSpecificStickerPack.swift index cd3981f6ed..0a9cea6eb7 100644 --- a/submodules/TelegramCore/Sources/PeerSpecificStickerPack.swift +++ b/submodules/TelegramCore/Sources/PeerSpecificStickerPack.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/PeerUtils.swift b/submodules/TelegramCore/Sources/PeerUtils.swift index 8d25fba940..bf457689a9 100644 --- a/submodules/TelegramCore/Sources/PeerUtils.swift +++ b/submodules/TelegramCore/Sources/PeerUtils.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/PeersNearby.swift b/submodules/TelegramCore/Sources/PeersNearby.swift index 2b3899decd..b872ec5837 100644 --- a/submodules/TelegramCore/Sources/PeersNearby.swift +++ b/submodules/TelegramCore/Sources/PeersNearby.swift @@ -1,21 +1,12 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -import PostboxMac -import TelegramApiMac -#else import SwiftSignalKit import Postbox import TelegramApi -#endif import SyncCore -#if os(macOS) -private typealias SignalKitTimer = SwiftSignalKitMac.Timer -#else private typealias SignalKitTimer = SwiftSignalKit.Timer -#endif + public struct PeerNearby { diff --git a/submodules/TelegramCore/Sources/PendingMessageManager.swift b/submodules/TelegramCore/Sources/PendingMessageManager.swift index 039ab9f9ec..0be097728d 100644 --- a/submodules/TelegramCore/Sources/PendingMessageManager.swift +++ b/submodules/TelegramCore/Sources/PendingMessageManager.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/PendingMessageUploadedContent.swift b/submodules/TelegramCore/Sources/PendingMessageUploadedContent.swift index c5ec3c1bde..5c3cd4a7f5 100644 --- a/submodules/TelegramCore/Sources/PendingMessageUploadedContent.swift +++ b/submodules/TelegramCore/Sources/PendingMessageUploadedContent.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/Polls.swift b/submodules/TelegramCore/Sources/Polls.swift index b23ba9fb47..207cd11cfb 100644 --- a/submodules/TelegramCore/Sources/Polls.swift +++ b/submodules/TelegramCore/Sources/Polls.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import TelegramApi import Postbox import SwiftSignalKit -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/PrivacySettings.swift b/submodules/TelegramCore/Sources/PrivacySettings.swift index da5fc00f11..4bff7cb91f 100644 --- a/submodules/TelegramCore/Sources/PrivacySettings.swift +++ b/submodules/TelegramCore/Sources/PrivacySettings.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/ProcessRemovedMedia.swift b/submodules/TelegramCore/Sources/ProcessRemovedMedia.swift index 27b81e6f62..725c1fb04b 100644 --- a/submodules/TelegramCore/Sources/ProcessRemovedMedia.swift +++ b/submodules/TelegramCore/Sources/ProcessRemovedMedia.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/ProcessSecretChatIncomingDecryptedOperations.swift b/submodules/TelegramCore/Sources/ProcessSecretChatIncomingDecryptedOperations.swift index 6465900ea8..65442005c6 100644 --- a/submodules/TelegramCore/Sources/ProcessSecretChatIncomingDecryptedOperations.swift +++ b/submodules/TelegramCore/Sources/ProcessSecretChatIncomingDecryptedOperations.swift @@ -1,12 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import UIKit - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore import EncryptionProvider @@ -555,7 +549,7 @@ extension TelegramMediaFileAttribute { case let .documentAttributeFilename(fileName): self = .FileName(fileName: fileName) case let .documentAttributeImageSize(w, h): - self = .ImageSize(size: CGSize(width: CGFloat(w), height: CGFloat(h))) + self = .ImageSize(size: PixelDimensions(width: w, height: h)) case let .documentAttributeSticker(alt, stickerset): let packReference: StickerPackReference? switch stickerset { @@ -566,7 +560,7 @@ extension TelegramMediaFileAttribute { } self = .Sticker(displayText: alt, packReference: packReference, maskData: nil) case let .documentAttributeVideo(duration, w, h): - self = .Video(duration: Int(duration), size: CGSize(width: CGFloat(w), height: CGFloat(h)), flags: []) + self = .Video(duration: Int(duration), size: PixelDimensions(width: w, height: h), flags: []) } } } @@ -588,7 +582,7 @@ extension TelegramMediaFileAttribute { case let .documentAttributeFilename(fileName): self = .FileName(fileName: fileName) case let .documentAttributeImageSize(w, h): - self = .ImageSize(size: CGSize(width: CGFloat(w), height: CGFloat(h))) + self = .ImageSize(size: PixelDimensions(width: w, height: h)) case let .documentAttributeSticker(alt, stickerset): let packReference: StickerPackReference? switch stickerset { @@ -603,7 +597,7 @@ extension TelegramMediaFileAttribute { if (flags & (1 << 0)) != 0 { videoFlags.insert(.instantRoundVideo) } - self = .Video(duration: Int(duration), size: CGSize(width: CGFloat(w), height: CGFloat(h)), flags: videoFlags) + self = .Video(duration: Int(duration), size: PixelDimensions(width: w, height: h), flags: videoFlags) } } } @@ -625,7 +619,7 @@ extension TelegramMediaFileAttribute { case let .documentAttributeFilename(fileName): self = .FileName(fileName: fileName) case let .documentAttributeImageSize(w, h): - self = .ImageSize(size: CGSize(width: CGFloat(w), height: CGFloat(h))) + self = .ImageSize(size: PixelDimensions(width: w, height: h)) case let .documentAttributeSticker(alt, stickerset): let packReference: StickerPackReference? switch stickerset { @@ -640,7 +634,7 @@ extension TelegramMediaFileAttribute { if (flags & (1 << 0)) != 0 { videoFlags.insert(.instantRoundVideo) } - self = .Video(duration: Int(duration), size: CGSize(width: CGFloat(w), height: CGFloat(h)), flags: videoFlags) + self = .Video(duration: Int(duration), size: PixelDimensions(width: w, height: h), flags: videoFlags) } } } @@ -714,10 +708,10 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 var representations: [TelegramMediaImageRepresentation] = [] if thumb.size != 0 { let resource = LocalFileMediaResource(fileId: arc4random64()) - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(thumbW), height: CGFloat(thumbH)), resource: resource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: thumbW, height: thumbH), resource: resource)) resources.append((resource, thumb.makeData())) } - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: file.resource(key: SecretFileEncryptionKey(aesKey: key.makeData(), aesIv: iv.makeData()), decryptedSize: size))) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: file.resource(key: SecretFileEncryptionKey(aesKey: key.makeData(), aesIv: iv.makeData()), decryptedSize: size))) let image = TelegramMediaImage(imageId: MediaId(namespace: Namespaces.Media.CloudSecretImage, id: file.id), representations: representations, immediateThumbnailData: nil, reference: nil, partialReference: nil) parsedMedia.append(image) } @@ -740,7 +734,7 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 var previewRepresentations: [TelegramMediaImageRepresentation] = [] if thumb.size != 0 { let resource = LocalFileMediaResource(fileId: arc4random64()) - previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(thumbW), height: CGFloat(thumbH)), resource: resource)) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: thumbW, height: thumbH), resource: resource)) resources.append((resource, thumb.makeData())) } let fileMedia = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.CloudSecretFile, id: file.id), partialReference: nil, resource: file.resource(key: SecretFileEncryptionKey(aesKey: key.makeData(), aesIv: iv.makeData()), decryptedSize: size), previewRepresentations: previewRepresentations, immediateThumbnailData: nil, mimeType: mimeType, size: Int(size), attributes: parsedAttributes) @@ -751,11 +745,11 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 text = caption } if let file = file { - let parsedAttributes: [TelegramMediaFileAttribute] = [.Video(duration: Int(duration), size: CGSize(width: CGFloat(w), height: CGFloat(h)), flags: []), .FileName(fileName: "video.mov")] + let parsedAttributes: [TelegramMediaFileAttribute] = [.Video(duration: Int(duration), size: PixelDimensions(width: w, height: h), flags: []), .FileName(fileName: "video.mov")] var previewRepresentations: [TelegramMediaImageRepresentation] = [] if thumb.size != 0 { let resource = LocalFileMediaResource(fileId: arc4random64()) - previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(thumbW), height: CGFloat(thumbH)), resource: resource)) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: thumbW, height: thumbH), resource: resource)) resources.append((resource, thumb.makeData())) } let fileMedia = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.CloudSecretFile, id: file.id), partialReference: nil, resource: file.resource(key: SecretFileEncryptionKey(aesKey: key.makeData(), aesIv: iv.makeData()), decryptedSize: size), previewRepresentations: previewRepresentations, immediateThumbnailData: nil, mimeType: mimeType, size: Int(size), attributes: parsedAttributes) @@ -773,7 +767,7 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 case let .photoSize(_, location, w, h, size): switch location { case let .fileLocation(dcId, volumeId, localId, secret): - previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: CloudFileMediaResource(datacenterId: Int(dcId), volumeId: volumeId, localId: localId, secret: secret, size: size == 0 ? nil : Int(size), fileReference: nil))) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: CloudFileMediaResource(datacenterId: Int(dcId), volumeId: volumeId, localId: localId, secret: secret, size: size == 0 ? nil : Int(size), fileReference: nil))) case .fileLocationUnavailable: break } @@ -783,7 +777,7 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 case let .fileLocation(dcId, volumeId, localId, secret): let resource = CloudFileMediaResource(datacenterId: Int(dcId), volumeId: volumeId, localId: localId, secret: secret, size: bytes.size, fileReference: nil) resources.append((resource, bytes.makeData())) - previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: resource)) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: resource)) case .fileLocationUnavailable: break } @@ -912,10 +906,10 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 var representations: [TelegramMediaImageRepresentation] = [] if thumb.size != 0 { let resource = LocalFileMediaResource(fileId: arc4random64()) - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(thumbW), height: CGFloat(thumbH)), resource: resource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: thumbW, height: thumbH), resource: resource)) resources.append((resource, thumb.makeData())) } - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: file.resource(key: SecretFileEncryptionKey(aesKey: key.makeData(), aesIv: iv.makeData()), decryptedSize: size))) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: file.resource(key: SecretFileEncryptionKey(aesKey: key.makeData(), aesIv: iv.makeData()), decryptedSize: size))) let image = TelegramMediaImage(imageId: MediaId(namespace: Namespaces.Media.CloudSecretImage, id: file.id), representations: representations, immediateThumbnailData: nil, reference: nil, partialReference: nil) parsedMedia.append(image) } @@ -939,7 +933,7 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 var previewRepresentations: [TelegramMediaImageRepresentation] = [] if thumb.size != 0 { let resource = LocalFileMediaResource(fileId: arc4random64()) - previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(thumbW), height: CGFloat(thumbH)), resource: resource)) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: thumbW, height: thumbH), resource: resource)) resources.append((resource, thumb.makeData())) } let fileMedia = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.CloudSecretFile, id: file.id), partialReference: nil, resource: file.resource(key: SecretFileEncryptionKey(aesKey: key.makeData(), aesIv: iv.makeData()), decryptedSize: size), previewRepresentations: previewRepresentations, immediateThumbnailData: nil, mimeType: mimeType, size: Int(size), attributes: parsedAttributes) @@ -966,11 +960,11 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 text = caption } if let file = file { - let parsedAttributes: [TelegramMediaFileAttribute] = [.Video(duration: Int(duration), size: CGSize(width: CGFloat(w), height: CGFloat(h)), flags: []), .FileName(fileName: "video.mov")] + let parsedAttributes: [TelegramMediaFileAttribute] = [.Video(duration: Int(duration), size: PixelDimensions(width: w, height: h), flags: []), .FileName(fileName: "video.mov")] var previewRepresentations: [TelegramMediaImageRepresentation] = [] if thumb.size != 0 { let resource = LocalFileMediaResource(fileId: arc4random64()) - previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(thumbW), height: CGFloat(thumbH)), resource: resource)) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: thumbW, height: thumbH), resource: resource)) resources.append((resource, thumb.makeData())) } let fileMedia = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.CloudSecretFile, id: file.id), partialReference: nil, resource: file.resource(key: SecretFileEncryptionKey(aesKey: key.makeData(), aesIv: iv.makeData()), decryptedSize: size), previewRepresentations: previewRepresentations, immediateThumbnailData: nil, mimeType: mimeType, size: Int(size), attributes: parsedAttributes) @@ -988,7 +982,7 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 case let .photoSize(_, location, w, h, size): switch location { case let .fileLocation(dcId, volumeId, localId, secret): - previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: CloudFileMediaResource(datacenterId: Int(dcId), volumeId: volumeId, localId: localId, secret: secret, size: size == 0 ? nil : Int(size), fileReference: nil))) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: CloudFileMediaResource(datacenterId: Int(dcId), volumeId: volumeId, localId: localId, secret: secret, size: size == 0 ? nil : Int(size), fileReference: nil))) case .fileLocationUnavailable: break } @@ -998,7 +992,7 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 case let .fileLocation(dcId, volumeId, localId, secret): let resource = CloudFileMediaResource(datacenterId: Int(dcId), volumeId: volumeId, localId: localId, secret: secret, size: bytes.size, fileReference: nil) resources.append((resource, bytes.makeData())) - previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: resource)) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: resource)) case .fileLocationUnavailable: break } @@ -1146,10 +1140,10 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 var representations: [TelegramMediaImageRepresentation] = [] if thumb.size != 0 { let resource = LocalFileMediaResource(fileId: arc4random64()) - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(thumbW), height: CGFloat(thumbH)), resource: resource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: thumbW, height: thumbH), resource: resource)) resources.append((resource, thumb.makeData())) } - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: file.resource(key: SecretFileEncryptionKey(aesKey: key.makeData(), aesIv: iv.makeData()), decryptedSize: size))) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: file.resource(key: SecretFileEncryptionKey(aesKey: key.makeData(), aesIv: iv.makeData()), decryptedSize: size))) let image = TelegramMediaImage(imageId: MediaId(namespace: Namespaces.Media.CloudSecretImage, id: file.id), representations: representations, immediateThumbnailData: nil, reference: nil, partialReference: nil) parsedMedia.append(image) } @@ -1173,7 +1167,7 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 var previewRepresentations: [TelegramMediaImageRepresentation] = [] if thumb.size != 0 { let resource = LocalFileMediaResource(fileId: arc4random64()) - previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(thumbW), height: CGFloat(thumbH)), resource: resource)) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: thumbW, height: thumbH), resource: resource)) resources.append((resource, thumb.makeData())) } let fileMedia = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.CloudSecretFile, id: file.id), partialReference: nil, resource: file.resource(key: SecretFileEncryptionKey(aesKey: key.makeData(), aesIv: iv.makeData()), decryptedSize: size), previewRepresentations: previewRepresentations, immediateThumbnailData: nil, mimeType: mimeType, size: Int(size), attributes: parsedAttributes) @@ -1200,11 +1194,11 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 text = caption } if let file = file { - let parsedAttributes: [TelegramMediaFileAttribute] = [.Video(duration: Int(duration), size: CGSize(width: CGFloat(w), height: CGFloat(h)), flags: []), .FileName(fileName: "video.mov")] + let parsedAttributes: [TelegramMediaFileAttribute] = [.Video(duration: Int(duration), size: PixelDimensions(width: w, height: h), flags: []), .FileName(fileName: "video.mov")] var previewRepresentations: [TelegramMediaImageRepresentation] = [] if thumb.size != 0 { let resource = LocalFileMediaResource(fileId: arc4random64()) - previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(thumbW), height: CGFloat(thumbH)), resource: resource)) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: thumbW, height: thumbH), resource: resource)) resources.append((resource, thumb.makeData())) } let fileMedia = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.CloudSecretFile, id: file.id), partialReference: nil, resource: file.resource(key: SecretFileEncryptionKey(aesKey: key.makeData(), aesIv: iv.makeData()), decryptedSize: size), previewRepresentations: previewRepresentations, immediateThumbnailData: nil, mimeType: mimeType, size: Int(size), attributes: parsedAttributes) @@ -1222,7 +1216,7 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 case let .photoSize(_, location, w, h, size): switch location { case let .fileLocation(dcId, volumeId, localId, secret): - previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: CloudFileMediaResource(datacenterId: Int(dcId), volumeId: volumeId, localId: localId, secret: secret, size: size == 0 ? nil : Int(size), fileReference: nil))) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: CloudFileMediaResource(datacenterId: Int(dcId), volumeId: volumeId, localId: localId, secret: secret, size: size == 0 ? nil : Int(size), fileReference: nil))) case .fileLocationUnavailable: break } @@ -1232,7 +1226,7 @@ private func parseMessage(peerId: PeerId, authorId: PeerId, tagLocalIndex: Int32 case let .fileLocation(dcId, volumeId, localId, secret): let resource = CloudFileMediaResource(datacenterId: Int(dcId), volumeId: volumeId, localId: localId, secret: secret, size: bytes.size, fileReference: nil) resources.append((resource, bytes.makeData())) - previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: resource)) + previewRepresentations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: resource)) case .fileLocationUnavailable: break } diff --git a/submodules/TelegramCore/Sources/ProcessSecretChatIncomingEncryptedOperations.swift b/submodules/TelegramCore/Sources/ProcessSecretChatIncomingEncryptedOperations.swift index e97d4c7eb4..3c2e0dd103 100644 --- a/submodules/TelegramCore/Sources/ProcessSecretChatIncomingEncryptedOperations.swift +++ b/submodules/TelegramCore/Sources/ProcessSecretChatIncomingEncryptedOperations.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/ProxyServersStatuses.swift b/submodules/TelegramCore/Sources/ProxyServersStatuses.swift index 24ac494c28..bd6c75c7fd 100644 --- a/submodules/TelegramCore/Sources/ProxyServersStatuses.swift +++ b/submodules/TelegramCore/Sources/ProxyServersStatuses.swift @@ -1,15 +1,6 @@ import Foundation -#if os(macOS) - import SwiftSignalKitMac - import MtProtoKitMac -#else - import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import SwiftSignalKit +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ProxySettings.swift b/submodules/TelegramCore/Sources/ProxySettings.swift index d1498bb0ad..82253e7fb4 100644 --- a/submodules/TelegramCore/Sources/ProxySettings.swift +++ b/submodules/TelegramCore/Sources/ProxySettings.swift @@ -1,14 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac -#else - import Postbox - import SwiftSignalKit - import MtProtoKit -#endif - +import Postbox +import SwiftSignalKit +import MtProtoKit import SyncCore public func updateProxySettingsInteractively(accountManager: AccountManager, _ f: @escaping (ProxySettings) -> ProxySettings) -> Signal { diff --git a/submodules/TelegramCore/Sources/RateCall.swift b/submodules/TelegramCore/Sources/RateCall.swift index d1727dfd8c..340236437a 100644 --- a/submodules/TelegramCore/Sources/RateCall.swift +++ b/submodules/TelegramCore/Sources/RateCall.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import MtProtoKitMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif - import SwiftSignalKit -#endif +import Postbox +import MtProtoKit +import SwiftSignalKit +import TelegramApi public func rateCall(account: Account, callId: CallId, starsCount: Int32, comment: String = "", userInitiated: Bool) -> Signal { var flags: Int32 = 0 diff --git a/submodules/TelegramCore/Sources/ReactionsMessageAttribute.swift b/submodules/TelegramCore/Sources/ReactionsMessageAttribute.swift index c70a20b726..625486d429 100644 --- a/submodules/TelegramCore/Sources/ReactionsMessageAttribute.swift +++ b/submodules/TelegramCore/Sources/ReactionsMessageAttribute.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -import TelegramApiMac -#else import Postbox import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/RecentAccountSession.swift b/submodules/TelegramCore/Sources/RecentAccountSession.swift index d148cd0340..df7df1c088 100644 --- a/submodules/TelegramCore/Sources/RecentAccountSession.swift +++ b/submodules/TelegramCore/Sources/RecentAccountSession.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import TelegramApiMac -#else import TelegramApi -#endif public struct AccountSessionFlags: OptionSet { public var rawValue: Int32 diff --git a/submodules/TelegramCore/Sources/RecentAccountSessions.swift b/submodules/TelegramCore/Sources/RecentAccountSessions.swift index 5b4b09e90f..68ee35add2 100644 --- a/submodules/TelegramCore/Sources/RecentAccountSessions.swift +++ b/submodules/TelegramCore/Sources/RecentAccountSessions.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit public func requestRecentAccountSessions(account: Account) -> Signal<[RecentAccountSession], NoError> { return account.network.request(Api.functions.account.getAuthorizations()) diff --git a/submodules/TelegramCore/Sources/RecentPeers.swift b/submodules/TelegramCore/Sources/RecentPeers.swift index 3fe5226d85..eb44d97c28 100644 --- a/submodules/TelegramCore/Sources/RecentPeers.swift +++ b/submodules/TelegramCore/Sources/RecentPeers.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/RecentWebSessions.swift b/submodules/TelegramCore/Sources/RecentWebSessions.swift index 8a6b7bb0a6..5c8d25baa9 100644 --- a/submodules/TelegramCore/Sources/RecentWebSessions.swift +++ b/submodules/TelegramCore/Sources/RecentWebSessions.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/RecentlySearchedPeerIds.swift b/submodules/TelegramCore/Sources/RecentlySearchedPeerIds.swift index 084d01d6d0..ad9544f4dc 100644 --- a/submodules/TelegramCore/Sources/RecentlySearchedPeerIds.swift +++ b/submodules/TelegramCore/Sources/RecentlySearchedPeerIds.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/RecentlyUsedHashtags.swift b/submodules/TelegramCore/Sources/RecentlyUsedHashtags.swift index 04a7d8c981..0bd04d68a4 100644 --- a/submodules/TelegramCore/Sources/RecentlyUsedHashtags.swift +++ b/submodules/TelegramCore/Sources/RecentlyUsedHashtags.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/RegisterNotificationToken.swift b/submodules/TelegramCore/Sources/RegisterNotificationToken.swift index a317b93a8f..d57cb98c9b 100644 --- a/submodules/TelegramCore/Sources/RegisterNotificationToken.swift +++ b/submodules/TelegramCore/Sources/RegisterNotificationToken.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -import PostboxMac -import TelegramApiMac -#else import SwiftSignalKit import Postbox import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/RemoteStorageConfiguration.swift b/submodules/TelegramCore/Sources/RemoteStorageConfiguration.swift index 316835b6c7..174478236d 100644 --- a/submodules/TelegramCore/Sources/RemoteStorageConfiguration.swift +++ b/submodules/TelegramCore/Sources/RemoteStorageConfiguration.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -#else import Postbox import SwiftSignalKit -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/RemovePeerChat.swift b/submodules/TelegramCore/Sources/RemovePeerChat.swift index ae7d7f0a7b..34e4b76797 100644 --- a/submodules/TelegramCore/Sources/RemovePeerChat.swift +++ b/submodules/TelegramCore/Sources/RemovePeerChat.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/RemovePeerMember.swift b/submodules/TelegramCore/Sources/RemovePeerMember.swift index b92aa69288..5d1802b978 100644 --- a/submodules/TelegramCore/Sources/RemovePeerMember.swift +++ b/submodules/TelegramCore/Sources/RemovePeerMember.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ReplyMarkupMessageAttribute.swift b/submodules/TelegramCore/Sources/ReplyMarkupMessageAttribute.swift index 11300d8922..cf364c8429 100644 --- a/submodules/TelegramCore/Sources/ReplyMarkupMessageAttribute.swift +++ b/submodules/TelegramCore/Sources/ReplyMarkupMessageAttribute.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/ReportPeer.swift b/submodules/TelegramCore/Sources/ReportPeer.swift index d626351feb..ff58fd5061 100644 --- a/submodules/TelegramCore/Sources/ReportPeer.swift +++ b/submodules/TelegramCore/Sources/ReportPeer.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/RequestChatContextResults.swift b/submodules/TelegramCore/Sources/RequestChatContextResults.swift index 9bd5b48d63..4a9498878e 100644 --- a/submodules/TelegramCore/Sources/RequestChatContextResults.swift +++ b/submodules/TelegramCore/Sources/RequestChatContextResults.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore public enum RequestChatContextResultsError { diff --git a/submodules/TelegramCore/Sources/RequestEditMessage.swift b/submodules/TelegramCore/Sources/RequestEditMessage.swift index 4eeb177be4..94d775b546 100644 --- a/submodules/TelegramCore/Sources/RequestEditMessage.swift +++ b/submodules/TelegramCore/Sources/RequestEditMessage.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/RequestMessageActionCallback.swift b/submodules/TelegramCore/Sources/RequestMessageActionCallback.swift index 9625d12fde..7631d4bee6 100644 --- a/submodules/TelegramCore/Sources/RequestMessageActionCallback.swift +++ b/submodules/TelegramCore/Sources/RequestMessageActionCallback.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/RequestPhoneNumber.swift b/submodules/TelegramCore/Sources/RequestPhoneNumber.swift index 3668acad1d..2842feaa2e 100644 --- a/submodules/TelegramCore/Sources/RequestPhoneNumber.swift +++ b/submodules/TelegramCore/Sources/RequestPhoneNumber.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import TelegramApiMac -#else import Postbox import SwiftSignalKit import TelegramApi -#endif public func requestPhoneNumber(account: Account, peerId: PeerId) -> Signal { return .never() diff --git a/submodules/TelegramCore/Sources/RequestSecureIdForm.swift b/submodules/TelegramCore/Sources/RequestSecureIdForm.swift index e29ec1197d..6a79f35ff1 100644 --- a/submodules/TelegramCore/Sources/RequestSecureIdForm.swift +++ b/submodules/TelegramCore/Sources/RequestSecureIdForm.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import MtProtoKitMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif - import SwiftSignalKit -#endif +import Postbox +import MtProtoKit +import SwiftSignalKit +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/RequestStartBot.swift b/submodules/TelegramCore/Sources/RequestStartBot.swift index 8a514808ab..44e6b1118b 100644 --- a/submodules/TelegramCore/Sources/RequestStartBot.swift +++ b/submodules/TelegramCore/Sources/RequestStartBot.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/RequestUserPhotos.swift b/submodules/TelegramCore/Sources/RequestUserPhotos.swift index 8aa3ab5618..d31c7f52d9 100644 --- a/submodules/TelegramCore/Sources/RequestUserPhotos.swift +++ b/submodules/TelegramCore/Sources/RequestUserPhotos.swift @@ -1,20 +1,9 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/ResolvePeerByName.swift b/submodules/TelegramCore/Sources/ResolvePeerByName.swift index ac9851b251..2e4f7ec625 100644 --- a/submodules/TelegramCore/Sources/ResolvePeerByName.swift +++ b/submodules/TelegramCore/Sources/ResolvePeerByName.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/RichText.swift b/submodules/TelegramCore/Sources/RichText.swift index af86168ec9..dba1487045 100644 --- a/submodules/TelegramCore/Sources/RichText.swift +++ b/submodules/TelegramCore/Sources/RichText.swift @@ -1,12 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import UIKit - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore @@ -42,7 +36,7 @@ extension RichText { case let .textPhone(text, phone): self = .phone(text: RichText(apiText: text), phone: phone) case let .textImage(documentId, w, h): - self = .image(id: MediaId(namespace: Namespaces.Media.CloudFile, id: documentId), dimensions: CGSize(width: CGFloat(w), height: CGFloat(h))) + self = .image(id: MediaId(namespace: Namespaces.Media.CloudFile, id: documentId), dimensions: PixelDimensions(width: w, height: h)) case let .textAnchor(text, name): self = .anchor(text: RichText(apiText: text), name: name) } diff --git a/submodules/TelegramCore/Sources/SaveSecureIdValue.swift b/submodules/TelegramCore/Sources/SaveSecureIdValue.swift index e2da085f46..06fb9d5cdb 100644 --- a/submodules/TelegramCore/Sources/SaveSecureIdValue.swift +++ b/submodules/TelegramCore/Sources/SaveSecureIdValue.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import MtProtoKitMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif - import SwiftSignalKit -#endif +import Postbox +import MtProtoKit +import SwiftSignalKit +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/ScheduledMessages.swift b/submodules/TelegramCore/Sources/ScheduledMessages.swift index f89da8a6c0..d40720f44c 100644 --- a/submodules/TelegramCore/Sources/ScheduledMessages.swift +++ b/submodules/TelegramCore/Sources/ScheduledMessages.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi -#endif +import Postbox +import SwiftSignalKit +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/SearchGroupMembers.swift b/submodules/TelegramCore/Sources/SearchGroupMembers.swift index 74ce58454d..378e41837c 100644 --- a/submodules/TelegramCore/Sources/SearchGroupMembers.swift +++ b/submodules/TelegramCore/Sources/SearchGroupMembers.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SearchMessages.swift b/submodules/TelegramCore/Sources/SearchMessages.swift index 41b98ccbfc..3d63b79ef7 100644 --- a/submodules/TelegramCore/Sources/SearchMessages.swift +++ b/submodules/TelegramCore/Sources/SearchMessages.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SearchPeers.swift b/submodules/TelegramCore/Sources/SearchPeers.swift index 5248ee97ce..ab6b93a3e7 100644 --- a/submodules/TelegramCore/Sources/SearchPeers.swift +++ b/submodules/TelegramCore/Sources/SearchPeers.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SearchStickers.swift b/submodules/TelegramCore/Sources/SearchStickers.swift index c7f12c6dfa..c17bc64c94 100644 --- a/submodules/TelegramCore/Sources/SearchStickers.swift +++ b/submodules/TelegramCore/Sources/SearchStickers.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SecretChatEncryption.swift b/submodules/TelegramCore/Sources/SecretChatEncryption.swift index 4c20b69eb1..d559f9eb2f 100644 --- a/submodules/TelegramCore/Sources/SecretChatEncryption.swift +++ b/submodules/TelegramCore/Sources/SecretChatEncryption.swift @@ -1,15 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import MtProtoKitMac -#else - import Postbox - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SecretChatEncryptionConfig.swift b/submodules/TelegramCore/Sources/SecretChatEncryptionConfig.swift index e1337da0f7..5475efc558 100644 --- a/submodules/TelegramCore/Sources/SecretChatEncryptionConfig.swift +++ b/submodules/TelegramCore/Sources/SecretChatEncryptionConfig.swift @@ -1,15 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - import MtProtoKit -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SecretChatFileReference.swift b/submodules/TelegramCore/Sources/SecretChatFileReference.swift index cf689a4d37..c6cd02e3fd 100644 --- a/submodules/TelegramCore/Sources/SecretChatFileReference.swift +++ b/submodules/TelegramCore/Sources/SecretChatFileReference.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/SecretChatIncomingEncryptedOperation.swift b/submodules/TelegramCore/Sources/SecretChatIncomingEncryptedOperation.swift index 796e485e1c..ac842093b8 100644 --- a/submodules/TelegramCore/Sources/SecretChatIncomingEncryptedOperation.swift +++ b/submodules/TelegramCore/Sources/SecretChatIncomingEncryptedOperation.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/SecretChatLayerNegotiation.swift b/submodules/TelegramCore/Sources/SecretChatLayerNegotiation.swift index 03d71edab7..ed5c0fbad3 100644 --- a/submodules/TelegramCore/Sources/SecretChatLayerNegotiation.swift +++ b/submodules/TelegramCore/Sources/SecretChatLayerNegotiation.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SecretChatOutgoingOperation.swift b/submodules/TelegramCore/Sources/SecretChatOutgoingOperation.swift index adb6d6aeaf..7baaa3bef0 100644 --- a/submodules/TelegramCore/Sources/SecretChatOutgoingOperation.swift +++ b/submodules/TelegramCore/Sources/SecretChatOutgoingOperation.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/SecretChatRekeySession.swift b/submodules/TelegramCore/Sources/SecretChatRekeySession.swift index c05ef1d35c..d48e08b32f 100644 --- a/submodules/TelegramCore/Sources/SecretChatRekeySession.swift +++ b/submodules/TelegramCore/Sources/SecretChatRekeySession.swift @@ -1,15 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import MtProtoKitMac -#else - import Postbox - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import MtProtoKit import SyncCore import EncryptionProvider diff --git a/submodules/TelegramCore/Sources/SecureFileMediaResource.swift b/submodules/TelegramCore/Sources/SecureFileMediaResource.swift index 47632ffd04..1fdf6b63fa 100644 --- a/submodules/TelegramCore/Sources/SecureFileMediaResource.swift +++ b/submodules/TelegramCore/Sources/SecureFileMediaResource.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/SecureIdConfiguration.swift b/submodules/TelegramCore/Sources/SecureIdConfiguration.swift index ea1d560726..46c2336775 100644 --- a/submodules/TelegramCore/Sources/SecureIdConfiguration.swift +++ b/submodules/TelegramCore/Sources/SecureIdConfiguration.swift @@ -1,19 +1,7 @@ -import Foundation -#if os(macOS) -import PostboxMac -import MtProtoKitMac -import SwiftSignalKitMac -import TelegramApiMac -#else import Postbox -import TelegramApi -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif +import MtProtoKit import SwiftSignalKit -#endif +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/SecureIdDataTypes.swift b/submodules/TelegramCore/Sources/SecureIdDataTypes.swift index 059aec4ebc..adfca5c8ed 100644 --- a/submodules/TelegramCore/Sources/SecureIdDataTypes.swift +++ b/submodules/TelegramCore/Sources/SecureIdDataTypes.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import TelegramApiMac -#else import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/SecureIdForm.swift b/submodules/TelegramCore/Sources/SecureIdForm.swift index fa122c6969..08bb797061 100644 --- a/submodules/TelegramCore/Sources/SecureIdForm.swift +++ b/submodules/TelegramCore/Sources/SecureIdForm.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox public enum SecureIdRequestedFormField: Equatable { case just(SecureIdRequestedFormFieldValue) diff --git a/submodules/TelegramCore/Sources/SecureIdValueContentError.swift b/submodules/TelegramCore/Sources/SecureIdValueContentError.swift index cab7c59106..01b395bf0c 100644 --- a/submodules/TelegramCore/Sources/SecureIdValueContentError.swift +++ b/submodules/TelegramCore/Sources/SecureIdValueContentError.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import TelegramApiMac -#else import TelegramApi -#endif public enum SecureIdValueContentErrorKey: Hashable { diff --git a/submodules/TelegramCore/Sources/Serialization.swift b/submodules/TelegramCore/Sources/Serialization.swift index 13e450e052..5a2e8b38ef 100644 --- a/submodules/TelegramCore/Sources/Serialization.swift +++ b/submodules/TelegramCore/Sources/Serialization.swift @@ -1,15 +1,6 @@ import Foundation -#if os(macOS) - import MtProtoKitMac - import TelegramApiMac -#else - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit +import TelegramApi private let apiPrefix: String = { diff --git a/submodules/TelegramCore/Sources/SetSecretChatMessageAutoremoveTimeoutInteractively.swift b/submodules/TelegramCore/Sources/SetSecretChatMessageAutoremoveTimeoutInteractively.swift index 14b9bab855..eb1473f89c 100644 --- a/submodules/TelegramCore/Sources/SetSecretChatMessageAutoremoveTimeoutInteractively.swift +++ b/submodules/TelegramCore/Sources/SetSecretChatMessageAutoremoveTimeoutInteractively.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SingleMessageView.swift b/submodules/TelegramCore/Sources/SingleMessageView.swift index 14a5dd7207..f54bc1bc62 100644 --- a/submodules/TelegramCore/Sources/SingleMessageView.swift +++ b/submodules/TelegramCore/Sources/SingleMessageView.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SlowMode.swift b/submodules/TelegramCore/Sources/SlowMode.swift index 4436a17c49..4bb00f44e5 100644 --- a/submodules/TelegramCore/Sources/SlowMode.swift +++ b/submodules/TelegramCore/Sources/SlowMode.swift @@ -1,12 +1,6 @@ -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import TelegramApiMac -#else import Postbox import TelegramApi import SwiftSignalKit -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/SplitTest.swift b/submodules/TelegramCore/Sources/SplitTest.swift index a632f27935..10cac1b41e 100644 --- a/submodules/TelegramCore/Sources/SplitTest.swift +++ b/submodules/TelegramCore/Sources/SplitTest.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/StandaloneSendMessage.swift b/submodules/TelegramCore/Sources/StandaloneSendMessage.swift index df3b8f1e0d..8a3b1aaa63 100644 --- a/submodules/TelegramCore/Sources/StandaloneSendMessage.swift +++ b/submodules/TelegramCore/Sources/StandaloneSendMessage.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/StandaloneUploadedMedia.swift b/submodules/TelegramCore/Sources/StandaloneUploadedMedia.swift index bad9d6c00a..05a73c353d 100644 --- a/submodules/TelegramCore/Sources/StandaloneUploadedMedia.swift +++ b/submodules/TelegramCore/Sources/StandaloneUploadedMedia.swift @@ -1,14 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import TelegramApi - import Postbox - import SwiftSignalKit - import UIKit -#endif +import TelegramApi +import Postbox +import SwiftSignalKit import SyncCore @@ -60,7 +53,7 @@ private func uploadedThumbnail(network: Network, postbox: Postbox, data: Data) - } } -public func standaloneUploadedImage(account: Account, peerId: PeerId, text: String, data: Data, thumbnailData: Data? = nil, dimensions: CGSize) -> Signal { +public func standaloneUploadedImage(account: Account, peerId: PeerId, text: String, data: Data, thumbnailData: Data? = nil, dimensions: PixelDimensions) -> Signal { return multipartUpload(network: account.network, postbox: account.postbox, source: .data(data), encrypt: peerId.namespace == Namespaces.Peer.SecretChat, tag: TelegramMediaResourceFetchTag(statsCategory: .image), hintFileSize: nil, hintFileIsLarge: false) |> mapError { _ -> StandaloneUploadMediaError in return .generic } |> mapToSignal { next -> Signal in diff --git a/submodules/TelegramCore/Sources/StickerManagement.swift b/submodules/TelegramCore/Sources/StickerManagement.swift index f12adda9cd..1ec8db6630 100644 --- a/submodules/TelegramCore/Sources/StickerManagement.swift +++ b/submodules/TelegramCore/Sources/StickerManagement.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import TelegramApi - import Postbox - import SwiftSignalKit -#endif +import TelegramApi +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/StickerPack.swift b/submodules/TelegramCore/Sources/StickerPack.swift index 01d1934342..c653fb9913 100644 --- a/submodules/TelegramCore/Sources/StickerPack.swift +++ b/submodules/TelegramCore/Sources/StickerPack.swift @@ -1,12 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import UIKit - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore @@ -16,13 +10,13 @@ func telegramStickerPachThumbnailRepresentationFromApiSize(datacenterId: Int32, switch location { case let .fileLocationToBeDeprecated(volumeId, localId): let resource = CloudStickerPackThumbnailMediaResource(datacenterId: datacenterId, volumeId: volumeId, localId: localId) - return TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: resource) + return TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: resource) } case let .photoSize(_, location, w, h, _): switch location { case let .fileLocationToBeDeprecated(volumeId, localId): let resource = CloudStickerPackThumbnailMediaResource(datacenterId: datacenterId, volumeId: volumeId, localId: localId) - return TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: resource) + return TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: resource) } case .photoStrippedSize: return nil diff --git a/submodules/TelegramCore/Sources/StickerPackInteractiveOperations.swift b/submodules/TelegramCore/Sources/StickerPackInteractiveOperations.swift index 8c2c9b90ff..28fa1e1a6d 100644 --- a/submodules/TelegramCore/Sources/StickerPackInteractiveOperations.swift +++ b/submodules/TelegramCore/Sources/StickerPackInteractiveOperations.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/StickerSetInstallation.swift b/submodules/TelegramCore/Sources/StickerSetInstallation.swift index 9fac2b1c00..f8f84a4e2d 100644 --- a/submodules/TelegramCore/Sources/StickerSetInstallation.swift +++ b/submodules/TelegramCore/Sources/StickerSetInstallation.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/StoreMessage_Telegram.swift b/submodules/TelegramCore/Sources/StoreMessage_Telegram.swift index e904a3612a..302f5ceefd 100644 --- a/submodules/TelegramCore/Sources/StoreMessage_Telegram.swift +++ b/submodules/TelegramCore/Sources/StoreMessage_Telegram.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/SuggestedLocalizationEntry.swift b/submodules/TelegramCore/Sources/SuggestedLocalizationEntry.swift index 8cb3a49c84..6ba5d1d739 100644 --- a/submodules/TelegramCore/Sources/SuggestedLocalizationEntry.swift +++ b/submodules/TelegramCore/Sources/SuggestedLocalizationEntry.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SupportPeerId.swift b/submodules/TelegramCore/Sources/SupportPeerId.swift index f50bb256d6..783c7c8552 100644 --- a/submodules/TelegramCore/Sources/SupportPeerId.swift +++ b/submodules/TelegramCore/Sources/SupportPeerId.swift @@ -1,18 +1,7 @@ -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SynchronizeAppLogEventsOperation.swift b/submodules/TelegramCore/Sources/SynchronizeAppLogEventsOperation.swift index 88183abcee..99669da865 100644 --- a/submodules/TelegramCore/Sources/SynchronizeAppLogEventsOperation.swift +++ b/submodules/TelegramCore/Sources/SynchronizeAppLogEventsOperation.swift @@ -1,17 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac -#else - import Postbox - import SwiftSignalKit - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SynchronizeChatInputStateOperation.swift b/submodules/TelegramCore/Sources/SynchronizeChatInputStateOperation.swift index 1c6220c78c..e00abb7bb5 100644 --- a/submodules/TelegramCore/Sources/SynchronizeChatInputStateOperation.swift +++ b/submodules/TelegramCore/Sources/SynchronizeChatInputStateOperation.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox import SyncCore diff --git a/submodules/TelegramCore/Sources/SynchronizeEmojiKeywordsOperation.swift b/submodules/TelegramCore/Sources/SynchronizeEmojiKeywordsOperation.swift index 28705e8289..52fb84441a 100644 --- a/submodules/TelegramCore/Sources/SynchronizeEmojiKeywordsOperation.swift +++ b/submodules/TelegramCore/Sources/SynchronizeEmojiKeywordsOperation.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import PostboxMac -#else import Postbox -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/SynchronizeGroupedPeersOperation.swift b/submodules/TelegramCore/Sources/SynchronizeGroupedPeersOperation.swift index 5cb52d0102..ccc308a736 100644 --- a/submodules/TelegramCore/Sources/SynchronizeGroupedPeersOperation.swift +++ b/submodules/TelegramCore/Sources/SynchronizeGroupedPeersOperation.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SynchronizeLocalizationUpdatesOperation.swift b/submodules/TelegramCore/Sources/SynchronizeLocalizationUpdatesOperation.swift index 615dfd17d7..f471030761 100644 --- a/submodules/TelegramCore/Sources/SynchronizeLocalizationUpdatesOperation.swift +++ b/submodules/TelegramCore/Sources/SynchronizeLocalizationUpdatesOperation.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SynchronizeMarkAllUnseenPersonalMessagesOperation.swift b/submodules/TelegramCore/Sources/SynchronizeMarkAllUnseenPersonalMessagesOperation.swift index b317103d97..143893c3ba 100644 --- a/submodules/TelegramCore/Sources/SynchronizeMarkAllUnseenPersonalMessagesOperation.swift +++ b/submodules/TelegramCore/Sources/SynchronizeMarkAllUnseenPersonalMessagesOperation.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -#else import Postbox import SwiftSignalKit -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/SynchronizePeerReadState.swift b/submodules/TelegramCore/Sources/SynchronizePeerReadState.swift index d24111b987..ef3f92bdb2 100644 --- a/submodules/TelegramCore/Sources/SynchronizePeerReadState.swift +++ b/submodules/TelegramCore/Sources/SynchronizePeerReadState.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SynchronizeRecentlyUsedMediaOperations.swift b/submodules/TelegramCore/Sources/SynchronizeRecentlyUsedMediaOperations.swift index 3145923a25..c8104c39fd 100644 --- a/submodules/TelegramCore/Sources/SynchronizeRecentlyUsedMediaOperations.swift +++ b/submodules/TelegramCore/Sources/SynchronizeRecentlyUsedMediaOperations.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -#else import Postbox import SwiftSignalKit -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/SynchronizeSavedGifsOperation.swift b/submodules/TelegramCore/Sources/SynchronizeSavedGifsOperation.swift index c25e90fed8..5fda808bcc 100644 --- a/submodules/TelegramCore/Sources/SynchronizeSavedGifsOperation.swift +++ b/submodules/TelegramCore/Sources/SynchronizeSavedGifsOperation.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/SynchronizeSavedStickersOperation.swift b/submodules/TelegramCore/Sources/SynchronizeSavedStickersOperation.swift index d42e164e0e..f606cfe342 100644 --- a/submodules/TelegramCore/Sources/SynchronizeSavedStickersOperation.swift +++ b/submodules/TelegramCore/Sources/SynchronizeSavedStickersOperation.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/TelegramChannel.swift b/submodules/TelegramCore/Sources/TelegramChannel.swift index a062834b3c..89702678e0 100644 --- a/submodules/TelegramCore/Sources/TelegramChannel.swift +++ b/submodules/TelegramCore/Sources/TelegramChannel.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox import SyncCore diff --git a/submodules/TelegramCore/Sources/TelegramChannelAdminRights.swift b/submodules/TelegramCore/Sources/TelegramChannelAdminRights.swift index 2bb6989f71..f4bb2bdb2b 100644 --- a/submodules/TelegramCore/Sources/TelegramChannelAdminRights.swift +++ b/submodules/TelegramCore/Sources/TelegramChannelAdminRights.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/TelegramChannelBannedRights.swift b/submodules/TelegramCore/Sources/TelegramChannelBannedRights.swift index 8a07c2c225..1c9c2dd520 100644 --- a/submodules/TelegramCore/Sources/TelegramChannelBannedRights.swift +++ b/submodules/TelegramCore/Sources/TelegramChannelBannedRights.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/TelegramDeviceContactImportInfo.swift b/submodules/TelegramCore/Sources/TelegramDeviceContactImportInfo.swift index e222b6d405..46c4b21893 100644 --- a/submodules/TelegramCore/Sources/TelegramDeviceContactImportInfo.swift +++ b/submodules/TelegramCore/Sources/TelegramDeviceContactImportInfo.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/TelegramGroup.swift b/submodules/TelegramCore/Sources/TelegramGroup.swift index 62ba4be67f..8c8f512713 100644 --- a/submodules/TelegramCore/Sources/TelegramGroup.swift +++ b/submodules/TelegramCore/Sources/TelegramGroup.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) - import PostboxMac -#else - import Postbox -#endif +import Postbox import SyncCore diff --git a/submodules/TelegramCore/Sources/TelegramMediaAction.swift b/submodules/TelegramCore/Sources/TelegramMediaAction.swift index ca16d3a200..e089045f3a 100644 --- a/submodules/TelegramCore/Sources/TelegramMediaAction.swift +++ b/submodules/TelegramCore/Sources/TelegramMediaAction.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/TelegramMediaFile.swift b/submodules/TelegramCore/Sources/TelegramMediaFile.swift index 04b5b56191..51edbe126b 100644 --- a/submodules/TelegramCore/Sources/TelegramMediaFile.swift +++ b/submodules/TelegramCore/Sources/TelegramMediaFile.swift @@ -1,16 +1,10 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import UIKit - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore -func dimensionsForFileAttributes(_ attributes: [TelegramMediaFileAttribute]) -> CGSize? { +func dimensionsForFileAttributes(_ attributes: [TelegramMediaFileAttribute]) -> PixelDimensions? { for attribute in attributes { switch attribute { case let .Video(_, size, _): @@ -39,11 +33,11 @@ func durationForFileAttributes(_ attributes: [TelegramMediaFileAttribute]) -> In } public extension TelegramMediaFile { - var dimensions: CGSize? { + var dimensions: PixelDimensions? { if let value = dimensionsForFileAttributes(self.attributes) { return value } else if self.isAnimatedSticker { - return CGSize(width: 512.0, height: 512.0) + return PixelDimensions(width: 512, height: 512) } else { return nil } @@ -89,7 +83,7 @@ func telegramMediaFileAttributesFromApiAttributes(_ attributes: [Api.DocumentAtt case .documentAttributeHasStickers: result.append(.HasLinkedStickers) case let .documentAttributeImageSize(w, h): - result.append(.ImageSize(size: CGSize(width: CGFloat(w), height: CGFloat(h)))) + result.append(.ImageSize(size: PixelDimensions(width: w, height: h))) case .documentAttributeAnimated: result.append(.Animated) case let .documentAttributeVideo(flags, duration, w, h): @@ -100,7 +94,7 @@ func telegramMediaFileAttributesFromApiAttributes(_ attributes: [Api.DocumentAtt if (flags & (1 << 1)) != 0 { videoFlags.insert(.supportsStreaming) } - result.append(.Video(duration: Int(duration), size: CGSize(width: CGFloat(w), height: CGFloat(h)), flags: videoFlags)) + result.append(.Video(duration: Int(duration), size: PixelDimensions(width: w, height: h), flags: videoFlags)) case let .documentAttributeAudio(flags, duration, title, performer, waveform): let isVoice = (flags & (1 << 10)) != 0 var waveformBuffer: MemoryBuffer? @@ -133,13 +127,13 @@ func telegramMediaFileThumbnailRepresentationsFromApiSizes(datacenterId: Int32, switch location { case let .fileLocationToBeDeprecated(volumeId, localId): let resource = CloudDocumentSizeMediaResource(datacenterId: datacenterId, documentId: documentId, accessHash: accessHash, sizeSpec: type, volumeId: volumeId, localId: localId, fileReference: fileReference) - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: resource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: resource)) } case let .photoSize(type, location, w, h, _): switch location { case let .fileLocationToBeDeprecated(volumeId, localId): let resource = CloudDocumentSizeMediaResource(datacenterId: datacenterId, documentId: documentId, accessHash: accessHash, sizeSpec: type, volumeId: volumeId, localId: localId, fileReference: fileReference) - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: resource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: resource)) } case let .photoStrippedSize(_, data): immediateThumbnailData = data.makeData() diff --git a/submodules/TelegramCore/Sources/TelegramMediaGame.swift b/submodules/TelegramCore/Sources/TelegramMediaGame.swift index 667f9c84dc..373c9790f4 100644 --- a/submodules/TelegramCore/Sources/TelegramMediaGame.swift +++ b/submodules/TelegramCore/Sources/TelegramMediaGame.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/TelegramMediaImage.swift b/submodules/TelegramCore/Sources/TelegramMediaImage.swift index 37fe0616ab..db04708bb2 100644 --- a/submodules/TelegramCore/Sources/TelegramMediaImage.swift +++ b/submodules/TelegramCore/Sources/TelegramMediaImage.swift @@ -1,12 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import UIKit - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore @@ -19,13 +13,13 @@ func telegramMediaImageRepresentationsFromApiSizes(datacenterId: Int32, photoId: switch location { case let .fileLocationToBeDeprecated(volumeId, localId): let resource = CloudPhotoSizeMediaResource(datacenterId: datacenterId, photoId: photoId, accessHash: accessHash, sizeSpec: type, volumeId: volumeId, localId: localId, fileReference: fileReference) - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: resource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: resource)) } case let .photoSize(type, location, w, h, _): switch location { case let .fileLocationToBeDeprecated(volumeId, localId): let resource = CloudPhotoSizeMediaResource(datacenterId: datacenterId, photoId: photoId, accessHash: accessHash, sizeSpec: type, volumeId: volumeId, localId: localId, fileReference: fileReference) - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: CGFloat(w), height: CGFloat(h)), resource: resource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: resource)) } case let .photoStrippedSize(_, data): immediateThumbnailData = data.makeData() diff --git a/submodules/TelegramCore/Sources/TelegramMediaMap.swift b/submodules/TelegramCore/Sources/TelegramMediaMap.swift index 4ba223ba83..85c13e5e35 100644 --- a/submodules/TelegramCore/Sources/TelegramMediaMap.swift +++ b/submodules/TelegramCore/Sources/TelegramMediaMap.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/TelegramMediaPoll.swift b/submodules/TelegramCore/Sources/TelegramMediaPoll.swift index 6567b5bfc5..ab4e9fc689 100644 --- a/submodules/TelegramCore/Sources/TelegramMediaPoll.swift +++ b/submodules/TelegramCore/Sources/TelegramMediaPoll.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -import TelegramApiMac -#else import Postbox import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/TelegramMediaWebDocument.swift b/submodules/TelegramCore/Sources/TelegramMediaWebDocument.swift index acd4a64b39..c27fafc5a1 100644 --- a/submodules/TelegramCore/Sources/TelegramMediaWebDocument.swift +++ b/submodules/TelegramCore/Sources/TelegramMediaWebDocument.swift @@ -1,12 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import UIKit - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/TelegramMediaWebFile.swift b/submodules/TelegramCore/Sources/TelegramMediaWebFile.swift index 0c147a9b57..7c87514738 100644 --- a/submodules/TelegramCore/Sources/TelegramMediaWebFile.swift +++ b/submodules/TelegramCore/Sources/TelegramMediaWebFile.swift @@ -1,13 +1,12 @@ import Postbox import SyncCore -import UIKit public extension TelegramMediaWebFile { - public var dimensions: CGSize? { + var dimensions: PixelDimensions? { return dimensionsForFileAttributes(self.attributes) } - public var duration: Int32? { + var duration: Int32? { return durationForFileAttributes(self.attributes) } } diff --git a/submodules/TelegramCore/Sources/TelegramMediaWebpage.swift b/submodules/TelegramCore/Sources/TelegramMediaWebpage.swift index fa97738796..371b2dde24 100644 --- a/submodules/TelegramCore/Sources/TelegramMediaWebpage.swift +++ b/submodules/TelegramCore/Sources/TelegramMediaWebpage.swift @@ -1,12 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import UIKit - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore @@ -17,9 +11,9 @@ func telegramMediaWebpageFromApiWebpage(_ webpage: Api.WebPage, url: String?) -> case let .webPagePending(id, date): return TelegramMediaWebpage(webpageId: MediaId(namespace: Namespaces.Media.CloudWebpage, id: id), content: .Pending(date, url)) case let .webPage(_, id, url, displayUrl, hash, type, siteName, title, description, photo, embedUrl, embedType, embedWidth, embedHeight, duration, author, document, documents, cachedPage): - var embedSize: CGSize? + var embedSize: PixelDimensions? if let embedWidth = embedWidth, let embedHeight = embedHeight { - embedSize = CGSize(width: CGFloat(embedWidth), height: CGFloat(embedHeight)) + embedSize = PixelDimensions(width: embedWidth, height: embedHeight) } var webpageDuration: Int? if let duration = duration { diff --git a/submodules/TelegramCore/Sources/TelegramPeerNotificationSettings.swift b/submodules/TelegramCore/Sources/TelegramPeerNotificationSettings.swift index 2ae5ad8c36..7276bfe940 100644 --- a/submodules/TelegramCore/Sources/TelegramPeerNotificationSettings.swift +++ b/submodules/TelegramCore/Sources/TelegramPeerNotificationSettings.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/TelegramUser.swift b/submodules/TelegramCore/Sources/TelegramUser.swift index ea75864e76..e2a925cd8e 100644 --- a/submodules/TelegramCore/Sources/TelegramUser.swift +++ b/submodules/TelegramCore/Sources/TelegramUser.swift @@ -1,12 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import UIKit - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore @@ -24,8 +18,8 @@ func parsedTelegramProfilePhoto(_ photo: Api.UserProfilePhoto) -> [TelegramMedia case let .fileLocationToBeDeprecated(volumeId, localId): fullSizeResource = CloudPeerPhotoSizeMediaResource(datacenterId: dcId, sizeSpec: .fullSize, volumeId: volumeId, localId: localId) } - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: 80.0, height: 80.0), resource: smallResource)) - representations.append(TelegramMediaImageRepresentation(dimensions: CGSize(width: 640.0, height: 640.0), resource: fullSizeResource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: 80, height: 80), resource: smallResource)) + representations.append(TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: 640, height: 640), resource: fullSizeResource)) case .userProfilePhotoEmpty: break } diff --git a/submodules/TelegramCore/Sources/TelegramUserPresence.swift b/submodules/TelegramCore/Sources/TelegramUserPresence.swift index 785772cfec..4093901a79 100644 --- a/submodules/TelegramCore/Sources/TelegramUserPresence.swift +++ b/submodules/TelegramCore/Sources/TelegramUserPresence.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/TermsOfService.swift b/submodules/TelegramCore/Sources/TermsOfService.swift index 5d512d6b71..9e5af7f4b0 100644 --- a/submodules/TelegramCore/Sources/TermsOfService.swift +++ b/submodules/TelegramCore/Sources/TermsOfService.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import TelegramApi import Postbox import SwiftSignalKit -#if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/TextEntitiesMessageAttribute.swift b/submodules/TelegramCore/Sources/TextEntitiesMessageAttribute.swift index dc82936033..c898bed30f 100644 --- a/submodules/TelegramCore/Sources/TextEntitiesMessageAttribute.swift +++ b/submodules/TelegramCore/Sources/TextEntitiesMessageAttribute.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/Theme.swift b/submodules/TelegramCore/Sources/Theme.swift index 558693608a..43e65aee1e 100644 --- a/submodules/TelegramCore/Sources/Theme.swift +++ b/submodules/TelegramCore/Sources/Theme.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import TelegramApiMac -#else import Postbox import SwiftSignalKit import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/Themes.swift b/submodules/TelegramCore/Sources/Themes.swift index c7d25416b3..8082a5b0ca 100644 --- a/submodules/TelegramCore/Sources/Themes.swift +++ b/submodules/TelegramCore/Sources/Themes.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi -#endif +import Postbox +import SwiftSignalKit +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/ToggleChannelSignatures.swift b/submodules/TelegramCore/Sources/ToggleChannelSignatures.swift index 753848fffd..9505ce02db 100644 --- a/submodules/TelegramCore/Sources/ToggleChannelSignatures.swift +++ b/submodules/TelegramCore/Sources/ToggleChannelSignatures.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/TogglePeerChatPinned.swift b/submodules/TelegramCore/Sources/TogglePeerChatPinned.swift index 697bc6074a..12d2a0e2e4 100644 --- a/submodules/TelegramCore/Sources/TogglePeerChatPinned.swift +++ b/submodules/TelegramCore/Sources/TogglePeerChatPinned.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/TwoStepVerification.swift b/submodules/TelegramCore/Sources/TwoStepVerification.swift index d8686345b4..286db5bae4 100644 --- a/submodules/TelegramCore/Sources/TwoStepVerification.swift +++ b/submodules/TelegramCore/Sources/TwoStepVerification.swift @@ -1,15 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - import MtProtoKit -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/UpdateAccountPeerName.swift b/submodules/TelegramCore/Sources/UpdateAccountPeerName.swift index dd76c4d9b8..b759ced39e 100644 --- a/submodules/TelegramCore/Sources/UpdateAccountPeerName.swift +++ b/submodules/TelegramCore/Sources/UpdateAccountPeerName.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/UpdateCachedPeerData.swift b/submodules/TelegramCore/Sources/UpdateCachedPeerData.swift index 6987139d95..6ba93d2ea0 100644 --- a/submodules/TelegramCore/Sources/UpdateCachedPeerData.swift +++ b/submodules/TelegramCore/Sources/UpdateCachedPeerData.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/UpdateContactName.swift b/submodules/TelegramCore/Sources/UpdateContactName.swift index 23435bf431..cb5ba9f76e 100644 --- a/submodules/TelegramCore/Sources/UpdateContactName.swift +++ b/submodules/TelegramCore/Sources/UpdateContactName.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/UpdateGroup.swift b/submodules/TelegramCore/Sources/UpdateGroup.swift index 2504739e31..4613303c83 100644 --- a/submodules/TelegramCore/Sources/UpdateGroup.swift +++ b/submodules/TelegramCore/Sources/UpdateGroup.swift @@ -1,9 +1,5 @@ import Foundation -#if os(macOS) -import TelegramApiMac -#else import TelegramApi -#endif enum UpdateGroup { case withPts(updates: [Api.Update], users: [Api.User], chats: [Api.Chat]) diff --git a/submodules/TelegramCore/Sources/UpdateGroupSpecificStickerset.swift b/submodules/TelegramCore/Sources/UpdateGroupSpecificStickerset.swift index 1c3aa09d5f..860cdea9cc 100644 --- a/submodules/TelegramCore/Sources/UpdateGroupSpecificStickerset.swift +++ b/submodules/TelegramCore/Sources/UpdateGroupSpecificStickerset.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/UpdateMessageMedia.swift b/submodules/TelegramCore/Sources/UpdateMessageMedia.swift index 21c0a6f562..155e4274f4 100644 --- a/submodules/TelegramCore/Sources/UpdateMessageMedia.swift +++ b/submodules/TelegramCore/Sources/UpdateMessageMedia.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -import TelegramApiMac -#else import Postbox import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/UpdateMessageService.swift b/submodules/TelegramCore/Sources/UpdateMessageService.swift index b493d4bc81..fe537679f7 100644 --- a/submodules/TelegramCore/Sources/UpdateMessageService.swift +++ b/submodules/TelegramCore/Sources/UpdateMessageService.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit class UpdateMessageService: NSObject, MTMessageService { var peerId: PeerId! diff --git a/submodules/TelegramCore/Sources/UpdatePeerChatInterfaceState.swift b/submodules/TelegramCore/Sources/UpdatePeerChatInterfaceState.swift index c6f7aa2d72..9b7435cda9 100644 --- a/submodules/TelegramCore/Sources/UpdatePeerChatInterfaceState.swift +++ b/submodules/TelegramCore/Sources/UpdatePeerChatInterfaceState.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac -#else - import Postbox - import SwiftSignalKit -#endif +import Postbox +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/UpdatePeerInfo.swift b/submodules/TelegramCore/Sources/UpdatePeerInfo.swift index 70504e31da..d70ded671a 100644 --- a/submodules/TelegramCore/Sources/UpdatePeerInfo.swift +++ b/submodules/TelegramCore/Sources/UpdatePeerInfo.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/UpdatePeers.swift b/submodules/TelegramCore/Sources/UpdatePeers.swift index bacf0de4ad..cbc5782285 100644 --- a/submodules/TelegramCore/Sources/UpdatePeers.swift +++ b/submodules/TelegramCore/Sources/UpdatePeers.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/UpdatePinnedMessage.swift b/submodules/TelegramCore/Sources/UpdatePinnedMessage.swift index 88fcbe0299..7e50ed5523 100644 --- a/submodules/TelegramCore/Sources/UpdatePinnedMessage.swift +++ b/submodules/TelegramCore/Sources/UpdatePinnedMessage.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/UpdateSecretChat.swift b/submodules/TelegramCore/Sources/UpdateSecretChat.swift index a20fcd13d5..4d251d2b7e 100644 --- a/submodules/TelegramCore/Sources/UpdateSecretChat.swift +++ b/submodules/TelegramCore/Sources/UpdateSecretChat.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/UpdatedAccountPrivacySettings.swift b/submodules/TelegramCore/Sources/UpdatedAccountPrivacySettings.swift index f9bdf7a095..055ca31218 100644 --- a/submodules/TelegramCore/Sources/UpdatedAccountPrivacySettings.swift +++ b/submodules/TelegramCore/Sources/UpdatedAccountPrivacySettings.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - import SwiftSignalKit -#endif +import Postbox +import TelegramApi +import SwiftSignalKit import SyncCore diff --git a/submodules/TelegramCore/Sources/UpdatesApiUtils.swift b/submodules/TelegramCore/Sources/UpdatesApiUtils.swift index 414151e066..33a510ac65 100644 --- a/submodules/TelegramCore/Sources/UpdatesApiUtils.swift +++ b/submodules/TelegramCore/Sources/UpdatesApiUtils.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) - import PostboxMac - import TelegramApiMac -#else - import Postbox - import TelegramApi -#endif +import Postbox +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/UploadSecureIdFile.swift b/submodules/TelegramCore/Sources/UploadSecureIdFile.swift index 12ccb34bc6..75a0e27255 100644 --- a/submodules/TelegramCore/Sources/UploadSecureIdFile.swift +++ b/submodules/TelegramCore/Sources/UploadSecureIdFile.swift @@ -1,17 +1,7 @@ import Foundation -#if os(macOS) - import PostboxMac - import MtProtoKitMac - import SwiftSignalKitMac -#else - import Postbox - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif - import SwiftSignalKit -#endif +import Postbox +import MtProtoKit +import SwiftSignalKit public struct UploadedSecureIdFile: Equatable { let id: Int64 diff --git a/submodules/TelegramCore/Sources/ValidateAddressNameInteractive.swift b/submodules/TelegramCore/Sources/ValidateAddressNameInteractive.swift index aca1c16b80..2b45f63e2e 100644 --- a/submodules/TelegramCore/Sources/ValidateAddressNameInteractive.swift +++ b/submodules/TelegramCore/Sources/ValidateAddressNameInteractive.swift @@ -1,11 +1,6 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -#else import Postbox import SwiftSignalKit -#endif public enum AddressNameValidationStatus: Equatable { case checking diff --git a/submodules/TelegramCore/Sources/VerifySecureIdValue.swift b/submodules/TelegramCore/Sources/VerifySecureIdValue.swift index aa5942dd64..d797063df2 100644 --- a/submodules/TelegramCore/Sources/VerifySecureIdValue.swift +++ b/submodules/TelegramCore/Sources/VerifySecureIdValue.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import MtProtoKitMac - import SwiftSignalKitMac - import TelegramApiMac -#else - import Postbox - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif - import SwiftSignalKit -#endif +import Postbox +import MtProtoKit +import SwiftSignalKit +import TelegramApi import SyncCore diff --git a/submodules/TelegramCore/Sources/Wallets.swift b/submodules/TelegramCore/Sources/Wallets.swift index 6d9dad4113..3bacdb2aeb 100644 --- a/submodules/TelegramCore/Sources/Wallets.swift +++ b/submodules/TelegramCore/Sources/Wallets.swift @@ -1,15 +1,8 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import MtProtoKitMac -import TelegramApiMac -#else import Postbox import SwiftSignalKit import MtProtoKit import TelegramApi -#endif public enum GetServerWalletSaltError { case generic diff --git a/submodules/TelegramCore/Sources/Wallpaper.swift b/submodules/TelegramCore/Sources/Wallpaper.swift index 5a6a1c7cfb..ff7b895163 100644 --- a/submodules/TelegramCore/Sources/Wallpaper.swift +++ b/submodules/TelegramCore/Sources/Wallpaper.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import TelegramApiMac -#else import Postbox import SwiftSignalKit import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/Wallpapers.swift b/submodules/TelegramCore/Sources/Wallpapers.swift index 3bc8eff506..061aa7d4ac 100644 --- a/submodules/TelegramCore/Sources/Wallpapers.swift +++ b/submodules/TelegramCore/Sources/Wallpapers.swift @@ -1,13 +1,7 @@ import Foundation -#if os(macOS) -import PostboxMac -import SwiftSignalKitMac -import TelegramApiMac -#else import Postbox import SwiftSignalKit import TelegramApi -#endif import SyncCore diff --git a/submodules/TelegramCore/Sources/WebpagePreview.swift b/submodules/TelegramCore/Sources/WebpagePreview.swift index 5b7b842b4d..45ab3955a1 100644 --- a/submodules/TelegramCore/Sources/WebpagePreview.swift +++ b/submodules/TelegramCore/Sources/WebpagePreview.swift @@ -1,19 +1,8 @@ import Foundation -#if os(macOS) - import PostboxMac - import SwiftSignalKitMac - import MtProtoKitMac - import TelegramApiMac -#else - import Postbox - import SwiftSignalKit - import TelegramApi - #if BUCK - import MtProtoKit - #else - import MtProtoKitDynamic - #endif -#endif +import Postbox +import SwiftSignalKit +import TelegramApi +import MtProtoKit import SyncCore diff --git a/submodules/TelegramCore/Sources/module.private-mac.modulemap b/submodules/TelegramCore/Sources/module.private-mac.modulemap deleted file mode 100644 index 4d71be2a5a..0000000000 --- a/submodules/TelegramCore/Sources/module.private-mac.modulemap +++ /dev/null @@ -1,3 +0,0 @@ -module TelegramCoreMac.TelegramCorePrivate { - export * -} diff --git a/submodules/TelegramCore/TelegramCoreMac/Info.plist b/submodules/TelegramCore/TelegramCoreMac/Info.plist deleted file mode 100644 index 6c6dba7bb1..0000000000 --- a/submodules/TelegramCore/TelegramCoreMac/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSHumanReadableCopyright - Copyright © 2016 Peter. All rights reserved. - NSPrincipalClass - - - diff --git a/submodules/TelegramCore/TelegramCoreMac/TelegramCoreMac.h b/submodules/TelegramCore/TelegramCoreMac/TelegramCoreMac.h deleted file mode 100644 index 1a7e5b057d..0000000000 --- a/submodules/TelegramCore/TelegramCoreMac/TelegramCoreMac.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// TelegramCoreMac.h -// TelegramCoreMac -// -// Created by Peter on 9/5/16. -// Copyright © 2016 Peter. All rights reserved. -// - -#import - -//! Project version number for TelegramCoreMac. -FOUNDATION_EXPORT double TelegramCoreMacVersionNumber; - -//! Project version string for TelegramCoreMac. -FOUNDATION_EXPORT const unsigned char TelegramCoreMacVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - -#import -#import -#import -#import diff --git a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj deleted file mode 100644 index 89a5b4d43c..0000000000 --- a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.pbxproj +++ /dev/null @@ -1,4161 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 0900555621E4A96E0030924C /* Wallpaper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0900555521E4A96D0030924C /* Wallpaper.swift */; }; - 09028386218E5DBB0067EFBD /* ManagedVoipConfigurationUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09028385218E5DBB0067EFBD /* ManagedVoipConfigurationUpdates.swift */; }; - 090E778322A9862100CD99F5 /* ChannelOwnershipTransfer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778222A9862100CD99F5 /* ChannelOwnershipTransfer.swift */; }; - 090E779022AAABC600CD99F5 /* PeersNearby.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778F22AAABC600CD99F5 /* PeersNearby.swift */; }; - 0925903722F0D02D003D6283 /* ManagedAnimatedEmojiUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0925903622F0D02D003D6283 /* ManagedAnimatedEmojiUpdates.swift */; }; - 093857A82243D87900EB6A54 /* ManagedSynchronizeEmojiKeywordsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 093857A62243D87800EB6A54 /* ManagedSynchronizeEmojiKeywordsOperations.swift */; }; - 093857A92243D87900EB6A54 /* SynchronizeEmojiKeywordsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 093857A72243D87900EB6A54 /* SynchronizeEmojiKeywordsOperation.swift */; }; - 093857AB2243D88D00EB6A54 /* EmojiKeywords.swift in Sources */ = {isa = PBXBuildFile; fileRef = 093857AA2243D88C00EB6A54 /* EmojiKeywords.swift */; }; - 0962E66721B59BAA00245FD9 /* ManagedAppConfigurationUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66621B59BAA00245FD9 /* ManagedAppConfigurationUpdates.swift */; }; - 0962E66921B5A11100245FD9 /* SynchronizeAppLogEventsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66821B5A11100245FD9 /* SynchronizeAppLogEventsOperation.swift */; }; - 0962E66B21B5A41C00245FD9 /* ManagedSynchronizeAppLogEventsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66A21B5A41C00245FD9 /* ManagedSynchronizeAppLogEventsOperations.swift */; }; - 0962E66D21B5C56F00245FD9 /* JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66C21B5C56F00245FD9 /* JSON.swift */; }; - 0962E66F21B6147600245FD9 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66E21B6147600245FD9 /* AppConfiguration.swift */; }; - 0962E67521B6437600245FD9 /* SplitTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E67421B6437600245FD9 /* SplitTest.swift */; }; - 0962E68121BAA20E00245FD9 /* SearchBotsConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E68021BAA20E00245FD9 /* SearchBotsConfiguration.swift */; }; - 09B4A9B4230FB70B005C2E08 /* Themes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09B4A9B3230FB70B005C2E08 /* Themes.swift */; }; - 09B4A9B6230FBB2B005C2E08 /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09B4A9B5230FBB2B005C2E08 /* Theme.swift */; }; - 09EC0DE922C6825D00E7185B /* AppUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EC0DE822C6825D00E7185B /* AppUpdate.swift */; }; - 09EDAD382213120C0012A50B /* AutodownloadSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EDAD372213120C0012A50B /* AutodownloadSettings.swift */; }; - 09EDAD3A22131D010012A50B /* ManagedAutodownloadSettingsUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EDAD3922131D010012A50B /* ManagedAutodownloadSettingsUpdates.swift */; }; - 09FC986B22FD882200915E37 /* OutgoingScheduleInfoMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09FC986A22FD882200915E37 /* OutgoingScheduleInfoMessageAttribute.swift */; }; - 09FC986D22FD99D400915E37 /* ScheduledMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09FC986C22FD99D400915E37 /* ScheduledMessages.swift */; }; - 9F06831021A40DEC001D8EDB /* NotificationExceptionsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F06830F21A40DEC001D8EDB /* NotificationExceptionsList.swift */; }; - 9F06831121A40DEC001D8EDB /* NotificationExceptionsList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F06830F21A40DEC001D8EDB /* NotificationExceptionsList.swift */; }; - 9F10CE8C20613CDB002DD61A /* TelegramDeviceContactImportInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F7732052DEF700D3BFB9 /* TelegramDeviceContactImportInfo.swift */; }; - 9F153D1021E8E0A200B95D82 /* Wallpaper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0900555521E4A96D0030924C /* Wallpaper.swift */; }; - 9F1BC1AB2244CFED00F21815 /* EmojiKeywords.swift in Sources */ = {isa = PBXBuildFile; fileRef = 093857AA2243D88C00EB6A54 /* EmojiKeywords.swift */; }; - 9F1BC1AC2244CFED00F21815 /* SynchronizeEmojiKeywordsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 093857A72243D87900EB6A54 /* SynchronizeEmojiKeywordsOperation.swift */; }; - 9F1BC1AD2244CFED00F21815 /* ManagedSynchronizeEmojiKeywordsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 093857A62243D87800EB6A54 /* ManagedSynchronizeEmojiKeywordsOperations.swift */; }; - 9F4EEF9B21DCF66F002C3B33 /* JSON.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66C21B5C56F00245FD9 /* JSON.swift */; }; - 9F4EEF9C21DCF66F002C3B33 /* AppConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66E21B6147600245FD9 /* AppConfiguration.swift */; }; - 9F4EEF9D21DCF66F002C3B33 /* SearchBotsConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E68021BAA20E00245FD9 /* SearchBotsConfiguration.swift */; }; - 9F4EEF9E21DCF6E7002C3B33 /* ManagedVoipConfigurationUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09028385218E5DBB0067EFBD /* ManagedVoipConfigurationUpdates.swift */; }; - 9F4EEF9F21DCF6E7002C3B33 /* ManagedAppConfigurationUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66621B59BAA00245FD9 /* ManagedAppConfigurationUpdates.swift */; }; - 9F4EEFA021DCF6E7002C3B33 /* SynchronizeAppLogEventsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66821B5A11100245FD9 /* SynchronizeAppLogEventsOperation.swift */; }; - 9F4EEFA121DCF6E7002C3B33 /* ManagedSynchronizeAppLogEventsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E66A21B5A41C00245FD9 /* ManagedSynchronizeAppLogEventsOperations.swift */; }; - 9F7D42262223FF49007B68BB /* AutodownloadSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EDAD372213120C0012A50B /* AutodownloadSettings.swift */; }; - 9F7D42272223FF49007B68BB /* ManagedAutodownloadSettingsUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EDAD3922131D010012A50B /* ManagedAutodownloadSettingsUpdates.swift */; }; - 9FAA268820D457A300D26CF3 /* RemoteStorageConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EA188120D3D2B1001AEE19 /* RemoteStorageConfiguration.swift */; }; - 9FC8ADA9206BBD000094F7B4 /* SaveSecureIdValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D093D805206539D000BC3599 /* SaveSecureIdValue.swift */; }; - 9FC8ADAB206BBFF10094F7B4 /* RecentWebSessions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FC8ADAA206BBFF10094F7B4 /* RecentWebSessions.swift */; }; - 9FC8ADAC206BC00A0094F7B4 /* RecentWebSessions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FC8ADAA206BBFF10094F7B4 /* RecentWebSessions.swift */; }; - C205FEA81EB3B75900455808 /* ExportMessageLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = C205FEA71EB3B75900455808 /* ExportMessageLink.swift */; }; - C205FEA91EB3B75900455808 /* ExportMessageLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = C205FEA71EB3B75900455808 /* ExportMessageLink.swift */; }; - C210DD621FBDB90800F673D8 /* SourceReferenceMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = C210DD611FBDB90800F673D8 /* SourceReferenceMessageAttribute.swift */; }; - C210DD631FBDB90800F673D8 /* SourceReferenceMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = C210DD611FBDB90800F673D8 /* SourceReferenceMessageAttribute.swift */; }; - C22EE61B1E67418000334C38 /* ToggleChannelSignatures.swift in Sources */ = {isa = PBXBuildFile; fileRef = C22EE61A1E67418000334C38 /* ToggleChannelSignatures.swift */; }; - C22EE61C1E67418000334C38 /* ToggleChannelSignatures.swift in Sources */ = {isa = PBXBuildFile; fileRef = C22EE61A1E67418000334C38 /* ToggleChannelSignatures.swift */; }; - C230BEB61EE9A3760029586C /* ChannelAdminEventLogs.swift in Sources */ = {isa = PBXBuildFile; fileRef = C230BEB51EE9A3760029586C /* ChannelAdminEventLogs.swift */; }; - C230BEB71EE9A3760029586C /* ChannelAdminEventLogs.swift in Sources */ = {isa = PBXBuildFile; fileRef = C230BEB51EE9A3760029586C /* ChannelAdminEventLogs.swift */; }; - C2366C831E4F3EAA0097CCFF /* GroupReturnAndLeft.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2366C821E4F3EAA0097CCFF /* GroupReturnAndLeft.swift */; }; - C2366C841E4F3EAA0097CCFF /* GroupReturnAndLeft.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2366C821E4F3EAA0097CCFF /* GroupReturnAndLeft.swift */; }; - C2366C861E4F403C0097CCFF /* AddressNames.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2366C851E4F403C0097CCFF /* AddressNames.swift */; }; - C2366C871E4F403C0097CCFF /* AddressNames.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2366C851E4F403C0097CCFF /* AddressNames.swift */; }; - C2366C891E4F40480097CCFF /* SupportPeerId.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2366C881E4F40480097CCFF /* SupportPeerId.swift */; }; - C2366C8A1E4F40480097CCFF /* SupportPeerId.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2366C881E4F40480097CCFF /* SupportPeerId.swift */; }; - C239BE971E62EE1E00C2C453 /* LoadMessagesIfNecessary.swift in Sources */ = {isa = PBXBuildFile; fileRef = C239BE961E62EE1E00C2C453 /* LoadMessagesIfNecessary.swift */; }; - C239BE981E62F0D200C2C453 /* LoadMessagesIfNecessary.swift in Sources */ = {isa = PBXBuildFile; fileRef = C239BE961E62EE1E00C2C453 /* LoadMessagesIfNecessary.swift */; }; - C239BE9C1E630CA700C2C453 /* UpdatePinnedMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C239BE9B1E630CA700C2C453 /* UpdatePinnedMessage.swift */; }; - C239BE9D1E630CB300C2C453 /* UpdatePinnedMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = C239BE9B1E630CA700C2C453 /* UpdatePinnedMessage.swift */; }; - C23BC3871E9BE3CA00D79F92 /* ImportContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = C23BC3861E9BE3CA00D79F92 /* ImportContact.swift */; }; - C23BC3881E9BE3CB00D79F92 /* ImportContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = C23BC3861E9BE3CA00D79F92 /* ImportContact.swift */; }; - C251D7431E65E50500283EDE /* StickerSetInstallation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C251D7421E65E50500283EDE /* StickerSetInstallation.swift */; }; - C251D7441E65E50500283EDE /* StickerSetInstallation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C251D7421E65E50500283EDE /* StickerSetInstallation.swift */; }; - C25638021E79E7FC00311607 /* TwoStepVerification.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0ABC1E76C908005BB9B7 /* TwoStepVerification.swift */; }; - C26A37EF1E5E0C41006977AC /* ChannelParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BB7C591E5C8074001527C3 /* ChannelParticipants.swift */; }; - C28725421EF967E700613564 /* NotificationInfoMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = C28725411EF967E700613564 /* NotificationInfoMessageAttribute.swift */; }; - C28725431EF967E700613564 /* NotificationInfoMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = C28725411EF967E700613564 /* NotificationInfoMessageAttribute.swift */; }; - C28D3CF020D3DA900027F4D6 /* DeepLinkInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = C28D3CEF20D3DA900027F4D6 /* DeepLinkInfo.swift */; }; - C28D3CF120D3DAA30027F4D6 /* DeepLinkInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = C28D3CEF20D3DA900027F4D6 /* DeepLinkInfo.swift */; }; - C29340F31F5080FA0074991E /* UpdateGroupSpecificStickerset.swift in Sources */ = {isa = PBXBuildFile; fileRef = C29340F21F5080FA0074991E /* UpdateGroupSpecificStickerset.swift */; }; - C29340F41F5081280074991E /* UpdateGroupSpecificStickerset.swift in Sources */ = {isa = PBXBuildFile; fileRef = C29340F21F5080FA0074991E /* UpdateGroupSpecificStickerset.swift */; }; - C2A315C01E2E776A00D89000 /* RequestStartBot.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01749581E1092BC0057C89A /* RequestStartBot.swift */; }; - C2E064681ECEEF0A00387BB8 /* TelegramMediaInvoice.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2E064671ECEEF0A00387BB8 /* TelegramMediaInvoice.swift */; }; - C2E064691ECEEF0B00387BB8 /* TelegramMediaInvoice.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2E064671ECEEF0A00387BB8 /* TelegramMediaInvoice.swift */; }; - C2E0646D1ECF171D00387BB8 /* TelegramMediaWebDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2E0646C1ECF171D00387BB8 /* TelegramMediaWebDocument.swift */; }; - C2E0646E1ECF171E00387BB8 /* TelegramMediaWebDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2E0646C1ECF171D00387BB8 /* TelegramMediaWebDocument.swift */; }; - C2F4ED1D1EC60064005F2696 /* RateCall.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2F4ED1C1EC60064005F2696 /* RateCall.swift */; }; - C2F4ED1E1EC60064005F2696 /* RateCall.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2F4ED1C1EC60064005F2696 /* RateCall.swift */; }; - C2FD33E11E680E9E008D13D4 /* RequestUserPhotos.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2FD33E01E680E9E008D13D4 /* RequestUserPhotos.swift */; }; - C2FD33E21E680E9E008D13D4 /* RequestUserPhotos.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2FD33E01E680E9E008D13D4 /* RequestUserPhotos.swift */; }; - C2FD33E41E687BF1008D13D4 /* PeerPhotoUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2FD33E31E687BF1008D13D4 /* PeerPhotoUpdater.swift */; }; - C2FD33E51E687BF1008D13D4 /* PeerPhotoUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2FD33E31E687BF1008D13D4 /* PeerPhotoUpdater.swift */; }; - C2FD33EB1E696C78008D13D4 /* GroupsInCommon.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2FD33EA1E696C78008D13D4 /* GroupsInCommon.swift */; }; - C2FD33EC1E696C79008D13D4 /* GroupsInCommon.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2FD33EA1E696C78008D13D4 /* GroupsInCommon.swift */; }; - D001F3E81E128A1C007A8C60 /* ChannelState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CFF1D62255C00955575 /* ChannelState.swift */; }; - D001F3E91E128A1C007A8C60 /* SecretChatState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0177B7A1DF8A16C00A5083A /* SecretChatState.swift */; }; - D001F3EA1E128A1C007A8C60 /* TelegramPeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03121011DA57E93006A2A60 /* TelegramPeerNotificationSettings.swift */; }; - D001F3EB1E128A1C007A8C60 /* EnqueueMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D001D62255C00955575 /* EnqueueMessage.swift */; }; - D001F3EC1E128A1C007A8C60 /* Holes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D011D62255C00955575 /* Holes.swift */; }; - D001F3EE1E128A1C007A8C60 /* AccountStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D017495D1E118F790057C89A /* AccountStateManager.swift */; }; - D001F3EF1E128A1C007A8C60 /* AccountIntermediateState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D017495F1E118FC30057C89A /* AccountIntermediateState.swift */; }; - D001F3F01E128A1C007A8C60 /* AccountStateManagementUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D031D62255C00955575 /* AccountStateManagementUtils.swift */; }; - D001F3F11E128A1C007A8C60 /* SynchronizePeerReadState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D041D62255C00955575 /* SynchronizePeerReadState.swift */; }; - D001F3F21E128A1C007A8C60 /* UpdateGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D051D62255C00955575 /* UpdateGroup.swift */; }; - D001F3F31E128A1C007A8C60 /* UpdateMessageService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D061D62255C00955575 /* UpdateMessageService.swift */; }; - D001F3F41E128A1C007A8C60 /* UpdatesApiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D071D62255C00955575 /* UpdatesApiUtils.swift */; }; - D001F3F51E128A1C007A8C60 /* PendingMessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09BB6B31DB02C2B00A905C0 /* PendingMessageManager.swift */; }; - D001F3F61E128A1C007A8C60 /* PendingMessageUploadedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09BB6B51DB0428000A905C0 /* PendingMessageUploadedContent.swift */; }; - D001F3F71E128A1C007A8C60 /* ApplyUpdateMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01AC9221DD5E9A200E8160F /* ApplyUpdateMessage.swift */; }; - D003702B1DA42586004308D3 /* PhoneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = D003702A1DA42586004308D3 /* PhoneNumber.swift */; }; - D00422D321677F4500719B67 /* ManagedAccountPresence.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00422D221677F4500719B67 /* ManagedAccountPresence.swift */; }; - D00422D421677F4500719B67 /* ManagedAccountPresence.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00422D221677F4500719B67 /* ManagedAccountPresence.swift */; }; - D00580AE21E2A08900CB7CD3 /* AccountEnvironmentAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00580AD21E2A08900CB7CD3 /* AccountEnvironmentAttribute.swift */; }; - D00580AF21E2A08900CB7CD3 /* AccountEnvironmentAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00580AD21E2A08900CB7CD3 /* AccountEnvironmentAttribute.swift */; }; - D00BDA191EE593D600C64C5E /* TelegramChannelAdminRights.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00BDA181EE593D600C64C5E /* TelegramChannelAdminRights.swift */; }; - D00BDA1A1EE593D600C64C5E /* TelegramChannelAdminRights.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00BDA181EE593D600C64C5E /* TelegramChannelAdminRights.swift */; }; - D00BDA1C1EE5952A00C64C5E /* TelegramChannelBannedRights.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00BDA1B1EE5952A00C64C5E /* TelegramChannelBannedRights.swift */; }; - D00BDA1D1EE5952A00C64C5E /* TelegramChannelBannedRights.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00BDA1B1EE5952A00C64C5E /* TelegramChannelBannedRights.swift */; }; - D00C7CCC1E3620C30080C3D5 /* CachedChannelParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CCB1E3620C30080C3D5 /* CachedChannelParticipants.swift */; }; - D00C7CCD1E3620C30080C3D5 /* CachedChannelParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CCB1E3620C30080C3D5 /* CachedChannelParticipants.swift */; }; - D00C7CE01E3785710080C3D5 /* MarkMessageContentAsConsumedInteractively.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CDF1E3785700080C3D5 /* MarkMessageContentAsConsumedInteractively.swift */; }; - D00C7CE11E3785710080C3D5 /* MarkMessageContentAsConsumedInteractively.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CDF1E3785700080C3D5 /* MarkMessageContentAsConsumedInteractively.swift */; }; - D00C7CEB1E37A8540080C3D5 /* SetSecretChatMessageAutoremoveTimeoutInteractively.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CEA1E37A8540080C3D5 /* SetSecretChatMessageAutoremoveTimeoutInteractively.swift */; }; - D00C7CEC1E37A8540080C3D5 /* SetSecretChatMessageAutoremoveTimeoutInteractively.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CEA1E37A8540080C3D5 /* SetSecretChatMessageAutoremoveTimeoutInteractively.swift */; }; - D00D34391E6EC9520057B307 /* TeleramMediaUnsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D34381E6EC9520057B307 /* TeleramMediaUnsupported.swift */; }; - D00D343A1E6EC9520057B307 /* TeleramMediaUnsupported.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D34381E6EC9520057B307 /* TeleramMediaUnsupported.swift */; }; - D00D343C1E6EC9770057B307 /* TelegramMediaGame.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D343B1E6EC9770057B307 /* TelegramMediaGame.swift */; }; - D00D343D1E6EC9770057B307 /* TelegramMediaGame.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D343B1E6EC9770057B307 /* TelegramMediaGame.swift */; }; - D00D343F1E6ED6E50057B307 /* ConsumableContentMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D343E1E6ED6E50057B307 /* ConsumableContentMessageAttribute.swift */; }; - D00D34401E6ED6E50057B307 /* ConsumableContentMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D343E1E6ED6E50057B307 /* ConsumableContentMessageAttribute.swift */; }; - D00D34421E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D34411E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift */; }; - D00D34431E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D34411E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift */; }; - D00D34451E6EDD420057B307 /* SynchronizeConsumeMessageContentsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D34441E6EDD420057B307 /* SynchronizeConsumeMessageContentsOperation.swift */; }; - D00D34461E6EDD420057B307 /* SynchronizeConsumeMessageContentsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D34441E6EDD420057B307 /* SynchronizeConsumeMessageContentsOperation.swift */; }; - D00D97C71E32901700E5C2B6 /* PeerInputActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D97C61E32901700E5C2B6 /* PeerInputActivity.swift */; }; - D00D97C81E32901700E5C2B6 /* PeerInputActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D97C61E32901700E5C2B6 /* PeerInputActivity.swift */; }; - D00D97CA1E32917C00E5C2B6 /* PeerInputActivityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D97C91E32917C00E5C2B6 /* PeerInputActivityManager.swift */; }; - D00D97CB1E32917C00E5C2B6 /* PeerInputActivityManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00D97C91E32917C00E5C2B6 /* PeerInputActivityManager.swift */; }; - D00DBBD71E64E41100DB5485 /* CreateSecretChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00DBBD61E64E41100DB5485 /* CreateSecretChat.swift */; }; - D00DBBD81E64E41100DB5485 /* CreateSecretChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00DBBD61E64E41100DB5485 /* CreateSecretChat.swift */; }; - D00DBBDA1E64E67E00DB5485 /* UpdateSecretChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00DBBD91E64E67E00DB5485 /* UpdateSecretChat.swift */; }; - D00DBBDB1E64E67E00DB5485 /* UpdateSecretChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00DBBD91E64E67E00DB5485 /* UpdateSecretChat.swift */; }; - D0119CB020CA9EA800895300 /* MarkAllChatsAsRead.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0119CAF20CA9EA800895300 /* MarkAllChatsAsRead.swift */; }; - D0119CB120CA9EA800895300 /* MarkAllChatsAsRead.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0119CAF20CA9EA800895300 /* MarkAllChatsAsRead.swift */; }; - D0136309208F3B0900EB3653 /* SecureIdValueContentError.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0136308208F3B0900EB3653 /* SecureIdValueContentError.swift */; }; - D013630A208F6E2800EB3653 /* SecureIdValueContentError.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0136308208F3B0900EB3653 /* SecureIdValueContentError.swift */; }; - D014193922AE6B85008667CB /* ChannelOwnershipTransfer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778222A9862100CD99F5 /* ChannelOwnershipTransfer.swift */; }; - D014193A22AE6B85008667CB /* PeersNearby.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778F22AAABC600CD99F5 /* PeersNearby.swift */; }; - D015E00E225CA61100CB9E8A /* FindChannelById.swift in Sources */ = {isa = PBXBuildFile; fileRef = D015E00D225CA61100CB9E8A /* FindChannelById.swift */; }; - D015E00F225CA61100CB9E8A /* FindChannelById.swift in Sources */ = {isa = PBXBuildFile; fileRef = D015E00D225CA61100CB9E8A /* FindChannelById.swift */; }; - D01749591E1092BC0057C89A /* RequestStartBot.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01749581E1092BC0057C89A /* RequestStartBot.swift */; }; - D017495E1E118F790057C89A /* AccountStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D017495D1E118F790057C89A /* AccountStateManager.swift */; }; - D01749601E118FC30057C89A /* AccountIntermediateState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D017495F1E118FC30057C89A /* AccountIntermediateState.swift */; }; - D0177B7B1DF8A16C00A5083A /* SecretChatState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0177B7A1DF8A16C00A5083A /* SecretChatState.swift */; }; - D01843A82190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01843A72190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift */; }; - D01843A92190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01843A72190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift */; }; - D018D3371E648ACF00C5E089 /* ChannelCreation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018D3361E648ACF00C5E089 /* ChannelCreation.swift */; }; - D018D3381E648ACF00C5E089 /* ChannelCreation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018D3361E648ACF00C5E089 /* ChannelCreation.swift */; }; - D018EE0220458E1E00CBB130 /* SecretChatLayerNegotiation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018EE0120458E1E00CBB130 /* SecretChatLayerNegotiation.swift */; }; - D018EE0320458E1E00CBB130 /* SecretChatLayerNegotiation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018EE0120458E1E00CBB130 /* SecretChatLayerNegotiation.swift */; }; - D018EE052045E95000CBB130 /* CheckPeerChatServiceActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018EE042045E95000CBB130 /* CheckPeerChatServiceActions.swift */; }; - D018EE062045E95000CBB130 /* CheckPeerChatServiceActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018EE042045E95000CBB130 /* CheckPeerChatServiceActions.swift */; }; - D019B1CC1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift in Sources */ = {isa = PBXBuildFile; fileRef = D019B1CB1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift */; }; - D019B1CD1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift in Sources */ = {isa = PBXBuildFile; fileRef = D019B1CB1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift */; }; - D01A21A61F38CDC700DDA104 /* SynchronizeSavedStickersOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01A21A51F38CDC700DDA104 /* SynchronizeSavedStickersOperation.swift */; }; - D01A21A71F38CDC700DDA104 /* SynchronizeSavedStickersOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01A21A51F38CDC700DDA104 /* SynchronizeSavedStickersOperation.swift */; }; - D01A21A91F38CDDC00DDA104 /* ManagedSynchronizeSavedStickersOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01A21A81F38CDDC00DDA104 /* ManagedSynchronizeSavedStickersOperations.swift */; }; - D01A21AA1F38CDDC00DDA104 /* ManagedSynchronizeSavedStickersOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01A21A81F38CDDC00DDA104 /* ManagedSynchronizeSavedStickersOperations.swift */; }; - D01A21AC1F38D10E00DDA104 /* SavedStickerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01A21AB1F38D10E00DDA104 /* SavedStickerItem.swift */; }; - D01A21AD1F38D10E00DDA104 /* SavedStickerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01A21AB1F38D10E00DDA104 /* SavedStickerItem.swift */; }; - D01AC91D1DD5DA5E00E8160F /* RequestMessageActionCallback.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01AC91C1DD5DA5E00E8160F /* RequestMessageActionCallback.swift */; }; - D01AC9211DD5E7E500E8160F /* RequestEditMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01AC9201DD5E7E500E8160F /* RequestEditMessage.swift */; }; - D01AC9231DD5E9A200E8160F /* ApplyUpdateMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01AC9221DD5E9A200E8160F /* ApplyUpdateMessage.swift */; }; - D01B264923324CF900A6448B /* Wallets.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01B264823324CF800A6448B /* Wallets.swift */; }; - D01B264A23324CF900A6448B /* Wallets.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01B264823324CF800A6448B /* Wallets.swift */; }; - D01B27A21E394D8B0022A4C0 /* PrivacySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01B27A11E394D8B0022A4C0 /* PrivacySettings.swift */; }; - D01C06B71FBBA269001561AB /* CanSendMessagesToPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C06B61FBBA269001561AB /* CanSendMessagesToPeer.swift */; }; - D01C06B81FBBA269001561AB /* CanSendMessagesToPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C06B61FBBA269001561AB /* CanSendMessagesToPeer.swift */; }; - D01C7ED31EF5DF83008305F1 /* LimitsConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7ED21EF5DF83008305F1 /* LimitsConfiguration.swift */; }; - D01C7ED41EF5DF83008305F1 /* LimitsConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7ED21EF5DF83008305F1 /* LimitsConfiguration.swift */; }; - D01C7ED61EF5E468008305F1 /* ProxySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7ED51EF5E468008305F1 /* ProxySettings.swift */; }; - D01C7ED71EF5E468008305F1 /* ProxySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7ED51EF5E468008305F1 /* ProxySettings.swift */; }; - D01C7F041EFC1C49008305F1 /* DeviceContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7F031EFC1C49008305F1 /* DeviceContact.swift */; }; - D01C7F051EFC1C49008305F1 /* DeviceContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01C7F031EFC1C49008305F1 /* DeviceContact.swift */; }; - D01D6BF91E42A713006151C6 /* SearchStickers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01D6BF81E42A713006151C6 /* SearchStickers.swift */; }; - D01D6BFA1E42A718006151C6 /* SearchStickers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01D6BF81E42A713006151C6 /* SearchStickers.swift */; }; - D0208AF42306E92B00A23503 /* libphonenumbermac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0208AF32306E92B00A23503 /* libphonenumbermac.framework */; }; - D020F00722F19C8F00BE699A /* ManagedAnimatedEmojiUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0925903622F0D02D003D6283 /* ManagedAnimatedEmojiUpdates.swift */; }; - D021E0DF1DB539FC00C6B04F /* StickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0DE1DB539FC00C6B04F /* StickerPack.swift */; }; - D021E0E21DB5401A00C6B04F /* StickerManagement.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0E11DB5401A00C6B04F /* StickerManagement.swift */; }; - D021E7E82306EC03002F8BD1 /* OutgoingScheduleInfoMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09FC986A22FD882200915E37 /* OutgoingScheduleInfoMessageAttribute.swift */; }; - D021E7E92306EC03002F8BD1 /* ScheduledMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09FC986C22FD99D400915E37 /* ScheduledMessages.swift */; }; - D021E7EA2306EC03002F8BD1 /* ValidateAddressNameInteractive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */; }; - D0223A981EA564BD00211D94 /* MediaResourceNetworkStatsTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0223A971EA564BD00211D94 /* MediaResourceNetworkStatsTag.swift */; }; - D0223A991EA564BD00211D94 /* MediaResourceNetworkStatsTag.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0223A971EA564BD00211D94 /* MediaResourceNetworkStatsTag.swift */; }; - D0223A9B1EA5654D00211D94 /* TelegramMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0223A9A1EA5654D00211D94 /* TelegramMediaResource.swift */; }; - D0223A9C1EA5654D00211D94 /* TelegramMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0223A9A1EA5654D00211D94 /* TelegramMediaResource.swift */; }; - D02395D61F8D09A50070F5C2 /* ChannelHistoryAvailabilitySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02395D51F8D09A50070F5C2 /* ChannelHistoryAvailabilitySettings.swift */; }; - D02395D71F8D09A50070F5C2 /* ChannelHistoryAvailabilitySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02395D51F8D09A50070F5C2 /* ChannelHistoryAvailabilitySettings.swift */; }; - D023E67821540624008C27D1 /* UpdateMessageMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D023E67721540624008C27D1 /* UpdateMessageMedia.swift */; }; - D023E67921540624008C27D1 /* UpdateMessageMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D023E67721540624008C27D1 /* UpdateMessageMedia.swift */; }; - D026099E20C695AF006C34AC /* Wallpapers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D026099D20C695AF006C34AC /* Wallpapers.swift */; }; - D026099F20C695AF006C34AC /* Wallpapers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D026099D20C695AF006C34AC /* Wallpapers.swift */; }; - D02609BF20C6EC08006C34AC /* Crypto.m in Sources */ = {isa = PBXBuildFile; fileRef = D02609BE20C6EC08006C34AC /* Crypto.m */; }; - D02609C020C6EC08006C34AC /* Crypto.m in Sources */ = {isa = PBXBuildFile; fileRef = D02609BE20C6EC08006C34AC /* Crypto.m */; }; - D02ABC7B1E30058F00CAE539 /* DeleteMessagesInteractively.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02ABC7A1E30058F00CAE539 /* DeleteMessagesInteractively.swift */; }; - D02ABC7C1E30058F00CAE539 /* DeleteMessagesInteractively.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02ABC7A1E30058F00CAE539 /* DeleteMessagesInteractively.swift */; }; - D02ABC7E1E3109F000CAE539 /* CloudChatRemoveMessagesOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02ABC7D1E3109F000CAE539 /* CloudChatRemoveMessagesOperation.swift */; }; - D02ABC7F1E3109F000CAE539 /* CloudChatRemoveMessagesOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02ABC7D1E3109F000CAE539 /* CloudChatRemoveMessagesOperation.swift */; }; - D02ABC811E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02ABC801E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift */; }; - D02ABC821E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02ABC801E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift */; }; - D02B199021FB1D520094A764 /* RegisterNotificationToken.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02B198F21FB1D520094A764 /* RegisterNotificationToken.swift */; }; - D02D60A7206BA5F900FEFE1E /* SecureIdValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02D60A6206BA5F900FEFE1E /* SecureIdValue.swift */; }; - D02D60A8206BA5F900FEFE1E /* SecureIdValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02D60A6206BA5F900FEFE1E /* SecureIdValue.swift */; }; - D02D60AB206BA64100FEFE1E /* VerifySecureIdValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02D60AA206BA64100FEFE1E /* VerifySecureIdValue.swift */; }; - D02D60AC206BA64100FEFE1E /* VerifySecureIdValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02D60AA206BA64100FEFE1E /* VerifySecureIdValue.swift */; }; - D02DADC12139A1FC00116225 /* ContactSyncManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02DADC02139A1FC00116225 /* ContactSyncManager.swift */; }; - D02DADC22139A1FC00116225 /* ContactSyncManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D02DADC02139A1FC00116225 /* ContactSyncManager.swift */; }; - D03121021DA57E93006A2A60 /* TelegramPeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03121011DA57E93006A2A60 /* TelegramPeerNotificationSettings.swift */; }; - D0329EA222FC5A7C00F9F071 /* MessageReactions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0329EA122FC5A7C00F9F071 /* MessageReactions.swift */; }; - D0329EA322FC5A7C00F9F071 /* MessageReactions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0329EA122FC5A7C00F9F071 /* MessageReactions.swift */; }; - D0329EA522FC5A9600F9F071 /* ReactionsMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0329EA422FC5A9600F9F071 /* ReactionsMessageAttribute.swift */; }; - D0329EA622FC5A9600F9F071 /* ReactionsMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0329EA422FC5A9600F9F071 /* ReactionsMessageAttribute.swift */; }; - D032F5BC20EF84FD00037B6C /* FetchedMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D032F5BB20EF84FD00037B6C /* FetchedMediaResource.swift */; }; - D032F5BD20EF84FD00037B6C /* FetchedMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D032F5BB20EF84FD00037B6C /* FetchedMediaResource.swift */; }; - D0338740223BD48B007A2CE4 /* ContactsSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033873F223BD48B007A2CE4 /* ContactsSettings.swift */; }; - D0338741223BD48B007A2CE4 /* ContactsSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033873F223BD48B007A2CE4 /* ContactsSettings.swift */; }; - D0338743223BD532007A2CE4 /* InitializeAccountAfterLogin.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0338742223BD532007A2CE4 /* InitializeAccountAfterLogin.swift */; }; - D0338744223BD532007A2CE4 /* InitializeAccountAfterLogin.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0338742223BD532007A2CE4 /* InitializeAccountAfterLogin.swift */; }; - D033FEB01E61EB0200644997 /* PeerContactSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033FEAF1E61EB0200644997 /* PeerContactSettings.swift */; }; - D033FEB11E61EB0200644997 /* PeerContactSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033FEAF1E61EB0200644997 /* PeerContactSettings.swift */; }; - D033FEB31E61F3C000644997 /* ReportPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033FEB21E61F3C000644997 /* ReportPeer.swift */; }; - D033FEB41E61F3C000644997 /* ReportPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033FEB21E61F3C000644997 /* ReportPeer.swift */; }; - D033FEB61E61F3F900644997 /* BlockedPeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033FEB51E61F3F900644997 /* BlockedPeers.swift */; }; - D033FEB71E61F3F900644997 /* BlockedPeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D033FEB51E61F3F900644997 /* BlockedPeers.swift */; }; - D03413F1231323CE00B555F3 /* Theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09B4A9B5230FBB2B005C2E08 /* Theme.swift */; }; - D03413F3231325B300B555F3 /* Themes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09B4A9B3230FB70B005C2E08 /* Themes.swift */; }; - D035732F22B5C24F00F0920D /* TelegramApi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D035732E22B5C24F00F0920D /* TelegramApi.framework */; }; - D0380DBA204EF306000414AB /* MessageMediaPreuploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0380DB9204EF306000414AB /* MessageMediaPreuploadManager.swift */; }; - D0380DBB204EF306000414AB /* MessageMediaPreuploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0380DB9204EF306000414AB /* MessageMediaPreuploadManager.swift */; }; - D03B0CB91D62233400955575 /* Either.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CB81D62233400955575 /* Either.swift */; }; - D03B0CBD1D62234300955575 /* Regex.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CBC1D62234300955575 /* Regex.swift */; }; - D03B0CBF1D62234A00955575 /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CBE1D62234A00955575 /* Log.swift */; }; - D03B0CC11D62235000955575 /* StringFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CC01D62235000955575 /* StringFormat.swift */; }; - D03B0CCE1D62239600955575 /* PhoneNumbers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CCD1D62239600955575 /* PhoneNumbers.swift */; }; - D03B0CD31D62244300955575 /* Namespaces.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CD21D62244300955575 /* Namespaces.swift */; }; - D03B0CD61D62245300955575 /* TelegramUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CD41D62245300955575 /* TelegramUser.swift */; }; - D03B0CD71D62245300955575 /* TelegramGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CD51D62245300955575 /* TelegramGroup.swift */; }; - D03B0CD91D62245B00955575 /* PeerUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CD81D62245B00955575 /* PeerUtils.swift */; }; - D03B0CDB1D62245F00955575 /* ApiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CDA1D62245F00955575 /* ApiUtils.swift */; }; - D03B0CE01D62249100955575 /* StoreMessage_Telegram.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CDF1D62249100955575 /* StoreMessage_Telegram.swift */; }; - D03B0CE21D62249B00955575 /* InlineBotMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CE11D62249B00955575 /* InlineBotMessageAttribute.swift */; }; - D03B0CE41D62249F00955575 /* TextEntitiesMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CE31D62249F00955575 /* TextEntitiesMessageAttribute.swift */; }; - D03B0CE61D6224A700955575 /* ReplyMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CE51D6224A700955575 /* ReplyMessageAttribute.swift */; }; - D03B0CE81D6224AD00955575 /* ViewCountMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CE71D6224AD00955575 /* ViewCountMessageAttribute.swift */; }; - D03B0CF41D62250800955575 /* TelegramMediaAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CEC1D62250800955575 /* TelegramMediaAction.swift */; }; - D03B0CF51D62250800955575 /* TelegramMediaContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CED1D62250800955575 /* TelegramMediaContact.swift */; }; - D03B0CF61D62250800955575 /* TelegramMediaFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CEE1D62250800955575 /* TelegramMediaFile.swift */; }; - D03B0CF71D62250800955575 /* TelegramMediaImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CEF1D62250800955575 /* TelegramMediaImage.swift */; }; - D03B0CF91D62250800955575 /* TelegramMediaMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CF11D62250800955575 /* TelegramMediaMap.swift */; }; - D03B0CFB1D62250800955575 /* TelegramMediaWebpage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CF31D62250800955575 /* TelegramMediaWebpage.swift */; }; - D03B0D081D62255C00955575 /* ChannelState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CFF1D62255C00955575 /* ChannelState.swift */; }; - D03B0D091D62255C00955575 /* EnqueueMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D001D62255C00955575 /* EnqueueMessage.swift */; }; - D03B0D0A1D62255C00955575 /* Holes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D011D62255C00955575 /* Holes.swift */; }; - D03B0D0C1D62255C00955575 /* AccountStateManagementUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D031D62255C00955575 /* AccountStateManagementUtils.swift */; }; - D03B0D0D1D62255C00955575 /* SynchronizePeerReadState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D041D62255C00955575 /* SynchronizePeerReadState.swift */; }; - D03B0D0E1D62255C00955575 /* UpdateGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D051D62255C00955575 /* UpdateGroup.swift */; }; - D03B0D0F1D62255C00955575 /* UpdateMessageService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D061D62255C00955575 /* UpdateMessageService.swift */; }; - D03B0D101D62255C00955575 /* UpdatesApiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D071D62255C00955575 /* UpdatesApiUtils.swift */; }; - D03B0D3D1D6319E200955575 /* Fetch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D391D6319E200955575 /* Fetch.swift */; }; - D03B0D441D6319F900955575 /* CloudFileMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D431D6319F900955575 /* CloudFileMediaResource.swift */; }; - D03B0D5C1D631A6900955575 /* Download.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D561D631A6900955575 /* Download.swift */; }; - D03B0D5D1D631A6900955575 /* MultipartFetch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D571D631A6900955575 /* MultipartFetch.swift */; }; - D03B0D5E1D631A6900955575 /* Network.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D581D631A6900955575 /* Network.swift */; }; - D03B0D5F1D631A6900955575 /* Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D591D631A6900955575 /* Serialization.swift */; }; - D03B0D651D631A8B00955575 /* Account.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D611D631A8B00955575 /* Account.swift */; }; - D03B0D671D631A8B00955575 /* AccountViewTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D631D631A8B00955575 /* AccountViewTracker.swift */; }; - D03B0D681D631A8B00955575 /* RecentPeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D641D631A8B00955575 /* RecentPeers.swift */; }; - D03B0D6D1D631AA300955575 /* ContactManagement.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D6C1D631AA300955575 /* ContactManagement.swift */; }; - D03B0D721D631ABA00955575 /* SearchMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D711D631ABA00955575 /* SearchMessages.swift */; }; - D03B0E431D631E6600955575 /* NetworkLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = D03B0E411D631E6600955575 /* NetworkLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03B0E441D631E6600955575 /* NetworkLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = D03B0E421D631E6600955575 /* NetworkLogging.m */; }; - D03C53671DAD5CA9004C17B3 /* ApiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CDA1D62245F00955575 /* ApiUtils.swift */; }; - D03C53681DAD5CA9004C17B3 /* PeerUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CD81D62245B00955575 /* PeerUtils.swift */; }; - D03C53691DAD5CA9004C17B3 /* PeerAccessRestrictionInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09A2FEA1D7CDC320018FB72 /* PeerAccessRestrictionInfo.swift */; }; - D03C536A1DAD5CA9004C17B3 /* TelegramUser.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CD41D62245300955575 /* TelegramUser.swift */; }; - D03C536B1DAD5CA9004C17B3 /* TelegramGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CD51D62245300955575 /* TelegramGroup.swift */; }; - D03C536C1DAD5CA9004C17B3 /* TelegramChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09A2FE51D7CD4940018FB72 /* TelegramChannel.swift */; }; - D03C536D1DAD5CA9004C17B3 /* ApiGroupOrChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B417C01D7DCEEF004562A4 /* ApiGroupOrChannel.swift */; }; - D03C536E1DAD5CA9004C17B3 /* PhoneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = D003702A1DA42586004308D3 /* PhoneNumber.swift */; }; - D03C536F1DAD5CA9004C17B3 /* BotInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B8438B1DA7CF50005F29E1 /* BotInfo.swift */; }; - D03C53701DAD5CA9004C17B3 /* ExportedInvitation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843881DA7AB96005F29E1 /* ExportedInvitation.swift */; }; - D03C53711DAD5CA9004C17B3 /* CachedGroupParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B8438D1DA7D296005F29E1 /* CachedGroupParticipants.swift */; }; - D03C53721DAD5CA9004C17B3 /* CachedUserData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843801DA6EDAE005F29E1 /* CachedUserData.swift */; }; - D03C53731DAD5CA9004C17B3 /* CachedGroupData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843821DA6EDB8005F29E1 /* CachedGroupData.swift */; }; - D03C53741DAD5CA9004C17B3 /* CachedChannelData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843841DA6EDC4005F29E1 /* CachedChannelData.swift */; }; - D03C53751DAD5CA9004C17B3 /* TelegramUserPresence.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B844521DAC0773005F29E1 /* TelegramUserPresence.swift */; }; - D03C53771DAFF20F004C17B3 /* MultipartUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03C53761DAFF20F004C17B3 /* MultipartUpload.swift */; }; - D03DC9101F82E344001D584C /* AccountStateReset.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03DC90F1F82E344001D584C /* AccountStateReset.swift */; }; - D03DC9111F82E344001D584C /* AccountStateReset.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03DC90F1F82E344001D584C /* AccountStateReset.swift */; }; - D03DC9131F82F89D001D584C /* RegularChatState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03DC9121F82F89D001D584C /* RegularChatState.swift */; }; - D03DC9141F82F89D001D584C /* RegularChatState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03DC9121F82F89D001D584C /* RegularChatState.swift */; }; - D03E3D28230447960049C28B /* RestrictedContentMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */; }; - D03E3D29230447960049C28B /* RestrictedContentMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */; }; - D03E416C2304D5B30049C28B /* ValidateAddressNameInteractive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */; }; - D03E452E2305C15A0049C28B /* FormatPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E452C2305C15A0049C28B /* FormatPhoneNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E452F2305C15A0049C28B /* FormatPhoneNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E452D2305C15A0049C28B /* FormatPhoneNumber.m */; }; - D03E45302305C1630049C28B /* FormatPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E452C2305C15A0049C28B /* FormatPhoneNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E45D42305D44A0049C28B /* libphonenumber.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45D32305D44A0049C28B /* libphonenumber.framework */; }; - D03E45D82305D66D0049C28B /* Crypto.h in Headers */ = {isa = PBXBuildFile; fileRef = D02609BB20C6EB97006C34AC /* Crypto.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E45D92305D66E0049C28B /* Crypto.h in Headers */ = {isa = PBXBuildFile; fileRef = D02609BB20C6EB97006C34AC /* Crypto.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E5E0C1E55E02D0029569A /* LoggedOutAccountAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */; }; - D03E5E0D1E55E02D0029569A /* LoggedOutAccountAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */; }; - D041E3F51E535464008C24B4 /* AddPeerMember.swift in Sources */ = {isa = PBXBuildFile; fileRef = D041E3F41E535464008C24B4 /* AddPeerMember.swift */; }; - D041E3F61E535464008C24B4 /* AddPeerMember.swift in Sources */ = {isa = PBXBuildFile; fileRef = D041E3F41E535464008C24B4 /* AddPeerMember.swift */; }; - D041E3F81E535A88008C24B4 /* RemovePeerMember.swift in Sources */ = {isa = PBXBuildFile; fileRef = D041E3F71E535A88008C24B4 /* RemovePeerMember.swift */; }; - D041E3F91E535A88008C24B4 /* RemovePeerMember.swift in Sources */ = {isa = PBXBuildFile; fileRef = D041E3F71E535A88008C24B4 /* RemovePeerMember.swift */; }; - D042C6831E8D9DF800C863B0 /* Unixtime.swift in Sources */ = {isa = PBXBuildFile; fileRef = D042C6821E8D9DF800C863B0 /* Unixtime.swift */; }; - D042C6841E8D9DF800C863B0 /* Unixtime.swift in Sources */ = {isa = PBXBuildFile; fileRef = D042C6821E8D9DF800C863B0 /* Unixtime.swift */; }; - D0439B5D228ECB270067E026 /* RequestPhoneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0439B5C228ECB270067E026 /* RequestPhoneNumber.swift */; }; - D0439B5E228ECB270067E026 /* RequestPhoneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0439B5C228ECB270067E026 /* RequestPhoneNumber.swift */; }; - D0439B60228EDE430067E026 /* ContentRequiresValidationMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0439B5F228EDE430067E026 /* ContentRequiresValidationMessageAttribute.swift */; }; - D0439B61228EDE430067E026 /* ContentRequiresValidationMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0439B5F228EDE430067E026 /* ContentRequiresValidationMessageAttribute.swift */; }; - D0448C8E1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448C8D1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift */; }; - D0448C8F1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448C8D1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift */; }; - D0448C911E251F96005A61A7 /* SecretChatEncryption.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448C901E251F96005A61A7 /* SecretChatEncryption.swift */; }; - D0448C921E251F96005A61A7 /* SecretChatEncryption.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448C901E251F96005A61A7 /* SecretChatEncryption.swift */; }; - D0448C9F1E27F5EB005A61A7 /* Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448C9E1E27F5EB005A61A7 /* Random.swift */; }; - D0448CA01E27F5EB005A61A7 /* Random.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448C9E1E27F5EB005A61A7 /* Random.swift */; }; - D0448CA21E291B14005A61A7 /* FetchSecretFileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448CA11E291B14005A61A7 /* FetchSecretFileResource.swift */; }; - D0448CA31E291B14005A61A7 /* FetchSecretFileResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448CA11E291B14005A61A7 /* FetchSecretFileResource.swift */; }; - D0448CA51E29215A005A61A7 /* MediaResourceApiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448CA41E29215A005A61A7 /* MediaResourceApiUtils.swift */; }; - D0448CA61E29215A005A61A7 /* MediaResourceApiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0448CA41E29215A005A61A7 /* MediaResourceApiUtils.swift */; }; - D04554A621B43440007A6DD9 /* CancelAccountReset.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04554A521B43440007A6DD9 /* CancelAccountReset.swift */; }; - D04554A721B43440007A6DD9 /* CancelAccountReset.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04554A521B43440007A6DD9 /* CancelAccountReset.swift */; }; - D0458C881E69B4AB00FB34C1 /* OutgoingContentInfoMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0458C871E69B4AB00FB34C1 /* OutgoingContentInfoMessageAttribute.swift */; }; - D0458C891E69B4AB00FB34C1 /* OutgoingContentInfoMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0458C871E69B4AB00FB34C1 /* OutgoingContentInfoMessageAttribute.swift */; }; - D0467D0B20D7F1E60055C28F /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0467D0A20D7F1E60055C28F /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift */; }; - D0467D0C20D7F1E60055C28F /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0467D0A20D7F1E60055C28F /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift */; }; - D0467D1520D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0467D1420D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift */; }; - D0467D1620D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0467D1420D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift */; }; - D048B4AC20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B4AB20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift */; }; - D048B4AD20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B4AB20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift */; }; - D049EAD51E43D98500A2CD3A /* RecentMediaItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAD41E43D98500A2CD3A /* RecentMediaItem.swift */; }; - D049EAD61E43D98500A2CD3A /* RecentMediaItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAD41E43D98500A2CD3A /* RecentMediaItem.swift */; }; - D049EAD81E43DAD200A2CD3A /* ManagedRecentStickers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAD71E43DAD200A2CD3A /* ManagedRecentStickers.swift */; }; - D049EAD91E43DAD200A2CD3A /* ManagedRecentStickers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAD71E43DAD200A2CD3A /* ManagedRecentStickers.swift */; }; - D049EAE81E44B67100A2CD3A /* RecentPeerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAE71E44B67100A2CD3A /* RecentPeerItem.swift */; }; - D049EAE91E44B67100A2CD3A /* RecentPeerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAE71E44B67100A2CD3A /* RecentPeerItem.swift */; }; - D049EAEB1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAEA1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift */; }; - D049EAEC1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAEA1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift */; }; - D049EAF51E44DF3300A2CD3A /* AccountState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAF41E44DF3300A2CD3A /* AccountState.swift */; }; - D049EAF61E44DF3300A2CD3A /* AccountState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAF41E44DF3300A2CD3A /* AccountState.swift */; }; - D04CAA5A1E83310D0047E51F /* MD5.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04CAA591E83310D0047E51F /* MD5.swift */; }; - D04CAA5B1E83310D0047E51F /* MD5.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04CAA591E83310D0047E51F /* MD5.swift */; }; - D04D21372306EC9A00609388 /* MacInternalUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04D21362306EC9A00609388 /* MacInternalUpdater.swift */; }; - D04D21382306ECF600609388 /* FormatPhoneNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E452D2305C15A0049C28B /* FormatPhoneNumber.m */; }; - D04D213C230AC35A00609388 /* WasScheduledMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04D213B230AC35A00609388 /* WasScheduledMessageAttribute.swift */; }; - D04D213D230AC35A00609388 /* WasScheduledMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04D213B230AC35A00609388 /* WasScheduledMessageAttribute.swift */; }; - D04D8FF4209A4B0700865719 /* NetworkSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04D8FF3209A4B0700865719 /* NetworkSettings.swift */; }; - D04D8FF5209A4B0700865719 /* NetworkSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04D8FF3209A4B0700865719 /* NetworkSettings.swift */; }; - D050F2101E48AB0600988324 /* InteractivePhoneFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D050F20F1E48AB0600988324 /* InteractivePhoneFormatter.swift */; }; - D050F2111E48AB0600988324 /* InteractivePhoneFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D050F20F1E48AB0600988324 /* InteractivePhoneFormatter.swift */; }; - D050F2511E4A59C200988324 /* JoinLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = D050F2501E4A59C200988324 /* JoinLink.swift */; }; - D050F2521E4A59C200988324 /* JoinLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = D050F2501E4A59C200988324 /* JoinLink.swift */; }; - D050F2601E4A5AD500988324 /* AutoremoveTimeoutMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1A71E32602500D5B9DE /* AutoremoveTimeoutMessageAttribute.swift */; }; - D050F2611E4A5AE700988324 /* PrivacySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01B27A11E394D8B0022A4C0 /* PrivacySettings.swift */; }; - D050F2621E4A5AE700988324 /* GlobalNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08774FD1E3E3A3500A97350 /* GlobalNotificationSettings.swift */; }; - D050F2631E4A5AEB00988324 /* SynchronizePinnedChatsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38781E40BAF20044D6FE /* SynchronizePinnedChatsOperation.swift */; }; - D050F2641E4A5AEB00988324 /* ManagedSynchronizePinnedChatsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38761E40BAAA0044D6FE /* ManagedSynchronizePinnedChatsOperations.swift */; }; - D050F26A1E4A5B6D00988324 /* ManagedGlobalNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08774FB1E3E39F600A97350 /* ManagedGlobalNotificationSettings.swift */; }; - D050F26B1E4A5B6D00988324 /* ApplyMaxReadIndexInteractively.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1A91E32638500D5B9DE /* ApplyMaxReadIndexInteractively.swift */; }; - D050F26C1E4A5B6D00988324 /* UpdatePeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC386F1E40853E0044D6FE /* UpdatePeers.swift */; }; - D050F26D1E4A5B6D00988324 /* CreateGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC386D1E3FDAB70044D6FE /* CreateGroup.swift */; }; - D050F26E1E4A5B6D00988324 /* RemovePeerChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38741E40A7F70044D6FE /* RemovePeerChat.swift */; }; - D051DB14215EC5A300F30F92 /* AppChangelogState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D051DB13215EC5A300F30F92 /* AppChangelogState.swift */; }; - D051DB15215EC5A300F30F92 /* AppChangelogState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D051DB13215EC5A300F30F92 /* AppChangelogState.swift */; }; - D051DB17215ECC4D00F30F92 /* AppChangelog.swift in Sources */ = {isa = PBXBuildFile; fileRef = D051DB16215ECC4D00F30F92 /* AppChangelog.swift */; }; - D051DB18215ECC4D00F30F92 /* AppChangelog.swift in Sources */ = {isa = PBXBuildFile; fileRef = D051DB16215ECC4D00F30F92 /* AppChangelog.swift */; }; - D0528E5A1E658B3600E2FEF5 /* ManagedLocalInputActivities.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E591E658B3600E2FEF5 /* ManagedLocalInputActivities.swift */; }; - D0528E5B1E658B3600E2FEF5 /* ManagedLocalInputActivities.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E591E658B3600E2FEF5 /* ManagedLocalInputActivities.swift */; }; - D0528E601E65B94E00E2FEF5 /* SingleMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E5F1E65B94E00E2FEF5 /* SingleMessageView.swift */; }; - D0528E611E65B94E00E2FEF5 /* SingleMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E5F1E65B94E00E2FEF5 /* SingleMessageView.swift */; }; - D0528E651E65C82400E2FEF5 /* UpdateContactName.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E641E65C82400E2FEF5 /* UpdateContactName.swift */; }; - D0528E661E65C82400E2FEF5 /* UpdateContactName.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E641E65C82400E2FEF5 /* UpdateContactName.swift */; }; - D0528E6A1E65DD2100E2FEF5 /* WebpagePreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E691E65DD2100E2FEF5 /* WebpagePreview.swift */; }; - D0528E6B1E65DD2100E2FEF5 /* WebpagePreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0528E691E65DD2100E2FEF5 /* WebpagePreview.swift */; }; - D0529D2421A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2321A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift */; }; - D0529D2521A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2321A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift */; }; - D0529D2721A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2621A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift */; }; - D0529D2821A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0529D2621A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift */; }; - D053B4181F18DE4F00E2D58A /* AuthorSignatureMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053B4171F18DE4F00E2D58A /* AuthorSignatureMessageAttribute.swift */; }; - D053B4191F18DE5000E2D58A /* AuthorSignatureMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053B4171F18DE4F00E2D58A /* AuthorSignatureMessageAttribute.swift */; }; - D053B41B1F18DEF500E2D58A /* TelegramMediaExpiredContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053B41A1F18DEF500E2D58A /* TelegramMediaExpiredContent.swift */; }; - D053B41C1F18DEF500E2D58A /* TelegramMediaExpiredContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053B41A1F18DEF500E2D58A /* TelegramMediaExpiredContent.swift */; }; - D05452071E7B5093006EEF19 /* LoadedStickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05452061E7B5093006EEF19 /* LoadedStickerPack.swift */; }; - D05452081E7B5093006EEF19 /* LoadedStickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05452061E7B5093006EEF19 /* LoadedStickerPack.swift */; }; - D054648B2073854A002ECC1E /* SecureIdPersonalDetailsValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D054648A2073854A002ECC1E /* SecureIdPersonalDetailsValue.swift */; }; - D054648C2073854A002ECC1E /* SecureIdPersonalDetailsValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D054648A2073854A002ECC1E /* SecureIdPersonalDetailsValue.swift */; }; - D054648E20738626002ECC1E /* SecureIdDriversLicenseValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D054648D20738626002ECC1E /* SecureIdDriversLicenseValue.swift */; }; - D054648F20738626002ECC1E /* SecureIdDriversLicenseValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D054648D20738626002ECC1E /* SecureIdDriversLicenseValue.swift */; }; - D054649120738653002ECC1E /* SecureIdIDCardValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D054649020738653002ECC1E /* SecureIdIDCardValue.swift */; }; - D054649220738653002ECC1E /* SecureIdIDCardValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D054649020738653002ECC1E /* SecureIdIDCardValue.swift */; }; - D0546494207386D7002ECC1E /* SecureIdUtilityBillValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0546493207386D7002ECC1E /* SecureIdUtilityBillValue.swift */; }; - D0546495207386D7002ECC1E /* SecureIdUtilityBillValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0546493207386D7002ECC1E /* SecureIdUtilityBillValue.swift */; }; - D05464972073872C002ECC1E /* SecureIdBankStatementValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05464962073872C002ECC1E /* SecureIdBankStatementValue.swift */; }; - D05464982073872C002ECC1E /* SecureIdBankStatementValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05464962073872C002ECC1E /* SecureIdBankStatementValue.swift */; }; - D054649A20738760002ECC1E /* SecureIdRentalAgreementValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D054649920738760002ECC1E /* SecureIdRentalAgreementValue.swift */; }; - D054649B20738760002ECC1E /* SecureIdRentalAgreementValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D054649920738760002ECC1E /* SecureIdRentalAgreementValue.swift */; }; - D0561DE31E5737FC00E6B9E9 /* UpdatePeerInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0561DE21E5737FC00E6B9E9 /* UpdatePeerInfo.swift */; }; - D0561DE41E5737FC00E6B9E9 /* UpdatePeerInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0561DE21E5737FC00E6B9E9 /* UpdatePeerInfo.swift */; }; - D0561DEA1E5754FA00E6B9E9 /* ChannelAdmins.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0561DE91E5754FA00E6B9E9 /* ChannelAdmins.swift */; }; - D0561DEB1E5754FA00E6B9E9 /* ChannelAdmins.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0561DE91E5754FA00E6B9E9 /* ChannelAdmins.swift */; }; - D0575AF11E9FFA5D006F2541 /* SynchronizeSavedGifsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AF01E9FFA5D006F2541 /* SynchronizeSavedGifsOperation.swift */; }; - D0575AF21E9FFA5D006F2541 /* SynchronizeSavedGifsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AF01E9FFA5D006F2541 /* SynchronizeSavedGifsOperation.swift */; }; - D0575AF41E9FFDDE006F2541 /* ManagedSynchronizeSavedGifsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AF31E9FFDDD006F2541 /* ManagedSynchronizeSavedGifsOperations.swift */; }; - D0575AF51E9FFDDE006F2541 /* ManagedSynchronizeSavedGifsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AF31E9FFDDD006F2541 /* ManagedSynchronizeSavedGifsOperations.swift */; }; - D0575C2D22B922DF00A71A0E /* DeleteAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575C2C22B922DF00A71A0E /* DeleteAccount.swift */; }; - D0575C2E22B922DF00A71A0E /* DeleteAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575C2C22B922DF00A71A0E /* DeleteAccount.swift */; }; - D058E0D11E8AD65C00A442DE /* StandaloneSendMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D058E0D01E8AD65C00A442DE /* StandaloneSendMessage.swift */; }; - D058E0D21E8AD65C00A442DE /* StandaloneSendMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D058E0D01E8AD65C00A442DE /* StandaloneSendMessage.swift */; }; - D05A32E11E6F0982002760B4 /* UpdatedAccountPrivacySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05A32E01E6F0982002760B4 /* UpdatedAccountPrivacySettings.swift */; }; - D05A32E21E6F0982002760B4 /* UpdatedAccountPrivacySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05A32E01E6F0982002760B4 /* UpdatedAccountPrivacySettings.swift */; }; - D05A32E41E6F0B2E002760B4 /* RecentAccountSessions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05A32E31E6F0B2E002760B4 /* RecentAccountSessions.swift */; }; - D05A32E51E6F0B2E002760B4 /* RecentAccountSessions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05A32E31E6F0B2E002760B4 /* RecentAccountSessions.swift */; }; - D05A32E71E6F0B5C002760B4 /* RecentAccountSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05A32E61E6F0B5C002760B4 /* RecentAccountSession.swift */; }; - D05A32E81E6F0B5C002760B4 /* RecentAccountSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05A32E61E6F0B5C002760B4 /* RecentAccountSession.swift */; }; - D05D8B372192F8AF0064586F /* LocalizationListState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05D8B362192F8AF0064586F /* LocalizationListState.swift */; }; - D05D8B382192F8AF0064586F /* LocalizationListState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05D8B362192F8AF0064586F /* LocalizationListState.swift */; }; - D05FDC3922CA45070060BFE3 /* AppUpdate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EC0DE822C6825D00E7185B /* AppUpdate.swift */; }; - D0613FCA1E60440600202CDB /* InvitationLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FC91E60440600202CDB /* InvitationLinks.swift */; }; - D0613FCB1E60440600202CDB /* InvitationLinks.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FC91E60440600202CDB /* InvitationLinks.swift */; }; - D0613FCF1E60520700202CDB /* ChannelMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FCE1E60520700202CDB /* ChannelMembers.swift */; }; - D0613FD01E60520700202CDB /* ChannelMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FCE1E60520700202CDB /* ChannelMembers.swift */; }; - D0613FD71E606B3B00202CDB /* ConvertGroupToSupergroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FD61E606B3B00202CDB /* ConvertGroupToSupergroup.swift */; }; - D0613FD81E606B3B00202CDB /* ConvertGroupToSupergroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0613FD61E606B3B00202CDB /* ConvertGroupToSupergroup.swift */; }; - D0633CD22253A528003DD95F /* ChatOnlineMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633CD12253A528003DD95F /* ChatOnlineMembers.swift */; }; - D0633CD32253A528003DD95F /* ChatOnlineMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633CD12253A528003DD95F /* ChatOnlineMembers.swift */; }; - D0633CDB2253C0D3003DD95F /* CloudMediaResourceParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633CDA2253C0D3003DD95F /* CloudMediaResourceParameters.swift */; }; - D0633CDC2253C0D3003DD95F /* CloudMediaResourceParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0633CDA2253C0D3003DD95F /* CloudMediaResourceParameters.swift */; }; - D0642EF91F3E05D700792790 /* EarliestUnseenPersonalMentionMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0642EF81F3E05D700792790 /* EarliestUnseenPersonalMentionMessage.swift */; }; - D0642EFA1F3E05D700792790 /* EarliestUnseenPersonalMentionMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0642EF81F3E05D700792790 /* EarliestUnseenPersonalMentionMessage.swift */; }; - D067066C1D512ADB00DED3E3 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D06706671D512ADB00DED3E3 /* Postbox.framework */; }; - D067066D1D512ADB00DED3E3 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D06706681D512ADB00DED3E3 /* SwiftSignalKit.framework */; }; - D069257122D8B526002FC021 /* SecretChatSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D069257022D8B526002FC021 /* SecretChatSettings.swift */; }; - D069257222D8B526002FC021 /* SecretChatSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D069257022D8B526002FC021 /* SecretChatSettings.swift */; }; - D06CA13522772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06CA13422772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift */; }; - D06CA13622772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06CA13422772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift */; }; - D06ECFC820B810D300C576C2 /* TermsOfService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06ECFC720B810D300C576C2 /* TermsOfService.swift */; }; - D06ECFC920B810D300C576C2 /* TermsOfService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06ECFC720B810D300C576C2 /* TermsOfService.swift */; }; - D07047B41F3DF1FE00F6A8D4 /* ConsumablePersonalMentionMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047B31F3DF1FE00F6A8D4 /* ConsumablePersonalMentionMessageAttribute.swift */; }; - D07047B51F3DF1FE00F6A8D4 /* ConsumablePersonalMentionMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047B31F3DF1FE00F6A8D4 /* ConsumablePersonalMentionMessageAttribute.swift */; }; - D07047B71F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047B61F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift */; }; - D07047B81F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047B61F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift */; }; - D07047BA1F3DF75500F6A8D4 /* ConsumePersonalMessageAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047B91F3DF75500F6A8D4 /* ConsumePersonalMessageAction.swift */; }; - D07047BB1F3DF75500F6A8D4 /* ConsumePersonalMessageAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07047B91F3DF75500F6A8D4 /* ConsumePersonalMessageAction.swift */; }; - D072F357231542740009E66F /* MessageReactionList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D072F356231542740009E66F /* MessageReactionList.swift */; }; - D072F358231542740009E66F /* MessageReactionList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D072F356231542740009E66F /* MessageReactionList.swift */; }; - D073CE5D1DCB97F6007511FD /* ForwardSourceInfoAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE5C1DCB97F6007511FD /* ForwardSourceInfoAttribute.swift */; }; - D073CE601DCB9D14007511FD /* OutgoingMessageInfoAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE5F1DCB9D14007511FD /* OutgoingMessageInfoAttribute.swift */; }; - D073CE6A1DCBCF17007511FD /* ViewCountMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CE71D6224AD00955575 /* ViewCountMessageAttribute.swift */; }; - D073CE6B1DCBCF17007511FD /* ReplyMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CE51D6224A700955575 /* ReplyMessageAttribute.swift */; }; - D073CE6C1DCBCF17007511FD /* TextEntitiesMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CE31D62249F00955575 /* TextEntitiesMessageAttribute.swift */; }; - D073CE6D1DCBCF17007511FD /* InlineBotMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CE11D62249B00955575 /* InlineBotMessageAttribute.swift */; }; - D073CE6E1DCBCF17007511FD /* ForwardSourceInfoAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE5C1DCB97F6007511FD /* ForwardSourceInfoAttribute.swift */; }; - D073CE6F1DCBCF17007511FD /* OutgoingMessageInfoAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE5F1DCB9D14007511FD /* OutgoingMessageInfoAttribute.swift */; }; - D073CEA11DCBF3D3007511FD /* StickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0DE1DB539FC00C6B04F /* StickerPack.swift */; }; - D073CEA41DCBF3EA007511FD /* MultipartUpload.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03C53761DAFF20F004C17B3 /* MultipartUpload.swift */; }; - D073CEA51DCBF3F5007511FD /* StickerManagement.swift in Sources */ = {isa = PBXBuildFile; fileRef = D021E0E11DB5401A00C6B04F /* StickerManagement.swift */; }; - D0750C9022B2FD8300BE5F6E /* PeerAccessHash.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0750C8F22B2FD8300BE5F6E /* PeerAccessHash.swift */; }; - D0750C9122B2FD8300BE5F6E /* PeerAccessHash.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0750C8F22B2FD8300BE5F6E /* PeerAccessHash.swift */; }; - D0754D2A1EEE10FC00884F6E /* BotPaymentForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0754D291EEE10FC00884F6E /* BotPaymentForm.swift */; }; - D0754D2B1EEE10FC00884F6E /* BotPaymentForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0754D291EEE10FC00884F6E /* BotPaymentForm.swift */; }; - D076F8892296D8E9004F895A /* ManageChannelDiscussionGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D076F8882296D8E9004F895A /* ManageChannelDiscussionGroup.swift */; }; - D076F88A2296D8F6004F895A /* ManageChannelDiscussionGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D076F8882296D8E9004F895A /* ManageChannelDiscussionGroup.swift */; }; - D07827BB1E00451F00071108 /* SearchPeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827BA1E00451F00071108 /* SearchPeers.swift */; }; - D07827C91E02F59C00071108 /* InstantPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C81E02F59C00071108 /* InstantPage.swift */; }; - D07827CB1E02F5B200071108 /* RichText.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827CA1E02F5B200071108 /* RichText.swift */; }; - D07E413F208A769D00FCA8F0 /* ProxyServersStatuses.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E413E208A769D00FCA8F0 /* ProxyServersStatuses.swift */; }; - D07E4140208A769D00FCA8F0 /* ProxyServersStatuses.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E413E208A769D00FCA8F0 /* ProxyServersStatuses.swift */; }; - D081E10A217F5ADE003CD921 /* LocalizationPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081E109217F5ADE003CD921 /* LocalizationPreview.swift */; }; - D081E10B217F5ADE003CD921 /* LocalizationPreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081E109217F5ADE003CD921 /* LocalizationPreview.swift */; }; - D08774FC1E3E39F600A97350 /* ManagedGlobalNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08774FB1E3E39F600A97350 /* ManagedGlobalNotificationSettings.swift */; }; - D08774FE1E3E3A3500A97350 /* GlobalNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08774FD1E3E3A3500A97350 /* GlobalNotificationSettings.swift */; }; - D0879BC822F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BC722F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift */; }; - D0879BC922F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BC722F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift */; }; - D08984F22114B97400918162 /* ClearCloudDrafts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984F12114B97400918162 /* ClearCloudDrafts.swift */; }; - D08984F32114B97400918162 /* ClearCloudDrafts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984F12114B97400918162 /* ClearCloudDrafts.swift */; }; - D08984F521187ECA00918162 /* NetworkType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984F421187ECA00918162 /* NetworkType.swift */; }; - D08984F621187ECA00918162 /* NetworkType.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08984F421187ECA00918162 /* NetworkType.swift */; }; - D08984F92118816A00918162 /* Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = D08984F72118816900918162 /* Reachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D08984FA2118816A00918162 /* Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = D08984F72118816900918162 /* Reachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D08984FB2118816A00918162 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = D08984F82118816A00918162 /* Reachability.m */; }; - D08984FC2118816A00918162 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = D08984F82118816A00918162 /* Reachability.m */; }; - D08CAA7D1ED77EE90000FDA8 /* LocalizationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA7C1ED77EE90000FDA8 /* LocalizationSettings.swift */; }; - D08CAA7E1ED77EE90000FDA8 /* LocalizationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA7C1ED77EE90000FDA8 /* LocalizationSettings.swift */; }; - D08CAA801ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA7F1ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift */; }; - D08CAA811ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA7F1ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift */; }; - D08CAA841ED8164B0000FDA8 /* Localization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA831ED8164B0000FDA8 /* Localization.swift */; }; - D08CAA851ED8164B0000FDA8 /* Localization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA831ED8164B0000FDA8 /* Localization.swift */; }; - D08CAA871ED81DD40000FDA8 /* LocalizationInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA861ED81DD40000FDA8 /* LocalizationInfo.swift */; }; - D08CAA881ED81DD40000FDA8 /* LocalizationInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA861ED81DD40000FDA8 /* LocalizationInfo.swift */; }; - D08CAA8C1ED81EDF0000FDA8 /* Localizations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA8B1ED81EDF0000FDA8 /* Localizations.swift */; }; - D08CAA8D1ED81EDF0000FDA8 /* Localizations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08CAA8B1ED81EDF0000FDA8 /* Localizations.swift */; }; - D08F4A661E79CC4A00A2AA15 /* SynchronizeInstalledStickerPacksOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08F4A651E79CC4A00A2AA15 /* SynchronizeInstalledStickerPacksOperations.swift */; }; - D08F4A671E79CC4A00A2AA15 /* SynchronizeInstalledStickerPacksOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08F4A651E79CC4A00A2AA15 /* SynchronizeInstalledStickerPacksOperations.swift */; }; - D08F4A691E79CECB00A2AA15 /* ManagedSynchronizeInstalledStickerPacksOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08F4A681E79CECB00A2AA15 /* ManagedSynchronizeInstalledStickerPacksOperations.swift */; }; - D08F4A6A1E79CECB00A2AA15 /* ManagedSynchronizeInstalledStickerPacksOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08F4A681E79CECB00A2AA15 /* ManagedSynchronizeInstalledStickerPacksOperations.swift */; }; - D093D7EE206413F600BC3599 /* SecureIdDataTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D093D7ED206413F600BC3599 /* SecureIdDataTypes.swift */; }; - D093D7EF206413F600BC3599 /* SecureIdDataTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D093D7ED206413F600BC3599 /* SecureIdDataTypes.swift */; }; - D093D7F520641A4900BC3599 /* SecureIdPhoneValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D093D7F420641A4900BC3599 /* SecureIdPhoneValue.swift */; }; - D093D7F620641A4900BC3599 /* SecureIdPhoneValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D093D7F420641A4900BC3599 /* SecureIdPhoneValue.swift */; }; - D093D7F920641AA500BC3599 /* SecureIdEmailValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D093D7F820641AA500BC3599 /* SecureIdEmailValue.swift */; }; - D093D7FA20641AA500BC3599 /* SecureIdEmailValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D093D7F820641AA500BC3599 /* SecureIdEmailValue.swift */; }; - D093D806206539D000BC3599 /* SaveSecureIdValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D093D805206539D000BC3599 /* SaveSecureIdValue.swift */; }; - D098907F22942E3B0053F151 /* ActiveSessionsContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D098907E22942E3B0053F151 /* ActiveSessionsContext.swift */; }; - D098908022942E3B0053F151 /* ActiveSessionsContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D098907E22942E3B0053F151 /* ActiveSessionsContext.swift */; }; - D099D7461EEF0C2700A3128C /* ChannelMessageStateVersionAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099D7451EEF0C2700A3128C /* ChannelMessageStateVersionAttribute.swift */; }; - D099D7471EEF0C2700A3128C /* ChannelMessageStateVersionAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099D7451EEF0C2700A3128C /* ChannelMessageStateVersionAttribute.swift */; }; - D099D7491EEF418D00A3128C /* HistoryViewStateValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099D7481EEF418D00A3128C /* HistoryViewStateValidation.swift */; }; - D099D74A1EEF418D00A3128C /* HistoryViewStateValidation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099D7481EEF418D00A3128C /* HistoryViewStateValidation.swift */; }; - D099E222229420D600561B75 /* BlockedPeersContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099E221229420D600561B75 /* BlockedPeersContext.swift */; }; - D099E223229420D600561B75 /* BlockedPeersContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099E221229420D600561B75 /* BlockedPeersContext.swift */; }; - D099EA1C1DE72867001AF5A8 /* PeerCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099EA1B1DE72867001AF5A8 /* PeerCommands.swift */; }; - D09A2FE61D7CD4940018FB72 /* TelegramChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09A2FE51D7CD4940018FB72 /* TelegramChannel.swift */; }; - D09A2FEB1D7CDC320018FB72 /* PeerAccessRestrictionInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09A2FEA1D7CDC320018FB72 /* PeerAccessRestrictionInfo.swift */; }; - D09BB6B41DB02C2B00A905C0 /* PendingMessageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09BB6B31DB02C2B00A905C0 /* PendingMessageManager.swift */; }; - D09BB6B61DB0428000A905C0 /* PendingMessageUploadedContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09BB6B51DB0428000A905C0 /* PendingMessageUploadedContent.swift */; }; - D09D8C0B1D4FAB1D0081DBEC /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09D8C011D4FAB1D0081DBEC /* TelegramCore.framework */; }; - D09D8C101D4FAB1D0081DBEC /* TelegramCoreTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D09D8C0F1D4FAB1D0081DBEC /* TelegramCoreTests.m */; }; - D09D8C121D4FAB1D0081DBEC /* TelegramCore.h in Headers */ = {isa = PBXBuildFile; fileRef = D09D8C041D4FAB1D0081DBEC /* TelegramCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0A3E447214802C7008ACEF6 /* VoipConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A3E446214802C7008ACEF6 /* VoipConfiguration.swift */; }; - D0A3E448214802C7008ACEF6 /* VoipConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A3E446214802C7008ACEF6 /* VoipConfiguration.swift */; }; - D0A472B61F4CBE8B00E0EEDA /* LoadedPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A472B51F4CBE8B00E0EEDA /* LoadedPeer.swift */; }; - D0A472B71F4CBE8B00E0EEDA /* LoadedPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A472B51F4CBE8B00E0EEDA /* LoadedPeer.swift */; }; - D0A8998F217A37A000759EE6 /* NotificationAutolockReportManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A8998E217A37A000759EE6 /* NotificationAutolockReportManager.swift */; }; - D0A89990217A37A000759EE6 /* NotificationAutolockReportManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A8998E217A37A000759EE6 /* NotificationAutolockReportManager.swift */; }; - D0AAD1A81E32602500D5B9DE /* AutoremoveTimeoutMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1A71E32602500D5B9DE /* AutoremoveTimeoutMessageAttribute.swift */; }; - D0AAD1AA1E32638500D5B9DE /* ApplyMaxReadIndexInteractively.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1A91E32638500D5B9DE /* ApplyMaxReadIndexInteractively.swift */; }; - D0AAD1B81E326FE200D5B9DE /* ManagedAutoremoveMessageOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B71E326FE200D5B9DE /* ManagedAutoremoveMessageOperations.swift */; }; - D0AAD1B91E326FE200D5B9DE /* ManagedAutoremoveMessageOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AAD1B71E326FE200D5B9DE /* ManagedAutoremoveMessageOperations.swift */; }; - D0AB0B921D65E9FA002C78E7 /* ManagedServiceViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B911D65E9FA002C78E7 /* ManagedServiceViews.swift */; }; - D0AB0B941D662ECE002C78E7 /* ManagedMessageHistoryHoles.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B931D662ECE002C78E7 /* ManagedMessageHistoryHoles.swift */; }; - D0AB0B961D662F0B002C78E7 /* ManagedChatListHoles.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B951D662F0B002C78E7 /* ManagedChatListHoles.swift */; }; - D0AB0B9A1D666520002C78E7 /* ManagedSynchronizePeerReadStates.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B991D666520002C78E7 /* ManagedSynchronizePeerReadStates.swift */; }; - D0AB262621C2F991008F6685 /* TelegramMediaPoll.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB262521C2F991008F6685 /* TelegramMediaPoll.swift */; }; - D0AB262721C2F991008F6685 /* TelegramMediaPoll.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB262521C2F991008F6685 /* TelegramMediaPoll.swift */; }; - D0AB262B21C3CE80008F6685 /* Polls.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB262A21C3CE80008F6685 /* Polls.swift */; }; - D0AB262C21C3CE80008F6685 /* Polls.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB262A21C3CE80008F6685 /* Polls.swift */; }; - D0AD02E31FFFA14800C1DCFF /* PeerLiveLocationsContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AD02E21FFFA14800C1DCFF /* PeerLiveLocationsContext.swift */; }; - D0AD02E41FFFA14800C1DCFF /* PeerLiveLocationsContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AD02E21FFFA14800C1DCFF /* PeerLiveLocationsContext.swift */; }; - D0ADF911212B00DD00310BBC /* SecureIdConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ADF910212B00DD00310BBC /* SecureIdConfiguration.swift */; }; - D0ADF912212B00DD00310BBC /* SecureIdConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ADF910212B00DD00310BBC /* SecureIdConfiguration.swift */; }; - D0AF32221FAC95C20097362B /* StandaloneUploadedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AF32211FAC95C20097362B /* StandaloneUploadedMedia.swift */; }; - D0AF32231FAC95C20097362B /* StandaloneUploadedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AF32211FAC95C20097362B /* StandaloneUploadedMedia.swift */; }; - D0AF32311FACEDEC0097362B /* CoreSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AF32301FACEDEC0097362B /* CoreSettings.swift */; }; - D0AF32321FACEDEC0097362B /* CoreSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AF32301FACEDEC0097362B /* CoreSettings.swift */; }; - D0AF32351FAE8C6B0097362B /* MultipeerManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AF32341FAE8C6B0097362B /* MultipeerManager.swift */; }; - D0B1671D1F9EA2C300976B40 /* ChatHistoryPreloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B1671C1F9EA2C300976B40 /* ChatHistoryPreloadManager.swift */; }; - D0B1671E1F9EA2C300976B40 /* ChatHistoryPreloadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B1671C1F9EA2C300976B40 /* ChatHistoryPreloadManager.swift */; }; - D0B167231F9F972E00976B40 /* LoggingSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B167221F9F972E00976B40 /* LoggingSettings.swift */; }; - D0B167241F9F972E00976B40 /* LoggingSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B167221F9F972E00976B40 /* LoggingSettings.swift */; }; - D0B2F7742052DEF700D3BFB9 /* TelegramDeviceContactImportInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F7732052DEF700D3BFB9 /* TelegramDeviceContactImportInfo.swift */; }; - D0B417C11D7DCEEF004562A4 /* ApiGroupOrChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B417C01D7DCEEF004562A4 /* ApiGroupOrChannel.swift */; }; - D0B4186B1D7E03D5004562A4 /* TelegramCoreMac.h in Headers */ = {isa = PBXBuildFile; fileRef = D0B418691D7E03D5004562A4 /* TelegramCoreMac.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0B418721D7E0409004562A4 /* PostboxMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B418701D7E0409004562A4 /* PostboxMac.framework */; }; - D0B418731D7E0409004562A4 /* SwiftSignalKitMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B418711D7E0409004562A4 /* SwiftSignalKitMac.framework */; }; - D0B4187F1D7E054E004562A4 /* MtProtoKitMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B4187E1D7E054E004562A4 /* MtProtoKitMac.framework */; }; - D0B418861D7E056D004562A4 /* Namespaces.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CD21D62244300955575 /* Namespaces.swift */; }; - D0B4188E1D7E0578004562A4 /* StoreMessage_Telegram.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CDF1D62249100955575 /* StoreMessage_Telegram.swift */; }; - D0B418941D7E0580004562A4 /* TelegramMediaAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CEC1D62250800955575 /* TelegramMediaAction.swift */; }; - D0B418951D7E0580004562A4 /* TelegramMediaContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CED1D62250800955575 /* TelegramMediaContact.swift */; }; - D0B418961D7E0580004562A4 /* TelegramMediaFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CEE1D62250800955575 /* TelegramMediaFile.swift */; }; - D0B418971D7E0580004562A4 /* TelegramMediaImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CEF1D62250800955575 /* TelegramMediaImage.swift */; }; - D0B418991D7E0580004562A4 /* TelegramMediaMap.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CF11D62250800955575 /* TelegramMediaMap.swift */; }; - D0B4189B1D7E0580004562A4 /* TelegramMediaWebpage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CF31D62250800955575 /* TelegramMediaWebpage.swift */; }; - D0B418A61D7E0592004562A4 /* CloudFileMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D431D6319F900955575 /* CloudFileMediaResource.swift */; }; - D0B418A71D7E0592004562A4 /* Fetch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D391D6319E200955575 /* Fetch.swift */; }; - D0B418AA1D7E0597004562A4 /* Download.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D561D631A6900955575 /* Download.swift */; }; - D0B418AB1D7E0597004562A4 /* MultipartFetch.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D571D631A6900955575 /* MultipartFetch.swift */; }; - D0B418AC1D7E0597004562A4 /* Network.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D581D631A6900955575 /* Network.swift */; }; - D0B418AD1D7E0597004562A4 /* Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D591D631A6900955575 /* Serialization.swift */; }; - D0B418B81D7E05A6004562A4 /* ContactManagement.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D6C1D631AA300955575 /* ContactManagement.swift */; }; - D0B418BA1D7E05BB004562A4 /* NetworkLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = D03B0E421D631E6600955575 /* NetworkLogging.m */; }; - D0B418BB1D7E05BE004562A4 /* NetworkLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = D03B0E411D631E6600955575 /* NetworkLogging.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0B843811DA6EDAE005F29E1 /* CachedUserData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843801DA6EDAE005F29E1 /* CachedUserData.swift */; }; - D0B843831DA6EDB8005F29E1 /* CachedGroupData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843821DA6EDB8005F29E1 /* CachedGroupData.swift */; }; - D0B843851DA6EDC4005F29E1 /* CachedChannelData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843841DA6EDC4005F29E1 /* CachedChannelData.swift */; }; - D0B843871DA6F705005F29E1 /* UpdateCachedPeerData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843861DA6F705005F29E1 /* UpdateCachedPeerData.swift */; }; - D0B843891DA7AB96005F29E1 /* ExportedInvitation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843881DA7AB96005F29E1 /* ExportedInvitation.swift */; }; - D0B8438C1DA7CF50005F29E1 /* BotInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B8438B1DA7CF50005F29E1 /* BotInfo.swift */; }; - D0B8438E1DA7D296005F29E1 /* CachedGroupParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B8438D1DA7D296005F29E1 /* CachedGroupParticipants.swift */; }; - D0B843971DA7FBBC005F29E1 /* ChangePeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843961DA7FBBC005F29E1 /* ChangePeerNotificationSettings.swift */; }; - D0B8440D1DAB91CD005F29E1 /* ImageRepresentationsUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C901D81A857008AEB01 /* ImageRepresentationsUtils.swift */; }; - D0B8440E1DAB91CD005F29E1 /* MessageUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C921D81AD09008AEB01 /* MessageUtils.swift */; }; - D0B8440F1DAB91CD005F29E1 /* Either.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CB81D62233400955575 /* Either.swift */; }; - D0B844111DAB91CD005F29E1 /* Regex.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CBC1D62234300955575 /* Regex.swift */; }; - D0B844121DAB91CD005F29E1 /* Log.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CBE1D62234A00955575 /* Log.swift */; }; - D0B844131DAB91CD005F29E1 /* StringFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CC01D62235000955575 /* StringFormat.swift */; }; - D0B844141DAB91CD005F29E1 /* PhoneNumbers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0CCD1D62239600955575 /* PhoneNumbers.swift */; }; - D0B844431DAB91FD005F29E1 /* Account.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D611D631A8B00955575 /* Account.swift */; }; - D0B844451DAB91FD005F29E1 /* AccountViewTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D631D631A8B00955575 /* AccountViewTracker.swift */; }; - D0B844461DAB91FD005F29E1 /* RecentPeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D641D631A8B00955575 /* RecentPeers.swift */; }; - D0B844471DAB91FD005F29E1 /* ManagedServiceViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B911D65E9FA002C78E7 /* ManagedServiceViews.swift */; }; - D0B844481DAB91FD005F29E1 /* ManagedMessageHistoryHoles.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B931D662ECE002C78E7 /* ManagedMessageHistoryHoles.swift */; }; - D0B844491DAB91FD005F29E1 /* ManagedChatListHoles.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B951D662F0B002C78E7 /* ManagedChatListHoles.swift */; }; - D0B8444B1DAB91FD005F29E1 /* ManagedSynchronizePeerReadStates.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB0B991D666520002C78E7 /* ManagedSynchronizePeerReadStates.swift */; }; - D0B8444C1DAB91FD005F29E1 /* UpdateCachedPeerData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843861DA6F705005F29E1 /* UpdateCachedPeerData.swift */; }; - D0B844531DAC0773005F29E1 /* TelegramUserPresence.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B844521DAC0773005F29E1 /* TelegramUserPresence.swift */; }; - D0B85AC51F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B85AC41F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift */; }; - D0B85AC61F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B85AC41F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift */; }; - D0BAAA14230FDB4100AFC473 /* ProcessRemovedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BAAA13230FDB4100AFC473 /* ProcessRemovedMedia.swift */; }; - D0BAAA15230FDB4100AFC473 /* ProcessRemovedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BAAA13230FDB4100AFC473 /* ProcessRemovedMedia.swift */; }; - D0BB7C5A1E5C8074001527C3 /* ChannelParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BB7C591E5C8074001527C3 /* ChannelParticipants.swift */; }; - D0BC386E1E3FDAB70044D6FE /* CreateGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC386D1E3FDAB70044D6FE /* CreateGroup.swift */; }; - D0BC38701E40853E0044D6FE /* UpdatePeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC386F1E40853E0044D6FE /* UpdatePeers.swift */; }; - D0BC38751E40A7F70044D6FE /* RemovePeerChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38741E40A7F70044D6FE /* RemovePeerChat.swift */; }; - D0BC38771E40BAAA0044D6FE /* ManagedSynchronizePinnedChatsOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38761E40BAAA0044D6FE /* ManagedSynchronizePinnedChatsOperations.swift */; }; - D0BC38791E40BAF20044D6FE /* SynchronizePinnedChatsOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38781E40BAF20044D6FE /* SynchronizePinnedChatsOperation.swift */; }; - D0BC387B1E40D2880044D6FE /* TogglePeerChatPinned.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC387A1E40D2880044D6FE /* TogglePeerChatPinned.swift */; }; - D0BC387C1E40D2880044D6FE /* TogglePeerChatPinned.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC387A1E40D2880044D6FE /* TogglePeerChatPinned.swift */; }; - D0BE303A20619EE800FBE6D8 /* SecureIdForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE303920619EE800FBE6D8 /* SecureIdForm.swift */; }; - D0BE303B20619EE800FBE6D8 /* SecureIdForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE303920619EE800FBE6D8 /* SecureIdForm.swift */; }; - D0BE303D2061A29100FBE6D8 /* RequestSecureIdForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE303C2061A29100FBE6D8 /* RequestSecureIdForm.swift */; }; - D0BE303E2061A29100FBE6D8 /* RequestSecureIdForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE303C2061A29100FBE6D8 /* RequestSecureIdForm.swift */; }; - D0BE304B20627D9800FBE6D8 /* AccessSecureId.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE304A20627D9800FBE6D8 /* AccessSecureId.swift */; }; - D0BE304C20627D9800FBE6D8 /* AccessSecureId.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BE304A20627D9800FBE6D8 /* AccessSecureId.swift */; }; - D0BEAF5D1E54941B00BD963D /* Authorization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF5C1E54941B00BD963D /* Authorization.swift */; }; - D0BEAF5E1E54941B00BD963D /* Authorization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF5C1E54941B00BD963D /* Authorization.swift */; }; - D0BEAF601E54ACF900BD963D /* AccountManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF5F1E54ACF900BD963D /* AccountManager.swift */; }; - D0BEAF611E54ACF900BD963D /* AccountManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF5F1E54ACF900BD963D /* AccountManager.swift */; }; - D0C0B58A1ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B5891ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift */; }; - D0C0B58B1ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B5891ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift */; }; - D0C0B58D1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B58C1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift */; }; - D0C0B58E1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B58C1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift */; }; - D0C26D661FE022DB004ABF18 /* SynchronizeGroupedPeersOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C26D651FE022DB004ABF18 /* SynchronizeGroupedPeersOperation.swift */; }; - D0C26D671FE022DB004ABF18 /* SynchronizeGroupedPeersOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C26D651FE022DB004ABF18 /* SynchronizeGroupedPeersOperation.swift */; }; - D0C26D691FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C26D681FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift */; }; - D0C26D6A1FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C26D681FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift */; }; - D0C26D6C1FE286C3004ABF18 /* FetchChatList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C26D6B1FE286C3004ABF18 /* FetchChatList.swift */; }; - D0C26D6D1FE286C3004ABF18 /* FetchChatList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C26D6B1FE286C3004ABF18 /* FetchChatList.swift */; }; - D0C27B3F1F4B51D000A4E170 /* CachedStickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C27B3E1F4B51D000A4E170 /* CachedStickerPack.swift */; }; - D0C27B401F4B51D000A4E170 /* CachedStickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C27B3E1F4B51D000A4E170 /* CachedStickerPack.swift */; }; - D0C27B421F4B58C000A4E170 /* PeerSpecificStickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C27B411F4B58C000A4E170 /* PeerSpecificStickerPack.swift */; }; - D0C27B431F4B58C000A4E170 /* PeerSpecificStickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C27B411F4B58C000A4E170 /* PeerSpecificStickerPack.swift */; }; - D0C44B611FC616E200227BE0 /* SearchGroupMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C44B601FC616E200227BE0 /* SearchGroupMembers.swift */; }; - D0C44B621FC616E200227BE0 /* SearchGroupMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C44B601FC616E200227BE0 /* SearchGroupMembers.swift */; }; - D0C48F391E8138DF0075317D /* ArchivedStickerPacksInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C48F381E8138DF0075317D /* ArchivedStickerPacksInfo.swift */; }; - D0C48F3A1E8138DF0075317D /* ArchivedStickerPacksInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C48F381E8138DF0075317D /* ArchivedStickerPacksInfo.swift */; }; - D0C48F3C1E8142EF0075317D /* LoadedPeerFromMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C48F3B1E8142EF0075317D /* LoadedPeerFromMessage.swift */; }; - D0C48F3D1E8142EF0075317D /* LoadedPeerFromMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C48F3B1E8142EF0075317D /* LoadedPeerFromMessage.swift */; }; - D0C50E341E93A86600F62E39 /* CallSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C50E331E93A86600F62E39 /* CallSessionManager.swift */; }; - D0C50E351E93A86600F62E39 /* CallSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C50E331E93A86600F62E39 /* CallSessionManager.swift */; }; - D0CA3F84207391560042D2B6 /* SecureIdPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA3F83207391560042D2B6 /* SecureIdPadding.swift */; }; - D0CA3F85207391560042D2B6 /* SecureIdPadding.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA3F83207391560042D2B6 /* SecureIdPadding.swift */; }; - D0CA8E4B227209C4008A74C3 /* ManagedSynchronizeGroupMessageStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA8E4A227209C4008A74C3 /* ManagedSynchronizeGroupMessageStats.swift */; }; - D0CA8E4C227209C4008A74C3 /* ManagedSynchronizeGroupMessageStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CA8E4A227209C4008A74C3 /* ManagedSynchronizeGroupMessageStats.swift */; }; - D0CAF2EA1D75EC600011F558 /* MtProtoKitDynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CAF2E91D75EC600011F558 /* MtProtoKitDynamic.framework */; }; - D0CC4ADC22BA47280088F36D /* TelegramApiMac.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CC4ADB22BA47280088F36D /* TelegramApiMac.framework */; }; - D0D1026C2212FE52003ADA5E /* AccountSortOrderAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D1026B2212FE52003ADA5E /* AccountSortOrderAttribute.swift */; }; - D0D1026D2212FE52003ADA5E /* AccountSortOrderAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D1026B2212FE52003ADA5E /* AccountSortOrderAttribute.swift */; }; - D0D376E622DCCFD600FA7D7C /* SlowMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D376E522DCCFD600FA7D7C /* SlowMode.swift */; }; - D0D376E722DCCFD600FA7D7C /* SlowMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D376E522DCCFD600FA7D7C /* SlowMode.swift */; }; - D0D748021E7AE98B00F4B1F6 /* StickerPackInteractiveOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D748011E7AE98B00F4B1F6 /* StickerPackInteractiveOperations.swift */; }; - D0D748031E7AE98B00F4B1F6 /* StickerPackInteractiveOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D748011E7AE98B00F4B1F6 /* StickerPackInteractiveOperations.swift */; }; - D0DA1D321F7043D50034E892 /* ManagedPendingPeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DA1D311F7043D50034E892 /* ManagedPendingPeerNotificationSettings.swift */; }; - D0DA1D331F7043D50034E892 /* ManagedPendingPeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DA1D311F7043D50034E892 /* ManagedPendingPeerNotificationSettings.swift */; }; - D0DB7F031F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DB7F021F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift */; }; - D0DB7F041F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DB7F021F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift */; }; - D0DC354E1DE368F7000195EB /* RequestChatContextResults.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DC354D1DE368F7000195EB /* RequestChatContextResults.swift */; }; - D0DC35501DE36900000195EB /* ChatContextResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DC354F1DE36900000195EB /* ChatContextResult.swift */; }; - D0DC35511DE36908000195EB /* RequestChatContextResults.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DC354D1DE368F7000195EB /* RequestChatContextResults.swift */; }; - D0DC35521DE36908000195EB /* ChatContextResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DC354F1DE36900000195EB /* ChatContextResult.swift */; }; - D0DF0C8A1D819C7E008AEB01 /* JoinChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C891D819C7E008AEB01 /* JoinChannel.swift */; }; - D0DF0C911D81A857008AEB01 /* ImageRepresentationsUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C901D81A857008AEB01 /* ImageRepresentationsUtils.swift */; }; - D0DF0C931D81AD09008AEB01 /* MessageUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C921D81AD09008AEB01 /* MessageUtils.swift */; }; - D0DF0CA81D82BF32008AEB01 /* PeerParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0CA71D82BF32008AEB01 /* PeerParticipants.swift */; }; - D0DFD5DF1FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DFD5DE1FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift */; }; - D0DFD5E01FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DFD5DE1FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift */; }; - D0E23DD51E8042F500B9B6D2 /* FeaturedStickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DD41E8042F500B9B6D2 /* FeaturedStickerPack.swift */; }; - D0E23DD61E8042F500B9B6D2 /* FeaturedStickerPack.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DD41E8042F500B9B6D2 /* FeaturedStickerPack.swift */; }; - D0E23DDA1E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DD91E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift */; }; - D0E23DDB1E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DD91E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift */; }; - D0E23DDF1E8082A400B9B6D2 /* ArchivedStickerPacks.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DDE1E8082A400B9B6D2 /* ArchivedStickerPacks.swift */; }; - D0E23DE01E8082A400B9B6D2 /* ArchivedStickerPacks.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E23DDE1E8082A400B9B6D2 /* ArchivedStickerPacks.swift */; }; - D0E305A71E5B5CBE00D7A3A2 /* PeerAdmins.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E305A61E5B5CBE00D7A3A2 /* PeerAdmins.swift */; }; - D0E305A81E5B5CBE00D7A3A2 /* PeerAdmins.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E305A61E5B5CBE00D7A3A2 /* PeerAdmins.swift */; }; - D0E305AA1E5BA02D00D7A3A2 /* ChannelBlacklist.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E305A91E5BA02D00D7A3A2 /* ChannelBlacklist.swift */; }; - D0E305AB1E5BA02D00D7A3A2 /* ChannelBlacklist.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E305A91E5BA02D00D7A3A2 /* ChannelBlacklist.swift */; }; - D0E35A0E1DE4953E00BC6096 /* FetchHttpResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E35A0D1DE4953E00BC6096 /* FetchHttpResource.swift */; }; - D0E35A101DE49E1C00BC6096 /* OutgoingMessageWithChatContextResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E35A0F1DE49E1C00BC6096 /* OutgoingMessageWithChatContextResult.swift */; }; - D0E35A121DE4A25E00BC6096 /* OutgoingChatContextResultMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E35A111DE4A25E00BC6096 /* OutgoingChatContextResultMessageAttribute.swift */; }; - D0E35A131DE4C69100BC6096 /* OutgoingChatContextResultMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E35A111DE4A25E00BC6096 /* OutgoingChatContextResultMessageAttribute.swift */; }; - D0E35A141DE4C69C00BC6096 /* FetchHttpResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E35A0D1DE4953E00BC6096 /* FetchHttpResource.swift */; }; - D0E35A151DE4C6A200BC6096 /* OutgoingMessageWithChatContextResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E35A0F1DE49E1C00BC6096 /* OutgoingMessageWithChatContextResult.swift */; }; - D0E412D7206A866B00BEE4A2 /* UploadSecureIdFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412D6206A866B00BEE4A2 /* UploadSecureIdFile.swift */; }; - D0E412D8206A866B00BEE4A2 /* UploadSecureIdFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412D6206A866B00BEE4A2 /* UploadSecureIdFile.swift */; }; - D0E412DC206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412DB206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift */; }; - D0E412DD206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412DB206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift */; }; - D0E412E1206AB24700BEE4A2 /* SecureFileMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412E0206AB24700BEE4A2 /* SecureFileMediaResource.swift */; }; - D0E412E2206AB24700BEE4A2 /* SecureFileMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412E0206AB24700BEE4A2 /* SecureFileMediaResource.swift */; }; - D0E412E7206ABC7500BEE4A2 /* EncryptedMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412E6206ABC7500BEE4A2 /* EncryptedMediaResource.swift */; }; - D0E412E8206ABC7500BEE4A2 /* EncryptedMediaResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412E6206ABC7500BEE4A2 /* EncryptedMediaResource.swift */; }; - D0E412EA206AD18E00BEE4A2 /* DecryptedResourceData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412E9206AD18E00BEE4A2 /* DecryptedResourceData.swift */; }; - D0E412EB206AD18E00BEE4A2 /* DecryptedResourceData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412E9206AD18E00BEE4A2 /* DecryptedResourceData.swift */; }; - D0E412EE206AF65500BEE4A2 /* GrantSecureIdAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412ED206AF65500BEE4A2 /* GrantSecureIdAccess.swift */; }; - D0E412EF206AF65500BEE4A2 /* GrantSecureIdAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412ED206AF65500BEE4A2 /* GrantSecureIdAccess.swift */; }; - D0E412F1206B9BB700BEE4A2 /* SecureIdPassportValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412F0206B9BB700BEE4A2 /* SecureIdPassportValue.swift */; }; - D0E412F2206B9BB700BEE4A2 /* SecureIdPassportValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412F0206B9BB700BEE4A2 /* SecureIdPassportValue.swift */; }; - D0E412F4206B9BDC00BEE4A2 /* SecureIdVerificationDocumentReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412F3206B9BDC00BEE4A2 /* SecureIdVerificationDocumentReference.swift */; }; - D0E412F5206B9BDC00BEE4A2 /* SecureIdVerificationDocumentReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E412F3206B9BDC00BEE4A2 /* SecureIdVerificationDocumentReference.swift */; }; - D0E41301206B9E6E00BEE4A2 /* SecureIdAddressValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E41300206B9E6E00BEE4A2 /* SecureIdAddressValue.swift */; }; - D0E41302206B9E6E00BEE4A2 /* SecureIdAddressValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E41300206B9E6E00BEE4A2 /* SecureIdAddressValue.swift */; }; - D0E6521F1E3A364A004EEA91 /* UpdateAccountPeerName.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E6521E1E3A364A004EEA91 /* UpdateAccountPeerName.swift */; }; - D0E652201E3A364A004EEA91 /* UpdateAccountPeerName.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E6521E1E3A364A004EEA91 /* UpdateAccountPeerName.swift */; }; - D0E817492010E7E300B82BBB /* ChannelAdminEventLogContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E817482010E7E300B82BBB /* ChannelAdminEventLogContext.swift */; }; - D0E8174A2010E7E300B82BBB /* ChannelAdminEventLogContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E817482010E7E300B82BBB /* ChannelAdminEventLogContext.swift */; }; - D0E8B8B32044706300605593 /* ForwardGame.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8B8B22044706300605593 /* ForwardGame.swift */; }; - D0E8B8B42044706300605593 /* ForwardGame.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8B8B22044706300605593 /* ForwardGame.swift */; }; - D0EA188220D3D2B1001AEE19 /* RemoteStorageConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EA188120D3D2B1001AEE19 /* RemoteStorageConfiguration.swift */; }; - D0EC559A2101ED0800D1992C /* DeleteMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC55992101ED0800D1992C /* DeleteMessages.swift */; }; - D0EC559B2101ED0800D1992C /* DeleteMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC55992101ED0800D1992C /* DeleteMessages.swift */; }; - D0EE7FC120986BF400981319 /* SecureIdInternalPassportValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EE7FC020986BF400981319 /* SecureIdInternalPassportValue.swift */; }; - D0EE7FC220986BF400981319 /* SecureIdInternalPassportValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EE7FC020986BF400981319 /* SecureIdInternalPassportValue.swift */; }; - D0EE7FC420986C5300981319 /* SecureIdPassportRegistrationValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EE7FC320986C5300981319 /* SecureIdPassportRegistrationValue.swift */; }; - D0EE7FC520986C5300981319 /* SecureIdPassportRegistrationValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EE7FC320986C5300981319 /* SecureIdPassportRegistrationValue.swift */; }; - D0EE7FC72098853100981319 /* SecureIdTemporaryRegistrationValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EE7FC62098853100981319 /* SecureIdTemporaryRegistrationValue.swift */; }; - D0EE7FC82098853100981319 /* SecureIdTemporaryRegistrationValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EE7FC62098853100981319 /* SecureIdTemporaryRegistrationValue.swift */; }; - D0F02CE51E9926C40065DEE2 /* ManagedConfigurationUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F02CE41E9926C40065DEE2 /* ManagedConfigurationUpdates.swift */; }; - D0F02CE61E9926C50065DEE2 /* ManagedConfigurationUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F02CE41E9926C40065DEE2 /* ManagedConfigurationUpdates.swift */; }; - D0F19F6620E6620D00EEC860 /* MultiplexedRequestManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F19F6520E6620D00EEC860 /* MultiplexedRequestManager.swift */; }; - D0F19F6720E6621000EEC860 /* MultiplexedRequestManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F19F6520E6620D00EEC860 /* MultiplexedRequestManager.swift */; }; - D0F3A89F1E82C65400B4C64C /* SynchronizeChatInputStateOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A89E1E82C65400B4C64C /* SynchronizeChatInputStateOperation.swift */; }; - D0F3A8A01E82C65400B4C64C /* SynchronizeChatInputStateOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A89E1E82C65400B4C64C /* SynchronizeChatInputStateOperation.swift */; }; - D0F3A8A21E82C65E00B4C64C /* ManagedSynchronizeChatInputStateOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8A11E82C65E00B4C64C /* ManagedSynchronizeChatInputStateOperations.swift */; }; - D0F3A8A31E82C65E00B4C64C /* ManagedSynchronizeChatInputStateOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8A11E82C65E00B4C64C /* ManagedSynchronizeChatInputStateOperations.swift */; }; - D0F3A8A51E82C94C00B4C64C /* SynchronizeableChatInputState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8A41E82C94C00B4C64C /* SynchronizeableChatInputState.swift */; }; - D0F3A8A61E82C94C00B4C64C /* SynchronizeableChatInputState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8A41E82C94C00B4C64C /* SynchronizeableChatInputState.swift */; }; - D0F3A8A81E82CD7D00B4C64C /* UpdatePeerChatInterfaceState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8A71E82CD7D00B4C64C /* UpdatePeerChatInterfaceState.swift */; }; - D0F3A8A91E82CD7D00B4C64C /* UpdatePeerChatInterfaceState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8A71E82CD7D00B4C64C /* UpdatePeerChatInterfaceState.swift */; }; - D0F3CC791DDE2859008148FA /* SearchMessages.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0D711D631ABA00955575 /* SearchMessages.swift */; }; - D0F3CC7A1DDE2859008148FA /* RequestMessageActionCallback.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01AC91C1DD5DA5E00E8160F /* RequestMessageActionCallback.swift */; }; - D0F3CC7B1DDE2859008148FA /* RequestEditMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01AC9201DD5E7E500E8160F /* RequestEditMessage.swift */; }; - D0F3CC7D1DDE289E008148FA /* ResolvePeerByName.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3CC7C1DDE289E008148FA /* ResolvePeerByName.swift */; }; - D0F53BE91E784A4800117362 /* ChangeAccountPhoneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F53BE81E784A4800117362 /* ChangeAccountPhoneNumber.swift */; }; - D0F53BEA1E784A4800117362 /* ChangeAccountPhoneNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F53BE81E784A4800117362 /* ChangeAccountPhoneNumber.swift */; }; - D0F760D822202FE20074F7E5 /* ChannelStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F760D722202FE20074F7E5 /* ChannelStats.swift */; }; - D0F760D922202FE20074F7E5 /* ChannelStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F760D722202FE20074F7E5 /* ChannelStats.swift */; }; - D0F7AB2C1DCE889D009AD9A1 /* EditedMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F7AB2B1DCE889D009AD9A1 /* EditedMessageAttribute.swift */; }; - D0F7AB2D1DCE889D009AD9A1 /* EditedMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F7AB2B1DCE889D009AD9A1 /* EditedMessageAttribute.swift */; }; - D0F7AB2F1DCF507E009AD9A1 /* ReplyMarkupMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F7AB2E1DCF507E009AD9A1 /* ReplyMarkupMessageAttribute.swift */; }; - D0F7AB301DCF507E009AD9A1 /* ReplyMarkupMessageAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F7AB2E1DCF507E009AD9A1 /* ReplyMarkupMessageAttribute.swift */; }; - D0F7B1E31E045C7B007EB8A5 /* RichText.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827CA1E02F5B200071108 /* RichText.swift */; }; - D0F7B1E41E045C7B007EB8A5 /* InstantPage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827C81E02F59C00071108 /* InstantPage.swift */; }; - D0F7B1E71E045C87007EB8A5 /* JoinChannel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0C891D819C7E008AEB01 /* JoinChannel.swift */; }; - D0F7B1E81E045C87007EB8A5 /* PeerParticipants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0DF0CA71D82BF32008AEB01 /* PeerParticipants.swift */; }; - D0F7B1E91E045C87007EB8A5 /* PeerCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099EA1B1DE72867001AF5A8 /* PeerCommands.swift */; }; - D0F7B1EA1E045C87007EB8A5 /* ChangePeerNotificationSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B843961DA7FBBC005F29E1 /* ChangePeerNotificationSettings.swift */; }; - D0F7B1EB1E045C87007EB8A5 /* ResolvePeerByName.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3CC7C1DDE289E008148FA /* ResolvePeerByName.swift */; }; - D0F7B1EC1E045C87007EB8A5 /* SearchPeers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07827BA1E00451F00071108 /* SearchPeers.swift */; }; - D0F8C3A02017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F8C39F2017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift */; }; - D0F8C3A12017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F8C39F2017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift */; }; - D0FA08BB2046B37900DD23FC /* ContentPrivacySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA08BA2046B37900DD23FC /* ContentPrivacySettings.swift */; }; - D0FA08BC2046B37900DD23FC /* ContentPrivacySettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA08BA2046B37900DD23FC /* ContentPrivacySettings.swift */; }; - D0FA0ABD1E76C908005BB9B7 /* TwoStepVerification.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA0ABC1E76C908005BB9B7 /* TwoStepVerification.swift */; }; - D0FA35051EA6135D00E56FFA /* CacheStorageSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA35041EA6135D00E56FFA /* CacheStorageSettings.swift */; }; - D0FA35061EA6135D00E56FFA /* CacheStorageSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA35041EA6135D00E56FFA /* CacheStorageSettings.swift */; }; - D0FA35081EA632E400E56FFA /* CollectCacheUsageStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA35071EA632E400E56FFA /* CollectCacheUsageStats.swift */; }; - D0FA35091EA632E400E56FFA /* CollectCacheUsageStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA35071EA632E400E56FFA /* CollectCacheUsageStats.swift */; }; - D0FA8B981E1E955C001E855B /* SecretChatOutgoingOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8B971E1E955C001E855B /* SecretChatOutgoingOperation.swift */; }; - D0FA8B991E1E955C001E855B /* SecretChatOutgoingOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8B971E1E955C001E855B /* SecretChatOutgoingOperation.swift */; }; - D0FA8B9E1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8B9D1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift */; }; - D0FA8B9F1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8B9D1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift */; }; - D0FA8BA11E1F99E1001E855B /* SecretChatFileReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BA01E1F99E1001E855B /* SecretChatFileReference.swift */; }; - D0FA8BA21E1F99E1001E855B /* SecretChatFileReference.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BA01E1F99E1001E855B /* SecretChatFileReference.swift */; }; - D0FA8BA41E1FA341001E855B /* SecretChatKeychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BA31E1FA341001E855B /* SecretChatKeychain.swift */; }; - D0FA8BA51E1FA341001E855B /* SecretChatKeychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BA31E1FA341001E855B /* SecretChatKeychain.swift */; }; - D0FA8BA71E1FA6DF001E855B /* TelegramSecretChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BA61E1FA6DF001E855B /* TelegramSecretChat.swift */; }; - D0FA8BA81E1FA6DF001E855B /* TelegramSecretChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BA61E1FA6DF001E855B /* TelegramSecretChat.swift */; }; - D0FA8BAA1E1FB76E001E855B /* ManagedSecretChatOutgoingOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BA91E1FB76E001E855B /* ManagedSecretChatOutgoingOperations.swift */; }; - D0FA8BAB1E1FB76E001E855B /* ManagedSecretChatOutgoingOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BA91E1FB76E001E855B /* ManagedSecretChatOutgoingOperations.swift */; }; - D0FA8BAD1E1FD6E2001E855B /* MemoryBufferExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BAC1E1FD6E2001E855B /* MemoryBufferExtensions.swift */; }; - D0FA8BAE1E1FD6E2001E855B /* MemoryBufferExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BAC1E1FD6E2001E855B /* MemoryBufferExtensions.swift */; }; - D0FA8BB01E1FEC7E001E855B /* SecretChatEncryptionConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BAF1E1FEC7E001E855B /* SecretChatEncryptionConfig.swift */; }; - D0FA8BB11E1FEC7E001E855B /* SecretChatEncryptionConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BAF1E1FEC7E001E855B /* SecretChatEncryptionConfig.swift */; }; - D0FA8BB31E201B02001E855B /* ProcessSecretChatIncomingEncryptedOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BB21E201B02001E855B /* ProcessSecretChatIncomingEncryptedOperations.swift */; }; - D0FA8BB41E201B02001E855B /* ProcessSecretChatIncomingEncryptedOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BB21E201B02001E855B /* ProcessSecretChatIncomingEncryptedOperations.swift */; }; - D0FA8BB91E2240B4001E855B /* SecretChatIncomingDecryptedOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BB81E2240B4001E855B /* SecretChatIncomingDecryptedOperation.swift */; }; - D0FA8BBA1E2240B4001E855B /* SecretChatIncomingDecryptedOperation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA8BB81E2240B4001E855B /* SecretChatIncomingDecryptedOperation.swift */; }; - D0FC195B2020D1CA00FEDBB2 /* PeerGroupMessageStateVersionAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC195A2020D1CA00FEDBB2 /* PeerGroupMessageStateVersionAttribute.swift */; }; - D0FC195C2020D1CA00FEDBB2 /* PeerGroupMessageStateVersionAttribute.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC195A2020D1CA00FEDBB2 /* PeerGroupMessageStateVersionAttribute.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - D09D8C0C1D4FAB1D0081DBEC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D09D8BF81D4FAB1D0081DBEC /* Project object */; - proxyType = 1; - remoteGlobalIDString = D09D8C001D4FAB1D0081DBEC; - remoteInfo = TelegramCore; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0900555521E4A96D0030924C /* Wallpaper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Wallpaper.swift; sourceTree = ""; }; - 09028385218E5DBB0067EFBD /* ManagedVoipConfigurationUpdates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedVoipConfigurationUpdates.swift; sourceTree = ""; }; - 090E778222A9862100CD99F5 /* ChannelOwnershipTransfer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelOwnershipTransfer.swift; sourceTree = ""; }; - 090E778F22AAABC600CD99F5 /* PeersNearby.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeersNearby.swift; sourceTree = ""; }; - 0925903622F0D02D003D6283 /* ManagedAnimatedEmojiUpdates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedAnimatedEmojiUpdates.swift; sourceTree = ""; }; - 093857A62243D87800EB6A54 /* ManagedSynchronizeEmojiKeywordsOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeEmojiKeywordsOperations.swift; sourceTree = ""; }; - 093857A72243D87900EB6A54 /* SynchronizeEmojiKeywordsOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeEmojiKeywordsOperation.swift; sourceTree = ""; }; - 093857AA2243D88C00EB6A54 /* EmojiKeywords.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmojiKeywords.swift; sourceTree = ""; }; - 0962E66621B59BAA00245FD9 /* ManagedAppConfigurationUpdates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedAppConfigurationUpdates.swift; sourceTree = ""; }; - 0962E66821B5A11100245FD9 /* SynchronizeAppLogEventsOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SynchronizeAppLogEventsOperation.swift; sourceTree = ""; }; - 0962E66A21B5A41C00245FD9 /* ManagedSynchronizeAppLogEventsOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeAppLogEventsOperations.swift; sourceTree = ""; }; - 0962E66C21B5C56F00245FD9 /* JSON.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JSON.swift; sourceTree = ""; }; - 0962E66E21B6147600245FD9 /* AppConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppConfiguration.swift; sourceTree = ""; }; - 0962E67421B6437600245FD9 /* SplitTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitTest.swift; sourceTree = ""; }; - 0962E68021BAA20E00245FD9 /* SearchBotsConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBotsConfiguration.swift; sourceTree = ""; }; - 09B4A9B3230FB70B005C2E08 /* Themes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Themes.swift; sourceTree = ""; }; - 09B4A9B5230FBB2B005C2E08 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; - 09EC0DE822C6825D00E7185B /* AppUpdate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdate.swift; sourceTree = ""; }; - 09EDAD372213120C0012A50B /* AutodownloadSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutodownloadSettings.swift; sourceTree = ""; }; - 09EDAD3922131D010012A50B /* ManagedAutodownloadSettingsUpdates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedAutodownloadSettingsUpdates.swift; sourceTree = ""; }; - 09FC986A22FD882200915E37 /* OutgoingScheduleInfoMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutgoingScheduleInfoMessageAttribute.swift; sourceTree = ""; }; - 09FC986C22FD99D400915E37 /* ScheduledMessages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScheduledMessages.swift; sourceTree = ""; }; - 9F06830F21A40DEC001D8EDB /* NotificationExceptionsList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationExceptionsList.swift; sourceTree = ""; }; - 9FC8ADAA206BBFF10094F7B4 /* RecentWebSessions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentWebSessions.swift; sourceTree = ""; }; - C205FEA71EB3B75900455808 /* ExportMessageLink.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportMessageLink.swift; sourceTree = ""; }; - C210DD611FBDB90800F673D8 /* SourceReferenceMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceReferenceMessageAttribute.swift; sourceTree = ""; }; - C22EE61A1E67418000334C38 /* ToggleChannelSignatures.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToggleChannelSignatures.swift; sourceTree = ""; }; - C230BEB51EE9A3760029586C /* ChannelAdminEventLogs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdminEventLogs.swift; sourceTree = ""; }; - C2366C821E4F3EAA0097CCFF /* GroupReturnAndLeft.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupReturnAndLeft.swift; sourceTree = ""; }; - C2366C851E4F403C0097CCFF /* AddressNames.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddressNames.swift; sourceTree = ""; }; - C2366C881E4F40480097CCFF /* SupportPeerId.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SupportPeerId.swift; sourceTree = ""; }; - C239BE961E62EE1E00C2C453 /* LoadMessagesIfNecessary.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadMessagesIfNecessary.swift; sourceTree = ""; }; - C239BE9B1E630CA700C2C453 /* UpdatePinnedMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdatePinnedMessage.swift; sourceTree = ""; }; - C23BC3861E9BE3CA00D79F92 /* ImportContact.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImportContact.swift; sourceTree = ""; }; - C251D7421E65E50500283EDE /* StickerSetInstallation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerSetInstallation.swift; sourceTree = ""; }; - C28725411EF967E700613564 /* NotificationInfoMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationInfoMessageAttribute.swift; sourceTree = ""; }; - C28D3CEF20D3DA900027F4D6 /* DeepLinkInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLinkInfo.swift; sourceTree = ""; }; - C29340F21F5080FA0074991E /* UpdateGroupSpecificStickerset.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateGroupSpecificStickerset.swift; sourceTree = ""; }; - C2E064671ECEEF0A00387BB8 /* TelegramMediaInvoice.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaInvoice.swift; sourceTree = ""; }; - C2E0646C1ECF171D00387BB8 /* TelegramMediaWebDocument.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaWebDocument.swift; sourceTree = ""; }; - C2F4ED1C1EC60064005F2696 /* RateCall.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RateCall.swift; sourceTree = ""; }; - C2FD33E01E680E9E008D13D4 /* RequestUserPhotos.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestUserPhotos.swift; sourceTree = ""; }; - C2FD33E31E687BF1008D13D4 /* PeerPhotoUpdater.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerPhotoUpdater.swift; sourceTree = ""; }; - C2FD33EA1E696C78008D13D4 /* GroupsInCommon.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GroupsInCommon.swift; sourceTree = ""; }; - D003702A1DA42586004308D3 /* PhoneNumber.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhoneNumber.swift; sourceTree = ""; }; - D00422D221677F4500719B67 /* ManagedAccountPresence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedAccountPresence.swift; sourceTree = ""; }; - D00580AD21E2A08900CB7CD3 /* AccountEnvironmentAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountEnvironmentAttribute.swift; sourceTree = ""; }; - D00BDA181EE593D600C64C5E /* TelegramChannelAdminRights.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramChannelAdminRights.swift; sourceTree = ""; }; - D00BDA1B1EE5952A00C64C5E /* TelegramChannelBannedRights.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramChannelBannedRights.swift; sourceTree = ""; }; - D00C7CCB1E3620C30080C3D5 /* CachedChannelParticipants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedChannelParticipants.swift; sourceTree = ""; }; - D00C7CDF1E3785700080C3D5 /* MarkMessageContentAsConsumedInteractively.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarkMessageContentAsConsumedInteractively.swift; sourceTree = ""; }; - D00C7CEA1E37A8540080C3D5 /* SetSecretChatMessageAutoremoveTimeoutInteractively.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SetSecretChatMessageAutoremoveTimeoutInteractively.swift; sourceTree = ""; }; - D00D34381E6EC9520057B307 /* TeleramMediaUnsupported.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TeleramMediaUnsupported.swift; sourceTree = ""; }; - D00D343B1E6EC9770057B307 /* TelegramMediaGame.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaGame.swift; sourceTree = ""; }; - D00D343E1E6ED6E50057B307 /* ConsumableContentMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsumableContentMessageAttribute.swift; sourceTree = ""; }; - D00D34411E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeConsumeMessageContentsOperations.swift; sourceTree = ""; }; - D00D34441E6EDD420057B307 /* SynchronizeConsumeMessageContentsOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeConsumeMessageContentsOperation.swift; sourceTree = ""; }; - D00D97C61E32901700E5C2B6 /* PeerInputActivity.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerInputActivity.swift; sourceTree = ""; }; - D00D97C91E32917C00E5C2B6 /* PeerInputActivityManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerInputActivityManager.swift; sourceTree = ""; }; - D00DBBD61E64E41100DB5485 /* CreateSecretChat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CreateSecretChat.swift; sourceTree = ""; }; - D00DBBD91E64E67E00DB5485 /* UpdateSecretChat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateSecretChat.swift; sourceTree = ""; }; - D0119CAF20CA9EA800895300 /* MarkAllChatsAsRead.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkAllChatsAsRead.swift; sourceTree = ""; }; - D0136308208F3B0900EB3653 /* SecureIdValueContentError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdValueContentError.swift; sourceTree = ""; }; - D015E00D225CA61100CB9E8A /* FindChannelById.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FindChannelById.swift; sourceTree = ""; }; - D01749581E1092BC0057C89A /* RequestStartBot.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestStartBot.swift; sourceTree = ""; }; - D017495D1E118F790057C89A /* AccountStateManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountStateManager.swift; sourceTree = ""; }; - D017495F1E118FC30057C89A /* AccountIntermediateState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountIntermediateState.swift; sourceTree = ""; }; - D0177B7A1DF8A16C00A5083A /* SecretChatState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatState.swift; sourceTree = ""; }; - D01843A72190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfirmTwoStepRecoveryEmail.swift; sourceTree = ""; }; - D018D3361E648ACF00C5E089 /* ChannelCreation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelCreation.swift; sourceTree = ""; }; - D018EE0120458E1E00CBB130 /* SecretChatLayerNegotiation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretChatLayerNegotiation.swift; sourceTree = ""; }; - D018EE042045E95000CBB130 /* CheckPeerChatServiceActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckPeerChatServiceActions.swift; sourceTree = ""; }; - D019B1CB1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatRekeySession.swift; sourceTree = ""; }; - D01A21A51F38CDC700DDA104 /* SynchronizeSavedStickersOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeSavedStickersOperation.swift; sourceTree = ""; }; - D01A21A81F38CDDC00DDA104 /* ManagedSynchronizeSavedStickersOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeSavedStickersOperations.swift; sourceTree = ""; }; - D01A21AB1F38D10E00DDA104 /* SavedStickerItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SavedStickerItem.swift; sourceTree = ""; }; - D01AC91C1DD5DA5E00E8160F /* RequestMessageActionCallback.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestMessageActionCallback.swift; sourceTree = ""; }; - D01AC9201DD5E7E500E8160F /* RequestEditMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestEditMessage.swift; sourceTree = ""; }; - D01AC9221DD5E9A200E8160F /* ApplyUpdateMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApplyUpdateMessage.swift; sourceTree = ""; }; - D01B264823324CF800A6448B /* Wallets.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Wallets.swift; sourceTree = ""; }; - D01B27A11E394D8B0022A4C0 /* PrivacySettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrivacySettings.swift; sourceTree = ""; }; - D01C06B61FBBA269001561AB /* CanSendMessagesToPeer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CanSendMessagesToPeer.swift; sourceTree = ""; }; - D01C7ED21EF5DF83008305F1 /* LimitsConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LimitsConfiguration.swift; sourceTree = ""; }; - D01C7ED51EF5E468008305F1 /* ProxySettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProxySettings.swift; sourceTree = ""; }; - D01C7F031EFC1C49008305F1 /* DeviceContact.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeviceContact.swift; sourceTree = ""; }; - D01D6BF81E42A713006151C6 /* SearchStickers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchStickers.swift; sourceTree = ""; }; - D0208AF32306E92B00A23503 /* libphonenumbermac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libphonenumbermac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D021E0DE1DB539FC00C6B04F /* StickerPack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPack.swift; sourceTree = ""; }; - D021E0E11DB5401A00C6B04F /* StickerManagement.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerManagement.swift; sourceTree = ""; }; - D0223A971EA564BD00211D94 /* MediaResourceNetworkStatsTag.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaResourceNetworkStatsTag.swift; sourceTree = ""; }; - D0223A9A1EA5654D00211D94 /* TelegramMediaResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaResource.swift; sourceTree = ""; }; - D02395D51F8D09A50070F5C2 /* ChannelHistoryAvailabilitySettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelHistoryAvailabilitySettings.swift; sourceTree = ""; }; - D023E67721540624008C27D1 /* UpdateMessageMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateMessageMedia.swift; sourceTree = ""; }; - D026099D20C695AF006C34AC /* Wallpapers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Wallpapers.swift; sourceTree = ""; }; - D02609BB20C6EB97006C34AC /* Crypto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Crypto.h; sourceTree = ""; }; - D02609BE20C6EC08006C34AC /* Crypto.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Crypto.m; sourceTree = ""; }; - D02ABC7A1E30058F00CAE539 /* DeleteMessagesInteractively.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeleteMessagesInteractively.swift; sourceTree = ""; }; - D02ABC7D1E3109F000CAE539 /* CloudChatRemoveMessagesOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CloudChatRemoveMessagesOperation.swift; sourceTree = ""; }; - D02ABC801E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedCloudChatRemoveMessagesOperations.swift; sourceTree = ""; }; - D02B198F21FB1D520094A764 /* RegisterNotificationToken.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterNotificationToken.swift; sourceTree = ""; }; - D02D60A6206BA5F900FEFE1E /* SecureIdValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdValue.swift; sourceTree = ""; }; - D02D60AA206BA64100FEFE1E /* VerifySecureIdValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerifySecureIdValue.swift; sourceTree = ""; }; - D02DADC02139A1FC00116225 /* ContactSyncManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactSyncManager.swift; sourceTree = ""; }; - D03121011DA57E93006A2A60 /* TelegramPeerNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramPeerNotificationSettings.swift; sourceTree = ""; }; - D0329EA122FC5A7C00F9F071 /* MessageReactions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReactions.swift; sourceTree = ""; }; - D0329EA422FC5A9600F9F071 /* ReactionsMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionsMessageAttribute.swift; sourceTree = ""; }; - D032F5BB20EF84FD00037B6C /* FetchedMediaResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchedMediaResource.swift; sourceTree = ""; }; - D033873F223BD48B007A2CE4 /* ContactsSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactsSettings.swift; sourceTree = ""; }; - D0338742223BD532007A2CE4 /* InitializeAccountAfterLogin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InitializeAccountAfterLogin.swift; sourceTree = ""; }; - D033FEAF1E61EB0200644997 /* PeerContactSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerContactSettings.swift; sourceTree = ""; }; - D033FEB21E61F3C000644997 /* ReportPeer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReportPeer.swift; sourceTree = ""; }; - D033FEB51E61F3F900644997 /* BlockedPeers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BlockedPeers.swift; sourceTree = ""; }; - D035732E22B5C24F00F0920D /* TelegramApi.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramApi.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0380DB9204EF306000414AB /* MessageMediaPreuploadManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageMediaPreuploadManager.swift; sourceTree = ""; }; - D03B0CB81D62233400955575 /* Either.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Either.swift; sourceTree = ""; }; - D03B0CBC1D62234300955575 /* Regex.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Regex.swift; sourceTree = ""; }; - D03B0CBE1D62234A00955575 /* Log.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Log.swift; sourceTree = ""; }; - D03B0CC01D62235000955575 /* StringFormat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringFormat.swift; sourceTree = ""; }; - D03B0CCD1D62239600955575 /* PhoneNumbers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhoneNumbers.swift; sourceTree = ""; }; - D03B0CD21D62244300955575 /* Namespaces.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Namespaces.swift; sourceTree = ""; }; - D03B0CD41D62245300955575 /* TelegramUser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramUser.swift; sourceTree = ""; }; - D03B0CD51D62245300955575 /* TelegramGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramGroup.swift; sourceTree = ""; }; - D03B0CD81D62245B00955575 /* PeerUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerUtils.swift; sourceTree = ""; }; - D03B0CDA1D62245F00955575 /* ApiUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApiUtils.swift; sourceTree = ""; }; - D03B0CDF1D62249100955575 /* StoreMessage_Telegram.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoreMessage_Telegram.swift; sourceTree = ""; }; - D03B0CE11D62249B00955575 /* InlineBotMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InlineBotMessageAttribute.swift; sourceTree = ""; }; - D03B0CE31D62249F00955575 /* TextEntitiesMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextEntitiesMessageAttribute.swift; sourceTree = ""; }; - D03B0CE51D6224A700955575 /* ReplyMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReplyMessageAttribute.swift; sourceTree = ""; }; - D03B0CE71D6224AD00955575 /* ViewCountMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewCountMessageAttribute.swift; sourceTree = ""; }; - D03B0CEC1D62250800955575 /* TelegramMediaAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaAction.swift; sourceTree = ""; }; - D03B0CED1D62250800955575 /* TelegramMediaContact.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaContact.swift; sourceTree = ""; }; - D03B0CEE1D62250800955575 /* TelegramMediaFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaFile.swift; sourceTree = ""; }; - D03B0CEF1D62250800955575 /* TelegramMediaImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaImage.swift; sourceTree = ""; }; - D03B0CF11D62250800955575 /* TelegramMediaMap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaMap.swift; sourceTree = ""; }; - D03B0CF31D62250800955575 /* TelegramMediaWebpage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaWebpage.swift; sourceTree = ""; }; - D03B0CFF1D62255C00955575 /* ChannelState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelState.swift; sourceTree = ""; }; - D03B0D001D62255C00955575 /* EnqueueMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EnqueueMessage.swift; sourceTree = ""; }; - D03B0D011D62255C00955575 /* Holes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Holes.swift; sourceTree = ""; }; - D03B0D031D62255C00955575 /* AccountStateManagementUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountStateManagementUtils.swift; sourceTree = ""; }; - D03B0D041D62255C00955575 /* SynchronizePeerReadState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizePeerReadState.swift; sourceTree = ""; }; - D03B0D051D62255C00955575 /* UpdateGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateGroup.swift; sourceTree = ""; }; - D03B0D061D62255C00955575 /* UpdateMessageService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateMessageService.swift; sourceTree = ""; }; - D03B0D071D62255C00955575 /* UpdatesApiUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdatesApiUtils.swift; sourceTree = ""; }; - D03B0D391D6319E200955575 /* Fetch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Fetch.swift; sourceTree = ""; }; - D03B0D431D6319F900955575 /* CloudFileMediaResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CloudFileMediaResource.swift; sourceTree = ""; }; - D03B0D561D631A6900955575 /* Download.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Download.swift; sourceTree = ""; }; - D03B0D571D631A6900955575 /* MultipartFetch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultipartFetch.swift; sourceTree = ""; }; - D03B0D581D631A6900955575 /* Network.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Network.swift; sourceTree = ""; }; - D03B0D591D631A6900955575 /* Serialization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Serialization.swift; sourceTree = ""; }; - D03B0D611D631A8B00955575 /* Account.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Account.swift; sourceTree = ""; }; - D03B0D631D631A8B00955575 /* AccountViewTracker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountViewTracker.swift; sourceTree = ""; }; - D03B0D641D631A8B00955575 /* RecentPeers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentPeers.swift; sourceTree = ""; }; - D03B0D6C1D631AA300955575 /* ContactManagement.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactManagement.swift; sourceTree = ""; }; - D03B0D711D631ABA00955575 /* SearchMessages.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchMessages.swift; sourceTree = ""; }; - D03B0E411D631E6600955575 /* NetworkLogging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkLogging.h; sourceTree = ""; }; - D03B0E421D631E6600955575 /* NetworkLogging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NetworkLogging.m; sourceTree = ""; }; - D03B0E571D631EB900955575 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; - D03B0E591D63215200955575 /* TelegramCore.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = TelegramCore.xcconfig; path = TelegramCore/Config/TelegramCore.xcconfig; sourceTree = ""; }; - D03B0E5D1D6327F600955575 /* SSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03B0E5F1D6327FF00955575 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; - D03B0E611D63281A00955575 /* libavcodec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavcodec.a; path = "third-party/FFmpeg-iOS/lib/libavcodec.a"; sourceTree = ""; }; - D03B0E621D63281A00955575 /* libavformat.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavformat.a; path = "third-party/FFmpeg-iOS/lib/libavformat.a"; sourceTree = ""; }; - D03B0E631D63281A00955575 /* libavutil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavutil.a; path = "third-party/FFmpeg-iOS/lib/libavutil.a"; sourceTree = ""; }; - D03B0E641D63281A00955575 /* libswresample.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libswresample.a; path = "third-party/FFmpeg-iOS/lib/libswresample.a"; sourceTree = ""; }; - D03B0E691D63283000955575 /* libwebp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libwebp.a; path = "third-party/libwebp/lib/libwebp.a"; sourceTree = ""; }; - D03B0E6B1D63283C00955575 /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; }; - D03C53761DAFF20F004C17B3 /* MultipartUpload.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultipartUpload.swift; sourceTree = ""; }; - D03DC90F1F82E344001D584C /* AccountStateReset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountStateReset.swift; sourceTree = ""; }; - D03DC9121F82F89D001D584C /* RegularChatState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegularChatState.swift; sourceTree = ""; }; - D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RestrictedContentMessageAttribute.swift; sourceTree = ""; }; - D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidateAddressNameInteractive.swift; sourceTree = ""; }; - D03E452C2305C15A0049C28B /* FormatPhoneNumber.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FormatPhoneNumber.h; sourceTree = ""; }; - D03E452D2305C15A0049C28B /* FormatPhoneNumber.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FormatPhoneNumber.m; sourceTree = ""; }; - D03E45D02305D34C0049C28B /* libphonenumber_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libphonenumber_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E45D32305D44A0049C28B /* libphonenumber.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = libphonenumber.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoggedOutAccountAttribute.swift; sourceTree = ""; }; - D041E3F41E535464008C24B4 /* AddPeerMember.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddPeerMember.swift; sourceTree = ""; }; - D041E3F71E535A88008C24B4 /* RemovePeerMember.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemovePeerMember.swift; sourceTree = ""; }; - D042C6821E8D9DF800C863B0 /* Unixtime.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Unixtime.swift; sourceTree = ""; }; - D0439B5C228ECB270067E026 /* RequestPhoneNumber.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestPhoneNumber.swift; sourceTree = ""; }; - D0439B5F228EDE430067E026 /* ContentRequiresValidationMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentRequiresValidationMessageAttribute.swift; sourceTree = ""; }; - D0448C8D1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProcessSecretChatIncomingDecryptedOperations.swift; sourceTree = ""; }; - D0448C901E251F96005A61A7 /* SecretChatEncryption.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatEncryption.swift; sourceTree = ""; }; - D0448C9E1E27F5EB005A61A7 /* Random.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Random.swift; sourceTree = ""; }; - D0448CA11E291B14005A61A7 /* FetchSecretFileResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchSecretFileResource.swift; sourceTree = ""; }; - D0448CA41E29215A005A61A7 /* MediaResourceApiUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaResourceApiUtils.swift; sourceTree = ""; }; - D04554A521B43440007A6DD9 /* CancelAccountReset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CancelAccountReset.swift; sourceTree = ""; }; - D0458C871E69B4AB00FB34C1 /* OutgoingContentInfoMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutgoingContentInfoMessageAttribute.swift; sourceTree = ""; }; - D0467D0A20D7F1E60055C28F /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SynchronizeMarkAllUnseenPersonalMessagesOperation.swift; sourceTree = ""; }; - D0467D1420D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift; sourceTree = ""; }; - D048B4AB20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedProxyInfoUpdates.swift; sourceTree = ""; }; - D049EAD41E43D98500A2CD3A /* RecentMediaItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentMediaItem.swift; sourceTree = ""; }; - D049EAD71E43DAD200A2CD3A /* ManagedRecentStickers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedRecentStickers.swift; sourceTree = ""; }; - D049EAE71E44B67100A2CD3A /* RecentPeerItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentPeerItem.swift; sourceTree = ""; }; - D049EAEA1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentlySearchedPeerIds.swift; sourceTree = ""; }; - D049EAF41E44DF3300A2CD3A /* AccountState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountState.swift; sourceTree = ""; }; - D04CAA591E83310D0047E51F /* MD5.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MD5.swift; sourceTree = ""; }; - D04D21362306EC9A00609388 /* MacInternalUpdater.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MacInternalUpdater.swift; sourceTree = ""; }; - D04D213B230AC35A00609388 /* WasScheduledMessageAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WasScheduledMessageAttribute.swift; sourceTree = ""; }; - D04D8FF3209A4B0700865719 /* NetworkSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkSettings.swift; sourceTree = ""; }; - D050F20F1E48AB0600988324 /* InteractivePhoneFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InteractivePhoneFormatter.swift; sourceTree = ""; }; - D050F2501E4A59C200988324 /* JoinLink.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JoinLink.swift; sourceTree = ""; }; - D051DB13215EC5A300F30F92 /* AppChangelogState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppChangelogState.swift; sourceTree = ""; }; - D051DB16215ECC4D00F30F92 /* AppChangelog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppChangelog.swift; sourceTree = ""; }; - D0528E591E658B3600E2FEF5 /* ManagedLocalInputActivities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedLocalInputActivities.swift; sourceTree = ""; }; - D0528E5F1E65B94E00E2FEF5 /* SingleMessageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleMessageView.swift; sourceTree = ""; }; - D0528E641E65C82400E2FEF5 /* UpdateContactName.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateContactName.swift; sourceTree = ""; }; - D0528E691E65DD2100E2FEF5 /* WebpagePreview.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebpagePreview.swift; sourceTree = ""; }; - D0529D2321A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SynchronizeRecentlyUsedMediaOperations.swift; sourceTree = ""; }; - D0529D2621A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeRecentlyUsedMediaOperations.swift; sourceTree = ""; }; - D053B4171F18DE4F00E2D58A /* AuthorSignatureMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorSignatureMessageAttribute.swift; sourceTree = ""; }; - D053B41A1F18DEF500E2D58A /* TelegramMediaExpiredContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramMediaExpiredContent.swift; sourceTree = ""; }; - D05452061E7B5093006EEF19 /* LoadedStickerPack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadedStickerPack.swift; sourceTree = ""; }; - D054648A2073854A002ECC1E /* SecureIdPersonalDetailsValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdPersonalDetailsValue.swift; sourceTree = ""; }; - D054648D20738626002ECC1E /* SecureIdDriversLicenseValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdDriversLicenseValue.swift; sourceTree = ""; }; - D054649020738653002ECC1E /* SecureIdIDCardValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdIDCardValue.swift; sourceTree = ""; }; - D0546493207386D7002ECC1E /* SecureIdUtilityBillValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdUtilityBillValue.swift; sourceTree = ""; }; - D05464962073872C002ECC1E /* SecureIdBankStatementValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdBankStatementValue.swift; sourceTree = ""; }; - D054649920738760002ECC1E /* SecureIdRentalAgreementValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdRentalAgreementValue.swift; sourceTree = ""; }; - D0561DE21E5737FC00E6B9E9 /* UpdatePeerInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdatePeerInfo.swift; sourceTree = ""; }; - D0561DE91E5754FA00E6B9E9 /* ChannelAdmins.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelAdmins.swift; sourceTree = ""; }; - D0575AF01E9FFA5D006F2541 /* SynchronizeSavedGifsOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeSavedGifsOperation.swift; sourceTree = ""; }; - D0575AF31E9FFDDD006F2541 /* ManagedSynchronizeSavedGifsOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeSavedGifsOperations.swift; sourceTree = ""; }; - D0575C2C22B922DF00A71A0E /* DeleteAccount.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteAccount.swift; sourceTree = ""; }; - D058E0D01E8AD65C00A442DE /* StandaloneSendMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StandaloneSendMessage.swift; sourceTree = ""; }; - D05A32E01E6F0982002760B4 /* UpdatedAccountPrivacySettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdatedAccountPrivacySettings.swift; sourceTree = ""; }; - D05A32E31E6F0B2E002760B4 /* RecentAccountSessions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentAccountSessions.swift; sourceTree = ""; }; - D05A32E61E6F0B5C002760B4 /* RecentAccountSession.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecentAccountSession.swift; sourceTree = ""; }; - D05D8B362192F8AF0064586F /* LocalizationListState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizationListState.swift; sourceTree = ""; }; - D0613FC91E60440600202CDB /* InvitationLinks.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InvitationLinks.swift; sourceTree = ""; }; - D0613FCE1E60520700202CDB /* ChannelMembers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMembers.swift; sourceTree = ""; }; - D0613FD61E606B3B00202CDB /* ConvertGroupToSupergroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConvertGroupToSupergroup.swift; sourceTree = ""; }; - D0633CD12253A528003DD95F /* ChatOnlineMembers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatOnlineMembers.swift; sourceTree = ""; }; - D0633CDA2253C0D3003DD95F /* CloudMediaResourceParameters.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudMediaResourceParameters.swift; sourceTree = ""; }; - D0642EF81F3E05D700792790 /* EarliestUnseenPersonalMentionMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EarliestUnseenPersonalMentionMessage.swift; sourceTree = ""; }; - D06706641D512ADB00DED3E3 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D06706651D512ADB00DED3E3 /* Display.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D06706671D512ADB00DED3E3 /* Postbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D06706681D512ADB00DED3E3 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D067066E1D512AEB00DED3E3 /* MtProtoKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MtProtoKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D069257022D8B526002FC021 /* SecretChatSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecretChatSettings.swift; sourceTree = ""; }; - D06CA13422772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedNotificationSettingsBehaviors.swift; sourceTree = ""; }; - D06ECFC720B810D300C576C2 /* TermsOfService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TermsOfService.swift; sourceTree = ""; }; - D07047B31F3DF1FE00F6A8D4 /* ConsumablePersonalMentionMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsumablePersonalMentionMessageAttribute.swift; sourceTree = ""; }; - D07047B61F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedConsumePersonalMessagesActions.swift; sourceTree = ""; }; - D07047B91F3DF75500F6A8D4 /* ConsumePersonalMessageAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConsumePersonalMessageAction.swift; sourceTree = ""; }; - D072F356231542740009E66F /* MessageReactionList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReactionList.swift; sourceTree = ""; }; - D073CE5C1DCB97F6007511FD /* ForwardSourceInfoAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ForwardSourceInfoAttribute.swift; sourceTree = ""; }; - D073CE5F1DCB9D14007511FD /* OutgoingMessageInfoAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutgoingMessageInfoAttribute.swift; sourceTree = ""; }; - D0750C8F22B2FD8300BE5F6E /* PeerAccessHash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerAccessHash.swift; sourceTree = ""; }; - D0754D291EEE10FC00884F6E /* BotPaymentForm.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BotPaymentForm.swift; sourceTree = ""; }; - D076F8882296D8E9004F895A /* ManageChannelDiscussionGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManageChannelDiscussionGroup.swift; sourceTree = ""; }; - D07827BA1E00451F00071108 /* SearchPeers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchPeers.swift; sourceTree = ""; }; - D07827C81E02F59C00071108 /* InstantPage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InstantPage.swift; sourceTree = ""; }; - D07827CA1E02F5B200071108 /* RichText.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RichText.swift; sourceTree = ""; }; - D07E413E208A769D00FCA8F0 /* ProxyServersStatuses.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyServersStatuses.swift; sourceTree = ""; }; - D081E109217F5ADE003CD921 /* LocalizationPreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalizationPreview.swift; sourceTree = ""; }; - D08774FB1E3E39F600A97350 /* ManagedGlobalNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedGlobalNotificationSettings.swift; sourceTree = ""; }; - D08774FD1E3E3A3500A97350 /* GlobalNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GlobalNotificationSettings.swift; sourceTree = ""; }; - D0879BC722F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageRepresentationWithReference.swift; sourceTree = ""; }; - D08984F12114B97400918162 /* ClearCloudDrafts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClearCloudDrafts.swift; sourceTree = ""; }; - D08984F421187ECA00918162 /* NetworkType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkType.swift; sourceTree = ""; }; - D08984F72118816900918162 /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = ""; }; - D08984F82118816A00918162 /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = ""; }; - D08CAA7C1ED77EE90000FDA8 /* LocalizationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizationSettings.swift; sourceTree = ""; }; - D08CAA7F1ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SuggestedLocalizationEntry.swift; sourceTree = ""; }; - D08CAA831ED8164B0000FDA8 /* Localization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Localization.swift; sourceTree = ""; }; - D08CAA861ED81DD40000FDA8 /* LocalizationInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocalizationInfo.swift; sourceTree = ""; }; - D08CAA8B1ED81EDF0000FDA8 /* Localizations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Localizations.swift; sourceTree = ""; }; - D08F4A651E79CC4A00A2AA15 /* SynchronizeInstalledStickerPacksOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeInstalledStickerPacksOperations.swift; sourceTree = ""; }; - D08F4A681E79CECB00A2AA15 /* ManagedSynchronizeInstalledStickerPacksOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeInstalledStickerPacksOperations.swift; sourceTree = ""; }; - D093D7ED206413F600BC3599 /* SecureIdDataTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdDataTypes.swift; sourceTree = ""; }; - D093D7F420641A4900BC3599 /* SecureIdPhoneValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdPhoneValue.swift; sourceTree = ""; }; - D093D7F820641AA500BC3599 /* SecureIdEmailValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdEmailValue.swift; sourceTree = ""; }; - D093D805206539D000BC3599 /* SaveSecureIdValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SaveSecureIdValue.swift; sourceTree = ""; }; - D098907E22942E3B0053F151 /* ActiveSessionsContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActiveSessionsContext.swift; sourceTree = ""; }; - D099D7451EEF0C2700A3128C /* ChannelMessageStateVersionAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelMessageStateVersionAttribute.swift; sourceTree = ""; }; - D099D7481EEF418D00A3128C /* HistoryViewStateValidation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HistoryViewStateValidation.swift; sourceTree = ""; }; - D099E221229420D600561B75 /* BlockedPeersContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockedPeersContext.swift; sourceTree = ""; }; - D099EA1B1DE72867001AF5A8 /* PeerCommands.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerCommands.swift; sourceTree = ""; }; - D09A2FE51D7CD4940018FB72 /* TelegramChannel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramChannel.swift; sourceTree = ""; }; - D09A2FEA1D7CDC320018FB72 /* PeerAccessRestrictionInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerAccessRestrictionInfo.swift; sourceTree = ""; }; - D09BB6B31DB02C2B00A905C0 /* PendingMessageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageManager.swift; sourceTree = ""; }; - D09BB6B51DB0428000A905C0 /* PendingMessageUploadedContent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PendingMessageUploadedContent.swift; sourceTree = ""; }; - D09D8C011D4FAB1D0081DBEC /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D09D8C041D4FAB1D0081DBEC /* TelegramCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TelegramCore.h; sourceTree = ""; }; - D09D8C051D4FAB1D0081DBEC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D09D8C0A1D4FAB1D0081DBEC /* TelegramCoreTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TelegramCoreTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - D09D8C0F1D4FAB1D0081DBEC /* TelegramCoreTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TelegramCoreTests.m; sourceTree = ""; }; - D09D8C111D4FAB1D0081DBEC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0A3E446214802C7008ACEF6 /* VoipConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoipConfiguration.swift; sourceTree = ""; }; - D0A472B51F4CBE8B00E0EEDA /* LoadedPeer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadedPeer.swift; sourceTree = ""; }; - D0A8998E217A37A000759EE6 /* NotificationAutolockReportManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationAutolockReportManager.swift; sourceTree = ""; }; - D0AAD1A71E32602500D5B9DE /* AutoremoveTimeoutMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutoremoveTimeoutMessageAttribute.swift; sourceTree = ""; }; - D0AAD1A91E32638500D5B9DE /* ApplyMaxReadIndexInteractively.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApplyMaxReadIndexInteractively.swift; sourceTree = ""; }; - D0AAD1B71E326FE200D5B9DE /* ManagedAutoremoveMessageOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedAutoremoveMessageOperations.swift; sourceTree = ""; }; - D0AB0B911D65E9FA002C78E7 /* ManagedServiceViews.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedServiceViews.swift; sourceTree = ""; }; - D0AB0B931D662ECE002C78E7 /* ManagedMessageHistoryHoles.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedMessageHistoryHoles.swift; sourceTree = ""; }; - D0AB0B951D662F0B002C78E7 /* ManagedChatListHoles.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedChatListHoles.swift; sourceTree = ""; }; - D0AB0B991D666520002C78E7 /* ManagedSynchronizePeerReadStates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizePeerReadStates.swift; sourceTree = ""; }; - D0AB262521C2F991008F6685 /* TelegramMediaPoll.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TelegramMediaPoll.swift; sourceTree = ""; }; - D0AB262A21C3CE80008F6685 /* Polls.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Polls.swift; sourceTree = ""; }; - D0AC49491D7097A400AA55DA /* SSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0AD02E21FFFA14800C1DCFF /* PeerLiveLocationsContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerLiveLocationsContext.swift; sourceTree = ""; }; - D0ADF910212B00DD00310BBC /* SecureIdConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdConfiguration.swift; sourceTree = ""; }; - D0AF32211FAC95C20097362B /* StandaloneUploadedMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StandaloneUploadedMedia.swift; sourceTree = ""; }; - D0AF32301FACEDEC0097362B /* CoreSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreSettings.swift; sourceTree = ""; }; - D0AF32341FAE8C6B0097362B /* MultipeerManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultipeerManager.swift; sourceTree = ""; }; - D0AF32371FAE8C910097362B /* MultipeerConnectivity.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MultipeerConnectivity.framework; path = System/Library/Frameworks/MultipeerConnectivity.framework; sourceTree = SDKROOT; }; - D0B1671C1F9EA2C300976B40 /* ChatHistoryPreloadManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatHistoryPreloadManager.swift; sourceTree = ""; }; - D0B167221F9F972E00976B40 /* LoggingSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggingSettings.swift; sourceTree = ""; }; - D0B2F7732052DEF700D3BFB9 /* TelegramDeviceContactImportInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TelegramDeviceContactImportInfo.swift; sourceTree = ""; }; - D0B417C01D7DCEEF004562A4 /* ApiGroupOrChannel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApiGroupOrChannel.swift; sourceTree = ""; }; - D0B418671D7E03D5004562A4 /* TelegramCoreMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TelegramCoreMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0B418691D7E03D5004562A4 /* TelegramCoreMac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TelegramCoreMac.h; sourceTree = ""; }; - D0B4186A1D7E03D5004562A4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0B418701D7E0409004562A4 /* PostboxMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = PostboxMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0B418711D7E0409004562A4 /* SwiftSignalKitMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SwiftSignalKitMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0B4187E1D7E054E004562A4 /* MtProtoKitMac.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MtProtoKitMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0B843801DA6EDAE005F29E1 /* CachedUserData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedUserData.swift; sourceTree = ""; }; - D0B843821DA6EDB8005F29E1 /* CachedGroupData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedGroupData.swift; sourceTree = ""; }; - D0B843841DA6EDC4005F29E1 /* CachedChannelData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedChannelData.swift; sourceTree = ""; }; - D0B843861DA6F705005F29E1 /* UpdateCachedPeerData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateCachedPeerData.swift; sourceTree = ""; }; - D0B843881DA7AB96005F29E1 /* ExportedInvitation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExportedInvitation.swift; sourceTree = ""; }; - D0B8438B1DA7CF50005F29E1 /* BotInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BotInfo.swift; sourceTree = ""; }; - D0B8438D1DA7D296005F29E1 /* CachedGroupParticipants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedGroupParticipants.swift; sourceTree = ""; }; - D0B843961DA7FBBC005F29E1 /* ChangePeerNotificationSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangePeerNotificationSettings.swift; sourceTree = ""; }; - D0B844521DAC0773005F29E1 /* TelegramUserPresence.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramUserPresence.swift; sourceTree = ""; }; - D0B85AC41F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentlyUsedHashtags.swift; sourceTree = ""; }; - D0BAAA13230FDB4100AFC473 /* ProcessRemovedMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProcessRemovedMedia.swift; sourceTree = ""; }; - D0BB7C591E5C8074001527C3 /* ChannelParticipants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelParticipants.swift; sourceTree = ""; }; - D0BC386D1E3FDAB70044D6FE /* CreateGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CreateGroup.swift; sourceTree = ""; }; - D0BC386F1E40853E0044D6FE /* UpdatePeers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdatePeers.swift; sourceTree = ""; }; - D0BC38741E40A7F70044D6FE /* RemovePeerChat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemovePeerChat.swift; sourceTree = ""; }; - D0BC38761E40BAAA0044D6FE /* ManagedSynchronizePinnedChatsOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizePinnedChatsOperations.swift; sourceTree = ""; }; - D0BC38781E40BAF20044D6FE /* SynchronizePinnedChatsOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizePinnedChatsOperation.swift; sourceTree = ""; }; - D0BC387A1E40D2880044D6FE /* TogglePeerChatPinned.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TogglePeerChatPinned.swift; sourceTree = ""; }; - D0BE303920619EE800FBE6D8 /* SecureIdForm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdForm.swift; sourceTree = ""; }; - D0BE303C2061A29100FBE6D8 /* RequestSecureIdForm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestSecureIdForm.swift; sourceTree = ""; }; - D0BE304A20627D9800FBE6D8 /* AccessSecureId.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessSecureId.swift; sourceTree = ""; }; - D0BEAF5C1E54941B00BD963D /* Authorization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Authorization.swift; sourceTree = ""; }; - D0BEAF5F1E54ACF900BD963D /* AccountManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountManager.swift; sourceTree = ""; }; - D0C0B5891ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedLocalizationUpdatesOperations.swift; sourceTree = ""; }; - D0C0B58C1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeLocalizationUpdatesOperation.swift; sourceTree = ""; }; - D0C26D651FE022DB004ABF18 /* SynchronizeGroupedPeersOperation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SynchronizeGroupedPeersOperation.swift; sourceTree = ""; }; - D0C26D681FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeGroupedPeersOperations.swift; sourceTree = ""; }; - D0C26D6B1FE286C3004ABF18 /* FetchChatList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FetchChatList.swift; sourceTree = ""; }; - D0C27B3E1F4B51D000A4E170 /* CachedStickerPack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachedStickerPack.swift; sourceTree = ""; }; - D0C27B411F4B58C000A4E170 /* PeerSpecificStickerPack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerSpecificStickerPack.swift; sourceTree = ""; }; - D0C44B601FC616E200227BE0 /* SearchGroupMembers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchGroupMembers.swift; sourceTree = ""; }; - D0C48F381E8138DF0075317D /* ArchivedStickerPacksInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArchivedStickerPacksInfo.swift; sourceTree = ""; }; - D0C48F3B1E8142EF0075317D /* LoadedPeerFromMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadedPeerFromMessage.swift; sourceTree = ""; }; - D0C50E331E93A86600F62E39 /* CallSessionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CallSessionManager.swift; sourceTree = ""; }; - D0CA3F83207391560042D2B6 /* SecureIdPadding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdPadding.swift; sourceTree = ""; }; - D0CA8E4A227209C4008A74C3 /* ManagedSynchronizeGroupMessageStats.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeGroupMessageStats.swift; sourceTree = ""; }; - D0CAF2E91D75EC600011F558 /* MtProtoKitDynamic.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = MtProtoKitDynamic.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0CC4AA322BA44960088F36D /* TelegramApi.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramApi.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0CC4ADB22BA47280088F36D /* TelegramApiMac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramApiMac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0D1026B2212FE52003ADA5E /* AccountSortOrderAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountSortOrderAttribute.swift; sourceTree = ""; }; - D0D376E522DCCFD600FA7D7C /* SlowMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SlowMode.swift; sourceTree = ""; }; - D0D748011E7AE98B00F4B1F6 /* StickerPackInteractiveOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickerPackInteractiveOperations.swift; sourceTree = ""; }; - D0DA1D311F7043D50034E892 /* ManagedPendingPeerNotificationSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagedPendingPeerNotificationSettings.swift; sourceTree = ""; }; - D0DB7F021F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InstallInteractiveReadMessagesAction.swift; sourceTree = ""; }; - D0DC354D1DE368F7000195EB /* RequestChatContextResults.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestChatContextResults.swift; sourceTree = ""; }; - D0DC354F1DE36900000195EB /* ChatContextResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatContextResult.swift; sourceTree = ""; }; - D0DF0C891D819C7E008AEB01 /* JoinChannel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JoinChannel.swift; sourceTree = ""; }; - D0DF0C901D81A857008AEB01 /* ImageRepresentationsUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageRepresentationsUtils.swift; sourceTree = ""; }; - D0DF0C921D81AD09008AEB01 /* MessageUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageUtils.swift; sourceTree = ""; }; - D0DF0CA71D82BF32008AEB01 /* PeerParticipants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerParticipants.swift; sourceTree = ""; }; - D0DFD5DE1FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CachedSentMediaReferences.swift; sourceTree = ""; }; - D0E23DD41E8042F500B9B6D2 /* FeaturedStickerPack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FeaturedStickerPack.swift; sourceTree = ""; }; - D0E23DD91E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift; sourceTree = ""; }; - D0E23DDE1E8082A400B9B6D2 /* ArchivedStickerPacks.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArchivedStickerPacks.swift; sourceTree = ""; }; - D0E305A61E5B5CBE00D7A3A2 /* PeerAdmins.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerAdmins.swift; sourceTree = ""; }; - D0E305A91E5BA02D00D7A3A2 /* ChannelBlacklist.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChannelBlacklist.swift; sourceTree = ""; }; - D0E35A0D1DE4953E00BC6096 /* FetchHttpResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchHttpResource.swift; sourceTree = ""; }; - D0E35A0F1DE49E1C00BC6096 /* OutgoingMessageWithChatContextResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutgoingMessageWithChatContextResult.swift; sourceTree = ""; }; - D0E35A111DE4A25E00BC6096 /* OutgoingChatContextResultMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutgoingChatContextResultMessageAttribute.swift; sourceTree = ""; }; - D0E412D6206A866B00BEE4A2 /* UploadSecureIdFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadSecureIdFile.swift; sourceTree = ""; }; - D0E412DB206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdValueAccessContext.swift; sourceTree = ""; }; - D0E412E0206AB24700BEE4A2 /* SecureFileMediaResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureFileMediaResource.swift; sourceTree = ""; }; - D0E412E6206ABC7500BEE4A2 /* EncryptedMediaResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptedMediaResource.swift; sourceTree = ""; }; - D0E412E9206AD18E00BEE4A2 /* DecryptedResourceData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecryptedResourceData.swift; sourceTree = ""; }; - D0E412ED206AF65500BEE4A2 /* GrantSecureIdAccess.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GrantSecureIdAccess.swift; sourceTree = ""; }; - D0E412F0206B9BB700BEE4A2 /* SecureIdPassportValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdPassportValue.swift; sourceTree = ""; }; - D0E412F3206B9BDC00BEE4A2 /* SecureIdVerificationDocumentReference.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdVerificationDocumentReference.swift; sourceTree = ""; }; - D0E41300206B9E6E00BEE4A2 /* SecureIdAddressValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdAddressValue.swift; sourceTree = ""; }; - D0E6521E1E3A364A004EEA91 /* UpdateAccountPeerName.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdateAccountPeerName.swift; sourceTree = ""; }; - D0E817482010E7E300B82BBB /* ChannelAdminEventLogContext.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelAdminEventLogContext.swift; sourceTree = ""; }; - D0E8B8B22044706300605593 /* ForwardGame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ForwardGame.swift; sourceTree = ""; }; - D0EA188120D3D2B1001AEE19 /* RemoteStorageConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteStorageConfiguration.swift; sourceTree = ""; }; - D0EC55992101ED0800D1992C /* DeleteMessages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteMessages.swift; sourceTree = ""; }; - D0EE7FC020986BF400981319 /* SecureIdInternalPassportValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdInternalPassportValue.swift; sourceTree = ""; }; - D0EE7FC320986C5300981319 /* SecureIdPassportRegistrationValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdPassportRegistrationValue.swift; sourceTree = ""; }; - D0EE7FC62098853100981319 /* SecureIdTemporaryRegistrationValue.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureIdTemporaryRegistrationValue.swift; sourceTree = ""; }; - D0F02CE41E9926C40065DEE2 /* ManagedConfigurationUpdates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedConfigurationUpdates.swift; sourceTree = ""; }; - D0F19F6520E6620D00EEC860 /* MultiplexedRequestManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultiplexedRequestManager.swift; sourceTree = ""; }; - D0F3A89E1E82C65400B4C64C /* SynchronizeChatInputStateOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeChatInputStateOperation.swift; sourceTree = ""; }; - D0F3A8A11E82C65E00B4C64C /* ManagedSynchronizeChatInputStateOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSynchronizeChatInputStateOperations.swift; sourceTree = ""; }; - D0F3A8A41E82C94C00B4C64C /* SynchronizeableChatInputState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronizeableChatInputState.swift; sourceTree = ""; }; - D0F3A8A71E82CD7D00B4C64C /* UpdatePeerChatInterfaceState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UpdatePeerChatInterfaceState.swift; sourceTree = ""; }; - D0F3CC7C1DDE289E008148FA /* ResolvePeerByName.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ResolvePeerByName.swift; sourceTree = ""; }; - D0F53BE81E784A4800117362 /* ChangeAccountPhoneNumber.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangeAccountPhoneNumber.swift; sourceTree = ""; }; - D0F760D722202FE20074F7E5 /* ChannelStats.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelStats.swift; sourceTree = ""; }; - D0F7AB2B1DCE889D009AD9A1 /* EditedMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditedMessageAttribute.swift; sourceTree = ""; }; - D0F7AB2E1DCF507E009AD9A1 /* ReplyMarkupMessageAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReplyMarkupMessageAttribute.swift; sourceTree = ""; }; - D0F8C39F2017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlobalTelegramCoreConfiguration.swift; sourceTree = ""; }; - D0FA08BA2046B37900DD23FC /* ContentPrivacySettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentPrivacySettings.swift; sourceTree = ""; }; - D0FA0ABC1E76C908005BB9B7 /* TwoStepVerification.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoStepVerification.swift; sourceTree = ""; }; - D0FA35041EA6135D00E56FFA /* CacheStorageSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CacheStorageSettings.swift; sourceTree = ""; }; - D0FA35071EA632E400E56FFA /* CollectCacheUsageStats.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectCacheUsageStats.swift; sourceTree = ""; }; - D0FA8B971E1E955C001E855B /* SecretChatOutgoingOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatOutgoingOperation.swift; sourceTree = ""; }; - D0FA8B9D1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatIncomingEncryptedOperation.swift; sourceTree = ""; }; - D0FA8BA01E1F99E1001E855B /* SecretChatFileReference.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatFileReference.swift; sourceTree = ""; }; - D0FA8BA31E1FA341001E855B /* SecretChatKeychain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatKeychain.swift; sourceTree = ""; }; - D0FA8BA61E1FA6DF001E855B /* TelegramSecretChat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramSecretChat.swift; sourceTree = ""; }; - D0FA8BA91E1FB76E001E855B /* ManagedSecretChatOutgoingOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ManagedSecretChatOutgoingOperations.swift; sourceTree = ""; }; - D0FA8BAC1E1FD6E2001E855B /* MemoryBufferExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MemoryBufferExtensions.swift; sourceTree = ""; }; - D0FA8BAF1E1FEC7E001E855B /* SecretChatEncryptionConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatEncryptionConfig.swift; sourceTree = ""; }; - D0FA8BB21E201B02001E855B /* ProcessSecretChatIncomingEncryptedOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProcessSecretChatIncomingEncryptedOperations.swift; sourceTree = ""; }; - D0FA8BB81E2240B4001E855B /* SecretChatIncomingDecryptedOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretChatIncomingDecryptedOperation.swift; sourceTree = ""; }; - D0FC195A2020D1CA00FEDBB2 /* PeerGroupMessageStateVersionAttribute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerGroupMessageStateVersionAttribute.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - D09D8BFD1D4FAB1D0081DBEC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E45D42305D44A0049C28B /* libphonenumber.framework in Frameworks */, - D035732F22B5C24F00F0920D /* TelegramApi.framework in Frameworks */, - D0CAF2EA1D75EC600011F558 /* MtProtoKitDynamic.framework in Frameworks */, - D067066C1D512ADB00DED3E3 /* Postbox.framework in Frameworks */, - D067066D1D512ADB00DED3E3 /* SwiftSignalKit.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D09D8C071D4FAB1D0081DBEC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D09D8C0B1D4FAB1D0081DBEC /* TelegramCore.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0B418631D7E03D5004562A4 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D0208AF42306E92B00A23503 /* libphonenumbermac.framework in Frameworks */, - D0CC4ADC22BA47280088F36D /* TelegramApiMac.framework in Frameworks */, - D0B4187F1D7E054E004562A4 /* MtProtoKitMac.framework in Frameworks */, - D0B418721D7E0409004562A4 /* PostboxMac.framework in Frameworks */, - D0B418731D7E0409004562A4 /* SwiftSignalKitMac.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - D01B264723324CE600A6448B /* Wallet */ = { - isa = PBXGroup; - children = ( - D01B264823324CF800A6448B /* Wallets.swift */, - ); - name = Wallet; - sourceTree = ""; - }; - D01B27A01E394D7B0022A4C0 /* Settings */ = { - isa = PBXGroup; - children = ( - 0900555521E4A96D0030924C /* Wallpaper.swift */, - D01B27A11E394D8B0022A4C0 /* PrivacySettings.swift */, - D08774FD1E3E3A3500A97350 /* GlobalNotificationSettings.swift */, - D05A32E61E6F0B5C002760B4 /* RecentAccountSession.swift */, - D0FA35041EA6135D00E56FFA /* CacheStorageSettings.swift */, - D08CAA7C1ED77EE90000FDA8 /* LocalizationSettings.swift */, - D01C7ED21EF5DF83008305F1 /* LimitsConfiguration.swift */, - D0A3E446214802C7008ACEF6 /* VoipConfiguration.swift */, - D0EA188120D3D2B1001AEE19 /* RemoteStorageConfiguration.swift */, - D01C7ED51EF5E468008305F1 /* ProxySettings.swift */, - D04D8FF3209A4B0700865719 /* NetworkSettings.swift */, - D0B167221F9F972E00976B40 /* LoggingSettings.swift */, - D0AF32301FACEDEC0097362B /* CoreSettings.swift */, - D0FA08BA2046B37900DD23FC /* ContentPrivacySettings.swift */, - D051DB13215EC5A300F30F92 /* AppChangelogState.swift */, - 0962E66E21B6147600245FD9 /* AppConfiguration.swift */, - 0962E68021BAA20E00245FD9 /* SearchBotsConfiguration.swift */, - 09EDAD372213120C0012A50B /* AutodownloadSettings.swift */, - 09B4A9B5230FBB2B005C2E08 /* Theme.swift */, - ); - name = Settings; - sourceTree = ""; - }; - D021E0DD1DB539E800C6B04F /* Item Collections */ = { - isa = PBXGroup; - children = ( - D021E0DE1DB539FC00C6B04F /* StickerPack.swift */, - D049EAD41E43D98500A2CD3A /* RecentMediaItem.swift */, - D01A21AB1F38D10E00DDA104 /* SavedStickerItem.swift */, - D049EAE71E44B67100A2CD3A /* RecentPeerItem.swift */, - D0E23DD41E8042F500B9B6D2 /* FeaturedStickerPack.swift */, - D0C48F381E8138DF0075317D /* ArchivedStickerPacksInfo.swift */, - ); - name = "Item Collections"; - sourceTree = ""; - }; - D021E0E01DB5400200C6B04F /* Sticker Management */ = { - isa = PBXGroup; - children = ( - D021E0E11DB5401A00C6B04F /* StickerManagement.swift */, - D01D6BF81E42A713006151C6 /* SearchStickers.swift */, - D049EAD71E43DAD200A2CD3A /* ManagedRecentStickers.swift */, - C251D7421E65E50500283EDE /* StickerSetInstallation.swift */, - D0D748011E7AE98B00F4B1F6 /* StickerPackInteractiveOperations.swift */, - D05452061E7B5093006EEF19 /* LoadedStickerPack.swift */, - D0E23DDE1E8082A400B9B6D2 /* ArchivedStickerPacks.swift */, - D0C27B3E1F4B51D000A4E170 /* CachedStickerPack.swift */, - D0C27B411F4B58C000A4E170 /* PeerSpecificStickerPack.swift */, - C29340F21F5080FA0074991E /* UpdateGroupSpecificStickerset.swift */, - ); - name = "Sticker Management"; - sourceTree = ""; - }; - D03B0CB71D62232000955575 /* Utils */ = { - isa = PBXGroup; - children = ( - D0DF0C901D81A857008AEB01 /* ImageRepresentationsUtils.swift */, - D0DF0C921D81AD09008AEB01 /* MessageUtils.swift */, - D03B0CB81D62233400955575 /* Either.swift */, - D03B0CBC1D62234300955575 /* Regex.swift */, - D03B0CBE1D62234A00955575 /* Log.swift */, - D03B0CC01D62235000955575 /* StringFormat.swift */, - D03B0CCD1D62239600955575 /* PhoneNumbers.swift */, - D0FA8BAC1E1FD6E2001E855B /* MemoryBufferExtensions.swift */, - D0448C9E1E27F5EB005A61A7 /* Random.swift */, - D050F20F1E48AB0600988324 /* InteractivePhoneFormatter.swift */, - D04CAA591E83310D0047E51F /* MD5.swift */, - D042C6821E8D9DF800C863B0 /* Unixtime.swift */, - D01C7F031EFC1C49008305F1 /* DeviceContact.swift */, - D01C06B61FBBA269001561AB /* CanSendMessagesToPeer.swift */, - D0F8C39F2017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift */, - D0E412E9206AD18E00BEE4A2 /* DecryptedResourceData.swift */, - C28D3CEF20D3DA900027F4D6 /* DeepLinkInfo.swift */, - 0962E66C21B5C56F00245FD9 /* JSON.swift */, - 0962E67421B6437600245FD9 /* SplitTest.swift */, - D03E452C2305C15A0049C28B /* FormatPhoneNumber.h */, - D03E452D2305C15A0049C28B /* FormatPhoneNumber.m */, - ); - name = Utils; - sourceTree = ""; - }; - D03B0CCF1D62242200955575 /* Objects */ = { - isa = PBXGroup; - children = ( - D03B0CD21D62244300955575 /* Namespaces.swift */, - D03E5E0A1E55E0220029569A /* Accounts */, - D03B0CD01D62242C00955575 /* Peers */, - D03B0CD11D62242F00955575 /* Messages */, - D0FA8B961E1E952D001E855B /* Secret Chats */, - D021E0DD1DB539E800C6B04F /* Item Collections */, - D01B27A01E394D7B0022A4C0 /* Settings */, - D08CAA821ED816290000FDA8 /* Localization */, - ); - name = Objects; - sourceTree = ""; - }; - D03B0CD01D62242C00955575 /* Peers */ = { - isa = PBXGroup; - children = ( - D03B0CDA1D62245F00955575 /* ApiUtils.swift */, - D03B0CD81D62245B00955575 /* PeerUtils.swift */, - D09A2FEA1D7CDC320018FB72 /* PeerAccessRestrictionInfo.swift */, - D0750C8F22B2FD8300BE5F6E /* PeerAccessHash.swift */, - D03B0CD41D62245300955575 /* TelegramUser.swift */, - D03B0CD51D62245300955575 /* TelegramGroup.swift */, - D09A2FE51D7CD4940018FB72 /* TelegramChannel.swift */, - D0FA8BA61E1FA6DF001E855B /* TelegramSecretChat.swift */, - D0B417C01D7DCEEF004562A4 /* ApiGroupOrChannel.swift */, - D003702A1DA42586004308D3 /* PhoneNumber.swift */, - D0B8438B1DA7CF50005F29E1 /* BotInfo.swift */, - D0B843881DA7AB96005F29E1 /* ExportedInvitation.swift */, - D0B8438D1DA7D296005F29E1 /* CachedGroupParticipants.swift */, - D0B843801DA6EDAE005F29E1 /* CachedUserData.swift */, - D0B843821DA6EDB8005F29E1 /* CachedGroupData.swift */, - D00C7CCB1E3620C30080C3D5 /* CachedChannelParticipants.swift */, - D0B843841DA6EDC4005F29E1 /* CachedChannelData.swift */, - D0B844521DAC0773005F29E1 /* TelegramUserPresence.swift */, - D00D97C61E32901700E5C2B6 /* PeerInputActivity.swift */, - D033FEAF1E61EB0200644997 /* PeerContactSettings.swift */, - D0F3A8A41E82C94C00B4C64C /* SynchronizeableChatInputState.swift */, - D00BDA181EE593D600C64C5E /* TelegramChannelAdminRights.swift */, - D00BDA1B1EE5952A00C64C5E /* TelegramChannelBannedRights.swift */, - ); - name = Peers; - sourceTree = ""; - }; - D03B0CD11D62242F00955575 /* Messages */ = { - isa = PBXGroup; - children = ( - D03B0CDF1D62249100955575 /* StoreMessage_Telegram.swift */, - D03B0CDC1D62247800955575 /* Attributes */, - D03B0CDD1D62247D00955575 /* Media */, - ); - name = Messages; - sourceTree = ""; - }; - D03B0CDC1D62247800955575 /* Attributes */ = { - isa = PBXGroup; - children = ( - D0AAD1A71E32602500D5B9DE /* AutoremoveTimeoutMessageAttribute.swift */, - D03B0CE71D6224AD00955575 /* ViewCountMessageAttribute.swift */, - D03B0CE51D6224A700955575 /* ReplyMessageAttribute.swift */, - D03B0CE31D62249F00955575 /* TextEntitiesMessageAttribute.swift */, - D03B0CE11D62249B00955575 /* InlineBotMessageAttribute.swift */, - D053B4171F18DE4F00E2D58A /* AuthorSignatureMessageAttribute.swift */, - D073CE5C1DCB97F6007511FD /* ForwardSourceInfoAttribute.swift */, - D073CE5F1DCB9D14007511FD /* OutgoingMessageInfoAttribute.swift */, - D0F7AB2B1DCE889D009AD9A1 /* EditedMessageAttribute.swift */, - D0F7AB2E1DCF507E009AD9A1 /* ReplyMarkupMessageAttribute.swift */, - D0E35A111DE4A25E00BC6096 /* OutgoingChatContextResultMessageAttribute.swift */, - D0458C871E69B4AB00FB34C1 /* OutgoingContentInfoMessageAttribute.swift */, - D00D343E1E6ED6E50057B307 /* ConsumableContentMessageAttribute.swift */, - D07047B31F3DF1FE00F6A8D4 /* ConsumablePersonalMentionMessageAttribute.swift */, - D099D7451EEF0C2700A3128C /* ChannelMessageStateVersionAttribute.swift */, - D0FC195A2020D1CA00FEDBB2 /* PeerGroupMessageStateVersionAttribute.swift */, - C28725411EF967E700613564 /* NotificationInfoMessageAttribute.swift */, - C210DD611FBDB90800F673D8 /* SourceReferenceMessageAttribute.swift */, - D0439B5F228EDE430067E026 /* ContentRequiresValidationMessageAttribute.swift */, - 09FC986A22FD882200915E37 /* OutgoingScheduleInfoMessageAttribute.swift */, - D0329EA422FC5A9600F9F071 /* ReactionsMessageAttribute.swift */, - D03E3D27230447960049C28B /* RestrictedContentMessageAttribute.swift */, - D04D213B230AC35A00609388 /* WasScheduledMessageAttribute.swift */, - ); - name = Attributes; - sourceTree = ""; - }; - D03B0CDD1D62247D00955575 /* Media */ = { - isa = PBXGroup; - children = ( - D00D34381E6EC9520057B307 /* TeleramMediaUnsupported.swift */, - D03B0CEC1D62250800955575 /* TelegramMediaAction.swift */, - D03B0CED1D62250800955575 /* TelegramMediaContact.swift */, - D03B0CEE1D62250800955575 /* TelegramMediaFile.swift */, - D03B0CEF1D62250800955575 /* TelegramMediaImage.swift */, - D03B0CF11D62250800955575 /* TelegramMediaMap.swift */, - D03B0CF31D62250800955575 /* TelegramMediaWebpage.swift */, - D00D343B1E6EC9770057B307 /* TelegramMediaGame.swift */, - D053B41A1F18DEF500E2D58A /* TelegramMediaExpiredContent.swift */, - D07827CA1E02F5B200071108 /* RichText.swift */, - D07827C81E02F59C00071108 /* InstantPage.swift */, - C2E064671ECEEF0A00387BB8 /* TelegramMediaInvoice.swift */, - C2E0646C1ECF171D00387BB8 /* TelegramMediaWebDocument.swift */, - D0AB262521C2F991008F6685 /* TelegramMediaPoll.swift */, - ); - name = Media; - sourceTree = ""; - }; - D03B0CFE1D62252200955575 /* State */ = { - isa = PBXGroup; - children = ( - D03B0CFF1D62255C00955575 /* ChannelState.swift */, - D03DC9121F82F89D001D584C /* RegularChatState.swift */, - D03121011DA57E93006A2A60 /* TelegramPeerNotificationSettings.swift */, - D03B0D001D62255C00955575 /* EnqueueMessage.swift */, - D03B0D011D62255C00955575 /* Holes.swift */, - D017495D1E118F790057C89A /* AccountStateManager.swift */, - D017495F1E118FC30057C89A /* AccountIntermediateState.swift */, - D03B0D031D62255C00955575 /* AccountStateManagementUtils.swift */, - D03B0D051D62255C00955575 /* UpdateGroup.swift */, - D03DC90F1F82E344001D584C /* AccountStateReset.swift */, - D03B0D041D62255C00955575 /* SynchronizePeerReadState.swift */, - D03B0D061D62255C00955575 /* UpdateMessageService.swift */, - D03B0D071D62255C00955575 /* UpdatesApiUtils.swift */, - D09BB6B31DB02C2B00A905C0 /* PendingMessageManager.swift */, - D09BB6B51DB0428000A905C0 /* PendingMessageUploadedContent.swift */, - D01AC9221DD5E9A200E8160F /* ApplyUpdateMessage.swift */, - D02ABC7D1E3109F000CAE539 /* CloudChatRemoveMessagesOperation.swift */, - D02ABC801E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift */, - D0AAD1B71E326FE200D5B9DE /* ManagedAutoremoveMessageOperations.swift */, - D00D97C91E32917C00E5C2B6 /* PeerInputActivityManager.swift */, - D0AB0B991D666520002C78E7 /* ManagedSynchronizePeerReadStates.swift */, - D0BC38781E40BAF20044D6FE /* SynchronizePinnedChatsOperation.swift */, - D0BC38761E40BAAA0044D6FE /* ManagedSynchronizePinnedChatsOperations.swift */, - D00DBBD91E64E67E00DB5485 /* UpdateSecretChat.swift */, - D00D34441E6EDD420057B307 /* SynchronizeConsumeMessageContentsOperation.swift */, - D00D34411E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift */, - D08F4A651E79CC4A00A2AA15 /* SynchronizeInstalledStickerPacksOperations.swift */, - D08F4A681E79CECB00A2AA15 /* ManagedSynchronizeInstalledStickerPacksOperations.swift */, - D0E23DD91E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift */, - D0F3A89E1E82C65400B4C64C /* SynchronizeChatInputStateOperation.swift */, - D0F3A8A11E82C65E00B4C64C /* ManagedSynchronizeChatInputStateOperations.swift */, - D0575AF01E9FFA5D006F2541 /* SynchronizeSavedGifsOperation.swift */, - D0575AF31E9FFDDD006F2541 /* ManagedSynchronizeSavedGifsOperations.swift */, - D01A21A51F38CDC700DDA104 /* SynchronizeSavedStickersOperation.swift */, - D01A21A81F38CDDC00DDA104 /* ManagedSynchronizeSavedStickersOperations.swift */, - D058E0D01E8AD65C00A442DE /* StandaloneSendMessage.swift */, - D0F02CE41E9926C40065DEE2 /* ManagedConfigurationUpdates.swift */, - D0C0B58C1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift */, - D0C0B5891ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift */, - D07047B91F3DF75500F6A8D4 /* ConsumePersonalMessageAction.swift */, - D07047B61F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift */, - D0C26D651FE022DB004ABF18 /* SynchronizeGroupedPeersOperation.swift */, - D0C26D681FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift */, - D0AF32211FAC95C20097362B /* StandaloneUploadedMedia.swift */, - D0380DB9204EF306000414AB /* MessageMediaPreuploadManager.swift */, - D048B4AB20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift */, - D0467D0A20D7F1E60055C28F /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift */, - D0467D1420D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift */, - D00422D221677F4500719B67 /* ManagedAccountPresence.swift */, - D0A8998E217A37A000759EE6 /* NotificationAutolockReportManager.swift */, - 09028385218E5DBB0067EFBD /* ManagedVoipConfigurationUpdates.swift */, - D0529D2321A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift */, - D0529D2621A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift */, - 0962E66621B59BAA00245FD9 /* ManagedAppConfigurationUpdates.swift */, - 0962E66821B5A11100245FD9 /* SynchronizeAppLogEventsOperation.swift */, - 0962E66A21B5A41C00245FD9 /* ManagedSynchronizeAppLogEventsOperations.swift */, - 09EDAD3922131D010012A50B /* ManagedAutodownloadSettingsUpdates.swift */, - 093857A72243D87900EB6A54 /* SynchronizeEmojiKeywordsOperation.swift */, - 093857A62243D87800EB6A54 /* ManagedSynchronizeEmojiKeywordsOperations.swift */, - D0CA8E4A227209C4008A74C3 /* ManagedSynchronizeGroupMessageStats.swift */, - D06CA13422772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift */, - 0925903622F0D02D003D6283 /* ManagedAnimatedEmojiUpdates.swift */, - ); - name = State; - sourceTree = ""; - }; - D03B0D111D62256B00955575 /* Media */ = { - isa = PBXGroup; - children = ( - D03B0D121D62257600955575 /* Resources */, - D0DFD5DE1FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift */, - D0879BC722F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift */, - D0BAAA13230FDB4100AFC473 /* ProcessRemovedMedia.swift */, - ); - name = Media; - sourceTree = ""; - }; - D03B0D121D62257600955575 /* Resources */ = { - isa = PBXGroup; - children = ( - D032F5BB20EF84FD00037B6C /* FetchedMediaResource.swift */, - D0223A9A1EA5654D00211D94 /* TelegramMediaResource.swift */, - D03B0D431D6319F900955575 /* CloudFileMediaResource.swift */, - D0223A971EA564BD00211D94 /* MediaResourceNetworkStatsTag.swift */, - D03B0D391D6319E200955575 /* Fetch.swift */, - D0E35A0D1DE4953E00BC6096 /* FetchHttpResource.swift */, - D0448CA11E291B14005A61A7 /* FetchSecretFileResource.swift */, - D0448CA41E29215A005A61A7 /* MediaResourceApiUtils.swift */, - D0E412E6206ABC7500BEE4A2 /* EncryptedMediaResource.swift */, - D0E412E0206AB24700BEE4A2 /* SecureFileMediaResource.swift */, - D0633CDA2253C0D3003DD95F /* CloudMediaResourceParameters.swift */, - ); - name = Resources; - sourceTree = ""; - }; - D03B0D531D631A4400955575 /* Network */ = { - isa = PBXGroup; - children = ( - D03B0D561D631A6900955575 /* Download.swift */, - D03B0D571D631A6900955575 /* MultipartFetch.swift */, - D03C53761DAFF20F004C17B3 /* MultipartUpload.swift */, - D03B0D581D631A6900955575 /* Network.swift */, - D03B0D591D631A6900955575 /* Serialization.swift */, - D0F19F6520E6620D00EEC860 /* MultiplexedRequestManager.swift */, - D08984F421187ECA00918162 /* NetworkType.swift */, - ); - name = Network; - sourceTree = ""; - }; - D03B0D601D631A7200955575 /* Account */ = { - isa = PBXGroup; - children = ( - D03B0D611D631A8B00955575 /* Account.swift */, - D049EAF41E44DF3300A2CD3A /* AccountState.swift */, - D03B0D631D631A8B00955575 /* AccountViewTracker.swift */, - D03B0D641D631A8B00955575 /* RecentPeers.swift */, - D0AB0B911D65E9FA002C78E7 /* ManagedServiceViews.swift */, - D0AB0B931D662ECE002C78E7 /* ManagedMessageHistoryHoles.swift */, - D0AB0B951D662F0B002C78E7 /* ManagedChatListHoles.swift */, - D0B843861DA6F705005F29E1 /* UpdateCachedPeerData.swift */, - D0E6521E1E3A364A004EEA91 /* UpdateAccountPeerName.swift */, - D08774FB1E3E39F600A97350 /* ManagedGlobalNotificationSettings.swift */, - D0BEAF5C1E54941B00BD963D /* Authorization.swift */, - D0BEAF5F1E54ACF900BD963D /* AccountManager.swift */, - D0528E591E658B3600E2FEF5 /* ManagedLocalInputActivities.swift */, - D099D7481EEF418D00A3128C /* HistoryViewStateValidation.swift */, - D0B1671C1F9EA2C300976B40 /* ChatHistoryPreloadManager.swift */, - D06ECFC720B810D300C576C2 /* TermsOfService.swift */, - D051DB16215ECC4D00F30F92 /* AppChangelog.swift */, - D01843A72190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift */, - D02B198F21FB1D520094A764 /* RegisterNotificationToken.swift */, - D0338742223BD532007A2CE4 /* InitializeAccountAfterLogin.swift */, - D0575C2C22B922DF00A71A0E /* DeleteAccount.swift */, - 09EC0DE822C6825D00E7185B /* AppUpdate.swift */, - ); - name = Account; - sourceTree = ""; - }; - D03B0D691D631A9200955575 /* Contacts */ = { - isa = PBXGroup; - children = ( - D03B0D6C1D631AA300955575 /* ContactManagement.swift */, - D0B2F7732052DEF700D3BFB9 /* TelegramDeviceContactImportInfo.swift */, - D02DADC02139A1FC00116225 /* ContactSyncManager.swift */, - D0439B5C228ECB270067E026 /* RequestPhoneNumber.swift */, - ); - name = Contacts; - sourceTree = ""; - }; - D03B0D6E1D631AA900955575 /* Messages */ = { - isa = PBXGroup; - children = ( - D03B0D711D631ABA00955575 /* SearchMessages.swift */, - D0EC55992101ED0800D1992C /* DeleteMessages.swift */, - D01AC91C1DD5DA5E00E8160F /* RequestMessageActionCallback.swift */, - D0AB262A21C3CE80008F6685 /* Polls.swift */, - D0329EA122FC5A7C00F9F071 /* MessageReactions.swift */, - D072F356231542740009E66F /* MessageReactionList.swift */, - D01AC9201DD5E7E500E8160F /* RequestEditMessage.swift */, - D0DC354D1DE368F7000195EB /* RequestChatContextResults.swift */, - D0DC354F1DE36900000195EB /* ChatContextResult.swift */, - D0E35A0F1DE49E1C00BC6096 /* OutgoingMessageWithChatContextResult.swift */, - D01749581E1092BC0057C89A /* RequestStartBot.swift */, - D02ABC7A1E30058F00CAE539 /* DeleteMessagesInteractively.swift */, - D0AAD1A91E32638500D5B9DE /* ApplyMaxReadIndexInteractively.swift */, - D00C7CDF1E3785700080C3D5 /* MarkMessageContentAsConsumedInteractively.swift */, - C239BE961E62EE1E00C2C453 /* LoadMessagesIfNecessary.swift */, - D0528E5F1E65B94E00E2FEF5 /* SingleMessageView.swift */, - D0528E691E65DD2100E2FEF5 /* WebpagePreview.swift */, - D0FA35071EA632E400E56FFA /* CollectCacheUsageStats.swift */, - D0642EF81F3E05D700792790 /* EarliestUnseenPersonalMentionMessage.swift */, - D0DB7F021F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift */, - D0B85AC41F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift */, - D0E8B8B22044706300605593 /* ForwardGame.swift */, - D0119CAF20CA9EA800895300 /* MarkAllChatsAsRead.swift */, - D023E67721540624008C27D1 /* UpdateMessageMedia.swift */, - 09FC986C22FD99D400915E37 /* ScheduledMessages.swift */, - ); - name = Messages; - sourceTree = ""; - }; - D03B0E3A1D631E4400955575 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - D03B0E411D631E6600955575 /* NetworkLogging.h */, - D03B0E421D631E6600955575 /* NetworkLogging.m */, - D02609BB20C6EB97006C34AC /* Crypto.h */, - D02609BE20C6EC08006C34AC /* Crypto.m */, - D08984F72118816900918162 /* Reachability.h */, - D08984F82118816A00918162 /* Reachability.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - D03E5E0A1E55E0220029569A /* Accounts */ = { - isa = PBXGroup; - children = ( - D03E5E0B1E55E02D0029569A /* LoggedOutAccountAttribute.swift */, - D00580AD21E2A08900CB7CD3 /* AccountEnvironmentAttribute.swift */, - D0D1026B2212FE52003ADA5E /* AccountSortOrderAttribute.swift */, - ); - name = Accounts; - sourceTree = ""; - }; - D04D21352306EC8700609388 /* Mac Internal Updater */ = { - isa = PBXGroup; - children = ( - D04D21362306EC9A00609388 /* MacInternalUpdater.swift */, - ); - name = "Mac Internal Updater"; - sourceTree = ""; - }; - D05A32DF1E6F096B002760B4 /* Settings */ = { - isa = PBXGroup; - children = ( - D026099D20C695AF006C34AC /* Wallpapers.swift */, - D05A32E01E6F0982002760B4 /* UpdatedAccountPrivacySettings.swift */, - D05A32E31E6F0B2E002760B4 /* RecentAccountSessions.swift */, - D0FA0ABC1E76C908005BB9B7 /* TwoStepVerification.swift */, - D0F53BE81E784A4800117362 /* ChangeAccountPhoneNumber.swift */, - 9FC8ADAA206BBFF10094F7B4 /* RecentWebSessions.swift */, - D07E413E208A769D00FCA8F0 /* ProxyServersStatuses.swift */, - D08984F12114B97400918162 /* ClearCloudDrafts.swift */, - D04554A521B43440007A6DD9 /* CancelAccountReset.swift */, - D033873F223BD48B007A2CE4 /* ContactsSettings.swift */, - D099E221229420D600561B75 /* BlockedPeersContext.swift */, - D098907E22942E3B0053F151 /* ActiveSessionsContext.swift */, - D069257022D8B526002FC021 /* SecretChatSettings.swift */, - 09B4A9B3230FB70B005C2E08 /* Themes.swift */, - ); - name = Settings; - sourceTree = ""; - }; - D06706631D512ADA00DED3E3 /* Frameworks */ = { - isa = PBXGroup; - children = ( - D0208AF32306E92B00A23503 /* libphonenumbermac.framework */, - D03E45D32305D44A0049C28B /* libphonenumber.framework */, - D03E45D02305D34C0049C28B /* libphonenumber_iOS.framework */, - D0CC4ADB22BA47280088F36D /* TelegramApiMac.framework */, - D0CC4AA322BA44960088F36D /* TelegramApi.framework */, - D035732E22B5C24F00F0920D /* TelegramApi.framework */, - D0AF32371FAE8C910097362B /* MultipeerConnectivity.framework */, - D0B4187E1D7E054E004562A4 /* MtProtoKitMac.framework */, - D0B418701D7E0409004562A4 /* PostboxMac.framework */, - D0B418711D7E0409004562A4 /* SwiftSignalKitMac.framework */, - D0CAF2E91D75EC600011F558 /* MtProtoKitDynamic.framework */, - D0AC49491D7097A400AA55DA /* SSignalKit.framework */, - D03B0E6B1D63283C00955575 /* libiconv.tbd */, - D03B0E691D63283000955575 /* libwebp.a */, - D03B0E611D63281A00955575 /* libavcodec.a */, - D03B0E621D63281A00955575 /* libavformat.a */, - D03B0E631D63281A00955575 /* libavutil.a */, - D03B0E641D63281A00955575 /* libswresample.a */, - D03B0E5F1D6327FF00955575 /* libz.tbd */, - D03B0E5D1D6327F600955575 /* SSignalKit.framework */, - D03B0E571D631EB900955575 /* CoreMedia.framework */, - D067066E1D512AEB00DED3E3 /* MtProtoKit.framework */, - D06706641D512ADB00DED3E3 /* AsyncDisplayKit.framework */, - D06706651D512ADB00DED3E3 /* Display.framework */, - D06706671D512ADB00DED3E3 /* Postbox.framework */, - D06706681D512ADB00DED3E3 /* SwiftSignalKit.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - D0754D281EEE10D800884F6E /* Bot Payments */ = { - isa = PBXGroup; - children = ( - D0754D291EEE10FC00884F6E /* BotPaymentForm.swift */, - ); - name = "Bot Payments"; - sourceTree = ""; - }; - D08CAA821ED816290000FDA8 /* Localization */ = { - isa = PBXGroup; - children = ( - D08CAA7F1ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift */, - D08CAA831ED8164B0000FDA8 /* Localization.swift */, - D08CAA861ED81DD40000FDA8 /* LocalizationInfo.swift */, - D05D8B362192F8AF0064586F /* LocalizationListState.swift */, - 093857AA2243D88C00EB6A54 /* EmojiKeywords.swift */, - ); - name = Localization; - sourceTree = ""; - }; - D08CAA8A1ED81EA10000FDA8 /* Localization */ = { - isa = PBXGroup; - children = ( - D08CAA8B1ED81EDF0000FDA8 /* Localizations.swift */, - D081E109217F5ADE003CD921 /* LocalizationPreview.swift */, - ); - name = Localization; - sourceTree = ""; - }; - D093D7E82064135300BC3599 /* Values */ = { - isa = PBXGroup; - children = ( - D02D60A6206BA5F900FEFE1E /* SecureIdValue.swift */, - D0E412DB206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift */, - D093D7ED206413F600BC3599 /* SecureIdDataTypes.swift */, - D0E412F3206B9BDC00BEE4A2 /* SecureIdVerificationDocumentReference.swift */, - D054648A2073854A002ECC1E /* SecureIdPersonalDetailsValue.swift */, - D0EE7FC020986BF400981319 /* SecureIdInternalPassportValue.swift */, - D0E412F0206B9BB700BEE4A2 /* SecureIdPassportValue.swift */, - D054648D20738626002ECC1E /* SecureIdDriversLicenseValue.swift */, - D054649020738653002ECC1E /* SecureIdIDCardValue.swift */, - D0E41300206B9E6E00BEE4A2 /* SecureIdAddressValue.swift */, - D0546493207386D7002ECC1E /* SecureIdUtilityBillValue.swift */, - D05464962073872C002ECC1E /* SecureIdBankStatementValue.swift */, - D054649920738760002ECC1E /* SecureIdRentalAgreementValue.swift */, - D093D7F420641A4900BC3599 /* SecureIdPhoneValue.swift */, - D093D7F820641AA500BC3599 /* SecureIdEmailValue.swift */, - D0EE7FC320986C5300981319 /* SecureIdPassportRegistrationValue.swift */, - D0EE7FC62098853100981319 /* SecureIdTemporaryRegistrationValue.swift */, - ); - name = Values; - sourceTree = ""; - }; - D09D8BF71D4FAB1D0081DBEC = { - isa = PBXGroup; - children = ( - D03B0E591D63215200955575 /* TelegramCore.xcconfig */, - D09D8C031D4FAB1D0081DBEC /* TelegramCore */, - D09D8C0E1D4FAB1D0081DBEC /* TelegramCoreTests */, - D0B418681D7E03D5004562A4 /* TelegramCoreMac */, - D09D8C021D4FAB1D0081DBEC /* Products */, - D06706631D512ADA00DED3E3 /* Frameworks */, - ); - sourceTree = ""; - }; - D09D8C021D4FAB1D0081DBEC /* Products */ = { - isa = PBXGroup; - children = ( - D09D8C011D4FAB1D0081DBEC /* TelegramCore.framework */, - D09D8C0A1D4FAB1D0081DBEC /* TelegramCoreTests.xctest */, - D0B418671D7E03D5004562A4 /* TelegramCoreMac.framework */, - ); - name = Products; - sourceTree = ""; - }; - D09D8C031D4FAB1D0081DBEC /* TelegramCore */ = { - isa = PBXGroup; - children = ( - D01B264723324CE600A6448B /* Wallet */, - D04D21352306EC8700609388 /* Mac Internal Updater */, - D03B0CB71D62232000955575 /* Utils */, - D03B0CCF1D62242200955575 /* Objects */, - D03B0CFE1D62252200955575 /* State */, - D03B0D111D62256B00955575 /* Media */, - D03B0D531D631A4400955575 /* Network */, - D03B0D601D631A7200955575 /* Account */, - D03B0D691D631A9200955575 /* Contacts */, - D03B0D6E1D631AA900955575 /* Messages */, - D0DF0C881D819C5F008AEB01 /* Peers */, - D0754D281EEE10D800884F6E /* Bot Payments */, - D0BE303820619E9E00FBE6D8 /* Secure ID */, - D0C50E2F1E93A83B00F62E39 /* Calls */, - D021E0E01DB5400200C6B04F /* Sticker Management */, - D05A32DF1E6F096B002760B4 /* Settings */, - D08CAA8A1ED81EA10000FDA8 /* Localization */, - D0AD02E61FFFA15C00C1DCFF /* Live Location */, - D0AF32331FAE8C540097362B /* Multipeer */, - D03B0E3A1D631E4400955575 /* Supporting Files */, - D09D8C041D4FAB1D0081DBEC /* TelegramCore.h */, - D09D8C051D4FAB1D0081DBEC /* Info.plist */, - ); - path = TelegramCore; - sourceTree = ""; - }; - D09D8C0E1D4FAB1D0081DBEC /* TelegramCoreTests */ = { - isa = PBXGroup; - children = ( - D09D8C0F1D4FAB1D0081DBEC /* TelegramCoreTests.m */, - D09D8C111D4FAB1D0081DBEC /* Info.plist */, - ); - path = TelegramCoreTests; - sourceTree = ""; - }; - D0AD02E61FFFA15C00C1DCFF /* Live Location */ = { - isa = PBXGroup; - children = ( - D0AD02E21FFFA14800C1DCFF /* PeerLiveLocationsContext.swift */, - ); - name = "Live Location"; - sourceTree = ""; - }; - D0AF32331FAE8C540097362B /* Multipeer */ = { - isa = PBXGroup; - children = ( - D0AF32341FAE8C6B0097362B /* MultipeerManager.swift */, - ); - name = Multipeer; - sourceTree = ""; - }; - D0B418681D7E03D5004562A4 /* TelegramCoreMac */ = { - isa = PBXGroup; - children = ( - D0B418691D7E03D5004562A4 /* TelegramCoreMac.h */, - D0B4186A1D7E03D5004562A4 /* Info.plist */, - ); - path = TelegramCoreMac; - sourceTree = ""; - }; - D0BE303820619E9E00FBE6D8 /* Secure ID */ = { - isa = PBXGroup; - children = ( - D0CA3F82207391450042D2B6 /* Utils */, - D0BE303C2061A29100FBE6D8 /* RequestSecureIdForm.swift */, - D0ADF910212B00DD00310BBC /* SecureIdConfiguration.swift */, - D0BE304A20627D9800FBE6D8 /* AccessSecureId.swift */, - D0BE303920619EE800FBE6D8 /* SecureIdForm.swift */, - D093D805206539D000BC3599 /* SaveSecureIdValue.swift */, - D0E412D6206A866B00BEE4A2 /* UploadSecureIdFile.swift */, - D0E412ED206AF65500BEE4A2 /* GrantSecureIdAccess.swift */, - D02D60AA206BA64100FEFE1E /* VerifySecureIdValue.swift */, - D0136308208F3B0900EB3653 /* SecureIdValueContentError.swift */, - D093D7E82064135300BC3599 /* Values */, - ); - name = "Secure ID"; - sourceTree = ""; - }; - D0C50E2F1E93A83B00F62E39 /* Calls */ = { - isa = PBXGroup; - children = ( - D0C50E331E93A86600F62E39 /* CallSessionManager.swift */, - C2F4ED1C1EC60064005F2696 /* RateCall.swift */, - ); - name = Calls; - sourceTree = ""; - }; - D0CA3F82207391450042D2B6 /* Utils */ = { - isa = PBXGroup; - children = ( - D0CA3F83207391560042D2B6 /* SecureIdPadding.swift */, - ); - name = Utils; - sourceTree = ""; - }; - D0DF0C881D819C5F008AEB01 /* Peers */ = { - isa = PBXGroup; - children = ( - D0C26D6B1FE286C3004ABF18 /* FetchChatList.swift */, - D0BC386F1E40853E0044D6FE /* UpdatePeers.swift */, - D0DF0C891D819C7E008AEB01 /* JoinChannel.swift */, - D0DF0CA71D82BF32008AEB01 /* PeerParticipants.swift */, - D099EA1B1DE72867001AF5A8 /* PeerCommands.swift */, - D0B843961DA7FBBC005F29E1 /* ChangePeerNotificationSettings.swift */, - D0F3CC7C1DDE289E008148FA /* ResolvePeerByName.swift */, - D07827BA1E00451F00071108 /* SearchPeers.swift */, - D0BC386D1E3FDAB70044D6FE /* CreateGroup.swift */, - D018D3361E648ACF00C5E089 /* ChannelCreation.swift */, - D00DBBD61E64E41100DB5485 /* CreateSecretChat.swift */, - D0BC38741E40A7F70044D6FE /* RemovePeerChat.swift */, - D0BC387A1E40D2880044D6FE /* TogglePeerChatPinned.swift */, - D049EAEA1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift */, - D050F2501E4A59C200988324 /* JoinLink.swift */, - C2366C821E4F3EAA0097CCFF /* GroupReturnAndLeft.swift */, - C2366C851E4F403C0097CCFF /* AddressNames.swift */, - D0613FC91E60440600202CDB /* InvitationLinks.swift */, - C2366C881E4F40480097CCFF /* SupportPeerId.swift */, - D0BB7C591E5C8074001527C3 /* ChannelParticipants.swift */, - D041E3F41E535464008C24B4 /* AddPeerMember.swift */, - D041E3F71E535A88008C24B4 /* RemovePeerMember.swift */, - D0561DE21E5737FC00E6B9E9 /* UpdatePeerInfo.swift */, - D0561DE91E5754FA00E6B9E9 /* ChannelAdmins.swift */, - D0613FCE1E60520700202CDB /* ChannelMembers.swift */, - D0E305A91E5BA02D00D7A3A2 /* ChannelBlacklist.swift */, - D0E305A61E5B5CBE00D7A3A2 /* PeerAdmins.swift */, - D0613FD61E606B3B00202CDB /* ConvertGroupToSupergroup.swift */, - D033FEB21E61F3C000644997 /* ReportPeer.swift */, - D033FEB51E61F3F900644997 /* BlockedPeers.swift */, - C239BE9B1E630CA700C2C453 /* UpdatePinnedMessage.swift */, - D0528E641E65C82400E2FEF5 /* UpdateContactName.swift */, - C22EE61A1E67418000334C38 /* ToggleChannelSignatures.swift */, - C2FD33E01E680E9E008D13D4 /* RequestUserPhotos.swift */, - C2FD33E31E687BF1008D13D4 /* PeerPhotoUpdater.swift */, - C2FD33EA1E696C78008D13D4 /* GroupsInCommon.swift */, - D0C48F3B1E8142EF0075317D /* LoadedPeerFromMessage.swift */, - D0F3A8A71E82CD7D00B4C64C /* UpdatePeerChatInterfaceState.swift */, - C23BC3861E9BE3CA00D79F92 /* ImportContact.swift */, - C205FEA71EB3B75900455808 /* ExportMessageLink.swift */, - C230BEB51EE9A3760029586C /* ChannelAdminEventLogs.swift */, - D0E817482010E7E300B82BBB /* ChannelAdminEventLogContext.swift */, - D0A472B51F4CBE8B00E0EEDA /* LoadedPeer.swift */, - D0DA1D311F7043D50034E892 /* ManagedPendingPeerNotificationSettings.swift */, - D02395D51F8D09A50070F5C2 /* ChannelHistoryAvailabilitySettings.swift */, - D0C44B601FC616E200227BE0 /* SearchGroupMembers.swift */, - D018EE042045E95000CBB130 /* CheckPeerChatServiceActions.swift */, - 9F06830F21A40DEC001D8EDB /* NotificationExceptionsList.swift */, - D0F760D722202FE20074F7E5 /* ChannelStats.swift */, - D0633CD12253A528003DD95F /* ChatOnlineMembers.swift */, - D015E00D225CA61100CB9E8A /* FindChannelById.swift */, - D076F8882296D8E9004F895A /* ManageChannelDiscussionGroup.swift */, - 090E778222A9862100CD99F5 /* ChannelOwnershipTransfer.swift */, - 090E778F22AAABC600CD99F5 /* PeersNearby.swift */, - D0D376E522DCCFD600FA7D7C /* SlowMode.swift */, - D03E416B2304D5B30049C28B /* ValidateAddressNameInteractive.swift */, - ); - name = Peers; - sourceTree = ""; - }; - D0FA8B961E1E952D001E855B /* Secret Chats */ = { - isa = PBXGroup; - children = ( - D0FA8BA31E1FA341001E855B /* SecretChatKeychain.swift */, - D0177B7A1DF8A16C00A5083A /* SecretChatState.swift */, - D0FA8BAF1E1FEC7E001E855B /* SecretChatEncryptionConfig.swift */, - D0448C901E251F96005A61A7 /* SecretChatEncryption.swift */, - D0FA8B9D1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift */, - D0FA8BB81E2240B4001E855B /* SecretChatIncomingDecryptedOperation.swift */, - D0FA8B971E1E955C001E855B /* SecretChatOutgoingOperation.swift */, - D0FA8BA01E1F99E1001E855B /* SecretChatFileReference.swift */, - D0FA8BB21E201B02001E855B /* ProcessSecretChatIncomingEncryptedOperations.swift */, - D0448C8D1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift */, - D0FA8BA91E1FB76E001E855B /* ManagedSecretChatOutgoingOperations.swift */, - D019B1CB1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift */, - D00C7CEA1E37A8540080C3D5 /* SetSecretChatMessageAutoremoveTimeoutInteractively.swift */, - D018EE0120458E1E00CBB130 /* SecretChatLayerNegotiation.swift */, - ); - name = "Secret Chats"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - D09D8BFE1D4FAB1D0081DBEC /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E45D82305D66D0049C28B /* Crypto.h in Headers */, - D03B0E431D631E6600955575 /* NetworkLogging.h in Headers */, - D09D8C121D4FAB1D0081DBEC /* TelegramCore.h in Headers */, - D03E452E2305C15A0049C28B /* FormatPhoneNumber.h in Headers */, - D08984F92118816A00918162 /* Reachability.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0B418641D7E03D5004562A4 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E45D92305D66E0049C28B /* Crypto.h in Headers */, - D0B4186B1D7E03D5004562A4 /* TelegramCoreMac.h in Headers */, - D0B418BB1D7E05BE004562A4 /* NetworkLogging.h in Headers */, - D08984FA2118816A00918162 /* Reachability.h in Headers */, - D03E45302305C1630049C28B /* FormatPhoneNumber.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - D09D8C001D4FAB1D0081DBEC /* TelegramCore */ = { - isa = PBXNativeTarget; - buildConfigurationList = D09D8C151D4FAB1D0081DBEC /* Build configuration list for PBXNativeTarget "TelegramCore" */; - buildPhases = ( - D09D8BFC1D4FAB1D0081DBEC /* Sources */, - D09D8BFD1D4FAB1D0081DBEC /* Frameworks */, - D09D8BFE1D4FAB1D0081DBEC /* Headers */, - D09D8BFF1D4FAB1D0081DBEC /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = TelegramCore; - productName = TelegramCore; - productReference = D09D8C011D4FAB1D0081DBEC /* TelegramCore.framework */; - productType = "com.apple.product-type.framework"; - }; - D09D8C091D4FAB1D0081DBEC /* TelegramCoreTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = D09D8C181D4FAB1D0081DBEC /* Build configuration list for PBXNativeTarget "TelegramCoreTests" */; - buildPhases = ( - D09D8C061D4FAB1D0081DBEC /* Sources */, - D09D8C071D4FAB1D0081DBEC /* Frameworks */, - D09D8C081D4FAB1D0081DBEC /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - D09D8C0D1D4FAB1D0081DBEC /* PBXTargetDependency */, - ); - name = TelegramCoreTests; - productName = TelegramCoreTests; - productReference = D09D8C0A1D4FAB1D0081DBEC /* TelegramCoreTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - D0B418661D7E03D5004562A4 /* TelegramCoreMac */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0B4186C1D7E03D5004562A4 /* Build configuration list for PBXNativeTarget "TelegramCoreMac" */; - buildPhases = ( - D0B418621D7E03D5004562A4 /* Sources */, - D0B418631D7E03D5004562A4 /* Frameworks */, - D0B418641D7E03D5004562A4 /* Headers */, - D0B418651D7E03D5004562A4 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = TelegramCoreMac; - productName = TelegramCoreMac; - productReference = D0B418671D7E03D5004562A4 /* TelegramCoreMac.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D09D8BF81D4FAB1D0081DBEC /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0800; - ORGANIZATIONNAME = Peter; - TargetAttributes = { - D09D8C001D4FAB1D0081DBEC = { - CreatedOnToolsVersion = 8.0; - DevelopmentTeam = X834Q8SBVP; - DevelopmentTeamName = "TELEGRAM MESSENGER LLP"; - LastSwiftMigration = 0800; - ProvisioningStyle = Manual; - }; - D09D8C091D4FAB1D0081DBEC = { - CreatedOnToolsVersion = 8.0; - DevelopmentTeam = X834Q8SBVP; - DevelopmentTeamName = "TELEGRAM MESSENGER LLP"; - ProvisioningStyle = Automatic; - }; - D0B418661D7E03D5004562A4 = { - CreatedOnToolsVersion = 8.0; - ProvisioningStyle = Manual; - }; - }; - }; - buildConfigurationList = D09D8BFB1D4FAB1D0081DBEC /* Build configuration list for PBXProject "TelegramCore_Xcode" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - ); - mainGroup = D09D8BF71D4FAB1D0081DBEC; - productRefGroup = D09D8C021D4FAB1D0081DBEC /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - D09D8C001D4FAB1D0081DBEC /* TelegramCore */, - D09D8C091D4FAB1D0081DBEC /* TelegramCoreTests */, - D0B418661D7E03D5004562A4 /* TelegramCoreMac */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - D09D8BFF1D4FAB1D0081DBEC /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D09D8C081D4FAB1D0081DBEC /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0B418651D7E03D5004562A4 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - D09D8BFC1D4FAB1D0081DBEC /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D00DBBD71E64E41100DB5485 /* CreateSecretChat.swift in Sources */, - C2FD33EB1E696C78008D13D4 /* GroupsInCommon.swift in Sources */, - D0FA8BB01E1FEC7E001E855B /* SecretChatEncryptionConfig.swift in Sources */, - 09FC986B22FD882200915E37 /* OutgoingScheduleInfoMessageAttribute.swift in Sources */, - D021E0DF1DB539FC00C6B04F /* StickerPack.swift in Sources */, - D03B0D091D62255C00955575 /* EnqueueMessage.swift in Sources */, - D0CA8E4B227209C4008A74C3 /* ManagedSynchronizeGroupMessageStats.swift in Sources */, - D0DFD5DF1FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift in Sources */, - D093D7EE206413F600BC3599 /* SecureIdDataTypes.swift in Sources */, - D00D343C1E6EC9770057B307 /* TelegramMediaGame.swift in Sources */, - D033FEB01E61EB0200644997 /* PeerContactSettings.swift in Sources */, - D050F2511E4A59C200988324 /* JoinLink.swift in Sources */, - 09FC986D22FD99D400915E37 /* ScheduledMessages.swift in Sources */, - D07827C91E02F59C00071108 /* InstantPage.swift in Sources */, - D0458C881E69B4AB00FB34C1 /* OutgoingContentInfoMessageAttribute.swift in Sources */, - D07827CB1E02F5B200071108 /* RichText.swift in Sources */, - D0613FD71E606B3B00202CDB /* ConvertGroupToSupergroup.swift in Sources */, - D0E412F4206B9BDC00BEE4A2 /* SecureIdVerificationDocumentReference.swift in Sources */, - D0A3E447214802C7008ACEF6 /* VoipConfiguration.swift in Sources */, - D00D34451E6EDD420057B307 /* SynchronizeConsumeMessageContentsOperation.swift in Sources */, - D02D60AB206BA64100FEFE1E /* VerifySecureIdValue.swift in Sources */, - D00D343F1E6ED6E50057B307 /* ConsumableContentMessageAttribute.swift in Sources */, - 090E778322A9862100CD99F5 /* ChannelOwnershipTransfer.swift in Sources */, - D03E3D28230447960049C28B /* RestrictedContentMessageAttribute.swift in Sources */, - D03B0CE01D62249100955575 /* StoreMessage_Telegram.swift in Sources */, - D03E416C2304D5B30049C28B /* ValidateAddressNameInteractive.swift in Sources */, - D08774FE1E3E3A3500A97350 /* GlobalNotificationSettings.swift in Sources */, - 09B4A9B6230FBB2B005C2E08 /* Theme.swift in Sources */, - D023E67821540624008C27D1 /* UpdateMessageMedia.swift in Sources */, - D0EE7FC420986C5300981319 /* SecureIdPassportRegistrationValue.swift in Sources */, - D03B0CB91D62233400955575 /* Either.swift in Sources */, - D0D748021E7AE98B00F4B1F6 /* StickerPackInteractiveOperations.swift in Sources */, - 0962E66D21B5C56F00245FD9 /* JSON.swift in Sources */, - D0338740223BD48B007A2CE4 /* ContactsSettings.swift in Sources */, - D03B0CBD1D62234300955575 /* Regex.swift in Sources */, - 09B4A9B4230FB70B005C2E08 /* Themes.swift in Sources */, - D00BDA191EE593D600C64C5E /* TelegramChannelAdminRights.swift in Sources */, - 09EDAD3A22131D010012A50B /* ManagedAutodownloadSettingsUpdates.swift in Sources */, - D0EA188220D3D2B1001AEE19 /* RemoteStorageConfiguration.swift in Sources */, - D09A2FE61D7CD4940018FB72 /* TelegramChannel.swift in Sources */, - D03B0D0E1D62255C00955575 /* UpdateGroup.swift in Sources */, - D053B4181F18DE4F00E2D58A /* AuthorSignatureMessageAttribute.swift in Sources */, - D0F3A89F1E82C65400B4C64C /* SynchronizeChatInputStateOperation.swift in Sources */, - D01AC9231DD5E9A200E8160F /* ApplyUpdateMessage.swift in Sources */, - D0E8B8B32044706300605593 /* ForwardGame.swift in Sources */, - D0BE303D2061A29100FBE6D8 /* RequestSecureIdForm.swift in Sources */, - D01A21AC1F38D10E00DDA104 /* SavedStickerItem.swift in Sources */, - D0642EF91F3E05D700792790 /* EarliestUnseenPersonalMentionMessage.swift in Sources */, - D03B0CF71D62250800955575 /* TelegramMediaImage.swift in Sources */, - D054648E20738626002ECC1E /* SecureIdDriversLicenseValue.swift in Sources */, - C210DD621FBDB90800F673D8 /* SourceReferenceMessageAttribute.swift in Sources */, - D06ECFC820B810D300C576C2 /* TermsOfService.swift in Sources */, - D0E23DDF1E8082A400B9B6D2 /* ArchivedStickerPacks.swift in Sources */, - D0546494207386D7002ECC1E /* SecureIdUtilityBillValue.swift in Sources */, - D0BC386E1E3FDAB70044D6FE /* CreateGroup.swift in Sources */, - D0FA8BB31E201B02001E855B /* ProcessSecretChatIncomingEncryptedOperations.swift in Sources */, - D098907F22942E3B0053F151 /* ActiveSessionsContext.swift in Sources */, - D026099E20C695AF006C34AC /* Wallpapers.swift in Sources */, - C205FEA81EB3B75900455808 /* ExportMessageLink.swift in Sources */, - D0E305AA1E5BA02D00D7A3A2 /* ChannelBlacklist.swift in Sources */, - D0EE7FC72098853100981319 /* SecureIdTemporaryRegistrationValue.swift in Sources */, - C22EE61B1E67418000334C38 /* ToggleChannelSignatures.swift in Sources */, - 090E779022AAABC600CD99F5 /* PeersNearby.swift in Sources */, - D073CE601DCB9D14007511FD /* OutgoingMessageInfoAttribute.swift in Sources */, - D0AAD1A81E32602500D5B9DE /* AutoremoveTimeoutMessageAttribute.swift in Sources */, - C2366C831E4F3EAA0097CCFF /* GroupReturnAndLeft.swift in Sources */, - 0900555621E4A96E0030924C /* Wallpaper.swift in Sources */, - C230BEB61EE9A3760029586C /* ChannelAdminEventLogs.swift in Sources */, - D0136309208F3B0900EB3653 /* SecureIdValueContentError.swift in Sources */, - D03B0D3D1D6319E200955575 /* Fetch.swift in Sources */, - D02D60A7206BA5F900FEFE1E /* SecureIdValue.swift in Sources */, - D0DF0C931D81AD09008AEB01 /* MessageUtils.swift in Sources */, - D03B0D681D631A8B00955575 /* RecentPeers.swift in Sources */, - D0DF0CA81D82BF32008AEB01 /* PeerParticipants.swift in Sources */, - D0FA8BA71E1FA6DF001E855B /* TelegramSecretChat.swift in Sources */, - D03B0D5F1D631A6900955575 /* Serialization.swift in Sources */, - D093D7F920641AA500BC3599 /* SecureIdEmailValue.swift in Sources */, - D0C44B611FC616E200227BE0 /* SearchGroupMembers.swift in Sources */, - D0467D1520D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift in Sources */, - D03B0D441D6319F900955575 /* CloudFileMediaResource.swift in Sources */, - D018D3371E648ACF00C5E089 /* ChannelCreation.swift in Sources */, - D01AC9211DD5E7E500E8160F /* RequestEditMessage.swift in Sources */, - D069257122D8B526002FC021 /* SecretChatSettings.swift in Sources */, - D0AF32221FAC95C20097362B /* StandaloneUploadedMedia.swift in Sources */, - D0F53BE91E784A4800117362 /* ChangeAccountPhoneNumber.swift in Sources */, - D0E35A0E1DE4953E00BC6096 /* FetchHttpResource.swift in Sources */, - D01AC91D1DD5DA5E00E8160F /* RequestMessageActionCallback.swift in Sources */, - D00C7CEB1E37A8540080C3D5 /* SetSecretChatMessageAutoremoveTimeoutInteractively.swift in Sources */, - D09BB6B61DB0428000A905C0 /* PendingMessageUploadedContent.swift in Sources */, - D0439B5D228ECB270067E026 /* RequestPhoneNumber.swift in Sources */, - D05D8B372192F8AF0064586F /* LocalizationListState.swift in Sources */, - D0F3CC7D1DDE289E008148FA /* ResolvePeerByName.swift in Sources */, - D0AB0B921D65E9FA002C78E7 /* ManagedServiceViews.swift in Sources */, - D0DB7F031F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift in Sources */, - D0A472B61F4CBE8B00E0EEDA /* LoadedPeer.swift in Sources */, - D0AAD1B81E326FE200D5B9DE /* ManagedAutoremoveMessageOperations.swift in Sources */, - D01A21A91F38CDDC00DDA104 /* ManagedSynchronizeSavedStickersOperations.swift in Sources */, - D0338743223BD532007A2CE4 /* InitializeAccountAfterLogin.swift in Sources */, - D099EA1C1DE72867001AF5A8 /* PeerCommands.swift in Sources */, - D03B0CCE1D62239600955575 /* PhoneNumbers.swift in Sources */, - D00DBBDA1E64E67E00DB5485 /* UpdateSecretChat.swift in Sources */, - D0E23DD51E8042F500B9B6D2 /* FeaturedStickerPack.swift in Sources */, - D0FA8B981E1E955C001E855B /* SecretChatOutgoingOperation.swift in Sources */, - D0754D2A1EEE10FC00884F6E /* BotPaymentForm.swift in Sources */, - D0DF0C911D81A857008AEB01 /* ImageRepresentationsUtils.swift in Sources */, - D08CAA8C1ED81EDF0000FDA8 /* Localizations.swift in Sources */, - D0E6521F1E3A364A004EEA91 /* UpdateAccountPeerName.swift in Sources */, - D0F3A8A21E82C65E00B4C64C /* ManagedSynchronizeChatInputStateOperations.swift in Sources */, - D0439B60228EDE430067E026 /* ContentRequiresValidationMessageAttribute.swift in Sources */, - D01C7ED61EF5E468008305F1 /* ProxySettings.swift in Sources */, - D049EAE81E44B67100A2CD3A /* RecentPeerItem.swift in Sources */, - D02ABC7B1E30058F00CAE539 /* DeleteMessagesInteractively.swift in Sources */, - C2E064681ECEEF0A00387BB8 /* TelegramMediaInvoice.swift in Sources */, - D0448C9F1E27F5EB005A61A7 /* Random.swift in Sources */, - D0C27B3F1F4B51D000A4E170 /* CachedStickerPack.swift in Sources */, - D0A8998F217A37A000759EE6 /* NotificationAutolockReportManager.swift in Sources */, - D07047B71F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift in Sources */, - D03B0CDB1D62245F00955575 /* ApiUtils.swift in Sources */, - D08CAA801ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift in Sources */, - D03B0CE61D6224A700955575 /* ReplyMessageAttribute.swift in Sources */, - D0D1026C2212FE52003ADA5E /* AccountSortOrderAttribute.swift in Sources */, - D0BEAF601E54ACF900BD963D /* AccountManager.swift in Sources */, - D0FA0ABD1E76C908005BB9B7 /* TwoStepVerification.swift in Sources */, - D02ABC7E1E3109F000CAE539 /* CloudChatRemoveMessagesOperation.swift in Sources */, - D0E412E1206AB24700BEE4A2 /* SecureFileMediaResource.swift in Sources */, - D0ADF911212B00DD00310BBC /* SecureIdConfiguration.swift in Sources */, - D0448CA51E29215A005A61A7 /* MediaResourceApiUtils.swift in Sources */, - D0C26D661FE022DB004ABF18 /* SynchronizeGroupedPeersOperation.swift in Sources */, - D01843A82190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift in Sources */, - D03C53771DAFF20F004C17B3 /* MultipartUpload.swift in Sources */, - D00C7CE01E3785710080C3D5 /* MarkMessageContentAsConsumedInteractively.swift in Sources */, - C2E0646D1ECF171D00387BB8 /* TelegramMediaWebDocument.swift in Sources */, - D0B843811DA6EDAE005F29E1 /* CachedUserData.swift in Sources */, - D049EAD51E43D98500A2CD3A /* RecentMediaItem.swift in Sources */, - D0C50E341E93A86600F62E39 /* CallSessionManager.swift in Sources */, - D00D34421E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift in Sources */, - D08984FB2118816A00918162 /* Reachability.m in Sources */, - D0DA1D321F7043D50034E892 /* ManagedPendingPeerNotificationSettings.swift in Sources */, - 0925903722F0D02D003D6283 /* ManagedAnimatedEmojiUpdates.swift in Sources */, - D099D7491EEF418D00A3128C /* HistoryViewStateValidation.swift in Sources */, - C23BC3871E9BE3CA00D79F92 /* ImportContact.swift in Sources */, - D0D376E622DCCFD600FA7D7C /* SlowMode.swift in Sources */, - D00422D321677F4500719B67 /* ManagedAccountPresence.swift in Sources */, - D03B0D0A1D62255C00955575 /* Holes.swift in Sources */, - D05464972073872C002ECC1E /* SecureIdBankStatementValue.swift in Sources */, - D0633CDB2253C0D3003DD95F /* CloudMediaResourceParameters.swift in Sources */, - 0962E67521B6437600245FD9 /* SplitTest.swift in Sources */, - D03B0D5E1D631A6900955575 /* Network.swift in Sources */, - D0B8438E1DA7D296005F29E1 /* CachedGroupParticipants.swift in Sources */, - D03B0CF51D62250800955575 /* TelegramMediaContact.swift in Sources */, - D03B0CFB1D62250800955575 /* TelegramMediaWebpage.swift in Sources */, - 0962E66B21B5A41C00245FD9 /* ManagedSynchronizeAppLogEventsOperations.swift in Sources */, - D09A2FEB1D7CDC320018FB72 /* PeerAccessRestrictionInfo.swift in Sources */, - D0E35A101DE49E1C00BC6096 /* OutgoingMessageWithChatContextResult.swift in Sources */, - D0E23DDA1E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift in Sources */, - D049EAD81E43DAD200A2CD3A /* ManagedRecentStickers.swift in Sources */, - D0BE303A20619EE800FBE6D8 /* SecureIdForm.swift in Sources */, - D03DC9131F82F89D001D584C /* RegularChatState.swift in Sources */, - D04D213C230AC35A00609388 /* WasScheduledMessageAttribute.swift in Sources */, - 0962E66721B59BAA00245FD9 /* ManagedAppConfigurationUpdates.swift in Sources */, - D0613FCF1E60520700202CDB /* ChannelMembers.swift in Sources */, - D0B2F7742052DEF700D3BFB9 /* TelegramDeviceContactImportInfo.swift in Sources */, - C2366C891E4F40480097CCFF /* SupportPeerId.swift in Sources */, - D0AF32351FAE8C6B0097362B /* MultipeerManager.swift in Sources */, - D05A32E11E6F0982002760B4 /* UpdatedAccountPrivacySettings.swift in Sources */, - 0962E68121BAA20E00245FD9 /* SearchBotsConfiguration.swift in Sources */, - D003702B1DA42586004308D3 /* PhoneNumber.swift in Sources */, - D015E00E225CA61100CB9E8A /* FindChannelById.swift in Sources */, - D00BDA1C1EE5952A00C64C5E /* TelegramChannelBannedRights.swift in Sources */, - D03B0CF91D62250800955575 /* TelegramMediaMap.swift in Sources */, - D0E412E7206ABC7500BEE4A2 /* EncryptedMediaResource.swift in Sources */, - D0AB262621C2F991008F6685 /* TelegramMediaPoll.swift in Sources */, - D0BC38791E40BAF20044D6FE /* SynchronizePinnedChatsOperation.swift in Sources */, - D0750C9022B2FD8300BE5F6E /* PeerAccessHash.swift in Sources */, - D0FC195B2020D1CA00FEDBB2 /* PeerGroupMessageStateVersionAttribute.swift in Sources */, - D0B1671D1F9EA2C300976B40 /* ChatHistoryPreloadManager.swift in Sources */, - D02B199021FB1D520094A764 /* RegisterNotificationToken.swift in Sources */, - D050F2101E48AB0600988324 /* InteractivePhoneFormatter.swift in Sources */, - D0C48F3C1E8142EF0075317D /* LoadedPeerFromMessage.swift in Sources */, - D042C6831E8D9DF800C863B0 /* Unixtime.swift in Sources */, - D0C0B58A1ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift in Sources */, - D0EE7FC120986BF400981319 /* SecureIdInternalPassportValue.swift in Sources */, - D03B0D671D631A8B00955575 /* AccountViewTracker.swift in Sources */, - D0AB262B21C3CE80008F6685 /* Polls.swift in Sources */, - D0E412EA206AD18E00BEE4A2 /* DecryptedResourceData.swift in Sources */, - D03B0D101D62255C00955575 /* UpdatesApiUtils.swift in Sources */, - D0F7AB2C1DCE889D009AD9A1 /* EditedMessageAttribute.swift in Sources */, - D0FA8BAA1E1FB76E001E855B /* ManagedSecretChatOutgoingOperations.swift in Sources */, - D00D97C71E32901700E5C2B6 /* PeerInputActivity.swift in Sources */, - D0FA8BAD1E1FD6E2001E855B /* MemoryBufferExtensions.swift in Sources */, - D03B0CBF1D62234A00955575 /* Log.swift in Sources */, - C2FD33E41E687BF1008D13D4 /* PeerPhotoUpdater.swift in Sources */, - D0F8C3A02017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift in Sources */, - D01C06B71FBBA269001561AB /* CanSendMessagesToPeer.swift in Sources */, - D03E452F2305C15A0049C28B /* FormatPhoneNumber.m in Sources */, - D0EC559A2101ED0800D1992C /* DeleteMessages.swift in Sources */, - D02DADC12139A1FC00116225 /* ContactSyncManager.swift in Sources */, - D0C26D691FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift in Sources */, - D03B0CD61D62245300955575 /* TelegramUser.swift in Sources */, - D02395D61F8D09A50070F5C2 /* ChannelHistoryAvailabilitySettings.swift in Sources */, - D019B1CC1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift in Sources */, - D081E10A217F5ADE003CD921 /* LocalizationPreview.swift in Sources */, - 09028386218E5DBB0067EFBD /* ManagedVoipConfigurationUpdates.swift in Sources */, - D03B0CD91D62245B00955575 /* PeerUtils.swift in Sources */, - D0F19F6620E6620D00EEC860 /* MultiplexedRequestManager.swift in Sources */, - D053B41B1F18DEF500E2D58A /* TelegramMediaExpiredContent.swift in Sources */, - D03B0CE41D62249F00955575 /* TextEntitiesMessageAttribute.swift in Sources */, - D0FA35081EA632E400E56FFA /* CollectCacheUsageStats.swift in Sources */, - D049EAEB1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift in Sources */, - D03B0CD31D62244300955575 /* Namespaces.swift in Sources */, - D01D6BF91E42A713006151C6 /* SearchStickers.swift in Sources */, - D08F4A691E79CECB00A2AA15 /* ManagedSynchronizeInstalledStickerPacksOperations.swift in Sources */, - D0575AF11E9FFA5D006F2541 /* SynchronizeSavedGifsOperation.swift in Sources */, - D07047B41F3DF1FE00F6A8D4 /* ConsumablePersonalMentionMessageAttribute.swift in Sources */, - D0119CB020CA9EA800895300 /* MarkAllChatsAsRead.swift in Sources */, - D099E222229420D600561B75 /* BlockedPeersContext.swift in Sources */, - D0FA8BB91E2240B4001E855B /* SecretChatIncomingDecryptedOperation.swift in Sources */, - D0561DE31E5737FC00E6B9E9 /* UpdatePeerInfo.swift in Sources */, - D0DF0C8A1D819C7E008AEB01 /* JoinChannel.swift in Sources */, - D051DB14215EC5A300F30F92 /* AppChangelogState.swift in Sources */, - D0329EA222FC5A7C00F9F071 /* MessageReactions.swift in Sources */, - D04554A621B43440007A6DD9 /* CancelAccountReset.swift in Sources */, - D04CAA5A1E83310D0047E51F /* MD5.swift in Sources */, - D0E817492010E7E300B82BBB /* ChannelAdminEventLogContext.swift in Sources */, - D05452071E7B5093006EEF19 /* LoadedStickerPack.swift in Sources */, - D01C7F041EFC1C49008305F1 /* DeviceContact.swift in Sources */, - D0E412D7206A866B00BEE4A2 /* UploadSecureIdFile.swift in Sources */, - D0F7AB2F1DCF507E009AD9A1 /* ReplyMarkupMessageAttribute.swift in Sources */, - D0AD02E31FFFA14800C1DCFF /* PeerLiveLocationsContext.swift in Sources */, - D0B843971DA7FBBC005F29E1 /* ChangePeerNotificationSettings.swift in Sources */, - D0448CA21E291B14005A61A7 /* FetchSecretFileResource.swift in Sources */, - D08CAA871ED81DD40000FDA8 /* LocalizationInfo.swift in Sources */, - D033FEB61E61F3F900644997 /* BlockedPeers.swift in Sources */, - D00C7CCC1E3620C30080C3D5 /* CachedChannelParticipants.swift in Sources */, - D09BB6B41DB02C2B00A905C0 /* PendingMessageManager.swift in Sources */, - D093D7F520641A4900BC3599 /* SecureIdPhoneValue.swift in Sources */, - D0B167231F9F972E00976B40 /* LoggingSettings.swift in Sources */, - D0BC387B1E40D2880044D6FE /* TogglePeerChatPinned.swift in Sources */, - D0BB7C5A1E5C8074001527C3 /* ChannelParticipants.swift in Sources */, - D0448C8E1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift in Sources */, - D0448C911E251F96005A61A7 /* SecretChatEncryption.swift in Sources */, - D0FA8BA11E1F99E1001E855B /* SecretChatFileReference.swift in Sources */, - D0223A981EA564BD00211D94 /* MediaResourceNetworkStatsTag.swift in Sources */, - D07827BB1E00451F00071108 /* SearchPeers.swift in Sources */, - 9FC8ADAB206BBFF10094F7B4 /* RecentWebSessions.swift in Sources */, - D0DC354E1DE368F7000195EB /* RequestChatContextResults.swift in Sources */, - D0BC38771E40BAAA0044D6FE /* ManagedSynchronizePinnedChatsOperations.swift in Sources */, - D0B843851DA6EDC4005F29E1 /* CachedChannelData.swift in Sources */, - C29340F31F5080FA0074991E /* UpdateGroupSpecificStickerset.swift in Sources */, - D01C7ED31EF5DF83008305F1 /* LimitsConfiguration.swift in Sources */, - 9F06831021A40DEC001D8EDB /* NotificationExceptionsList.swift in Sources */, - D0F02CE51E9926C40065DEE2 /* ManagedConfigurationUpdates.swift in Sources */, - D0528E6A1E65DD2100E2FEF5 /* WebpagePreview.swift in Sources */, - D0BE304B20627D9800FBE6D8 /* AccessSecureId.swift in Sources */, - D0BEAF5D1E54941B00BD963D /* Authorization.swift in Sources */, - D0C26D6C1FE286C3004ABF18 /* FetchChatList.swift in Sources */, - C28D3CF020D3DA900027F4D6 /* DeepLinkInfo.swift in Sources */, - D0B843831DA6EDB8005F29E1 /* CachedGroupData.swift in Sources */, - D0E35A121DE4A25E00BC6096 /* OutgoingChatContextResultMessageAttribute.swift in Sources */, - D093D806206539D000BC3599 /* SaveSecureIdValue.swift in Sources */, - C239BE9C1E630CA700C2C453 /* UpdatePinnedMessage.swift in Sources */, - D032F5BC20EF84FD00037B6C /* FetchedMediaResource.swift in Sources */, - D08CAA7D1ED77EE90000FDA8 /* LocalizationSettings.swift in Sources */, - D0B844531DAC0773005F29E1 /* TelegramUserPresence.swift in Sources */, - D08F4A661E79CC4A00A2AA15 /* SynchronizeInstalledStickerPacksOperations.swift in Sources */, - D05A32E71E6F0B5C002760B4 /* RecentAccountSession.swift in Sources */, - D0329EA522FC5A9600F9F071 /* ReactionsMessageAttribute.swift in Sources */, - D0E41301206B9E6E00BEE4A2 /* SecureIdAddressValue.swift in Sources */, - D0B843871DA6F705005F29E1 /* UpdateCachedPeerData.swift in Sources */, - D0E412F1206B9BB700BEE4A2 /* SecureIdPassportValue.swift in Sources */, - D03B0D6D1D631AA300955575 /* ContactManagement.swift in Sources */, - 09EC0DE922C6825D00E7185B /* AppUpdate.swift in Sources */, - D03B0D0F1D62255C00955575 /* UpdateMessageService.swift in Sources */, - D03B0CF61D62250800955575 /* TelegramMediaFile.swift in Sources */, - D03B0CE81D6224AD00955575 /* ViewCountMessageAttribute.swift in Sources */, - D0FA35051EA6135D00E56FFA /* CacheStorageSettings.swift in Sources */, - D03B0D0C1D62255C00955575 /* AccountStateManagementUtils.swift in Sources */, - D0633CD22253A528003DD95F /* ChatOnlineMembers.swift in Sources */, - D073CE5D1DCB97F6007511FD /* ForwardSourceInfoAttribute.swift in Sources */, - D0FA8B9E1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift in Sources */, - D0561DEA1E5754FA00E6B9E9 /* ChannelAdmins.swift in Sources */, - D099D7461EEF0C2700A3128C /* ChannelMessageStateVersionAttribute.swift in Sources */, - D0E412DC206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift in Sources */, - D0467D0B20D7F1E60055C28F /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift in Sources */, - D0613FCA1E60440600202CDB /* InvitationLinks.swift in Sources */, - D03B0D721D631ABA00955575 /* SearchMessages.swift in Sources */, - 093857A92243D87900EB6A54 /* SynchronizeEmojiKeywordsOperation.swift in Sources */, - D0DC35501DE36900000195EB /* ChatContextResult.swift in Sources */, - D00580AE21E2A08900CB7CD3 /* AccountEnvironmentAttribute.swift in Sources */, - D00D34391E6EC9520057B307 /* TeleramMediaUnsupported.swift in Sources */, - D00D97CA1E32917C00E5C2B6 /* PeerInputActivityManager.swift in Sources */, - 093857AB2243D88D00EB6A54 /* EmojiKeywords.swift in Sources */, - C2FD33E11E680E9E008D13D4 /* RequestUserPhotos.swift in Sources */, - D0177B7B1DF8A16C00A5083A /* SecretChatState.swift in Sources */, - D0AAD1AA1E32638500D5B9DE /* ApplyMaxReadIndexInteractively.swift in Sources */, - D03B0D5C1D631A6900955575 /* Download.swift in Sources */, - D0C27B421F4B58C000A4E170 /* PeerSpecificStickerPack.swift in Sources */, - D054648B2073854A002ECC1E /* SecureIdPersonalDetailsValue.swift in Sources */, - D01749591E1092BC0057C89A /* RequestStartBot.swift in Sources */, - D06CA13522772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift in Sources */, - D03DC9101F82E344001D584C /* AccountStateReset.swift in Sources */, - D01B27A21E394D8B0022A4C0 /* PrivacySettings.swift in Sources */, - D0223A9B1EA5654D00211D94 /* TelegramMediaResource.swift in Sources */, - D048B4AC20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift in Sources */, - D017495E1E118F790057C89A /* AccountStateManager.swift in Sources */, - D0CA3F84207391560042D2B6 /* SecureIdPadding.swift in Sources */, - D0F760D822202FE20074F7E5 /* ChannelStats.swift in Sources */, - 0962E66921B5A11100245FD9 /* SynchronizeAppLogEventsOperation.swift in Sources */, - D049EAF51E44DF3300A2CD3A /* AccountState.swift in Sources */, - C28725421EF967E700613564 /* NotificationInfoMessageAttribute.swift in Sources */, - D03B0D5D1D631A6900955575 /* MultipartFetch.swift in Sources */, - D058E0D11E8AD65C00A442DE /* StandaloneSendMessage.swift in Sources */, - D0BC38751E40A7F70044D6FE /* RemovePeerChat.swift in Sources */, - 093857A82243D87900EB6A54 /* ManagedSynchronizeEmojiKeywordsOperations.swift in Sources */, - D0529D2721A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift in Sources */, - D0AB0B961D662F0B002C78E7 /* ManagedChatListHoles.swift in Sources */, - D05A32E41E6F0B2E002760B4 /* RecentAccountSessions.swift in Sources */, - D01A21A61F38CDC700DDA104 /* SynchronizeSavedStickersOperation.swift in Sources */, - D03E5E0C1E55E02D0029569A /* LoggedOutAccountAttribute.swift in Sources */, - D054649120738653002ECC1E /* SecureIdIDCardValue.swift in Sources */, - D018EE052045E95000CBB130 /* CheckPeerChatServiceActions.swift in Sources */, - D0F3A8A51E82C94C00B4C64C /* SynchronizeableChatInputState.swift in Sources */, - D072F357231542740009E66F /* MessageReactionList.swift in Sources */, - D03B0CD71D62245300955575 /* TelegramGroup.swift in Sources */, - D02609BF20C6EC08006C34AC /* Crypto.m in Sources */, - D0B8438C1DA7CF50005F29E1 /* BotInfo.swift in Sources */, - D033FEB31E61F3C000644997 /* ReportPeer.swift in Sources */, - D04D8FF4209A4B0700865719 /* NetworkSettings.swift in Sources */, - D0575AF41E9FFDDE006F2541 /* ManagedSynchronizeSavedGifsOperations.swift in Sources */, - C2F4ED1D1EC60064005F2696 /* RateCall.swift in Sources */, - D021E0E21DB5401A00C6B04F /* StickerManagement.swift in Sources */, - D051DB17215ECC4D00F30F92 /* AppChangelog.swift in Sources */, - D0BC38701E40853E0044D6FE /* UpdatePeers.swift in Sources */, - D0F3A8A81E82CD7D00B4C64C /* UpdatePeerChatInterfaceState.swift in Sources */, - D03B0CE21D62249B00955575 /* InlineBotMessageAttribute.swift in Sources */, - D0AB0B9A1D666520002C78E7 /* ManagedSynchronizePeerReadStates.swift in Sources */, - D0B843891DA7AB96005F29E1 /* ExportedInvitation.swift in Sources */, - D0380DBA204EF306000414AB /* MessageMediaPreuploadManager.swift in Sources */, - D03B0E441D631E6600955575 /* NetworkLogging.m in Sources */, - D0528E651E65C82400E2FEF5 /* UpdateContactName.swift in Sources */, - D03121021DA57E93006A2A60 /* TelegramPeerNotificationSettings.swift in Sources */, - D018EE0220458E1E00CBB130 /* SecretChatLayerNegotiation.swift in Sources */, - D0C48F391E8138DF0075317D /* ArchivedStickerPacksInfo.swift in Sources */, - C239BE971E62EE1E00C2C453 /* LoadMessagesIfNecessary.swift in Sources */, - 09EDAD382213120C0012A50B /* AutodownloadSettings.swift in Sources */, - D08984F22114B97400918162 /* ClearCloudDrafts.swift in Sources */, - D03B0CC11D62235000955575 /* StringFormat.swift in Sources */, - D0B85AC51F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift in Sources */, - C2366C861E4F403C0097CCFF /* AddressNames.swift in Sources */, - D0529D2421A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift in Sources */, - D0FA08BB2046B37900DD23FC /* ContentPrivacySettings.swift in Sources */, - D0528E601E65B94E00E2FEF5 /* SingleMessageView.swift in Sources */, - D08CAA841ED8164B0000FDA8 /* Localization.swift in Sources */, - D0528E5A1E658B3600E2FEF5 /* ManagedLocalInputActivities.swift in Sources */, - D0879BC822F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift in Sources */, - D0FA8BA41E1FA341001E855B /* SecretChatKeychain.swift in Sources */, - D01B264923324CF900A6448B /* Wallets.swift in Sources */, - D01749601E118FC30057C89A /* AccountIntermediateState.swift in Sources */, - D0E412EE206AF65500BEE4A2 /* GrantSecureIdAccess.swift in Sources */, - D02ABC811E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift in Sources */, - D03B0D651D631A8B00955575 /* Account.swift in Sources */, - D0AB0B941D662ECE002C78E7 /* ManagedMessageHistoryHoles.swift in Sources */, - D08774FC1E3E39F600A97350 /* ManagedGlobalNotificationSettings.swift in Sources */, - D03B0CF41D62250800955575 /* TelegramMediaAction.swift in Sources */, - D041E3F81E535A88008C24B4 /* RemovePeerMember.swift in Sources */, - D076F8892296D8E9004F895A /* ManageChannelDiscussionGroup.swift in Sources */, - D0B417C11D7DCEEF004562A4 /* ApiGroupOrChannel.swift in Sources */, - D0BAAA14230FDB4100AFC473 /* ProcessRemovedMedia.swift in Sources */, - D041E3F51E535464008C24B4 /* AddPeerMember.swift in Sources */, - D0AF32311FACEDEC0097362B /* CoreSettings.swift in Sources */, - D054649A20738760002ECC1E /* SecureIdRentalAgreementValue.swift in Sources */, - D0E305A71E5B5CBE00D7A3A2 /* PeerAdmins.swift in Sources */, - D0575C2D22B922DF00A71A0E /* DeleteAccount.swift in Sources */, - D03B0D0D1D62255C00955575 /* SynchronizePeerReadState.swift in Sources */, - D03B0D081D62255C00955575 /* ChannelState.swift in Sources */, - D08984F521187ECA00918162 /* NetworkType.swift in Sources */, - C251D7431E65E50500283EDE /* StickerSetInstallation.swift in Sources */, - 0962E66F21B6147600245FD9 /* AppConfiguration.swift in Sources */, - D07047BA1F3DF75500F6A8D4 /* ConsumePersonalMessageAction.swift in Sources */, - D07E413F208A769D00FCA8F0 /* ProxyServersStatuses.swift in Sources */, - D0C0B58D1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D09D8C061D4FAB1D0081DBEC /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D09D8C101D4FAB1D0081DBEC /* TelegramCoreTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D0B418621D7E03D5004562A4 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D03413F3231325B300B555F3 /* Themes.swift in Sources */, - D03413F1231323CE00B555F3 /* Theme.swift in Sources */, - D04D21382306ECF600609388 /* FormatPhoneNumber.m in Sources */, - D021E7E82306EC03002F8BD1 /* OutgoingScheduleInfoMessageAttribute.swift in Sources */, - D021E7E92306EC03002F8BD1 /* ScheduledMessages.swift in Sources */, - D021E7EA2306EC03002F8BD1 /* ValidateAddressNameInteractive.swift in Sources */, - D020F00722F19C8F00BE699A /* ManagedAnimatedEmojiUpdates.swift in Sources */, - D05FDC3922CA45070060BFE3 /* AppUpdate.swift in Sources */, - D014193922AE6B85008667CB /* ChannelOwnershipTransfer.swift in Sources */, - D014193A22AE6B85008667CB /* PeersNearby.swift in Sources */, - D076F88A2296D8F6004F895A /* ManageChannelDiscussionGroup.swift in Sources */, - 9F1BC1AB2244CFED00F21815 /* EmojiKeywords.swift in Sources */, - 9F1BC1AC2244CFED00F21815 /* SynchronizeEmojiKeywordsOperation.swift in Sources */, - 9F1BC1AD2244CFED00F21815 /* ManagedSynchronizeEmojiKeywordsOperations.swift in Sources */, - 9F7D42262223FF49007B68BB /* AutodownloadSettings.swift in Sources */, - 9F7D42272223FF49007B68BB /* ManagedAutodownloadSettingsUpdates.swift in Sources */, - 9F153D1021E8E0A200B95D82 /* Wallpaper.swift in Sources */, - 9F4EEF9E21DCF6E7002C3B33 /* ManagedVoipConfigurationUpdates.swift in Sources */, - 9F4EEF9F21DCF6E7002C3B33 /* ManagedAppConfigurationUpdates.swift in Sources */, - 9F4EEFA021DCF6E7002C3B33 /* SynchronizeAppLogEventsOperation.swift in Sources */, - 9F4EEFA121DCF6E7002C3B33 /* ManagedSynchronizeAppLogEventsOperations.swift in Sources */, - D0329EA622FC5A9600F9F071 /* ReactionsMessageAttribute.swift in Sources */, - 9F4EEF9B21DCF66F002C3B33 /* JSON.swift in Sources */, - 9F4EEF9C21DCF66F002C3B33 /* AppConfiguration.swift in Sources */, - 9F4EEF9D21DCF66F002C3B33 /* SearchBotsConfiguration.swift in Sources */, - 9FAA268820D457A300D26CF3 /* RemoteStorageConfiguration.swift in Sources */, - C28D3CF120D3DAA30027F4D6 /* DeepLinkInfo.swift in Sources */, - 9FC8ADAC206BC00A0094F7B4 /* RecentWebSessions.swift in Sources */, - 9FC8ADA9206BBD000094F7B4 /* SaveSecureIdValue.swift in Sources */, - 9F10CE8C20613CDB002DD61A /* TelegramDeviceContactImportInfo.swift in Sources */, - C29340F41F5081280074991E /* UpdateGroupSpecificStickerset.swift in Sources */, - C25638021E79E7FC00311607 /* TwoStepVerification.swift in Sources */, - D00DBBD81E64E41100DB5485 /* CreateSecretChat.swift in Sources */, - C2FD33EC1E696C79008D13D4 /* GroupsInCommon.swift in Sources */, - C239BE9D1E630CB300C2C453 /* UpdatePinnedMessage.swift in Sources */, - C239BE981E62F0D200C2C453 /* LoadMessagesIfNecessary.swift in Sources */, - D01C7ED41EF5DF83008305F1 /* LimitsConfiguration.swift in Sources */, - D051DB15215EC5A300F30F92 /* AppChangelogState.swift in Sources */, - C26A37EF1E5E0C41006977AC /* ChannelParticipants.swift in Sources */, - D00D343D1E6EC9770057B307 /* TelegramMediaGame.swift in Sources */, - D02609C020C6EC08006C34AC /* Crypto.m in Sources */, - D0AB262721C2F991008F6685 /* TelegramMediaPoll.swift in Sources */, - D0C26D6A1FE02402004ABF18 /* ManagedSynchronizeGroupedPeersOperations.swift in Sources */, - D01C7F051EFC1C49008305F1 /* DeviceContact.swift in Sources */, - D050F26A1E4A5B6D00988324 /* ManagedGlobalNotificationSettings.swift in Sources */, - D0750C9122B2FD8300BE5F6E /* PeerAccessHash.swift in Sources */, - D050F26B1E4A5B6D00988324 /* ApplyMaxReadIndexInteractively.swift in Sources */, - D033FEB11E61EB0200644997 /* PeerContactSettings.swift in Sources */, - D0458C891E69B4AB00FB34C1 /* OutgoingContentInfoMessageAttribute.swift in Sources */, - D050F26C1E4A5B6D00988324 /* UpdatePeers.swift in Sources */, - D08984F621187ECA00918162 /* NetworkType.swift in Sources */, - D050F26D1E4A5B6D00988324 /* CreateGroup.swift in Sources */, - D0575AF51E9FFDDE006F2541 /* ManagedSynchronizeSavedGifsOperations.swift in Sources */, - D00D34461E6EDD420057B307 /* SynchronizeConsumeMessageContentsOperation.swift in Sources */, - D0E412E8206ABC7500BEE4A2 /* EncryptedMediaResource.swift in Sources */, - D00D34401E6ED6E50057B307 /* ConsumableContentMessageAttribute.swift in Sources */, - D050F26E1E4A5B6D00988324 /* RemovePeerChat.swift in Sources */, - D0613FD81E606B3B00202CDB /* ConvertGroupToSupergroup.swift in Sources */, - D0DB7F041F43030C00591D48 /* InstallInteractiveReadMessagesAction.swift in Sources */, - D01D6BFA1E42A718006151C6 /* SearchStickers.swift in Sources */, - D0D748031E7AE98B00F4B1F6 /* StickerPackInteractiveOperations.swift in Sources */, - D0B167241F9F972E00976B40 /* LoggingSettings.swift in Sources */, - D0E41302206B9E6E00BEE4A2 /* SecureIdAddressValue.swift in Sources */, - C2A315C01E2E776A00D89000 /* RequestStartBot.swift in Sources */, - D0642EFA1F3E05D700792790 /* EarliestUnseenPersonalMentionMessage.swift in Sources */, - D0F7B1EA1E045C87007EB8A5 /* ChangePeerNotificationSettings.swift in Sources */, - D08984F32114B97400918162 /* ClearCloudDrafts.swift in Sources */, - D0B418A71D7E0592004562A4 /* Fetch.swift in Sources */, - D02ABC7C1E30058F00CAE539 /* DeleteMessagesInteractively.swift in Sources */, - D03DC9111F82E344001D584C /* AccountStateReset.swift in Sources */, - D0B1671E1F9EA2C300976B40 /* ChatHistoryPreloadManager.swift in Sources */, - D050F2111E48AB0600988324 /* InteractivePhoneFormatter.swift in Sources */, - D050F2631E4A5AEB00988324 /* SynchronizePinnedChatsOperation.swift in Sources */, - D0B418B81D7E05A6004562A4 /* ContactManagement.swift in Sources */, - D0E23DE01E8082A400B9B6D2 /* ArchivedStickerPacks.swift in Sources */, - D02D60AC206BA64100FEFE1E /* VerifySecureIdValue.swift in Sources */, - D0119CB120CA9EA800895300 /* MarkAllChatsAsRead.swift in Sources */, - D050F2521E4A59C200988324 /* JoinLink.swift in Sources */, - D018EE0320458E1E00CBB130 /* SecretChatLayerNegotiation.swift in Sources */, - D0F7B1E91E045C87007EB8A5 /* PeerCommands.swift in Sources */, - D00D97C81E32901700E5C2B6 /* PeerInputActivity.swift in Sources */, - D0754D2B1EEE10FC00884F6E /* BotPaymentForm.swift in Sources */, - D0E412EF206AF65500BEE4A2 /* GrantSecureIdAccess.swift in Sources */, - C22EE61C1E67418000334C38 /* ToggleChannelSignatures.swift in Sources */, - D0B418AC1D7E0597004562A4 /* Network.swift in Sources */, - D04CAA5B1E83310D0047E51F /* MD5.swift in Sources */, - D0B844141DAB91CD005F29E1 /* PhoneNumbers.swift in Sources */, - D0E305AB1E5BA02D00D7A3A2 /* ChannelBlacklist.swift in Sources */, - D00D97CB1E32917C00E5C2B6 /* PeerInputActivityManager.swift in Sources */, - D0B844491DAB91FD005F29E1 /* ManagedChatListHoles.swift in Sources */, - D03C53711DAD5CA9004C17B3 /* CachedGroupParticipants.swift in Sources */, - D07047B81F3DF2CD00F6A8D4 /* ManagedConsumePersonalMessagesActions.swift in Sources */, - C2366C841E4F3EAA0097CCFF /* GroupReturnAndLeft.swift in Sources */, - C2E0646E1ECF171E00387BB8 /* TelegramMediaWebDocument.swift in Sources */, - D03C53671DAD5CA9004C17B3 /* ApiUtils.swift in Sources */, - D0223A9C1EA5654D00211D94 /* TelegramMediaResource.swift in Sources */, - D0AAD1B91E326FE200D5B9DE /* ManagedAutoremoveMessageOperations.swift in Sources */, - D001F3F21E128A1C007A8C60 /* UpdateGroup.swift in Sources */, - D0338744223BD532007A2CE4 /* InitializeAccountAfterLogin.swift in Sources */, - D0F7B1EB1E045C87007EB8A5 /* ResolvePeerByName.swift in Sources */, - D018D3381E648ACF00C5E089 /* ChannelCreation.swift in Sources */, - D0F53BEA1E784A4800117362 /* ChangeAccountPhoneNumber.swift in Sources */, - C2E064691ECEEF0B00387BB8 /* TelegramMediaInvoice.swift in Sources */, - D001F3EE1E128A1C007A8C60 /* AccountStateManager.swift in Sources */, - C205FEA91EB3B75900455808 /* ExportMessageLink.swift in Sources */, - D0448CA31E291B14005A61A7 /* FetchSecretFileResource.swift in Sources */, - D0B8444C1DAB91FD005F29E1 /* UpdateCachedPeerData.swift in Sources */, - D0329EA322FC5A7C00F9F071 /* MessageReactions.swift in Sources */, - D0FA8B9F1E1F973B001E855B /* SecretChatIncomingEncryptedOperation.swift in Sources */, - D03C536C1DAD5CA9004C17B3 /* TelegramChannel.swift in Sources */, - D0B418951D7E0580004562A4 /* TelegramMediaContact.swift in Sources */, - D0F3CC7A1DDE2859008148FA /* RequestMessageActionCallback.swift in Sources */, - D073CEA11DCBF3D3007511FD /* StickerPack.swift in Sources */, - D0E23DD61E8042F500B9B6D2 /* FeaturedStickerPack.swift in Sources */, - C230BEB71EE9A3760029586C /* ChannelAdminEventLogs.swift in Sources */, - D00DBBDB1E64E67E00DB5485 /* UpdateSecretChat.swift in Sources */, - D0BE303E2061A29100FBE6D8 /* RequestSecureIdForm.swift in Sources */, - D0448C921E251F96005A61A7 /* SecretChatEncryption.swift in Sources */, - D00BDA1D1EE5952A00C64C5E /* TelegramChannelBannedRights.swift in Sources */, - D0E35A141DE4C69C00BC6096 /* FetchHttpResource.swift in Sources */, - D0B8440D1DAB91CD005F29E1 /* ImageRepresentationsUtils.swift in Sources */, - D03C536A1DAD5CA9004C17B3 /* TelegramUser.swift in Sources */, - D001F3EA1E128A1C007A8C60 /* TelegramPeerNotificationSettings.swift in Sources */, - D0E412F5206B9BDC00BEE4A2 /* SecureIdVerificationDocumentReference.swift in Sources */, - D0467D0C20D7F1E60055C28F /* SynchronizeMarkAllUnseenPersonalMessagesOperation.swift in Sources */, - D0FA8BA81E1FA6DF001E855B /* TelegramSecretChat.swift in Sources */, - C23BC3881E9BE3CB00D79F92 /* ImportContact.swift in Sources */, - D0B85AC61F6B2B9400B8B5CE /* RecentlyUsedHashtags.swift in Sources */, - D0E412F2206B9BB700BEE4A2 /* SecureIdPassportValue.swift in Sources */, - D001F3EB1E128A1C007A8C60 /* EnqueueMessage.swift in Sources */, - D01A21A71F38CDC700DDA104 /* SynchronizeSavedStickersOperation.swift in Sources */, - D00C7CEC1E37A8540080C3D5 /* SetSecretChatMessageAutoremoveTimeoutInteractively.swift in Sources */, - D048B4AD20A5DA4300C79D31 /* ManagedProxyInfoUpdates.swift in Sources */, - D0B844481DAB91FD005F29E1 /* ManagedMessageHistoryHoles.swift in Sources */, - D0F3CC7B1DDE2859008148FA /* RequestEditMessage.swift in Sources */, - D049EAEC1E44B71B00A2CD3A /* RecentlySearchedPeerIds.swift in Sources */, - D0F19F6720E6621000EEC860 /* MultiplexedRequestManager.swift in Sources */, - D0879BC922F85A3E00C4D6B3 /* ImageRepresentationWithReference.swift in Sources */, - D02D60A8206BA5F900FEFE1E /* SecureIdValue.swift in Sources */, - D0FA8B991E1E955C001E855B /* SecretChatOutgoingOperation.swift in Sources */, - D001F3F01E128A1C007A8C60 /* AccountStateManagementUtils.swift in Sources */, - D0BEAF611E54ACF900BD963D /* AccountManager.swift in Sources */, - D0CA3F85207391560042D2B6 /* SecureIdPadding.swift in Sources */, - D0F3CC791DDE2859008148FA /* SearchMessages.swift in Sources */, - D093D7EF206413F600BC3599 /* SecureIdDataTypes.swift in Sources */, - D03DC9141F82F89D001D584C /* RegularChatState.swift in Sources */, - D06CA13622772EB20094E707 /* ManagedNotificationSettingsBehaviors.swift in Sources */, - D0C44B621FC616E200227BE0 /* SearchGroupMembers.swift in Sources */, - D0F3A8A61E82C94C00B4C64C /* SynchronizeableChatInputState.swift in Sources */, - D00BDA1A1EE593D600C64C5E /* TelegramChannelAdminRights.swift in Sources */, - D00D34431E6EDD2E0057B307 /* ManagedSynchronizeConsumeMessageContentsOperations.swift in Sources */, - D049EAE91E44B67100A2CD3A /* RecentPeerItem.swift in Sources */, - D026099F20C695AF006C34AC /* Wallpapers.swift in Sources */, - D099E223229420D600561B75 /* BlockedPeersContext.swift in Sources */, - D0FA35091EA632E400E56FFA /* CollectCacheUsageStats.swift in Sources */, - D0E412EB206AD18E00BEE4A2 /* DecryptedResourceData.swift in Sources */, - D001F3F31E128A1C007A8C60 /* UpdateMessageService.swift in Sources */, - D0C50E351E93A86600F62E39 /* CallSessionManager.swift in Sources */, - D0A3E448214802C7008ACEF6 /* VoipConfiguration.swift in Sources */, - D018EE062045E95000CBB130 /* CheckPeerChatServiceActions.swift in Sources */, - D081E10B217F5ADE003CD921 /* LocalizationPreview.swift in Sources */, - D0C27B431F4B58C000A4E170 /* PeerSpecificStickerPack.swift in Sources */, - D0B844131DAB91CD005F29E1 /* StringFormat.swift in Sources */, - D0C0B58E1ED9DC5A000F4D2C /* SynchronizeLocalizationUpdatesOperation.swift in Sources */, - D0E35A131DE4C69100BC6096 /* OutgoingChatContextResultMessageAttribute.swift in Sources */, - D0B418961D7E0580004562A4 /* TelegramMediaFile.swift in Sources */, - D08CAA881ED81DD40000FDA8 /* LocalizationInfo.swift in Sources */, - D099D74A1EEF418D00A3128C /* HistoryViewStateValidation.swift in Sources */, - D0AF32231FAC95C20097362B /* StandaloneUploadedMedia.swift in Sources */, - D04554A721B43440007A6DD9 /* CancelAccountReset.swift in Sources */, - D001F3EC1E128A1C007A8C60 /* Holes.swift in Sources */, - D0B4189B1D7E0580004562A4 /* TelegramMediaWebpage.swift in Sources */, - D00C7CE11E3785710080C3D5 /* MarkMessageContentAsConsumedInteractively.swift in Sources */, - D0E23DDB1E806F7700B9B6D2 /* ManagedSynchronizeMarkFeaturedStickerPacksAsSeenOperations.swift in Sources */, - D07047B51F3DF1FE00F6A8D4 /* ConsumablePersonalMentionMessageAttribute.swift in Sources */, - D0448C8F1E22993C005A61A7 /* ProcessSecretChatIncomingDecryptedOperations.swift in Sources */, - D093D7F620641A4900BC3599 /* SecureIdPhoneValue.swift in Sources */, - D0C26D6D1FE286C3004ABF18 /* FetchChatList.swift in Sources */, - D073CE6E1DCBCF17007511FD /* ForwardSourceInfoAttribute.swift in Sources */, - D093D7FA20641AA500BC3599 /* SecureIdEmailValue.swift in Sources */, - D05A32E21E6F0982002760B4 /* UpdatedAccountPrivacySettings.swift in Sources */, - D0613FD01E60520700202CDB /* ChannelMembers.swift in Sources */, - D001F3E81E128A1C007A8C60 /* ChannelState.swift in Sources */, - C2366C8A1E4F40480097CCFF /* SupportPeerId.swift in Sources */, - D08CAA811ED80ED20000FDA8 /* SuggestedLocalizationEntry.swift in Sources */, - D0DA1D331F7043D50034E892 /* ManagedPendingPeerNotificationSettings.swift in Sources */, - D0B844451DAB91FD005F29E1 /* AccountViewTracker.swift in Sources */, - D0C48F3D1E8142EF0075317D /* LoadedPeerFromMessage.swift in Sources */, - D0F3A8A01E82C65400B4C64C /* SynchronizeChatInputStateOperation.swift in Sources */, - D050F2601E4A5AD500988324 /* AutoremoveTimeoutMessageAttribute.swift in Sources */, - D07E4140208A769D00FCA8F0 /* ProxyServersStatuses.swift in Sources */, - D049EAD91E43DAD200A2CD3A /* ManagedRecentStickers.swift in Sources */, - D0EE7FC220986BF400981319 /* SecureIdInternalPassportValue.swift in Sources */, - D0B418A61D7E0592004562A4 /* CloudFileMediaResource.swift in Sources */, - D073CEA51DCBF3F5007511FD /* StickerManagement.swift in Sources */, - D03C536D1DAD5CA9004C17B3 /* ApiGroupOrChannel.swift in Sources */, - D051DB18215ECC4D00F30F92 /* AppChangelog.swift in Sources */, - D01C06B81FBBA269001561AB /* CanSendMessagesToPeer.swift in Sources */, - D0E35A151DE4C6A200BC6096 /* OutgoingMessageWithChatContextResult.swift in Sources */, - D02ABC821E310E5D00CAE539 /* ManagedCloudChatRemoveMessagesOperations.swift in Sources */, - C2FD33E51E687BF1008D13D4 /* PeerPhotoUpdater.swift in Sources */, - D0BE304C20627D9800FBE6D8 /* AccessSecureId.swift in Sources */, - D01A21AD1F38D10E00DDA104 /* SavedStickerItem.swift in Sources */, - D03C53731DAD5CA9004C17B3 /* CachedGroupData.swift in Sources */, - D019B1CD1E2E3B6A00F80DB3 /* SecretChatRekeySession.swift in Sources */, - C2F4ED1E1EC60064005F2696 /* RateCall.swift in Sources */, - D0F7AB2D1DCE889D009AD9A1 /* EditedMessageAttribute.swift in Sources */, - D0B844121DAB91CD005F29E1 /* Log.swift in Sources */, - D03C53721DAD5CA9004C17B3 /* CachedUserData.swift in Sources */, - D0D1026D2212FE52003ADA5E /* AccountSortOrderAttribute.swift in Sources */, - D0AF32321FACEDEC0097362B /* CoreSettings.swift in Sources */, - D073CE6B1DCBCF17007511FD /* ReplyMessageAttribute.swift in Sources */, - D001F3E91E128A1C007A8C60 /* SecretChatState.swift in Sources */, - D08F4A6A1E79CECB00A2AA15 /* ManagedSynchronizeInstalledStickerPacksOperations.swift in Sources */, - D0B8444B1DAB91FD005F29E1 /* ManagedSynchronizePeerReadStates.swift in Sources */, - D0529D2521A4123400D7C3C4 /* SynchronizeRecentlyUsedMediaOperations.swift in Sources */, - D06ECFC920B810D300C576C2 /* TermsOfService.swift in Sources */, - 9F06831121A40DEC001D8EDB /* NotificationExceptionsList.swift in Sources */, - D0AB262C21C3CE80008F6685 /* Polls.swift in Sources */, - D073CE6C1DCBCF17007511FD /* TextEntitiesMessageAttribute.swift in Sources */, - D04D213D230AC35A00609388 /* WasScheduledMessageAttribute.swift in Sources */, - D03C53751DAD5CA9004C17B3 /* TelegramUserPresence.swift in Sources */, - D00580AF21E2A08900CB7CD3 /* AccountEnvironmentAttribute.swift in Sources */, - D03E3D29230447960049C28B /* RestrictedContentMessageAttribute.swift in Sources */, - D05452081E7B5093006EEF19 /* LoadedStickerPack.swift in Sources */, - D0561DE41E5737FC00E6B9E9 /* UpdatePeerInfo.swift in Sources */, - D042C6841E8D9DF800C863B0 /* Unixtime.swift in Sources */, - D0DC35521DE36908000195EB /* ChatContextResult.swift in Sources */, - D0F7AB301DCF507E009AD9A1 /* ReplyMarkupMessageAttribute.swift in Sources */, - D0F02CE61E9926C50065DEE2 /* ManagedConfigurationUpdates.swift in Sources */, - D073CE6D1DCBCF17007511FD /* InlineBotMessageAttribute.swift in Sources */, - D033FEB71E61F3F900644997 /* BlockedPeers.swift in Sources */, - D0E412D8206A866B00BEE4A2 /* UploadSecureIdFile.swift in Sources */, - D050F2611E4A5AE700988324 /* PrivacySettings.swift in Sources */, - C210DD631FBDB90800F673D8 /* SourceReferenceMessageAttribute.swift in Sources */, - D0B8440F1DAB91CD005F29E1 /* Either.swift in Sources */, - D0DC35511DE36908000195EB /* RequestChatContextResults.swift in Sources */, - D0FA08BC2046B37900DD23FC /* ContentPrivacySettings.swift in Sources */, - D08CAA8D1ED81EDF0000FDA8 /* Localizations.swift in Sources */, - D013630A208F6E2800EB3653 /* SecureIdValueContentError.swift in Sources */, - D0F7B1EC1E045C87007EB8A5 /* SearchPeers.swift in Sources */, - D02DADC22139A1FC00116225 /* ContactSyncManager.swift in Sources */, - D001F3EF1E128A1C007A8C60 /* AccountIntermediateState.swift in Sources */, - D0223A991EA564BD00211D94 /* MediaResourceNetworkStatsTag.swift in Sources */, - D00C7CCD1E3620C30080C3D5 /* CachedChannelParticipants.swift in Sources */, - D0A472B71F4CBE8B00E0EEDA /* LoadedPeer.swift in Sources */, - D03C536E1DAD5CA9004C17B3 /* PhoneNumber.swift in Sources */, - D0338741223BD48B007A2CE4 /* ContactsSettings.swift in Sources */, - D0BC387C1E40D2880044D6FE /* TogglePeerChatPinned.swift in Sources */, - D0528E6B1E65DD2100E2FEF5 /* WebpagePreview.swift in Sources */, - D0E8B8B42044706300605593 /* ForwardGame.swift in Sources */, - D0B844111DAB91CD005F29E1 /* Regex.swift in Sources */, - D0BEAF5E1E54941B00BD963D /* Authorization.swift in Sources */, - D073CEA41DCBF3EA007511FD /* MultipartUpload.swift in Sources */, - D03C53701DAD5CA9004C17B3 /* ExportedInvitation.swift in Sources */, - D0FA35061EA6135D00E56FFA /* CacheStorageSettings.swift in Sources */, - D08F4A671E79CC4A00A2AA15 /* SynchronizeInstalledStickerPacksOperations.swift in Sources */, - D05A32E81E6F0B5C002760B4 /* RecentAccountSession.swift in Sources */, - D0F7B1E31E045C7B007EB8A5 /* RichText.swift in Sources */, - D0575C2E22B922DF00A71A0E /* DeleteAccount.swift in Sources */, - D072F358231542740009E66F /* MessageReactionList.swift in Sources */, - D0FA8BB11E1FEC7E001E855B /* SecretChatEncryptionConfig.swift in Sources */, - D0B418AA1D7E0597004562A4 /* Download.swift in Sources */, - D001F3F41E128A1C007A8C60 /* UpdatesApiUtils.swift in Sources */, - D0D376E722DCCFD600FA7D7C /* SlowMode.swift in Sources */, - D015E00F225CA61100CB9E8A /* FindChannelById.swift in Sources */, - D04D8FF5209A4B0700865719 /* NetworkSettings.swift in Sources */, - D05464982073872C002ECC1E /* SecureIdBankStatementValue.swift in Sources */, - D069257222D8B526002FC021 /* SecretChatSettings.swift in Sources */, - D0B4188E1D7E0578004562A4 /* StoreMessage_Telegram.swift in Sources */, - D0B844461DAB91FD005F29E1 /* RecentPeers.swift in Sources */, - D0E412E2206AB24700BEE4A2 /* SecureFileMediaResource.swift in Sources */, - D0439B5E228ECB270067E026 /* RequestPhoneNumber.swift in Sources */, - D03C53681DAD5CA9004C17B3 /* PeerUtils.swift in Sources */, - D0BE303B20619EE800FBE6D8 /* SecureIdForm.swift in Sources */, - D07047BB1F3DF75500F6A8D4 /* ConsumePersonalMessageAction.swift in Sources */, - D0380DBB204EF306000414AB /* MessageMediaPreuploadManager.swift in Sources */, - D050F2621E4A5AE700988324 /* GlobalNotificationSettings.swift in Sources */, - D05D8B382192F8AF0064586F /* LocalizationListState.swift in Sources */, - D0DFD5E01FCDBCFD0039B3B1 /* CachedSentMediaReferences.swift in Sources */, - D0B418991D7E0580004562A4 /* TelegramMediaMap.swift in Sources */, - D0E8174A2010E7E300B82BBB /* ChannelAdminEventLogContext.swift in Sources */, - D054649B20738760002ECC1E /* SecureIdRentalAgreementValue.swift in Sources */, - D0561DEB1E5754FA00E6B9E9 /* ChannelAdmins.swift in Sources */, - D0AD02E41FFFA14800C1DCFF /* PeerLiveLocationsContext.swift in Sources */, - D0613FCB1E60440600202CDB /* InvitationLinks.swift in Sources */, - D0439B61228EDE430067E026 /* ContentRequiresValidationMessageAttribute.swift in Sources */, - D0633CD32253A528003DD95F /* ChatOnlineMembers.swift in Sources */, - D08984FC2118816A00918162 /* Reachability.m in Sources */, - D0B844471DAB91FD005F29E1 /* ManagedServiceViews.swift in Sources */, - D0F3A8A91E82CD7D00B4C64C /* UpdatePeerChatInterfaceState.swift in Sources */, - D00D343A1E6EC9520057B307 /* TeleramMediaUnsupported.swift in Sources */, - D03C53691DAD5CA9004C17B3 /* PeerAccessRestrictionInfo.swift in Sources */, - C2FD33E21E680E9E008D13D4 /* RequestUserPhotos.swift in Sources */, - D0B8440E1DAB91CD005F29E1 /* MessageUtils.swift in Sources */, - D0FA8BAB1E1FB76E001E855B /* ManagedSecretChatOutgoingOperations.swift in Sources */, - D0C26D671FE022DB004ABF18 /* SynchronizeGroupedPeersOperation.swift in Sources */, - D0B418BA1D7E05BB004562A4 /* NetworkLogging.m in Sources */, - D03C536B1DAD5CA9004C17B3 /* TelegramGroup.swift in Sources */, - D0E412DD206A99AE00BEE4A2 /* SecureIdValueAccessContext.swift in Sources */, - D0B418941D7E0580004562A4 /* TelegramMediaAction.swift in Sources */, - D0EC559B2101ED0800D1992C /* DeleteMessages.swift in Sources */, - D073CE6A1DCBCF17007511FD /* ViewCountMessageAttribute.swift in Sources */, - D0B418AB1D7E0597004562A4 /* MultipartFetch.swift in Sources */, - D01A21AA1F38CDDC00DDA104 /* ManagedSynchronizeSavedStickersOperations.swift in Sources */, - D0546495207386D7002ECC1E /* SecureIdUtilityBillValue.swift in Sources */, - D03C53741DAD5CA9004C17B3 /* CachedChannelData.swift in Sources */, - D032F5BD20EF84FD00037B6C /* FetchedMediaResource.swift in Sources */, - D0B418861D7E056D004562A4 /* Namespaces.swift in Sources */, - D05A32E51E6F0B2E002760B4 /* RecentAccountSessions.swift in Sources */, - D02395D71F8D09A50070F5C2 /* ChannelHistoryAvailabilitySettings.swift in Sources */, - D0F7B1E41E045C7B007EB8A5 /* InstantPage.swift in Sources */, - D03E5E0D1E55E02D0029569A /* LoggedOutAccountAttribute.swift in Sources */, - D0B418AD1D7E0597004562A4 /* Serialization.swift in Sources */, - D0F760D922202FE20074F7E5 /* ChannelStats.swift in Sources */, - D0ADF912212B00DD00310BBC /* SecureIdConfiguration.swift in Sources */, - C28725431EF967E700613564 /* NotificationInfoMessageAttribute.swift in Sources */, - D0A89990217A37A000759EE6 /* NotificationAutolockReportManager.swift in Sources */, - D054648C2073854A002ECC1E /* SecureIdPersonalDetailsValue.swift in Sources */, - D0F8C3A12017AF2700236FC5 /* GlobalTelegramCoreConfiguration.swift in Sources */, - D099D7471EEF0C2700A3128C /* ChannelMessageStateVersionAttribute.swift in Sources */, - D058E0D21E8AD65C00A442DE /* StandaloneSendMessage.swift in Sources */, - D03C536F1DAD5CA9004C17B3 /* BotInfo.swift in Sources */, - D0FA8BBA1E2240B4001E855B /* SecretChatIncomingDecryptedOperation.swift in Sources */, - D033FEB41E61F3C000644997 /* ReportPeer.swift in Sources */, - D0FA8BAE1E1FD6E2001E855B /* MemoryBufferExtensions.swift in Sources */, - D01B264A23324CF900A6448B /* Wallets.swift in Sources */, - D0FA8BB41E201B02001E855B /* ProcessSecretChatIncomingEncryptedOperations.swift in Sources */, - D0F3A8A31E82C65E00B4C64C /* ManagedSynchronizeChatInputStateOperations.swift in Sources */, - D098908022942E3B0053F151 /* ActiveSessionsContext.swift in Sources */, - D0448CA61E29215A005A61A7 /* MediaResourceApiUtils.swift in Sources */, - D0633CDC2253C0D3003DD95F /* CloudMediaResourceParameters.swift in Sources */, - D001F3F11E128A1C007A8C60 /* SynchronizePeerReadState.swift in Sources */, - D054648F20738626002ECC1E /* SecureIdDriversLicenseValue.swift in Sources */, - D0529D2821A4141800D7C3C4 /* ManagedSynchronizeRecentlyUsedMediaOperations.swift in Sources */, - D050F2641E4A5AEB00988324 /* ManagedSynchronizePinnedChatsOperations.swift in Sources */, - D04D21372306EC9A00609388 /* MacInternalUpdater.swift in Sources */, - D0575AF21E9FFA5D006F2541 /* SynchronizeSavedGifsOperation.swift in Sources */, - D0528E661E65C82400E2FEF5 /* UpdateContactName.swift in Sources */, - D0EE7FC82098853100981319 /* SecureIdTemporaryRegistrationValue.swift in Sources */, - D00422D421677F4500719B67 /* ManagedAccountPresence.swift in Sources */, - D023E67921540624008C27D1 /* UpdateMessageMedia.swift in Sources */, - D053B4191F18DE5000E2D58A /* AuthorSignatureMessageAttribute.swift in Sources */, - D0F7B1E81E045C87007EB8A5 /* PeerParticipants.swift in Sources */, - D0C48F3A1E8138DF0075317D /* ArchivedStickerPacksInfo.swift in Sources */, - D049EAD61E43D98500A2CD3A /* RecentMediaItem.swift in Sources */, - D0EE7FC520986C5300981319 /* SecureIdPassportRegistrationValue.swift in Sources */, - D0C0B58B1ED9DA6B000F4D2C /* ManagedLocalizationUpdatesOperations.swift in Sources */, - D001F3F51E128A1C007A8C60 /* PendingMessageManager.swift in Sources */, - D0C27B401F4B51D000A4E170 /* CachedStickerPack.swift in Sources */, - D001F3F61E128A1C007A8C60 /* PendingMessageUploadedContent.swift in Sources */, - D01C7ED71EF5E468008305F1 /* ProxySettings.swift in Sources */, - C2366C871E4F403C0097CCFF /* AddressNames.swift in Sources */, - D02ABC7F1E3109F000CAE539 /* CloudChatRemoveMessagesOperation.swift in Sources */, - D0528E611E65B94E00E2FEF5 /* SingleMessageView.swift in Sources */, - D0FC195C2020D1CA00FEDBB2 /* PeerGroupMessageStateVersionAttribute.swift in Sources */, - D0CA8E4C227209C4008A74C3 /* ManagedSynchronizeGroupMessageStats.swift in Sources */, - D08CAA851ED8164B0000FDA8 /* Localization.swift in Sources */, - D0528E5B1E658B3600E2FEF5 /* ManagedLocalInputActivities.swift in Sources */, - D0FA8BA51E1FA341001E855B /* SecretChatKeychain.swift in Sources */, - D0F7B1E71E045C87007EB8A5 /* JoinChannel.swift in Sources */, - D0E652201E3A364A004EEA91 /* UpdateAccountPeerName.swift in Sources */, - D0FA8BA21E1F99E1001E855B /* SecretChatFileReference.swift in Sources */, - D001F3F71E128A1C007A8C60 /* ApplyUpdateMessage.swift in Sources */, - D0B418971D7E0580004562A4 /* TelegramMediaImage.swift in Sources */, - D01843A92190C28100278AFF /* ConfirmTwoStepRecoveryEmail.swift in Sources */, - D041E3F91E535A88008C24B4 /* RemovePeerMember.swift in Sources */, - D0BAAA15230FDB4100AFC473 /* ProcessRemovedMedia.swift in Sources */, - D049EAF61E44DF3300A2CD3A /* AccountState.swift in Sources */, - D0467D1620D7F2C90055C28F /* ManagedSynchronizeMarkAllUnseenPersonalMessagesOperations.swift in Sources */, - D041E3F61E535464008C24B4 /* AddPeerMember.swift in Sources */, - D0E305A81E5B5CBE00D7A3A2 /* PeerAdmins.swift in Sources */, - D073CE6F1DCBCF17007511FD /* OutgoingMessageInfoAttribute.swift in Sources */, - D0B844431DAB91FD005F29E1 /* Account.swift in Sources */, - D08CAA7E1ED77EE90000FDA8 /* LocalizationSettings.swift in Sources */, - D054649220738653002ECC1E /* SecureIdIDCardValue.swift in Sources */, - D0448CA01E27F5EB005A61A7 /* Random.swift in Sources */, - C251D7441E65E50500283EDE /* StickerSetInstallation.swift in Sources */, - D053B41C1F18DEF500E2D58A /* TelegramMediaExpiredContent.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - D09D8C0D1D4FAB1D0081DBEC /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = D09D8C001D4FAB1D0081DBEC /* TelegramCore */; - targetProxy = D09D8C0C1D4FAB1D0081DBEC /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - C22069BE1E8EB4A200E82730 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyapp; - }; - C22069BF1E8EB4A200E82730 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = TelegramCore/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", - "$(PROJECT_DIR)/third-party/libwebp/lib", - ); - MODULEMAP_PRIVATE_FILE = ""; - OTHER_LDFLAGS = "-Wl,-dead_strip"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - }; - name = ReleaseHockeyapp; - }; - C22069C01E8EB4A200E82730 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - INFOPLIST_FILE = TelegramCoreTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseHockeyapp; - }; - C22069C11E8EB4A200E82730 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = TelegramCoreMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private-mac.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = ReleaseHockeyapp; - }; - D021D508219CB1E40064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugFork; - }; - D021D509219CB1E40064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = TelegramCore/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", - "$(PROJECT_DIR)/third-party/libwebp/lib", - ); - MODULEMAP_PRIVATE_FILE = ""; - OTHER_LDFLAGS = "-Wl,-dead_strip"; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - }; - name = DebugFork; - }; - D021D50A219CB1E40064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - INFOPLIST_FILE = TelegramCoreTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugFork; - }; - D021D50B219CB1E40064BEBA /* DebugFork */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - FRAMEWORK_VERSION = A; - GCC_OPTIMIZATION_LEVEL = s; - INFOPLIST_FILE = TelegramCoreMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private-mac.modulemap"; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = DebugFork; - }; - D0364D4D22B3E37C002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = HockeyappMacAlpha; - }; - D0364D4E22B3E37C002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = TelegramCore/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", - "$(PROJECT_DIR)/third-party/libwebp/lib", - ); - MODULEMAP_PRIVATE_FILE = ""; - OTHER_LDFLAGS = "-Wl,-dead_strip"; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - }; - name = HockeyappMacAlpha; - }; - D0364D4F22B3E37C002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - INFOPLIST_FILE = TelegramCoreTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = HockeyappMacAlpha; - }; - D0364D5022B3E37C002A6EF0 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - FRAMEWORK_VERSION = A; - GCC_OPTIMIZATION_LEVEL = s; - INFOPLIST_FILE = TelegramCoreMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private-mac.modulemap"; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = HockeyappMacAlpha; - }; - D06706551D51162400DED3E3 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStore; - }; - D06706561D51162400DED3E3 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = TelegramCore/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", - "$(PROJECT_DIR)/third-party/libwebp/lib", - ); - MODULEMAP_PRIVATE_FILE = ""; - OTHER_LDFLAGS = "-Wl,-dead_strip"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - }; - name = ReleaseAppStore; - }; - D06706571D51162400DED3E3 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - INFOPLIST_FILE = TelegramCoreTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseAppStore; - }; - D0924FE81FE52C12003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; - D0924FE91FE52C12003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = TelegramCore/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", - "$(PROJECT_DIR)/third-party/libwebp/lib", - ); - MODULEMAP_PRIVATE_FILE = ""; - OTHER_LDFLAGS = "-Wl,-dead_strip"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - }; - name = ReleaseHockeyappInternal; - }; - D0924FEA1FE52C12003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - INFOPLIST_FILE = TelegramCoreTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseHockeyappInternal; - }; - D0924FEB1FE52C12003F693F /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = TelegramCoreMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private-mac.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = ReleaseHockeyappInternal; - }; - D09D8C131D4FAB1D0081DBEC /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D09D8C141D4FAB1D0081DBEC /* DebugAppStore */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStore; - }; - D09D8C161D4FAB1D0081DBEC /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = TelegramCore/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", - "$(PROJECT_DIR)/third-party/libwebp/lib", - ); - MODULEMAP_PRIVATE_FILE = ""; - OTHER_LDFLAGS = "-Wl,-dead_strip"; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - }; - name = DebugHockeyapp; - }; - D09D8C171D4FAB1D0081DBEC /* DebugAppStore */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_OPTIMIZATION_LEVEL = 0; - INFOPLIST_FILE = TelegramCore/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", - "$(PROJECT_DIR)/third-party/libwebp/lib", - ); - MODULEMAP_PRIVATE_FILE = ""; - OTHER_LDFLAGS = "-Wl,-dead_strip"; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - }; - name = DebugAppStore; - }; - D09D8C191D4FAB1D0081DBEC /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - INFOPLIST_FILE = TelegramCoreTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugHockeyapp; - }; - D09D8C1A1D4FAB1D0081DBEC /* DebugAppStore */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - INFOPLIST_FILE = TelegramCoreTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugAppStore; - }; - D0ADF934212B3ADA00310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - D0ADF935212B3ADA00310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_OPTIMIZATION_LEVEL = 0; - INFOPLIST_FILE = TelegramCore/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", - "$(PROJECT_DIR)/third-party/libwebp/lib", - ); - MODULEMAP_PRIVATE_FILE = ""; - OTHER_LDFLAGS = "-Wl,-dead_strip"; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - }; - name = DebugAppStoreLLC; - }; - D0ADF936212B3ADA00310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - INFOPLIST_FILE = TelegramCoreTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = DebugAppStoreLLC; - }; - D0ADF937212B3ADA00310BBC /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = TelegramCoreMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private-mac.modulemap"; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = DebugAppStoreLLC; - }; - D0B4186D1D7E03D5004562A4 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - FRAMEWORK_VERSION = A; - GCC_OPTIMIZATION_LEVEL = s; - INFOPLIST_FILE = TelegramCoreMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private-mac.modulemap"; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = DebugHockeyapp; - }; - D0B4186E1D7E03D5004562A4 /* DebugAppStore */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = TelegramCoreMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private-mac.modulemap"; - OTHER_SWIFT_FLAGS = "-DDEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = DebugAppStore; - }; - D0B4186F1D7E03D5004562A4 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = TelegramCoreMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private-mac.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = ReleaseAppStore; - }; - D0CE6EF5213DC30700BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.10; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EF6213DC30700BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CODE_SIGN_STYLE = Manual; - COPY_PHASE_STRIP = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = TelegramCore/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/third-party/FFmpeg-iOS/lib", - "$(PROJECT_DIR)/third-party/libwebp/lib", - ); - MODULEMAP_PRIVATE_FILE = ""; - OTHER_LDFLAGS = "-Wl,-dead_strip"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TelegramCore; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_REFLECTION_METADATA_LEVEL = all; - SWIFT_VERSION = 5.0; - USER_HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/third-party/FFmpeg-iOS/include"; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EF7213DC30700BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - INFOPLIST_FILE = TelegramCoreTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = ReleaseAppStoreLLC; - }; - D0CE6EF8213DC30700BCD44B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D03B0E591D63215200955575 /* TelegramCore.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - FRAMEWORK_VERSION = A; - INFOPLIST_FILE = TelegramCoreMac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MODULEMAP_PRIVATE_FILE = "$(SRCROOT)/TelegramCore/module.private-mac.modulemap"; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.Telegram.TelegramCoreMac; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 5.0; - }; - name = ReleaseAppStoreLLC; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - D09D8BFB1D4FAB1D0081DBEC /* Build configuration list for PBXProject "TelegramCore_Xcode" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D09D8C131D4FAB1D0081DBEC /* DebugHockeyapp */, - D0364D4D22B3E37C002A6EF0 /* HockeyappMacAlpha */, - D021D508219CB1E40064BEBA /* DebugFork */, - D09D8C141D4FAB1D0081DBEC /* DebugAppStore */, - D0ADF934212B3ADA00310BBC /* DebugAppStoreLLC */, - C22069BE1E8EB4A200E82730 /* ReleaseHockeyapp */, - D0924FE81FE52C12003F693F /* ReleaseHockeyappInternal */, - D06706551D51162400DED3E3 /* ReleaseAppStore */, - D0CE6EF5213DC30700BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = DebugAppStore; - }; - D09D8C151D4FAB1D0081DBEC /* Build configuration list for PBXNativeTarget "TelegramCore" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D09D8C161D4FAB1D0081DBEC /* DebugHockeyapp */, - D0364D4E22B3E37C002A6EF0 /* HockeyappMacAlpha */, - D021D509219CB1E40064BEBA /* DebugFork */, - D09D8C171D4FAB1D0081DBEC /* DebugAppStore */, - D0ADF935212B3ADA00310BBC /* DebugAppStoreLLC */, - C22069BF1E8EB4A200E82730 /* ReleaseHockeyapp */, - D0924FE91FE52C12003F693F /* ReleaseHockeyappInternal */, - D06706561D51162400DED3E3 /* ReleaseAppStore */, - D0CE6EF6213DC30700BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = DebugAppStore; - }; - D09D8C181D4FAB1D0081DBEC /* Build configuration list for PBXNativeTarget "TelegramCoreTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D09D8C191D4FAB1D0081DBEC /* DebugHockeyapp */, - D0364D4F22B3E37C002A6EF0 /* HockeyappMacAlpha */, - D021D50A219CB1E40064BEBA /* DebugFork */, - D09D8C1A1D4FAB1D0081DBEC /* DebugAppStore */, - D0ADF936212B3ADA00310BBC /* DebugAppStoreLLC */, - C22069C01E8EB4A200E82730 /* ReleaseHockeyapp */, - D0924FEA1FE52C12003F693F /* ReleaseHockeyappInternal */, - D06706571D51162400DED3E3 /* ReleaseAppStore */, - D0CE6EF7213DC30700BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = DebugAppStore; - }; - D0B4186C1D7E03D5004562A4 /* Build configuration list for PBXNativeTarget "TelegramCoreMac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0B4186D1D7E03D5004562A4 /* DebugHockeyapp */, - D0364D5022B3E37C002A6EF0 /* HockeyappMacAlpha */, - D021D50B219CB1E40064BEBA /* DebugFork */, - D0B4186E1D7E03D5004562A4 /* DebugAppStore */, - D0ADF937212B3ADA00310BBC /* DebugAppStoreLLC */, - C22069C11E8EB4A200E82730 /* ReleaseHockeyapp */, - D0924FEB1FE52C12003F693F /* ReleaseHockeyappInternal */, - D0B4186F1D7E03D5004562A4 /* ReleaseAppStore */, - D0CE6EF8213DC30700BCD44B /* ReleaseAppStoreLLC */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = DebugAppStore; - }; -/* End XCConfigurationList section */ - }; - rootObject = D09D8BF81D4FAB1D0081DBEC /* Project object */; -} diff --git a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 48eb199cdd..0000000000 --- a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/xcshareddata/xcschemes/TelegramCore.xcscheme b/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/xcshareddata/xcschemes/TelegramCore.xcscheme deleted file mode 100644 index 0eb420f857..0000000000 --- a/submodules/TelegramCore/TelegramCore_Xcode.xcodeproj/xcshareddata/xcschemes/TelegramCore.xcscheme +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/submodules/TelegramUI/TelegramUI/WalletContextImpl.swift b/submodules/TelegramUI/TelegramUI/WalletContextImpl.swift index c66da04761..ae7f4f5060 100644 --- a/submodules/TelegramUI/TelegramUI/WalletContextImpl.swift +++ b/submodules/TelegramUI/TelegramUI/WalletContextImpl.swift @@ -29,79 +29,7 @@ extension WalletConfiguration { } } -final class WalletStorageInterfaceImpl: WalletStorageInterface { - private let postbox: Postbox - - init(postbox: Postbox) { - self.postbox = postbox - } - - func watchWalletRecords() -> Signal<[WalletStateRecord], NoError> { - return self.postbox.preferencesView(keys: [PreferencesKeys.walletCollection]) - |> map { view -> [WalletStateRecord] in - guard let walletCollection = view.values[PreferencesKeys.walletCollection] as? WalletCollection else { - return [] - } - return walletCollection.wallets.flatMap { item -> WalletStateRecord? in - do { - return WalletStateRecord(info: try JSONDecoder().decode(WalletInfo.self, from: item.info), exportCompleted: item.exportCompleted, state: item.state.flatMap { try? JSONDecoder().decode(CombinedWalletState.self, from: $0) }) - } catch { - return nil - } - } - } - } - - func getWalletRecords() -> Signal<[WalletStateRecord], NoError> { - return self.postbox.transaction { transaction -> [WalletStateRecord] in - guard let walletCollection = transaction.getPreferencesEntry(key: PreferencesKeys.walletCollection) as? WalletCollection else { - return [] - } - return walletCollection.wallets.flatMap { item -> WalletStateRecord? in - do { - return WalletStateRecord(info: try JSONDecoder().decode(WalletInfo.self, from: item.info), exportCompleted: item.exportCompleted, state: item.state.flatMap { try? JSONDecoder().decode(CombinedWalletState.self, from: $0) }) - } catch { - return nil - } - } - } - } - - func updateWalletRecords(_ f: @escaping ([WalletStateRecord]) -> [WalletStateRecord]) -> Signal<[WalletStateRecord], NoError> { - return self.postbox.transaction { transaction -> [WalletStateRecord] in - var updatedRecords: [WalletStateRecord] = [] - transaction.updatePreferencesEntry(key: PreferencesKeys.walletCollection, { current in - var walletCollection = (current as? WalletCollection) ?? WalletCollection(wallets: []) - let updatedItems = f(walletCollection.wallets.flatMap { item -> WalletStateRecord? in - do { - return WalletStateRecord(info: try JSONDecoder().decode(WalletInfo.self, from: item.info), exportCompleted: item.exportCompleted, state: item.state.flatMap { try? JSONDecoder().decode(CombinedWalletState.self, from: $0) }) - } catch { - return nil - } - }) - walletCollection.wallets = updatedItems.flatMap { item in - do { - return WalletCollectionItem(info: try JSONEncoder().encode(item.info), exportCompleted: item.exportCompleted, state: item.state.flatMap { - try? JSONEncoder().encode($0) - }) - } catch { - return nil - } - } - return walletCollection - }) - return updatedRecords - } - } - - func localWalletConfiguration() -> Signal { - return .single(LocalWalletConfiguration(source: .string(""), blockchainName: "")) - } - - func updateLocalWalletConfiguration(_ f: @escaping (LocalWalletConfiguration) -> LocalWalletConfiguration) -> Signal { - return .complete() - } -} + final class WalletContextImpl: WalletContext { private let context: AccountContext diff --git a/submodules/TonBinding/Sources/TON.mm b/submodules/TonBinding/Sources/TON.mm index 7ea1390032..0411223311 100644 --- a/submodules/TonBinding/Sources/TON.mm +++ b/submodules/TonBinding/Sources/TON.mm @@ -628,7 +628,7 @@ typedef enum { }]; auto query = make_object( - make_object( + make_object( make_object( makeString(publicKeyData), makeSecureString(key.secret) @@ -777,7 +777,7 @@ typedef enum { } }]; auto query = make_object( - make_object( + make_object( make_object( makeString(publicKeyData), makeSecureString(key.secret) diff --git a/submodules/WalletCore/Sources/WalletCore.swift b/submodules/WalletCore/Sources/WalletCore.swift index 4bf8024a72..fa7bb0e108 100644 --- a/submodules/WalletCore/Sources/WalletCore.swift +++ b/submodules/WalletCore/Sources/WalletCore.swift @@ -1,11 +1,7 @@ import Foundation -#if os(macOS) -import SwiftSignalKitMac -import MtProtoKitMac -#else import SwiftSignalKit import TonBinding -#endif + public struct TonKeychainEncryptedData: Codable, Equatable { public let publicKey: Data @@ -306,7 +302,7 @@ public final class TonInstance { subscriber.putNext(state.lastTransactionId.flatMap(WalletTransactionId.init(tonTransactionId:))) }, error: { error in if let error = error as? TONError { - if error.text.hasPrefix("ДITE_SERVER_") { + if error.text.hasPrefix("LITE_SERVER_") { subscriber.putError(.network) } else { subscriber.putError(.generic) diff --git a/submodules/libphonenumber/Info.plist b/submodules/libphonenumber/Info.plist deleted file mode 100644 index e1fe4cfb7b..0000000000 --- a/submodules/libphonenumber/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - - diff --git a/submodules/libphonenumber/Sources/NBPhoneNumber.h b/submodules/libphonenumber/Sources/NBPhoneNumber.h index abff40ed9b..51b3a2ac46 100755 --- a/submodules/libphonenumber/Sources/NBPhoneNumber.h +++ b/submodules/libphonenumber/Sources/NBPhoneNumber.h @@ -5,11 +5,8 @@ // #import -#if TARGET_OS_IOS #import -#else -#import -#endif + @interface NBPhoneNumber : NSObject diff --git a/submodules/libphonenumber/Sources/NBPhoneNumberUtil.h b/submodules/libphonenumber/Sources/NBPhoneNumberUtil.h index fea42a7444..4d1ce4fea0 100755 --- a/submodules/libphonenumber/Sources/NBPhoneNumberUtil.h +++ b/submodules/libphonenumber/Sources/NBPhoneNumberUtil.h @@ -7,11 +7,8 @@ // #import -#if TARGET_OS_IOS #import -#else -#import -#endif + @class NBPhoneMetaData, NBPhoneNumber; diff --git a/submodules/libphonenumber/libphonenumber_Xcode.xcodeproj/project.pbxproj b/submodules/libphonenumber/libphonenumber_Xcode.xcodeproj/project.pbxproj deleted file mode 100644 index 0ab88d79ef..0000000000 --- a/submodules/libphonenumber/libphonenumber_Xcode.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - D0208ABB2306E84F00A23503 /* libphonenumbermac.h in Headers */ = {isa = PBXBuildFile; fileRef = D0208AB92306E84F00A23503 /* libphonenumbermac.h */; }; - D0208ABF2306E85800A23503 /* NBMetadataCoreTest.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459B2305D1EF0049C28B /* NBMetadataCoreTest.h */; }; - D0208AC02306E85800A23503 /* NBPhoneMetaDataGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A22305D1EF0049C28B /* NBPhoneMetaDataGenerator.h */; }; - D0208AC12306E85800A23503 /* NBNumberFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45992305D1EF0049C28B /* NBNumberFormat.h */; }; - D0208AC32306E85800A23503 /* NBPhoneNumberUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A62305D1F00049C28B /* NBPhoneNumberUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0208AC42306E85800A23503 /* libphonenumbermac.h in Headers */ = {isa = PBXBuildFile; fileRef = D0208AB92306E84F00A23503 /* libphonenumbermac.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0208AC52306E85800A23503 /* NBMetadataCoreMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A02305D1EF0049C28B /* NBMetadataCoreMapper.h */; }; - D0208AC62306E85800A23503 /* NBAsYouTypeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459D2305D1EF0049C28B /* NBAsYouTypeFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0208AC72306E85800A23503 /* NBPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45AA2305D1F10049C28B /* NBPhoneNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0208AC82306E85800A23503 /* NBPhoneNumberDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459C2305D1EF0049C28B /* NBPhoneNumberDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D0208AC92306E85800A23503 /* NBMetadataCore.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459E2305D1EF0049C28B /* NBMetadataCore.h */; }; - D0208ACA2306E85800A23503 /* NBPhoneMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45B02305D1F10049C28B /* NBPhoneMetaData.h */; }; - D0208ACB2306E85800A23503 /* NBPhoneNumberDesc.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A72305D1F00049C28B /* NBPhoneNumberDesc.h */; }; - D0208ACC2306E85800A23503 /* NBMetadataHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459A2305D1EF0049C28B /* NBMetadataHelper.h */; }; - D0208ACD2306E85800A23503 /* NBMetadataCoreTestMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A82305D1F00049C28B /* NBMetadataCoreTestMapper.h */; }; - D0208ACF2306E85800A23503 /* NBMetadataCoreMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A42305D1F00049C28B /* NBMetadataCoreMapper.m */; }; - D0208AD02306E85800A23503 /* NBMetadataCoreTestMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A32305D1F00049C28B /* NBMetadataCoreTestMapper.m */; }; - D0208AD12306E85800A23503 /* NBPhoneNumberDefines.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A12305D1EF0049C28B /* NBPhoneNumberDefines.m */; }; - D0208AD22306E85800A23503 /* NBNumberFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AE2305D1F10049C28B /* NBNumberFormat.m */; }; - D0208AD32306E85800A23503 /* NBAsYouTypeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45B12305D1F10049C28B /* NBAsYouTypeFormatter.m */; }; - D0208AD42306E85800A23503 /* NBMetadataCore.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A92305D1F00049C28B /* NBMetadataCore.m */; }; - D0208AD52306E85800A23503 /* NBPhoneNumberDesc.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E459F2305D1EF0049C28B /* NBPhoneNumberDesc.m */; }; - D0208AD62306E85800A23503 /* NBPhoneNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AD2305D1F10049C28B /* NBPhoneNumber.m */; }; - D0208AD72306E85800A23503 /* NBPhoneMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AF2305D1F10049C28B /* NBPhoneMetaData.m */; }; - D0208AD82306E85800A23503 /* NBMetadataCoreTest.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45B22305D1F10049C28B /* NBMetadataCoreTest.m */; }; - D0208AD92306E85800A23503 /* NBPhoneMetaDataGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AB2305D1F10049C28B /* NBPhoneMetaDataGenerator.m */; }; - D0208ADA2306E85800A23503 /* NBMetadataHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AC2305D1F10049C28B /* NBMetadataHelper.m */; }; - D0208ADB2306E85800A23503 /* NBPhoneNumberUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A52305D1F00049C28B /* NBPhoneNumberUtil.m */; }; - D0208ADD2306E85800A23503 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45CE2305D32D0049C28B /* Foundation.framework */; }; - D03E458F2305CE840049C28B /* libphonenumber.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E458D2305CE840049C28B /* libphonenumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E45B32305D1F20049C28B /* NBNumberFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45992305D1EF0049C28B /* NBNumberFormat.h */; }; - D03E45B42305D1F20049C28B /* NBMetadataHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459A2305D1EF0049C28B /* NBMetadataHelper.h */; }; - D03E45B52305D1F20049C28B /* NBMetadataCoreTest.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459B2305D1EF0049C28B /* NBMetadataCoreTest.h */; }; - D03E45B62305D1F20049C28B /* NBPhoneNumberDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459C2305D1EF0049C28B /* NBPhoneNumberDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E45B72305D1F20049C28B /* NBAsYouTypeFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459D2305D1EF0049C28B /* NBAsYouTypeFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E45B82305D1F20049C28B /* NBMetadataCore.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E459E2305D1EF0049C28B /* NBMetadataCore.h */; }; - D03E45B92305D1F20049C28B /* NBPhoneNumberDesc.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E459F2305D1EF0049C28B /* NBPhoneNumberDesc.m */; }; - D03E45BA2305D1F20049C28B /* NBMetadataCoreMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A02305D1EF0049C28B /* NBMetadataCoreMapper.h */; }; - D03E45BB2305D1F20049C28B /* NBPhoneNumberDefines.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A12305D1EF0049C28B /* NBPhoneNumberDefines.m */; }; - D03E45BC2305D1F20049C28B /* NBPhoneMetaDataGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A22305D1EF0049C28B /* NBPhoneMetaDataGenerator.h */; }; - D03E45BD2305D1F20049C28B /* NBMetadataCoreTestMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A32305D1F00049C28B /* NBMetadataCoreTestMapper.m */; }; - D03E45BE2305D1F20049C28B /* NBMetadataCoreMapper.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A42305D1F00049C28B /* NBMetadataCoreMapper.m */; }; - D03E45BF2305D1F20049C28B /* NBPhoneNumberUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A52305D1F00049C28B /* NBPhoneNumberUtil.m */; }; - D03E45C02305D1F20049C28B /* NBPhoneNumberUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A62305D1F00049C28B /* NBPhoneNumberUtil.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E45C12305D1F20049C28B /* NBPhoneNumberDesc.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A72305D1F00049C28B /* NBPhoneNumberDesc.h */; }; - D03E45C22305D1F20049C28B /* NBMetadataCoreTestMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45A82305D1F00049C28B /* NBMetadataCoreTestMapper.h */; }; - D03E45C32305D1F20049C28B /* NBMetadataCore.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45A92305D1F00049C28B /* NBMetadataCore.m */; }; - D03E45C42305D1F20049C28B /* NBPhoneNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45AA2305D1F10049C28B /* NBPhoneNumber.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E45C52305D1F20049C28B /* NBPhoneMetaDataGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AB2305D1F10049C28B /* NBPhoneMetaDataGenerator.m */; }; - D03E45C62305D1F20049C28B /* NBMetadataHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AC2305D1F10049C28B /* NBMetadataHelper.m */; }; - D03E45C72305D1F20049C28B /* NBPhoneNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AD2305D1F10049C28B /* NBPhoneNumber.m */; }; - D03E45C82305D1F20049C28B /* NBNumberFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AE2305D1F10049C28B /* NBNumberFormat.m */; }; - D03E45C92305D1F20049C28B /* NBPhoneMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45AF2305D1F10049C28B /* NBPhoneMetaData.m */; }; - D03E45CA2305D1F20049C28B /* NBPhoneMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45B02305D1F10049C28B /* NBPhoneMetaData.h */; }; - D03E45CB2305D1F20049C28B /* NBAsYouTypeFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45B12305D1F10049C28B /* NBAsYouTypeFormatter.m */; }; - D03E45CC2305D1F20049C28B /* NBMetadataCoreTest.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E45B22305D1F10049C28B /* NBMetadataCoreTest.m */; }; - D03E45CF2305D32E0049C28B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E45CE2305D32D0049C28B /* Foundation.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - D0208AB92306E84F00A23503 /* libphonenumbermac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libphonenumbermac.h; sourceTree = ""; }; - D0208ABA2306E84F00A23503 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D0208AE52306E85800A23503 /* libphonenumbermac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libphonenumbermac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E458A2305CE830049C28B /* libphonenumber.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = libphonenumber.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E458D2305CE840049C28B /* libphonenumber.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libphonenumber.h; sourceTree = ""; }; - D03E458E2305CE840049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D03E45992305D1EF0049C28B /* NBNumberFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBNumberFormat.h; sourceTree = ""; }; - D03E459A2305D1EF0049C28B /* NBMetadataHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataHelper.h; sourceTree = ""; }; - D03E459B2305D1EF0049C28B /* NBMetadataCoreTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCoreTest.h; sourceTree = ""; }; - D03E459C2305D1EF0049C28B /* NBPhoneNumberDefines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumberDefines.h; sourceTree = ""; }; - D03E459D2305D1EF0049C28B /* NBAsYouTypeFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBAsYouTypeFormatter.h; sourceTree = ""; }; - D03E459E2305D1EF0049C28B /* NBMetadataCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCore.h; sourceTree = ""; }; - D03E459F2305D1EF0049C28B /* NBPhoneNumberDesc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumberDesc.m; sourceTree = ""; }; - D03E45A02305D1EF0049C28B /* NBMetadataCoreMapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCoreMapper.h; sourceTree = ""; }; - D03E45A12305D1EF0049C28B /* NBPhoneNumberDefines.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumberDefines.m; sourceTree = ""; }; - D03E45A22305D1EF0049C28B /* NBPhoneMetaDataGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneMetaDataGenerator.h; sourceTree = ""; }; - D03E45A32305D1F00049C28B /* NBMetadataCoreTestMapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCoreTestMapper.m; sourceTree = ""; }; - D03E45A42305D1F00049C28B /* NBMetadataCoreMapper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCoreMapper.m; sourceTree = ""; }; - D03E45A52305D1F00049C28B /* NBPhoneNumberUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumberUtil.m; sourceTree = ""; }; - D03E45A62305D1F00049C28B /* NBPhoneNumberUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumberUtil.h; sourceTree = ""; }; - D03E45A72305D1F00049C28B /* NBPhoneNumberDesc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumberDesc.h; sourceTree = ""; }; - D03E45A82305D1F00049C28B /* NBMetadataCoreTestMapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBMetadataCoreTestMapper.h; sourceTree = ""; }; - D03E45A92305D1F00049C28B /* NBMetadataCore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCore.m; sourceTree = ""; }; - D03E45AA2305D1F10049C28B /* NBPhoneNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneNumber.h; sourceTree = ""; }; - D03E45AB2305D1F10049C28B /* NBPhoneMetaDataGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneMetaDataGenerator.m; sourceTree = ""; }; - D03E45AC2305D1F10049C28B /* NBMetadataHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataHelper.m; sourceTree = ""; }; - D03E45AD2305D1F10049C28B /* NBPhoneNumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneNumber.m; sourceTree = ""; }; - D03E45AE2305D1F10049C28B /* NBNumberFormat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBNumberFormat.m; sourceTree = ""; }; - D03E45AF2305D1F10049C28B /* NBPhoneMetaData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBPhoneMetaData.m; sourceTree = ""; }; - D03E45B02305D1F10049C28B /* NBPhoneMetaData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NBPhoneMetaData.h; sourceTree = ""; }; - D03E45B12305D1F10049C28B /* NBAsYouTypeFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBAsYouTypeFormatter.m; sourceTree = ""; }; - D03E45B22305D1F10049C28B /* NBMetadataCoreTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NBMetadataCoreTest.m; sourceTree = ""; }; - D03E45CE2305D32D0049C28B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - D0208ADC2306E85800A23503 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D0208ADD2306E85800A23503 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D03E45872305CE830049C28B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E45CF2305D32E0049C28B /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - D0208AB82306E84F00A23503 /* libphonenumbermac */ = { - isa = PBXGroup; - children = ( - D0208AB92306E84F00A23503 /* libphonenumbermac.h */, - D0208ABA2306E84F00A23503 /* Info.plist */, - ); - path = libphonenumbermac; - sourceTree = ""; - }; - D03E45802305CE830049C28B = { - isa = PBXGroup; - children = ( - D03E458E2305CE840049C28B /* Info.plist */, - D0208AB82306E84F00A23503 /* libphonenumbermac */, - D03E458C2305CE840049C28B /* Sources */, - D03E458B2305CE830049C28B /* Products */, - D03E45CD2305D32D0049C28B /* Frameworks */, - ); - sourceTree = ""; - }; - D03E458B2305CE830049C28B /* Products */ = { - isa = PBXGroup; - children = ( - D03E458A2305CE830049C28B /* libphonenumber.framework */, - D0208AE52306E85800A23503 /* libphonenumbermac.framework */, - ); - name = Products; - sourceTree = ""; - }; - D03E458C2305CE840049C28B /* Sources */ = { - isa = PBXGroup; - children = ( - D03E459D2305D1EF0049C28B /* NBAsYouTypeFormatter.h */, - D03E45B12305D1F10049C28B /* NBAsYouTypeFormatter.m */, - D03E459E2305D1EF0049C28B /* NBMetadataCore.h */, - D03E45A92305D1F00049C28B /* NBMetadataCore.m */, - D03E45A02305D1EF0049C28B /* NBMetadataCoreMapper.h */, - D03E45A42305D1F00049C28B /* NBMetadataCoreMapper.m */, - D03E459B2305D1EF0049C28B /* NBMetadataCoreTest.h */, - D03E45B22305D1F10049C28B /* NBMetadataCoreTest.m */, - D03E45A82305D1F00049C28B /* NBMetadataCoreTestMapper.h */, - D03E45A32305D1F00049C28B /* NBMetadataCoreTestMapper.m */, - D03E459A2305D1EF0049C28B /* NBMetadataHelper.h */, - D03E45AC2305D1F10049C28B /* NBMetadataHelper.m */, - D03E45992305D1EF0049C28B /* NBNumberFormat.h */, - D03E45AE2305D1F10049C28B /* NBNumberFormat.m */, - D03E45B02305D1F10049C28B /* NBPhoneMetaData.h */, - D03E45AF2305D1F10049C28B /* NBPhoneMetaData.m */, - D03E45A22305D1EF0049C28B /* NBPhoneMetaDataGenerator.h */, - D03E45AB2305D1F10049C28B /* NBPhoneMetaDataGenerator.m */, - D03E45AA2305D1F10049C28B /* NBPhoneNumber.h */, - D03E45AD2305D1F10049C28B /* NBPhoneNumber.m */, - D03E459C2305D1EF0049C28B /* NBPhoneNumberDefines.h */, - D03E45A12305D1EF0049C28B /* NBPhoneNumberDefines.m */, - D03E45A72305D1F00049C28B /* NBPhoneNumberDesc.h */, - D03E459F2305D1EF0049C28B /* NBPhoneNumberDesc.m */, - D03E45A62305D1F00049C28B /* NBPhoneNumberUtil.h */, - D03E45A52305D1F00049C28B /* NBPhoneNumberUtil.m */, - D03E458D2305CE840049C28B /* libphonenumber.h */, - ); - path = Sources; - sourceTree = ""; - }; - D03E45CD2305D32D0049C28B /* Frameworks */ = { - isa = PBXGroup; - children = ( - D03E45CE2305D32D0049C28B /* Foundation.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - D0208ABE2306E85800A23503 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D0208AC42306E85800A23503 /* libphonenumbermac.h in Headers */, - D0208ABF2306E85800A23503 /* NBMetadataCoreTest.h in Headers */, - D0208AC02306E85800A23503 /* NBPhoneMetaDataGenerator.h in Headers */, - D0208AC12306E85800A23503 /* NBNumberFormat.h in Headers */, - D0208AC32306E85800A23503 /* NBPhoneNumberUtil.h in Headers */, - D0208AC52306E85800A23503 /* NBMetadataCoreMapper.h in Headers */, - D0208AC62306E85800A23503 /* NBAsYouTypeFormatter.h in Headers */, - D0208AC72306E85800A23503 /* NBPhoneNumber.h in Headers */, - D0208AC82306E85800A23503 /* NBPhoneNumberDefines.h in Headers */, - D0208AC92306E85800A23503 /* NBMetadataCore.h in Headers */, - D0208ACA2306E85800A23503 /* NBPhoneMetaData.h in Headers */, - D0208ACB2306E85800A23503 /* NBPhoneNumberDesc.h in Headers */, - D0208ACC2306E85800A23503 /* NBMetadataHelper.h in Headers */, - D0208ACD2306E85800A23503 /* NBMetadataCoreTestMapper.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D03E45852305CE830049C28B /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E45B52305D1F20049C28B /* NBMetadataCoreTest.h in Headers */, - D03E45BC2305D1F20049C28B /* NBPhoneMetaDataGenerator.h in Headers */, - D03E45B32305D1F20049C28B /* NBNumberFormat.h in Headers */, - D03E458F2305CE840049C28B /* libphonenumber.h in Headers */, - D03E45C02305D1F20049C28B /* NBPhoneNumberUtil.h in Headers */, - D0208ABB2306E84F00A23503 /* libphonenumbermac.h in Headers */, - D03E45BA2305D1F20049C28B /* NBMetadataCoreMapper.h in Headers */, - D03E45B72305D1F20049C28B /* NBAsYouTypeFormatter.h in Headers */, - D03E45C42305D1F20049C28B /* NBPhoneNumber.h in Headers */, - D03E45B62305D1F20049C28B /* NBPhoneNumberDefines.h in Headers */, - D03E45B82305D1F20049C28B /* NBMetadataCore.h in Headers */, - D03E45CA2305D1F20049C28B /* NBPhoneMetaData.h in Headers */, - D03E45C12305D1F20049C28B /* NBPhoneNumberDesc.h in Headers */, - D03E45B42305D1F20049C28B /* NBMetadataHelper.h in Headers */, - D03E45C22305D1F20049C28B /* NBMetadataCoreTestMapper.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - D0208ABD2306E85800A23503 /* libphonenumbermac */ = { - isa = PBXNativeTarget; - buildConfigurationList = D0208AE02306E85800A23503 /* Build configuration list for PBXNativeTarget "libphonenumbermac" */; - buildPhases = ( - D0208ABE2306E85800A23503 /* Headers */, - D0208ACE2306E85800A23503 /* Sources */, - D0208ADC2306E85800A23503 /* Frameworks */, - D0208ADE2306E85800A23503 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = libphonenumbermac; - productName = "libphonenumber-iOS"; - productReference = D0208AE52306E85800A23503 /* libphonenumbermac.framework */; - productType = "com.apple.product-type.framework"; - }; - D03E45892305CE830049C28B /* libphonenumber */ = { - isa = PBXNativeTarget; - buildConfigurationList = D03E45922305CE840049C28B /* Build configuration list for PBXNativeTarget "libphonenumber" */; - buildPhases = ( - D03E45852305CE830049C28B /* Headers */, - D03E45862305CE830049C28B /* Sources */, - D03E45872305CE830049C28B /* Frameworks */, - D03E45882305CE830049C28B /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = libphonenumber; - productName = "libphonenumber-iOS"; - productReference = D03E458A2305CE830049C28B /* libphonenumber.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D03E45812305CE830049C28B /* Project object */ = { - isa = PBXProject; - attributes = { - DefaultBuildSystemTypeForWorkspace = Latest; - LastUpgradeCheck = 1030; - ORGANIZATIONNAME = "Telegram Messenger LLP"; - TargetAttributes = { - D03E45892305CE830049C28B = { - CreatedOnToolsVersion = 10.3; - }; - }; - }; - buildConfigurationList = D03E45842305CE830049C28B /* Build configuration list for PBXProject "libphonenumber_Xcode" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = D03E45802305CE830049C28B; - productRefGroup = D03E458B2305CE830049C28B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - D03E45892305CE830049C28B /* libphonenumber */, - D0208ABD2306E85800A23503 /* libphonenumbermac */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - D0208ADE2306E85800A23503 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D03E45882305CE830049C28B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - D0208ACE2306E85800A23503 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D0208ACF2306E85800A23503 /* NBMetadataCoreMapper.m in Sources */, - D0208AD02306E85800A23503 /* NBMetadataCoreTestMapper.m in Sources */, - D0208AD12306E85800A23503 /* NBPhoneNumberDefines.m in Sources */, - D0208AD22306E85800A23503 /* NBNumberFormat.m in Sources */, - D0208AD32306E85800A23503 /* NBAsYouTypeFormatter.m in Sources */, - D0208AD42306E85800A23503 /* NBMetadataCore.m in Sources */, - D0208AD52306E85800A23503 /* NBPhoneNumberDesc.m in Sources */, - D0208AD62306E85800A23503 /* NBPhoneNumber.m in Sources */, - D0208AD72306E85800A23503 /* NBPhoneMetaData.m in Sources */, - D0208AD82306E85800A23503 /* NBMetadataCoreTest.m in Sources */, - D0208AD92306E85800A23503 /* NBPhoneMetaDataGenerator.m in Sources */, - D0208ADA2306E85800A23503 /* NBMetadataHelper.m in Sources */, - D0208ADB2306E85800A23503 /* NBPhoneNumberUtil.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D03E45862305CE830049C28B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E45BE2305D1F20049C28B /* NBMetadataCoreMapper.m in Sources */, - D03E45BD2305D1F20049C28B /* NBMetadataCoreTestMapper.m in Sources */, - D03E45BB2305D1F20049C28B /* NBPhoneNumberDefines.m in Sources */, - D03E45C82305D1F20049C28B /* NBNumberFormat.m in Sources */, - D03E45CB2305D1F20049C28B /* NBAsYouTypeFormatter.m in Sources */, - D03E45C32305D1F20049C28B /* NBMetadataCore.m in Sources */, - D03E45B92305D1F20049C28B /* NBPhoneNumberDesc.m in Sources */, - D03E45C72305D1F20049C28B /* NBPhoneNumber.m in Sources */, - D03E45C92305D1F20049C28B /* NBPhoneMetaData.m in Sources */, - D03E45CC2305D1F20049C28B /* NBMetadataCoreTest.m in Sources */, - D03E45C52305D1F20049C28B /* NBPhoneMetaDataGenerator.m in Sources */, - D03E45C62305D1F20049C28B /* NBMetadataHelper.m in Sources */, - D03E45BF2305D1F20049C28B /* NBPhoneNumberUtil.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - D0208AE12306E85800A23503 /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = libphonenumbermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumbermac; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugAppStoreLLC; - }; - D0208AE22306E85800A23503 /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = libphonenumbermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumbermac; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugHockeyapp; - }; - D0208AE32306E85800A23503 /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = libphonenumbermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumbermac; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseAppStoreLLC; - }; - D0208AE42306E85800A23503 /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = libphonenumbermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumbermac; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseHockeyappInternal; - }; - D0208AE72306E86800A23503 /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStore; - }; - D0208AE82306E86800A23503 /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumber; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugAppStore; - }; - D0208AE92306E86800A23503 /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = libphonenumbermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumbermac; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugAppStore; - }; - D0208AEA2306E87100A23503 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = HockeyappMacAlpha; - }; - D0208AEB2306E87100A23503 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumber; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = HockeyappMacAlpha; - }; - D0208AEC2306E87100A23503 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = libphonenumbermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumbermac; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = HockeyappMacAlpha; - }; - D0208AED2306E87700A23503 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStore; - }; - D0208AEE2306E87700A23503 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumber; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseAppStore; - }; - D0208AEF2306E87700A23503 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = libphonenumbermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumbermac; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseAppStore; - }; - D0208AF02306E87E00A23503 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyapp; - }; - D0208AF12306E87E00A23503 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumber; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseHockeyapp; - }; - D0208AF22306E87E00A23503 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = libphonenumbermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumbermac; - PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseHockeyapp; - }; - D03E45902305CE840049C28B /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - D03E45912305CE840049C28B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - D03E45932305CE840049C28B /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumber; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugAppStoreLLC; - }; - D03E45942305CE840049C28B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumber; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseAppStoreLLC; - }; - D03E45952305CE9A0049C28B /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D03E45962305CE9A0049C28B /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumber; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugHockeyapp; - }; - D03E45972305CEA30049C28B /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; - D03E45982305CEA30049C28B /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.libphonenumber; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseHockeyappInternal; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - D0208AE02306E85800A23503 /* Build configuration list for PBXNativeTarget "libphonenumbermac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D0208AE12306E85800A23503 /* DebugAppStoreLLC */, - D0208AE22306E85800A23503 /* DebugHockeyapp */, - D0208AEC2306E87100A23503 /* HockeyappMacAlpha */, - D0208AE92306E86800A23503 /* DebugAppStore */, - D0208AE32306E85800A23503 /* ReleaseAppStoreLLC */, - D0208AEF2306E87700A23503 /* ReleaseAppStore */, - D0208AF22306E87E00A23503 /* ReleaseHockeyapp */, - D0208AE42306E85800A23503 /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseAppStoreLLC; - }; - D03E45842305CE830049C28B /* Build configuration list for PBXProject "libphonenumber_Xcode" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D03E45902305CE840049C28B /* DebugAppStoreLLC */, - D03E45952305CE9A0049C28B /* DebugHockeyapp */, - D0208AEA2306E87100A23503 /* HockeyappMacAlpha */, - D0208AE72306E86800A23503 /* DebugAppStore */, - D03E45912305CE840049C28B /* ReleaseAppStoreLLC */, - D0208AED2306E87700A23503 /* ReleaseAppStore */, - D0208AF02306E87E00A23503 /* ReleaseHockeyapp */, - D03E45972305CEA30049C28B /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseAppStoreLLC; - }; - D03E45922305CE840049C28B /* Build configuration list for PBXNativeTarget "libphonenumber" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D03E45932305CE840049C28B /* DebugAppStoreLLC */, - D03E45962305CE9A0049C28B /* DebugHockeyapp */, - D0208AEB2306E87100A23503 /* HockeyappMacAlpha */, - D0208AE82306E86800A23503 /* DebugAppStore */, - D03E45942305CE840049C28B /* ReleaseAppStoreLLC */, - D0208AEE2306E87700A23503 /* ReleaseAppStore */, - D0208AF12306E87E00A23503 /* ReleaseHockeyapp */, - D03E45982305CEA30049C28B /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseAppStoreLLC; - }; -/* End XCConfigurationList section */ - }; - rootObject = D03E45812305CE830049C28B /* Project object */; -} diff --git a/submodules/libphonenumber/libphonenumbermac/Info.plist b/submodules/libphonenumber/libphonenumbermac/Info.plist deleted file mode 100644 index 5371a6e108..0000000000 --- a/submodules/libphonenumber/libphonenumbermac/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSHumanReadableCopyright - Copyright © 2019 Telegram Messenger LLP. All rights reserved. - - diff --git a/submodules/libphonenumber/libphonenumbermac/libphonenumbermac.h b/submodules/libphonenumber/libphonenumbermac/libphonenumbermac.h deleted file mode 100644 index 520bbb7cd2..0000000000 --- a/submodules/libphonenumber/libphonenumbermac/libphonenumbermac.h +++ /dev/null @@ -1,12 +0,0 @@ -#import - -//! Project version number for libphonenumber_Mac. -FOUNDATION_EXPORT double libphonenumbermac_VersionNumber; - -//! Project version string for libphonenumber_Mac. -FOUNDATION_EXPORT const unsigned char libphonenumbermac_VersionString[]; - -#import -#import -#import -#import diff --git a/submodules/sqlcipher/Sources/sqlcipher.h b/submodules/sqlcipher/Sources/sqlcipher.h index 7122be0e8d..87ced27dda 100644 --- a/submodules/sqlcipher/Sources/sqlcipher.h +++ b/submodules/sqlcipher/Sources/sqlcipher.h @@ -1,4 +1,4 @@ -#import +#import //! Project version number for sqlcipher. FOUNDATION_EXPORT double sqlcipherVersionNumber; diff --git a/submodules/sqlcipher/Sources/sqlite3.c b/submodules/sqlcipher/Sources/sqlite3.c index 6d86b973f0..7b8d063583 100644 --- a/submodules/sqlcipher/Sources/sqlite3.c +++ b/submodules/sqlcipher/Sources/sqlite3.c @@ -17,11 +17,7 @@ ** language. The code for the "sqlite3" command-line shell is also in a ** separate file. This file contains only code for the core SQLite library. */ -#if TARGET_OS_IOS #include -#else -#include -#endif #define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 #ifndef SQLITE_PRIVATE diff --git a/submodules/sqlcipher/Sources/sqlite3.h b/submodules/sqlcipher/Sources/sqlite3.h index 66160caed5..b03bee037a 100644 --- a/submodules/sqlcipher/Sources/sqlite3.h +++ b/submodules/sqlcipher/Sources/sqlite3.h @@ -34,11 +34,7 @@ #define SQLITE3_H #include /* Needed for the definition of va_list */ -#if TARGET_OS_OSX -#include -#else #include -#endif /* diff --git a/submodules/sqlcipher/Sources/sqlite3ext.h b/submodules/sqlcipher/Sources/sqlite3ext.h index 48273b4dc6..1a611913cf 100644 --- a/submodules/sqlcipher/Sources/sqlite3ext.h +++ b/submodules/sqlcipher/Sources/sqlite3ext.h @@ -18,11 +18,7 @@ #ifndef SQLITE3EXT_H #define SQLITE3EXT_H -#if TARGET_OS_OSX -#include -#else #include -#endif /* ** The following structure holds pointers to all of the SQLite API diff --git a/submodules/sqlcipher/sqlcipher_Xcode.xcodeproj/project.pbxproj b/submodules/sqlcipher/sqlcipher_Xcode.xcodeproj/project.pbxproj deleted file mode 100644 index 9f8501a6de..0000000000 --- a/submodules/sqlcipher/sqlcipher_Xcode.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1725 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - D03E45402305C6E40049C28B /* sqlcipher.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E453E2305C6E40049C28B /* sqlcipher.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E45502305C7600049C28B /* SQLite-Bridging.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E454A2305C75F0049C28B /* SQLite-Bridging.m */; }; - D03E45512305C7600049C28B /* sqlite3.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E454B2305C75F0049C28B /* sqlite3.c */; }; - D03E45522305C7600049C28B /* sqlite3.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E454C2305C75F0049C28B /* sqlite3.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E45532305C7600049C28B /* sqlite3ext.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E454D2305C7600049C28B /* sqlite3ext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E45542305C7600049C28B /* SQLite-Bridging.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E454E2305C7600049C28B /* SQLite-Bridging.h */; }; - D03E45552305C7600049C28B /* fts3_tokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E454F2305C7600049C28B /* fts3_tokenizer.h */; }; - D03E45592305C8090049C28B /* sqlcipher_config.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45582305C8090049C28B /* sqlcipher_config.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E461A2306DF740049C28B /* sqlciphermac.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E46182306DF740049C28B /* sqlciphermac.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E46202306DF830049C28B /* sqlcipher_config.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E45582305C8090049C28B /* sqlcipher_config.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E46212306DF8A0049C28B /* fts3_tokenizer.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E454F2305C7600049C28B /* fts3_tokenizer.h */; }; - D03E46222306DF8D0049C28B /* SQLite-Bridging.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E454E2305C7600049C28B /* SQLite-Bridging.h */; }; - D03E46232306DF920049C28B /* sqlite3.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E454C2305C75F0049C28B /* sqlite3.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E46252306DF9A0049C28B /* sqlite3ext.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E454D2305C7600049C28B /* sqlite3ext.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D03E46262306DFA00049C28B /* sqlite3.c in Sources */ = {isa = PBXBuildFile; fileRef = D03E454B2305C75F0049C28B /* sqlite3.c */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - D03E453B2305C6E40049C28B /* sqlcipher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = sqlcipher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E453E2305C6E40049C28B /* sqlcipher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sqlcipher.h; sourceTree = ""; }; - D03E453F2305C6E40049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D03E454A2305C75F0049C28B /* SQLite-Bridging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SQLite-Bridging.m"; sourceTree = ""; }; - D03E454B2305C75F0049C28B /* sqlite3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sqlite3.c; sourceTree = ""; }; - D03E454C2305C75F0049C28B /* sqlite3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sqlite3.h; sourceTree = ""; }; - D03E454D2305C7600049C28B /* sqlite3ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sqlite3ext.h; sourceTree = ""; }; - D03E454E2305C7600049C28B /* SQLite-Bridging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SQLite-Bridging.h"; sourceTree = ""; }; - D03E454F2305C7600049C28B /* fts3_tokenizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fts3_tokenizer.h; sourceTree = ""; }; - D03E45582305C8090049C28B /* sqlcipher_config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sqlcipher_config.h; sourceTree = ""; }; - D03E46162306DF740049C28B /* sqlciphermac.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = sqlciphermac.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E46182306DF740049C28B /* sqlciphermac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sqlciphermac.h; sourceTree = ""; }; - D03E46192306DF740049C28B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - D03E45382305C6E40049C28B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D03E46132306DF740049C28B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - D03E45312305C6E40049C28B = { - isa = PBXGroup; - children = ( - D03E453F2305C6E40049C28B /* Info.plist */, - D03E453D2305C6E40049C28B /* Sources */, - D03E46172306DF740049C28B /* sqlciphermac */, - D03E453C2305C6E40049C28B /* Products */, - ); - sourceTree = ""; - }; - D03E453C2305C6E40049C28B /* Products */ = { - isa = PBXGroup; - children = ( - D03E453B2305C6E40049C28B /* sqlcipher.framework */, - D03E46162306DF740049C28B /* sqlciphermac.framework */, - ); - name = Products; - sourceTree = ""; - }; - D03E453D2305C6E40049C28B /* Sources */ = { - isa = PBXGroup; - children = ( - D03E45582305C8090049C28B /* sqlcipher_config.h */, - D03E454F2305C7600049C28B /* fts3_tokenizer.h */, - D03E454E2305C7600049C28B /* SQLite-Bridging.h */, - D03E454A2305C75F0049C28B /* SQLite-Bridging.m */, - D03E454B2305C75F0049C28B /* sqlite3.c */, - D03E454C2305C75F0049C28B /* sqlite3.h */, - D03E454D2305C7600049C28B /* sqlite3ext.h */, - D03E453E2305C6E40049C28B /* sqlcipher.h */, - ); - path = Sources; - sourceTree = ""; - }; - D03E46172306DF740049C28B /* sqlciphermac */ = { - isa = PBXGroup; - children = ( - D03E46182306DF740049C28B /* sqlciphermac.h */, - D03E46192306DF740049C28B /* Info.plist */, - ); - path = sqlciphermac; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - D03E45362305C6E40049C28B /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E45552305C7600049C28B /* fts3_tokenizer.h in Headers */, - D03E45542305C7600049C28B /* SQLite-Bridging.h in Headers */, - D03E45592305C8090049C28B /* sqlcipher_config.h in Headers */, - D03E45522305C7600049C28B /* sqlite3.h in Headers */, - D03E45402305C6E40049C28B /* sqlcipher.h in Headers */, - D03E45532305C7600049C28B /* sqlite3ext.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D03E46112306DF740049C28B /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E46222306DF8D0049C28B /* SQLite-Bridging.h in Headers */, - D03E46252306DF9A0049C28B /* sqlite3ext.h in Headers */, - D03E46212306DF8A0049C28B /* fts3_tokenizer.h in Headers */, - D03E46202306DF830049C28B /* sqlcipher_config.h in Headers */, - D03E461A2306DF740049C28B /* sqlciphermac.h in Headers */, - D03E46232306DF920049C28B /* sqlite3.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - D03E453A2305C6E40049C28B /* sqlcipher */ = { - isa = PBXNativeTarget; - buildConfigurationList = D03E45432305C6E40049C28B /* Build configuration list for PBXNativeTarget "sqlcipher" */; - buildPhases = ( - D03E45362305C6E40049C28B /* Headers */, - D03E45372305C6E40049C28B /* Sources */, - D03E45382305C6E40049C28B /* Frameworks */, - D03E45392305C6E40049C28B /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = sqlcipher; - productName = sqlcipher; - productReference = D03E453B2305C6E40049C28B /* sqlcipher.framework */; - productType = "com.apple.product-type.framework"; - }; - D03E46152306DF740049C28B /* sqlciphermac */ = { - isa = PBXNativeTarget; - buildConfigurationList = D03E461F2306DF740049C28B /* Build configuration list for PBXNativeTarget "sqlciphermac" */; - buildPhases = ( - D03E46112306DF740049C28B /* Headers */, - D03E46122306DF740049C28B /* Sources */, - D03E46132306DF740049C28B /* Frameworks */, - D03E46142306DF740049C28B /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = sqlciphermac; - productName = sqlciphermac; - productReference = D03E46162306DF740049C28B /* sqlciphermac.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D03E45322305C6E40049C28B /* Project object */ = { - isa = PBXProject; - attributes = { - DefaultBuildSystemTypeForWorkspace = Latest; - LastUpgradeCheck = 1030; - ORGANIZATIONNAME = "Telegram Messenger LLP"; - TargetAttributes = { - D03E453A2305C6E40049C28B = { - CreatedOnToolsVersion = 10.3; - }; - D03E46152306DF740049C28B = { - CreatedOnToolsVersion = 10.3; - }; - }; - }; - buildConfigurationList = D03E45352305C6E40049C28B /* Build configuration list for PBXProject "sqlcipher_Xcode" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = D03E45312305C6E40049C28B; - productRefGroup = D03E453C2305C6E40049C28B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - D03E453A2305C6E40049C28B /* sqlcipher */, - D03E46152306DF740049C28B /* sqlciphermac */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - D03E45392305C6E40049C28B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D03E46142306DF740049C28B /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - D03E45372305C6E40049C28B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E45502305C7600049C28B /* SQLite-Bridging.m in Sources */, - D03E45512305C7600049C28B /* sqlite3.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D03E46122306DF740049C28B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D03E46262306DFA00049C28B /* sqlite3.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - D0208AA02306E7B400A23503 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = HockeyappMacAlpha; - }; - D0208AA12306E7B400A23503 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = HockeyappMacAlpha; - }; - D0208AA22306E7B400A23503 /* HockeyappMacAlpha */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = sqlciphermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlciphermac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = HockeyappMacAlpha; - }; - D0208AA32306E7CA00A23503 /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStore; - }; - D0208AA42306E7CA00A23503 /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugAppStore; - }; - D0208AA52306E7CA00A23503 /* DebugAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = sqlciphermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlciphermac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStore; - }; - D0208AA62306E7D400A23503 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStore; - }; - D0208AA72306E7D400A23503 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseAppStore; - }; - D0208AA82306E7D400A23503 /* ReleaseAppStore */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = sqlciphermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlciphermac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStore; - }; - D0208AA92306E7D900A23503 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyapp; - }; - D0208AAA2306E7D900A23503 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseHockeyapp; - }; - D0208AAB2306E7D900A23503 /* ReleaseHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = sqlciphermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlciphermac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyapp; - }; - D03E45412305C6E40049C28B /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - D03E45422305C6E40049C28B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - D03E45442305C6E40049C28B /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugAppStoreLLC; - }; - D03E45452305C6E40049C28B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseAppStoreLLC; - }; - D03E45462305C7090049C28B /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D03E45472305C7090049C28B /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = DebugHockeyapp; - }; - D03E45482305C7130049C28B /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; - D03E45492305C7130049C28B /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Manual; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlcipher; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = ReleaseHockeyappInternal; - }; - D03E461B2306DF740049C28B /* DebugAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = sqlciphermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlciphermac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugAppStoreLLC; - }; - D03E461C2306DF740049C28B /* DebugHockeyapp */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = sqlciphermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlciphermac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = DebugHockeyapp; - }; - D03E461D2306DF740049C28B /* ReleaseAppStoreLLC */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = sqlciphermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlciphermac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseAppStoreLLC; - }; - D03E461E2306DF740049C28B /* ReleaseHockeyappInternal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer"; - CODE_SIGN_STYLE = Manual; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ""; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_VERSION = A; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = sqlciphermac/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - "@loader_path/Frameworks", - ); - MACH_O_TYPE = staticlib; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - OTHER_CFLAGS = ( - "-DSQLITE_HAS_CODEC=1", - "-DSQLCIPHER_CRYPTO_CC=1", - "-DSQLITE_ENABLE_FTS5", - "-DSQLITE_DEFAULT_MEMSTATUS=0", - "-DNDEBUG", - ); - PRODUCT_BUNDLE_IDENTIFIER = org.telegram.sqlciphermac; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - SDKROOT = macosx; - SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = ReleaseHockeyappInternal; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - D03E45352305C6E40049C28B /* Build configuration list for PBXProject "sqlcipher_Xcode" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D03E45412305C6E40049C28B /* DebugAppStoreLLC */, - D03E45462305C7090049C28B /* DebugHockeyapp */, - D0208AA02306E7B400A23503 /* HockeyappMacAlpha */, - D0208AA32306E7CA00A23503 /* DebugAppStore */, - D03E45422305C6E40049C28B /* ReleaseAppStoreLLC */, - D0208AA62306E7D400A23503 /* ReleaseAppStore */, - D0208AA92306E7D900A23503 /* ReleaseHockeyapp */, - D03E45482305C7130049C28B /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseAppStoreLLC; - }; - D03E45432305C6E40049C28B /* Build configuration list for PBXNativeTarget "sqlcipher" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D03E45442305C6E40049C28B /* DebugAppStoreLLC */, - D03E45472305C7090049C28B /* DebugHockeyapp */, - D0208AA12306E7B400A23503 /* HockeyappMacAlpha */, - D0208AA42306E7CA00A23503 /* DebugAppStore */, - D03E45452305C6E40049C28B /* ReleaseAppStoreLLC */, - D0208AA72306E7D400A23503 /* ReleaseAppStore */, - D0208AAA2306E7D900A23503 /* ReleaseHockeyapp */, - D03E45492305C7130049C28B /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseAppStoreLLC; - }; - D03E461F2306DF740049C28B /* Build configuration list for PBXNativeTarget "sqlciphermac" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D03E461B2306DF740049C28B /* DebugAppStoreLLC */, - D03E461C2306DF740049C28B /* DebugHockeyapp */, - D0208AA22306E7B400A23503 /* HockeyappMacAlpha */, - D0208AA52306E7CA00A23503 /* DebugAppStore */, - D03E461D2306DF740049C28B /* ReleaseAppStoreLLC */, - D0208AA82306E7D400A23503 /* ReleaseAppStore */, - D0208AAB2306E7D900A23503 /* ReleaseHockeyapp */, - D03E461E2306DF740049C28B /* ReleaseHockeyappInternal */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = ReleaseAppStoreLLC; - }; -/* End XCConfigurationList section */ - }; - rootObject = D03E45322305C6E40049C28B /* Project object */; -} diff --git a/submodules/sqlcipher/sqlciphermac/Info.plist b/submodules/sqlcipher/sqlciphermac/Info.plist deleted file mode 100644 index 5371a6e108..0000000000 --- a/submodules/sqlcipher/sqlciphermac/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSHumanReadableCopyright - Copyright © 2019 Telegram Messenger LLP. All rights reserved. - - diff --git a/submodules/sqlcipher/sqlciphermac/sqlciphermac.h b/submodules/sqlcipher/sqlciphermac/sqlciphermac.h deleted file mode 100644 index bdf78e5f12..0000000000 --- a/submodules/sqlcipher/sqlciphermac/sqlciphermac.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - -//! Project version number for sqlciphermac. -FOUNDATION_EXPORT double sqlciphermacVersionNumber; - -//! Project version string for sqlciphermac. -FOUNDATION_EXPORT const unsigned char sqlciphermacVersionString[]; - -#import -#import -#import - -