// !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 55; objects = { /* Begin PBXBuildFile section */ D60E9D6E26D1998B009A4537 /* OTPGeneratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D60E9D6D26D1998B009A4537 /* OTPGeneratorTests.swift */; }; D60E9D7226D1A863009A4537 /* KeyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D60E9D7126D1A863009A4537 /* KeyView.swift */; }; D60E9D7426D1ABF9009A4537 /* CircularProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D60E9D7326D1ABF9009A4537 /* CircularProgressView.swift */; }; D60E9D7726D1B160009A4537 /* CodeScanner in Frameworks */ = {isa = PBXBuildFile; productRef = D60E9D7626D1B160009A4537 /* CodeScanner */; }; D60E9D7A26D1E985009A4537 /* EditKeyForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = D60E9D7926D1E985009A4537 /* EditKeyForm.swift */; }; D61479D726D0AF1C00710B79 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D61479D626D0AF1C00710B79 /* AppDelegate.swift */; }; D61479D926D0AF1C00710B79 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D61479D826D0AF1C00710B79 /* SceneDelegate.swift */; }; D61479E026D0AF1E00710B79 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D61479DF26D0AF1E00710B79 /* Assets.xcassets */; }; D61479E326D0AF1E00710B79 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D61479E126D0AF1E00710B79 /* LaunchScreen.storyboard */; }; D61479EB26D13DEF00710B79 /* AppView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D61479EA26D13DEF00710B79 /* AppView.swift */; }; D61479F526D141F700710B79 /* OTPKit.docc in Sources */ = {isa = PBXBuildFile; fileRef = D61479F426D141F700710B79 /* OTPKit.docc */; }; D61479FB26D141F800710B79 /* OTPKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D61479F126D141F700710B79 /* OTPKit.framework */; }; D6147A0226D141F800710B79 /* OTPKitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6147A0126D141F800710B79 /* OTPKitTests.swift */; }; D6147A0326D141F800710B79 /* OTPKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D61479F326D141F700710B79 /* OTPKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; D6147A0626D141F800710B79 /* OTPKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D61479F126D141F700710B79 /* OTPKit.framework */; }; D6147A0726D141F800710B79 /* OTPKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D61479F126D141F700710B79 /* OTPKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; D6147A1026D1421900710B79 /* TOTPKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6147A0F26D1421900710B79 /* TOTPKey.swift */; }; D6147A1326D1446E00710B79 /* Base32.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6147A1226D1446E00710B79 /* Base32.swift */; }; D6147A1726D147B400710B79 /* TOTPKeyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6147A1626D147B400710B79 /* TOTPKeyTests.swift */; }; D6147A1926D14AAB00710B79 /* OTPGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6147A1826D14AAB00710B79 /* OTPGenerator.swift */; }; D6147A1B26D14ADF00710B79 /* OTPKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6147A1A26D14ADF00710B79 /* OTPKey.swift */; }; D6147A1D26D14B5F00710B79 /* OTPAlgorithm.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6147A1C26D14B5F00710B79 /* OTPAlgorithm.swift */; }; D6147A1F26D14BA000710B79 /* TOTPCode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6147A1E26D14BA000710B79 /* TOTPCode.swift */; }; D68B3DA026D2937000CB35A2 /* AddURLForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68B3D9F26D2937000CB35A2 /* AddURLForm.swift */; }; D68B3DA226D293BE00CB35A2 /* DismissAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D68B3DA126D293BE00CB35A2 /* DismissAction.swift */; }; D6A2BCAE26D29601004DC4E3 /* EditedKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6A2BCAD26D29601004DC4E3 /* EditedKey.swift */; }; D6A2BCB026D313E7004DC4E3 /* AddQRView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6A2BCAF26D313E7004DC4E3 /* AddQRView.swift */; }; D6A2BCCC26D3E670004DC4E3 /* PreferencesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6A2BCCB26D3E670004DC4E3 /* PreferencesView.swift */; }; D6A2BCD026D3E888004DC4E3 /* BackupDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6A2BCCF26D3E888004DC4E3 /* BackupDocument.swift */; }; D6A2BCEC26D3F7F9004DC4E3 /* QRCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6A2BCEB26D3F7F9004DC4E3 /* QRCodeView.swift */; }; D6A2BD0826D449FA004DC4E3 /* KeyData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6A2BD0726D449FA004DC4E3 /* KeyData.swift */; }; D6A2BD0A26D44AC3004DC4E3 /* KeyStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6A2BD0926D44AC3004DC4E3 /* KeyStore.swift */; }; D6A2BD0C26D5332B004DC4E3 /* FolderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6A2BD0B26D5332B004DC4E3 /* FolderView.swift */; }; D6A2BD1026D533EB004DC4E3 /* FoldersSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6A2BD0F26D533EB004DC4E3 /* FoldersSection.swift */; }; D6A2BD1226D56C70004DC4E3 /* KeysSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6A2BD1126D56C70004DC4E3 /* KeysSection.swift */; }; D6A2BD1426D5707F004DC4E3 /* FolderRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6A2BD1326D5707F004DC4E3 /* FolderRow.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ D61479FC26D141F800710B79 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D61479CB26D0AF1C00710B79 /* Project object */; proxyType = 1; remoteGlobalIDString = D61479F026D141F700710B79; remoteInfo = OTPKit; }; D61479FE26D141F800710B79 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D61479CB26D0AF1C00710B79 /* Project object */; proxyType = 1; remoteGlobalIDString = D61479D226D0AF1C00710B79; remoteInfo = OTP; }; D6147A0426D141F800710B79 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D61479CB26D0AF1C00710B79 /* Project object */; proxyType = 1; remoteGlobalIDString = D61479F026D141F700710B79; remoteInfo = OTPKit; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ D6147A0B26D141F800710B79 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 10; files = ( D6147A0726D141F800710B79 /* OTPKit.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ D60E9D6D26D1998B009A4537 /* OTPGeneratorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTPGeneratorTests.swift; sourceTree = ""; }; D60E9D7126D1A863009A4537 /* KeyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyView.swift; sourceTree = ""; }; D60E9D7326D1ABF9009A4537 /* CircularProgressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircularProgressView.swift; sourceTree = ""; }; D60E9D7926D1E985009A4537 /* EditKeyForm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditKeyForm.swift; sourceTree = ""; }; D61479D326D0AF1C00710B79 /* OTP.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OTP.app; sourceTree = BUILT_PRODUCTS_DIR; }; D61479D626D0AF1C00710B79 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; D61479D826D0AF1C00710B79 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; D61479DF26D0AF1E00710B79 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; D61479E226D0AF1E00710B79 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; D61479E426D0AF1E00710B79 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; D61479EA26D13DEF00710B79 /* AppView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppView.swift; sourceTree = ""; }; D61479F126D141F700710B79 /* OTPKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OTPKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D61479F326D141F700710B79 /* OTPKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OTPKit.h; sourceTree = ""; }; D61479F426D141F700710B79 /* OTPKit.docc */ = {isa = PBXFileReference; lastKnownFileType = folder.documentationcatalog; path = OTPKit.docc; sourceTree = ""; }; D61479FA26D141F800710B79 /* OTPKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OTPKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; D6147A0126D141F800710B79 /* OTPKitTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTPKitTests.swift; sourceTree = ""; }; D6147A0F26D1421900710B79 /* TOTPKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TOTPKey.swift; sourceTree = ""; }; D6147A1226D1446E00710B79 /* Base32.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Base32.swift; sourceTree = ""; }; D6147A1626D147B400710B79 /* TOTPKeyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TOTPKeyTests.swift; sourceTree = ""; }; D6147A1826D14AAB00710B79 /* OTPGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTPGenerator.swift; sourceTree = ""; }; D6147A1A26D14ADF00710B79 /* OTPKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTPKey.swift; sourceTree = ""; }; D6147A1C26D14B5F00710B79 /* OTPAlgorithm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTPAlgorithm.swift; sourceTree = ""; }; D6147A1E26D14BA000710B79 /* TOTPCode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TOTPCode.swift; sourceTree = ""; }; D68B3D9F26D2937000CB35A2 /* AddURLForm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddURLForm.swift; sourceTree = ""; }; D68B3DA126D293BE00CB35A2 /* DismissAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DismissAction.swift; sourceTree = ""; }; D6A2BCAD26D29601004DC4E3 /* EditedKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditedKey.swift; sourceTree = ""; }; D6A2BCAF26D313E7004DC4E3 /* AddQRView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddQRView.swift; sourceTree = ""; }; D6A2BCCB26D3E670004DC4E3 /* PreferencesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesView.swift; sourceTree = ""; }; D6A2BCCF26D3E888004DC4E3 /* BackupDocument.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackupDocument.swift; sourceTree = ""; }; D6A2BCEB26D3F7F9004DC4E3 /* QRCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRCodeView.swift; sourceTree = ""; }; D6A2BD0726D449FA004DC4E3 /* KeyData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyData.swift; sourceTree = ""; }; D6A2BD0926D44AC3004DC4E3 /* KeyStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyStore.swift; sourceTree = ""; }; D6A2BD0B26D5332B004DC4E3 /* FolderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FolderView.swift; sourceTree = ""; }; D6A2BD0F26D533EB004DC4E3 /* FoldersSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FoldersSection.swift; sourceTree = ""; }; D6A2BD1126D56C70004DC4E3 /* KeysSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeysSection.swift; sourceTree = ""; }; D6A2BD1326D5707F004DC4E3 /* FolderRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FolderRow.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ D61479D026D0AF1C00710B79 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( D60E9D7726D1B160009A4537 /* CodeScanner in Frameworks */, D6147A0626D141F800710B79 /* OTPKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; D61479EE26D141F700710B79 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; D61479F726D141F800710B79 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( D61479FB26D141F800710B79 /* OTPKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ D60E9D7826D1E976009A4537 /* Views */ = { isa = PBXGroup; children = ( D61479EA26D13DEF00710B79 /* AppView.swift */, D6A2BD1126D56C70004DC4E3 /* KeysSection.swift */, D6A2BD0F26D533EB004DC4E3 /* FoldersSection.swift */, D6A2BD1326D5707F004DC4E3 /* FolderRow.swift */, D60E9D7126D1A863009A4537 /* KeyView.swift */, D60E9D7326D1ABF9009A4537 /* CircularProgressView.swift */, D6A2BD0B26D5332B004DC4E3 /* FolderView.swift */, D6A2BCAF26D313E7004DC4E3 /* AddQRView.swift */, D68B3D9F26D2937000CB35A2 /* AddURLForm.swift */, D60E9D7926D1E985009A4537 /* EditKeyForm.swift */, D6A2BCCB26D3E670004DC4E3 /* PreferencesView.swift */, D6A2BCEB26D3F7F9004DC4E3 /* QRCodeView.swift */, ); path = Views; sourceTree = ""; }; D61479CA26D0AF1C00710B79 = { isa = PBXGroup; children = ( D61479D526D0AF1C00710B79 /* OTP */, D61479F226D141F700710B79 /* OTPKit */, D6147A0026D141F800710B79 /* OTPKitTests */, D61479D426D0AF1C00710B79 /* Products */, ); sourceTree = ""; }; D61479D426D0AF1C00710B79 /* Products */ = { isa = PBXGroup; children = ( D61479D326D0AF1C00710B79 /* OTP.app */, D61479F126D141F700710B79 /* OTPKit.framework */, D61479FA26D141F800710B79 /* OTPKitTests.xctest */, ); name = Products; sourceTree = ""; }; D61479D526D0AF1C00710B79 /* OTP */ = { isa = PBXGroup; children = ( D61479E426D0AF1E00710B79 /* Info.plist */, D61479D626D0AF1C00710B79 /* AppDelegate.swift */, D6A2BCCF26D3E888004DC4E3 /* BackupDocument.swift */, D68B3DA126D293BE00CB35A2 /* DismissAction.swift */, D6A2BCAD26D29601004DC4E3 /* EditedKey.swift */, D6A2BD0726D449FA004DC4E3 /* KeyData.swift */, D6A2BD0926D44AC3004DC4E3 /* KeyStore.swift */, D61479D826D0AF1C00710B79 /* SceneDelegate.swift */, D61479DF26D0AF1E00710B79 /* Assets.xcassets */, D61479E126D0AF1E00710B79 /* LaunchScreen.storyboard */, D60E9D7826D1E976009A4537 /* Views */, ); path = OTP; sourceTree = ""; }; D61479F226D141F700710B79 /* OTPKit */ = { isa = PBXGroup; children = ( D61479F426D141F700710B79 /* OTPKit.docc */, D61479F326D141F700710B79 /* OTPKit.h */, D6147A1C26D14B5F00710B79 /* OTPAlgorithm.swift */, D6147A1826D14AAB00710B79 /* OTPGenerator.swift */, D6147A1A26D14ADF00710B79 /* OTPKey.swift */, D6147A1E26D14BA000710B79 /* TOTPCode.swift */, D6147A0F26D1421900710B79 /* TOTPKey.swift */, D6147A1126D1446500710B79 /* Vendor */, ); path = OTPKit; sourceTree = ""; }; D6147A0026D141F800710B79 /* OTPKitTests */ = { isa = PBXGroup; children = ( D6147A0126D141F800710B79 /* OTPKitTests.swift */, D60E9D6D26D1998B009A4537 /* OTPGeneratorTests.swift */, D6147A1626D147B400710B79 /* TOTPKeyTests.swift */, ); path = OTPKitTests; sourceTree = ""; }; D6147A1126D1446500710B79 /* Vendor */ = { isa = PBXGroup; children = ( D6147A1226D1446E00710B79 /* Base32.swift */, ); path = Vendor; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ D61479EC26D141F700710B79 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( D6147A0326D141F800710B79 /* OTPKit.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ D61479D226D0AF1C00710B79 /* OTP */ = { isa = PBXNativeTarget; buildConfigurationList = D61479E726D0AF1E00710B79 /* Build configuration list for PBXNativeTarget "OTP" */; buildPhases = ( D61479CF26D0AF1C00710B79 /* Sources */, D61479D026D0AF1C00710B79 /* Frameworks */, D61479D126D0AF1C00710B79 /* Resources */, D6147A0B26D141F800710B79 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( D6147A0526D141F800710B79 /* PBXTargetDependency */, ); name = OTP; packageProductDependencies = ( D60E9D7626D1B160009A4537 /* CodeScanner */, ); productName = OTP; productReference = D61479D326D0AF1C00710B79 /* OTP.app */; productType = "com.apple.product-type.application"; }; D61479F026D141F700710B79 /* OTPKit */ = { isa = PBXNativeTarget; buildConfigurationList = D6147A0826D141F800710B79 /* Build configuration list for PBXNativeTarget "OTPKit" */; buildPhases = ( D61479EC26D141F700710B79 /* Headers */, D61479ED26D141F700710B79 /* Sources */, D61479EE26D141F700710B79 /* Frameworks */, D61479EF26D141F700710B79 /* Resources */, ); buildRules = ( ); dependencies = ( ); name = OTPKit; productName = OTPKit; productReference = D61479F126D141F700710B79 /* OTPKit.framework */; productType = "com.apple.product-type.framework"; }; D61479F926D141F800710B79 /* OTPKitTests */ = { isa = PBXNativeTarget; buildConfigurationList = D6147A0C26D141F800710B79 /* Build configuration list for PBXNativeTarget "OTPKitTests" */; buildPhases = ( D61479F626D141F800710B79 /* Sources */, D61479F726D141F800710B79 /* Frameworks */, D61479F826D141F800710B79 /* Resources */, ); buildRules = ( ); dependencies = ( D61479FD26D141F800710B79 /* PBXTargetDependency */, D61479FF26D141F800710B79 /* PBXTargetDependency */, ); name = OTPKitTests; productName = OTPKitTests; productReference = D61479FA26D141F800710B79 /* OTPKitTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ D61479CB26D0AF1C00710B79 /* Project object */ = { isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = 1; LastSwiftUpdateCheck = 1300; LastUpgradeCheck = 1300; TargetAttributes = { D61479D226D0AF1C00710B79 = { CreatedOnToolsVersion = 13.0; }; D61479F026D141F700710B79 = { CreatedOnToolsVersion = 13.0; }; D61479F926D141F800710B79 = { CreatedOnToolsVersion = 13.0; TestTargetID = D61479D226D0AF1C00710B79; }; }; }; buildConfigurationList = D61479CE26D0AF1C00710B79 /* Build configuration list for PBXProject "OTP" */; compatibilityVersion = "Xcode 13.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, Base, ); mainGroup = D61479CA26D0AF1C00710B79; packageReferences = ( D60E9D7526D1B160009A4537 /* XCRemoteSwiftPackageReference "CodeScanner" */, ); productRefGroup = D61479D426D0AF1C00710B79 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( D61479D226D0AF1C00710B79 /* OTP */, D61479F026D141F700710B79 /* OTPKit */, D61479F926D141F800710B79 /* OTPKitTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ D61479D126D0AF1C00710B79 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( D61479E326D0AF1E00710B79 /* LaunchScreen.storyboard in Resources */, D61479E026D0AF1E00710B79 /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; D61479EF26D141F700710B79 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; D61479F826D141F800710B79 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ D61479CF26D0AF1C00710B79 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( D61479D726D0AF1C00710B79 /* AppDelegate.swift in Sources */, D6A2BCCC26D3E670004DC4E3 /* PreferencesView.swift in Sources */, D6A2BD0C26D5332B004DC4E3 /* FolderView.swift in Sources */, D61479D926D0AF1C00710B79 /* SceneDelegate.swift in Sources */, D6A2BD1026D533EB004DC4E3 /* FoldersSection.swift in Sources */, D6A2BCAE26D29601004DC4E3 /* EditedKey.swift in Sources */, D6A2BD1426D5707F004DC4E3 /* FolderRow.swift in Sources */, D6A2BCD026D3E888004DC4E3 /* BackupDocument.swift in Sources */, D6A2BD1226D56C70004DC4E3 /* KeysSection.swift in Sources */, D60E9D7226D1A863009A4537 /* KeyView.swift in Sources */, D68B3DA026D2937000CB35A2 /* AddURLForm.swift in Sources */, D61479EB26D13DEF00710B79 /* AppView.swift in Sources */, D68B3DA226D293BE00CB35A2 /* DismissAction.swift in Sources */, D60E9D7426D1ABF9009A4537 /* CircularProgressView.swift in Sources */, D6A2BCEC26D3F7F9004DC4E3 /* QRCodeView.swift in Sources */, D60E9D7A26D1E985009A4537 /* EditKeyForm.swift in Sources */, D6A2BD0A26D44AC3004DC4E3 /* KeyStore.swift in Sources */, D6A2BCB026D313E7004DC4E3 /* AddQRView.swift in Sources */, D6A2BD0826D449FA004DC4E3 /* KeyData.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; D61479ED26D141F700710B79 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( D61479F526D141F700710B79 /* OTPKit.docc in Sources */, D6147A1F26D14BA000710B79 /* TOTPCode.swift in Sources */, D6147A1326D1446E00710B79 /* Base32.swift in Sources */, D6147A1026D1421900710B79 /* TOTPKey.swift in Sources */, D6147A1D26D14B5F00710B79 /* OTPAlgorithm.swift in Sources */, D6147A1926D14AAB00710B79 /* OTPGenerator.swift in Sources */, D6147A1B26D14ADF00710B79 /* OTPKey.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; D61479F626D141F800710B79 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( D6147A1726D147B400710B79 /* TOTPKeyTests.swift in Sources */, D6147A0226D141F800710B79 /* OTPKitTests.swift in Sources */, D60E9D6E26D1998B009A4537 /* OTPGeneratorTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ D61479FD26D141F800710B79 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = D61479F026D141F700710B79 /* OTPKit */; targetProxy = D61479FC26D141F800710B79 /* PBXContainerItemProxy */; }; D61479FF26D141F800710B79 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = D61479D226D0AF1C00710B79 /* OTP */; targetProxy = D61479FE26D141F800710B79 /* PBXContainerItemProxy */; }; D6147A0526D141F800710B79 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = D61479F026D141F700710B79 /* OTPKit */; targetProxy = D6147A0426D141F800710B79 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ D61479E126D0AF1E00710B79 /* LaunchScreen.storyboard */ = { isa = PBXVariantGroup; children = ( D61479E226D0AF1E00710B79 /* Base */, ); name = LaunchScreen.storyboard; sourceTree = ""; }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ D61479E526D0AF1E00710B79 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; 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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 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; COPY_PHASE_STRIP = NO; 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 = 15.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; }; D61479E626D0AF1E00710B79 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; 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_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 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; COPY_PHASE_STRIP = NO; 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 = 15.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; VALIDATE_PRODUCT = YES; }; name = Release; }; D61479E826D0AF1E00710B79 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = V4WK9KR9U2; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = OTP/Info.plist; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = net.shadowfacts.OTP; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; D61479E926D0AF1E00710B79 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = V4WK9KR9U2; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = OTP/Info.plist; INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = net.shadowfacts.OTP; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; }; D6147A0926D141F800710B79 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = V4WK9KR9U2; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = net.shadowfacts.OTPKit; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; D6147A0A26D141F800710B79 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DEVELOPMENT_TEAM = V4WK9KR9U2; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = ""; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = net.shadowfacts.OTPKit; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Release; }; D6147A0D26D141F800710B79 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = V4WK9KR9U2; GENERATE_INFOPLIST_FILE = YES; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = net.shadowfacts.OTPKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/OTP.app/OTP"; }; name = Debug; }; D6147A0E26D141F800710B79 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = V4WK9KR9U2; GENERATE_INFOPLIST_FILE = YES; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = net.shadowfacts.OTPKitTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = NO; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/OTP.app/OTP"; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ D61479CE26D0AF1C00710B79 /* Build configuration list for PBXProject "OTP" */ = { isa = XCConfigurationList; buildConfigurations = ( D61479E526D0AF1E00710B79 /* Debug */, D61479E626D0AF1E00710B79 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; D61479E726D0AF1E00710B79 /* Build configuration list for PBXNativeTarget "OTP" */ = { isa = XCConfigurationList; buildConfigurations = ( D61479E826D0AF1E00710B79 /* Debug */, D61479E926D0AF1E00710B79 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; D6147A0826D141F800710B79 /* Build configuration list for PBXNativeTarget "OTPKit" */ = { isa = XCConfigurationList; buildConfigurations = ( D6147A0926D141F800710B79 /* Debug */, D6147A0A26D141F800710B79 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; D6147A0C26D141F800710B79 /* Build configuration list for PBXNativeTarget "OTPKitTests" */ = { isa = XCConfigurationList; buildConfigurations = ( D6147A0D26D141F800710B79 /* Debug */, D6147A0E26D141F800710B79 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ D60E9D7526D1B160009A4537 /* XCRemoteSwiftPackageReference "CodeScanner" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/twostraws/CodeScanner"; requirement = { kind = upToNextMajorVersion; minimumVersion = 1.0.0; }; }; /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ D60E9D7626D1B160009A4537 /* CodeScanner */ = { isa = XCSwiftPackageProductDependency; package = D60E9D7526D1B160009A4537 /* XCRemoteSwiftPackageReference "CodeScanner" */; productName = CodeScanner; }; /* End XCSwiftPackageProductDependency section */ }; rootObject = D61479CB26D0AF1C00710B79 /* Project object */; }