project.pbxproj (142198B)
1 // !$*UTF8*$! 2 { 3 archiveVersion = 1; 4 classes = { 5 }; 6 objectVersion = 77; 7 objects = { 8 9 /* Begin PBXBuildFile section */ 10 0063A5FC9F39E37A67F137FF /* GameListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED2D830B9EFAD753C233BEB4 /* GameListView.swift */; }; 11 00A25F5D8DFF62EFA0C4D1D7 /* FriendEntity+DisplayName.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F8D856707B4D76FDBF4AE69 /* FriendEntity+DisplayName.swift */; }; 12 00F2108848ADC7B4BF3AA0AE /* PlayerSessionNavigationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46801B570FC0B2C791ECDED3 /* PlayerSessionNavigationTests.swift */; }; 13 014134FB81566B5D41168260 /* PerGameZoneTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 283C5C97180C805B6C5BF622 /* PerGameZoneTests.swift */; }; 14 0158184A413AE177F75B4150 /* JournalReplayTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89B1FFD2F90141EA949A8540 /* JournalReplayTests.swift */; }; 15 01D1B4C7303F1CA52438FF86 /* HardwareKeyboardInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6940546CFA1E87EF814AA6BB /* HardwareKeyboardInputView.swift */; }; 16 0241DC498C645FE1BDA00FB0 /* NYTPuzzleFetcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0938B0ACB40772EE522D77C /* NYTPuzzleFetcher.swift */; }; 17 025377AF80D45967CE910423 /* SyncMonitorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C190EA5717C291B3F2AE46C /* SyncMonitorTests.swift */; }; 18 02943BA53D2130B910E6DC00 /* EnsureGameEntityTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94CEBA27A8AC4FCC92ADE1B4 /* EnsureGameEntityTests.swift */; }; 19 036EC1EDDEFD17DCDD9B5F1A /* ClueList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B8B65482CA1739A3863A99E /* ClueList.swift */; }; 20 04062BCD473ED244159B1066 /* PlayerRosterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1813630FA05C194AFF43855C /* PlayerRosterTests.swift */; }; 21 06AE6DF7AA3274480C591E47 /* EngagementStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B09D52DB46731E92C3E9297C /* EngagementStore.swift */; }; 22 07A46496EE0B12FD526F36FB /* SessionPushPlannerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C040D5EBC73B1ED47C2C9D4 /* SessionPushPlannerTests.swift */; }; 23 082B9BAADE3AFA54EFE30E19 /* PuzzleModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5DF04E70017065DFA95B396 /* PuzzleModifiers.swift */; }; 24 085B70680087464B8A7BA3EE /* GridSilhouetteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF7062403AC9CFB4FF04BBF3 /* GridSilhouetteTests.swift */; }; 25 0A7AEB93A473AFCCD9217F49 /* PuzzleSessionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 362E3A93102B6C9AECD4133A /* PuzzleSessionTests.swift */; }; 26 0BB721552A849A53AB9BF7CC /* RemoteCoordinateValidationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 960353A6F38DD290112A2FE1 /* RemoteCoordinateValidationTests.swift */; }; 27 0C39CA21BE50E49F9F06C5F2 /* PlayerRoster.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3292748EAE27B608C769D393 /* PlayerRoster.swift */; }; 28 0F2992C16A3A658DEA0F707E /* DiagnosticsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BCACEED6A9235EC6221F4F66 /* DiagnosticsView.swift */; }; 29 1016604FBD4D63A0B9AAE503 /* CloudQuery.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16AAC1E8D2CB3B5117159934 /* CloudQuery.swift */; }; 30 10AF4F2750E0D64AA3828F35 /* ImportServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4494C40DD593DA7CE6641027 /* ImportServiceTests.swift */; }; 31 128915DB37018EE4CC16C856 /* GameCursorStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D2AD5021F1AF0DB44FA4540 /* GameCursorStore.swift */; }; 32 13C0F34520828020AD825D07 /* JoiningPuzzleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E18FF14E0D73B0D2DB427F08 /* JoiningPuzzleView.swift */; }; 33 14749A042380925B7CA902F2 /* XDMarkup.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAF18C52558DBD58ECAD4964 /* XDMarkup.swift */; }; 34 15768439C1783A1780FBB824 /* SessionCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A7BD8DFDB41BFBA694A0933 /* SessionCoordinator.swift */; }; 35 16D7328AE0BB1F7ED46235C8 /* GameEntity+ContentKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24A4B5C8EC4A46906C07F819 /* GameEntity+ContentKey.swift */; }; 36 17A754692F05B97DBDD645F2 /* PlayerSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F0B4F65D017C1FBAC3B23DF /* PlayerSelection.swift */; }; 37 18CA29E61C4F1471A455FEC8 /* FriendEncryptionKeyDirectory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 833AAFBA0094BAB27E13FE29 /* FriendEncryptionKeyDirectory.swift */; }; 38 18D5BB584DBF92A2EC580AEA /* NotificationNavigationBrokerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FEDD63AD5E33E2B0399780EF /* NotificationNavigationBrokerTests.swift */; }; 39 197DDF45C36B9570BB9AE4B5 /* AuthorIdentity.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1F1471BE4D6D84361DD692B /* AuthorIdentity.swift */; }; 40 1989FEF3DE02BEA414B6E9ED /* ExternalBrowseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFA63B0051B4E6F4FC4B132A /* ExternalBrowseView.swift */; }; 41 1A19D13D9B820E276C60819E /* InputMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BDD06460A76D4AF31077732 /* InputMonitor.swift */; }; 42 1A1A8A9AB36D02E2A5A9ED28 /* GameViewedStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9AE0F26E602A9246F5C6ABF /* GameViewedStore.swift */; }; 43 1AAFF86B40CBBFF1EC9ADF9F /* GridThumbnailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6B1F07B5DDE2A8B49B28392A /* GridThumbnailView.swift */; }; 44 1D08DDEDEF5433912CC6D4DB /* GameViewedStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9406C27662147CD3C0783644 /* GameViewedStoreTests.swift */; }; 45 1E404AD99B04912167B83176 /* NYTOverlayLetterRecognizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 570F8FE85CC46CE3CB5CFEC1 /* NYTOverlayLetterRecognizer.swift */; }; 46 1F4E5473F78A5CEDBA9719CE /* NYTAuthService.swift in Sources */ = {isa = PBXBuildFile; fileRef = A253416F4FEA271A80B22A73 /* NYTAuthService.swift */; }; 47 205894D447BFE2CCEB07575D /* GameStoreRevocationLockTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD8E8D1BC7DF9EBB08F8CABD /* GameStoreRevocationLockTests.swift */; }; 48 24F7ED458A1C09F8CF309B35 /* PuzzleNotificationText+GameEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DF9C2FEF0D3584864DFC967 /* PuzzleNotificationText+GameEntity.swift */; }; 49 25141DD1C50C9191B6C94119 /* DecorationImages.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7557050B17F113BB488AA23 /* DecorationImages.swift */; }; 50 2571BA6482B3E896A80FF393 /* CompactSlider.swift in Sources */ = {isa = PBXBuildFile; fileRef = B024B2FFB11E51E9724BBE23 /* CompactSlider.swift */; }; 51 262A9CE8C3CB93869190CFF1 /* GameStoreMergedAuthorCellsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 122BC1863D12DE06388D5DA7 /* GameStoreMergedAuthorCellsTests.swift */; }; 52 2641299DE1F2E84E8C21E037 /* LogScrubberTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C06E2CC3A77CB306BD2DF867 /* LogScrubberTests.swift */; }; 53 267ED5B329F05A30430B73A0 /* EngagementHost.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18C701DAE36000DE19F7CC95 /* EngagementHost.swift */; }; 54 26DC22F88FA10C47BC06975E /* PersistenceRecoveryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A467BC00116EEC8500BE6A1 /* PersistenceRecoveryTests.swift */; }; 55 2765E30202EF955B425CB1A3 /* NYTOverlayLetterRecognizerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD8B50452D3AFE25D98B497A /* NYTOverlayLetterRecognizerTests.swift */; }; 56 2A273C98FE3AC5E4C9BE1D88 /* PushPayloadCipherTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C793B5B9684D49328E42129 /* PushPayloadCipherTests.swift */; }; 57 2AF2550B08CE79F8615B3076 /* FriendZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A4AFF292381C9B33C0F2CD6 /* FriendZone.swift */; }; 58 2C0DFC182240A2519ED1FA6A /* GameMutatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFC1C59A30FB2571598273E4 /* GameMutatorTests.swift */; }; 59 2C5A15054CCCBF9FD626AFBB /* GameStorePushAddressTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A56778AF8190F0D7EB2E27E /* GameStorePushAddressTests.swift */; }; 60 2DD78CA0CD587AA4E5C4B178 /* PuzzleScoreboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3A251D89028B3CA065DE053 /* PuzzleScoreboard.swift */; }; 61 30703DDF575DCDA53227DA66 /* GamePushCredentialsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5A8118AC2FE60D877F1D29 /* GamePushCredentialsTests.swift */; }; 62 309457EC2DFEC476253D54D2 /* PlayerSelectionPublisherTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF159746D076E051C2CB590C /* PlayerSelectionPublisherTests.swift */; }; 63 31F2B6A61ED352C7D800149F /* XDAcceptTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F4EBC0F07FF815274C028CA /* XDAcceptTests.swift */; }; 64 328309D8CC72CCB5623FB2A1 /* EngagementCoordinatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67CFF96D54D2DE9C44EB120A /* EngagementCoordinatorTests.swift */; }; 65 33CEEDAFBAA46128A9713AF5 /* PushRequestAuthenticatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 630A65B1CCFEFEA825D3DD41 /* PushRequestAuthenticatorTests.swift */; }; 66 350722635E9A17324148CACC /* PuzzleCatalog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DC7784917397BCD6B8D679D /* PuzzleCatalog.swift */; }; 67 351CB23C537BAB61863D95F6 /* PuzzleNotificationText.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7CEB8980A9664BAAA5D196 /* PuzzleNotificationText.swift */; }; 68 35D97436772257DAD3936ECB /* TipStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8D4A76B233E16B7C5A248EB7 /* TipStore.swift */; }; 69 36E2AAF1EE1314E13477EE85 /* NicknameDirectory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3111803C8FFFB0C839217482 /* NicknameDirectory.swift */; }; 70 38439415796652D8B88C53B3 /* XDDecorationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C08795365FABCC11A6C6E28 /* XDDecorationTests.swift */; }; 71 38C913D00ED762BD9E355A2D /* KeychainHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33878A29B09A6154C7A63C82 /* KeychainHelper.swift */; }; 72 3A5483EF2893AE325DF27EE8 /* GameMutator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43DC132D49361C56DE79C13E /* GameMutator.swift */; }; 73 3B3F30AA1B7AA6D4465CB537 /* EngagementMessageAuthenticatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A24FD313982C8094CD020106 /* EngagementMessageAuthenticatorTests.swift */; }; 74 3C54AE4AA04342CCF5705B20 /* PlayerNamePublisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71DFD035381B6252DCD873C9 /* PlayerNamePublisher.swift */; }; 75 3C54B672A9FCA98C0A304470 /* TipsArchive.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9DC6394CB0F5B85C083FAC7 /* TipsArchive.swift */; }; 76 41290C86E72D6567C43C31B7 /* ShareLinkShortenerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 057F2B8B8A894D08BB801219 /* ShareLinkShortenerTests.swift */; }; 77 43E311FBD68B7D35A4D29743 /* PushPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2C9D3E7FCE2D42C5B7E3856 /* PushPayload.swift */; }; 78 449B0A09A36B276C93CFB9A4 /* GameStoreUnreadMovesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31C534911020BE4ED2E5065D /* GameStoreUnreadMovesTests.swift */; }; 79 44FF4A5334A4086DEA7D8A7B /* GameShareItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 663934F0B7CA8BDD462DFAA4 /* GameShareItem.swift */; }; 80 47584CBEF819C2F507D06DFF /* PlayerColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB55FC337CF72C650373210A /* PlayerColor.swift */; }; 81 47A6EAAC144C37608AB9AE91 /* PlayerPreferencesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7F1EDE21BB7D6456D6E9000 /* PlayerPreferencesTests.swift */; }; 82 47B4FB563BA4A8A54E2C26E0 /* XDLimitsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F6DB4116933BB66274AC6E8 /* XDLimitsTests.swift */; }; 83 4819D7FBB407C9D76510EA2A /* TestHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = F97B399E89BBB37730F2F1E9 /* TestHelpers.swift */; }; 84 4A89595E3F6AB50E1D9E6BA8 /* ImportService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 462CE0FD356F6137C9BFD30F /* ImportService.swift */; }; 85 4B8CA45845618D75A3313816 /* GridSilhouette.swift in Sources */ = {isa = PBXBuildFile; fileRef = D16AC7215D0269195FEA8BA8 /* GridSilhouette.swift */; }; 86 4D7BF839BA71E1BF0AE9BCE9 /* GameStoreContributingDevicesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EA25E2AE98ACD029EC0129 /* GameStoreContributingDevicesTests.swift */; }; 87 4D90B39AD2F79959FB8089EE /* MovesUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DD270E16E00145EF2807EA9 /* MovesUpdater.swift */; }; 88 4D9E2C35893E68E47F790994 /* BundledBrowseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7023E506D777DB80B18A7DB5 /* BundledBrowseView.swift */; }; 89 4E14BB5D6F96D178373ED55A /* PeerChangeLedger.swift in Sources */ = {isa = PBXBuildFile; fileRef = B427285F8D6BE35025591BFA /* PeerChangeLedger.swift */; }; 90 4E1A70D1EC709A0478631DCF /* DecorationRenderingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 382F9AAB0B98B4A78E255F15 /* DecorationRenderingTests.swift */; }; 91 4F1A93404828EDBDBBF86716 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C6AB016CA4E2FC69A0E6A4F /* SettingsView.swift */; }; 92 503229FF89FF7C29CEF4C16D /* Puzzle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64C8064F04FC6177D987ACA2 /* Puzzle.swift */; }; 93 5082CCB75939E1BC6E9DC03A /* AppDefaultsMigratorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99F4D2E1504784E738D2B33A /* AppDefaultsMigratorTests.swift */; }; 94 50C02D37A41D55CFA5D307E2 /* NYTPuzzleUpgraderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B34489D0864DF76AF436E391 /* NYTPuzzleUpgraderTests.swift */; }; 95 51E6F7F2FC52C2AA87B9DB45 /* PeerPresenceGraceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08E8592B1CB1336E63498706 /* PeerPresenceGraceTests.swift */; }; 96 521E877D28502B917C89B66D /* AccountPushCoordinatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B166E87D13C41C4D3575169 /* AccountPushCoordinatorTests.swift */; }; 97 5264996E0D72A805B20985E8 /* PuzzleGridStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23A7390848B1943C80142934 /* PuzzleGridStats.swift */; }; 98 59230713D85AE6895852B06A /* InviteCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10064D171DB7C48D3DE1E769 /* InviteCoordinator.swift */; }; 99 5992AD4A06D7C6440825E9C6 /* GameArchiver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B7539E0AD285C5A3AC3DDA2 /* GameArchiver.swift */; }; 100 5E80545A8ECEB1E2ED371C53 /* PushCredentialRotationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD32BDDE9B007B11BE86B7A0 /* PushCredentialRotationTests.swift */; }; 101 5E89D1F8FDFE56395997281A /* NewGameSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09C81EFA0B7776CB9713CD63 /* NewGameSheet.swift */; }; 102 5ECF5B80D08E5E999A540782 /* SessionMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EB332831AB173ACF6BFEC59 /* SessionMonitor.swift */; }; 103 5EFCD28B3B682DCCF38068D6 /* AnnouncementCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D3ECD0DE71BE567BCEE15F6 /* AnnouncementCenter.swift */; }; 104 5FB26F40F5DB52111E3D1BDC /* CheckResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FD9A43789D0ED123F7A99B0 /* CheckResult.swift */; }; 105 609364CB79E0C7517298B404 /* ContentKeyDirectory.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAFA466405AABA1C06272795 /* ContentKeyDirectory.swift */; }; 106 61A0F71985C898D046556A1D /* FriendInviteRecencyStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51583D7304A586BF38F0D8E3 /* FriendInviteRecencyStoreTests.swift */; }; 107 61F8B38587EE49D376B53544 /* ReplayCacheTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 603E6FC55F1BD944592379D2 /* ReplayCacheTests.swift */; }; 108 648EA338E7718079EA354D7D /* EngagementMessageAuthenticator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B3E0C62CBF5ADF7C01C1D54 /* EngagementMessageAuthenticator.swift */; }; 109 659F7E48357E164144A19789 /* CloudContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E68FD021EF8ED50BC706EE /* CloudContainer.swift */; }; 110 6850EAE474E589CE1EA2DF68 /* NicknameDirectoryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92168360625ECDD36FF50EE8 /* NicknameDirectoryTests.swift */; }; 111 689DAEC70934027E76E8116E /* KeyboardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FDE73AD7C543B29C8E493F8 /* KeyboardView.swift */; }; 112 6A1CA96FF48CBEEE78EA6D34 /* FriendModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B766E872B12DC79ECCD80941 /* FriendModelTests.swift */; }; 113 6AE88D9E1918508DBF2A91E1 /* NotificationState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D2FD896D75863554E31654C /* NotificationState.swift */; }; 114 6BD5C5B6BED06651312E2D01 /* MailComposeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F8AAA9540C80F787A1465C0 /* MailComposeView.swift */; }; 115 6BE7E91158F4DF1F71247C6D /* CellMark.swift in Sources */ = {isa = PBXBuildFile; fileRef = B135C285570F91181595B405 /* CellMark.swift */; }; 116 6C091D30AAC9F63B7CE6FB58 /* AnnouncementCenterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 978A96CC6F550ED7A73F8D96 /* AnnouncementCenterTests.swift */; }; 117 6D2AF361587E43D807BA212F /* NYTLoginView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1747D4DCB4BCC831069BBE07 /* NYTLoginView.swift */; }; 118 6E36ED34ACF047BABB3E2D69 /* RecentChangesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80B377D237AC14B9856579E1 /* RecentChangesTests.swift */; }; 119 6E67C0DCB0416F382EA065B7 /* JournalUploadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD9C72266D1BAC43C8976C0 /* JournalUploadTests.swift */; }; 120 701BD90172F500B89E32E8E6 /* NoticeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A61768D423564A9080414A38 /* NoticeView.swift */; }; 121 712A2764596A2D17A0BBBF3B /* FriendZoneTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 800CCFBE90554F287E765755 /* FriendZoneTests.swift */; }; 122 7714B1C2FBCBBAD9BE8FEAF8 /* GameSummaryThumbnailTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5EEBF169823C172000FC45B /* GameSummaryThumbnailTests.swift */; }; 123 774C5B5FC06366A0F5CD2376 /* GameSyncVersion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 275DB12E9D81DD48B9025718 /* GameSyncVersion.swift */; }; 124 77556FD9473A3F10FADF5E4E /* PersistenceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ACC295195602B3DDF7BB3895 /* PersistenceController.swift */; }; 125 779D1955F350B507A47B1E5B /* ShareLinkShortener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52B50A841D92D1F2B173E7DF /* ShareLinkShortener.swift */; }; 126 786813F3418C32EFBF296220 /* XDMarkupTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9FE0A9624DB87758F3D1768 /* XDMarkupTests.swift */; }; 127 78802AFDF6273231781CC0DC /* AppServices.swift in Sources */ = {isa = PBXBuildFile; fileRef = CBDC81CA6A9C80EB31E7F493 /* AppServices.swift */; }; 128 7BD1A9F69953F9C3288969AF /* PlayerRecordPresenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C838C184A0C7B1B0A9821CE /* PlayerRecordPresenceTests.swift */; }; 129 7BE53C851A311A7B6255B45E /* CellAccessibilityDescriberTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3059A4C23D040E0D1F258B92 /* CellAccessibilityDescriberTests.swift */; }; 130 7CD7CC4681C2085AAC39FA79 /* XDDecorationWriter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3A2D346F414F374A45F92AD /* XDDecorationWriter.swift */; }; 131 7D4A56FBB1C5D5F89271B77F /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 507B4DC893CE8AC4778CBACE /* NotificationService.swift */; }; 132 7D9337A19747C79070AB3D59 /* InviteEntity+DisplayName.swift in Sources */ = {isa = PBXBuildFile; fileRef = E25A040EA4DC9672C895A7AC /* InviteEntity+DisplayName.swift */; }; 133 7E6ED856CE78A774B061CA60 /* FriendEncryptionKeyDirectory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 833AAFBA0094BAB27E13FE29 /* FriendEncryptionKeyDirectory.swift */; }; 134 7FCD3F582B5ADC235E1F88A0 /* PuzzleNotificationTextTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C90E94A01FEA77A5C9A2BC94 /* PuzzleNotificationTextTests.swift */; }; 135 7FFEACFC672925A0968ACC1C /* XD.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9031A1574C21866940F6A2C /* XD.swift */; }; 136 8171E5B23FEC5FB63029A640 /* CloudJoinFailureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E6BB07A54A3C3AF6F210F49 /* CloudJoinFailureTests.swift */; }; 137 8225918652DCC822CA1C862F /* PendingEditFlagTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D491B7232333AA8957732387 /* PendingEditFlagTests.swift */; }; 138 82918A74836E5076CBFA1592 /* SyncEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73DDDED719CFFDD6035C3B48 /* SyncEngine.swift */; }; 139 82D1714DC441E4943E96C882 /* PuzzleFileReaderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9EE11280592CA66C2BEC71A /* PuzzleFileReaderTests.swift */; }; 140 83CF8376EBFD7271931AC1B7 /* GridAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4CA70D10760D6770907606 /* GridAccessibility.swift */; }; 141 85A798525FE1DC98210A9E82 /* GameCursorStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60E818B0F4689BAD57660B7C /* GameCursorStoreTests.swift */; }; 142 85B9BAC5ED404FE4496250CB /* NYTPuzzleUpgrader.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE54EF557E8D808BAA20EA54 /* NYTPuzzleUpgrader.swift */; }; 143 884BC090D4E2D416AA52D6FD /* FriendPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E78C275F8A90E3E3EEF190CC /* FriendPickerView.swift */; }; 144 88A34C8857B2B3D45A6FBCB2 /* PuzzleSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 710BCB6A647A820B106CE666 /* PuzzleSession.swift */; }; 145 88BACA1689459AC9AED20D43 /* NotificationState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D2FD896D75863554E31654C /* NotificationState.swift */; }; 146 89CEDB8864F61E42AC04F9D6 /* RecordSerializerMovesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 443BF6DF77C8226313EE9564 /* RecordSerializerMovesTests.swift */; }; 147 8AE376C0726116082B15241D /* ShareLinkRouteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5990D989AD745211A18848E4 /* ShareLinkRouteTests.swift */; }; 148 8B356C953DA0FAF149C3391A /* Puzzles in Resources */ = {isa = PBXBuildFile; fileRef = BA67C509B467132D1B7510A4 /* Puzzles */; }; 149 8C37D748EBFD75DACCB992C3 /* DriveMonitorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29686FFBC5BC8BCCF8CCC49A /* DriveMonitorTests.swift */; }; 150 8D8A9F70731C98DD00BE1DA5 /* Layouts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 836B8D4B351C9225162A82C0 /* Layouts.swift */; }; 151 8ECA254A8BB852BF4B9CE6D7 /* MarketingScreenshots.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CBEE60E9D850739CA3D01AA /* MarketingScreenshots.swift */; }; 152 8F5CB2F94E083D06D7E04280 /* PlayerSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20B331CC55827FEF3420ABCE /* PlayerSession.swift */; }; 153 8FEE38B2B540F0E91560747F /* PushPayloadCipher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33DE10D2A5AFBAC73469BD33 /* PushPayloadCipher.swift */; }; 154 903681985C17FCB5F97773A9 /* OpenPuzzleBannerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8CA0FC750259EB1D762B0EE /* OpenPuzzleBannerTests.swift */; }; 155 91703E54DB4679C1911BF994 /* Moves.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86470163BFF956F3DE438506 /* Moves.swift */; }; 156 924B29C1EEB29F849A6824C3 /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74C8886A66F0877858A67D62 /* AboutView.swift */; }; 157 931431F8052FC58768C9BC26 /* FriendControllerNicknameReplayTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E2702C74378FD2F14D1CE33 /* FriendControllerNicknameReplayTests.swift */; }; 158 93DB3DD9A8EE994B92E7C084 /* GridView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED48AD9C3A7A113D101BBD21 /* GridView.swift */; }; 159 9502840161DB88BB6BB409D5 /* Journal.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF3D29B227D2B0E699423C48 /* Journal.swift */; }; 160 95170ECF07E94E7581C2B66F /* ContentKeyDirectory.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAFA466405AABA1C06272795 /* ContentKeyDirectory.swift */; }; 161 9582AA583F5EA008FFC82B64 /* ZoneOrphaningTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9A01534A21796A4EC7113A9 /* ZoneOrphaningTests.swift */; }; 162 95B4083F8BC2CA465077A662 /* PlayerColorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23FCFFF1C2C7E909DFD8FC43 /* PlayerColorTests.swift */; }; 163 95FDB86366A30C95C69D5A02 /* RevealConfirmationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71312F9248AA21238F7D5D6D /* RevealConfirmationTests.swift */; }; 164 9789150602A3321D2E1E7E81 /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0BF60C84D92A9024AC1A53FC /* Media.xcassets */; }; 165 978F91DBAE94BC5DA1D94705 /* DriveMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70AD1A006E6D03E4429E3BF0 /* DriveMonitor.swift */; }; 166 98F8FBF324ED00D53FEBB1DB /* Game.swift in Sources */ = {isa = PBXBuildFile; fileRef = 465F2BB469EFE84CF3733398 /* Game.swift */; }; 167 9AACF424992AE45FD7937064 /* GameStoreCompletionLockTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E230B327585E1E3A2921C92 /* GameStoreCompletionLockTests.swift */; }; 168 9AD5700398B1C1F29A3A75F6 /* TipStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8D6991C1EBAB2C64D9DF669 /* TipStoreTests.swift */; }; 169 9AD8936D94FD676B23DFBB77 /* RecentChanges.swift in Sources */ = {isa = PBXBuildFile; fileRef = 605CA0FC7AF069CE3A3B38C1 /* RecentChanges.swift */; }; 170 9B1162B1714415FE58CBAE2C /* PersistenceControllerHealTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54A448620E71515AAA7BA3DD /* PersistenceControllerHealTests.swift */; }; 171 9C52C48DB4996D5C83DEC144 /* PuzzleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57B1734CF731C2E405A39159 /* PuzzleView.swift */; }; 172 9CB8808193A4A106D721D767 /* XDFileType.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAC61E2582D94B1E6EC67136 /* XDFileType.swift */; }; 173 9DDFDF9D97FFC4F043CE84D8 /* PuzzleFileReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE1A1BF1EBD7D9E4584EF5FE /* PuzzleFileReader.swift */; }; 174 9DFE90A6D7C58823CA02CA4E /* InboundRecordIdentityTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08C434DB97DE2FBD8BEB867C /* InboundRecordIdentityTests.swift */; }; 175 9FFD01CF6767220EEA20C0E4 /* GamePushCredentials.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78919F44C3035C48410FC894 /* GamePushCredentials.swift */; }; 176 A0977C7B0B0D928DA569C326 /* NicknameDirectory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3111803C8FFFB0C839217482 /* NicknameDirectory.swift */; }; 177 A133A4B4A0C95AF8708BD7E6 /* PushClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A9F9E7ED4E1AF02F0C71051 /* PushClient.swift */; }; 178 A458AF9CA8579AB51B695B08 /* PendingChangeReapTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAEDA3C3765CD8D8897FE5D5 /* PendingChangeReapTests.swift */; }; 179 A4BF96473CD6D937402239C1 /* NYTOverlaySlicer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A55219DFC3EEC971E3A8BA6D /* NYTOverlaySlicer.swift */; }; 180 A65F99414F8CF6704567BB07 /* Archive.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8C18E9B47668E008BE4CF86 /* Archive.swift */; }; 181 A78FF09708EDED7ED50BB55B /* PushPayloadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E87E28DC9402A4369647DE50 /* PushPayloadTests.swift */; }; 182 A7FA870D794CA00F7F3F05D2 /* EngagementHostEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 400B3C87248F3FCA3F76400B /* EngagementHostEnvironment.swift */; }; 183 A87E5E615559B6461B1C3F94 /* AnnouncementBanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = CD68E9CA9D3057FE07E985E1 /* AnnouncementBanner.swift */; }; 184 A98382E7659991FAF0F4ED0A /* AuthorIdentityTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 457B06DBFDC358D213A7CE54 /* AuthorIdentityTests.swift */; }; 185 AA38A51862FC0AB8F7D34899 /* NYTToXDConverterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C54223FED97577A593B7964E /* NYTToXDConverterTests.swift */; }; 186 AACC9F70AEEDCB3360FFDEFF /* GridStateMergerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6C7F3A9BD7FAF81CB77032A6 /* GridStateMergerTests.swift */; }; 187 AC70BED45521BB77535C456C /* AppDelegatePushBufferTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48EC33BC7DDAC3B7F29C3F02 /* AppDelegatePushBufferTests.swift */; }; 188 ADBEAD1C0139BCF864CA8A1D /* PuzzleCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89528AF69DE06C61FA8E91A1 /* PuzzleCommands.swift */; }; 189 AE5D8C531F89F05B7201B3AC /* SessionMonitorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F64DAE64C9AA042B330C526F /* SessionMonitorTests.swift */; }; 190 AE92B185FB52032AEB9421A1 /* AppActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAD36DEDB3D997AB47146EA9 /* AppActions.swift */; }; 191 AF4F1AE2A1F94E92C785C524 /* Square.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB851649DE78AAAC5A928C52 /* Square.swift */; }; 192 B00743DAF8F46F14CE13E909 /* FriendsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 298A9C54A1CC753E860E174E /* FriendsView.swift */; }; 193 B0170C8927EDD2E43F849204 /* TimeLog.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFFB5B2EFBB62B7021AC2FC2 /* TimeLog.swift */; }; 194 B48DE7079BE2F31D2367C5F7 /* SessionPushPlanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA49DA9E0ADEB11A920787FA /* SessionPushPlanner.swift */; }; 195 B5F78A55C9BCCD24E44D865F /* JournalReplay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27ECEA51DE42D07495744EF8 /* JournalReplay.swift */; }; 196 B6AB531F4E0C4031B627C539 /* PlayerSelectionPublisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11BF168D5C1CD85DAE5CAF9E /* PlayerSelectionPublisher.swift */; }; 197 B762200F54C52E8377A80D15 /* NYTToXDConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF6F111BE8750697C4BC7A17 /* NYTToXDConverter.swift */; }; 198 BA7FCA7D8713582B2396BE6B /* GridPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9062DC673A2F5AC87FC417AB /* GridPosition.swift */; }; 199 BAB41DBF7D099B1EE46B4ACB /* ClueBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = E935CE4384F3B67CC22EEBAC /* ClueBar.swift */; }; 200 BCB9A4D5E06EE5006186465D /* ShareController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C74683332956B0D1CA37589 /* ShareController.swift */; }; 201 BD317ECC09C9099AC29B8C5D /* FriendAvatarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 065CD67A1D9F7B63AE6B42D6 /* FriendAvatarView.swift */; }; 202 BE57957589423497338EBD37 /* ShareRoutingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68072F4F3EB5D5A78E03D408 /* ShareRoutingTests.swift */; }; 203 C1930083671621AC79CF95DD /* MovesUpdaterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF6157D97271205626E207C /* MovesUpdaterTests.swift */; }; 204 C1D97A4CD02BC9C22C4208BB /* NYTAuthServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED8154F949E1D94252F70765 /* NYTAuthServiceTests.swift */; }; 205 C30C0C4E54E4209A22843872 /* CrossmateModel.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = F93AC31640C40FCC039570A3 /* CrossmateModel.xcdatamodeld */; }; 206 C472EF02D8C7B0AC1D2284B8 /* CustomButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9B757D86362CD6F0500E9CB /* CustomButtons.swift */; }; 207 C511387D9FFBCC2E2F5EF699 /* NotificationService.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 51318FC5DAE02D35CB005729 /* NotificationService.appex */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 208 C58F15CBEADA72032B54009D /* ReplayControlsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847415468DBB1C566D18BC17 /* ReplayControlsTests.swift */; }; 209 C6CC673F2D4BB8A1C0439FBB /* PushClientTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63AE7146492AD286EF13C3E7 /* PushClientTests.swift */; }; 210 C843CADAA263CED503528A4E /* NYTBrowseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3413F8755236FC0578AF8109 /* NYTBrowseView.swift */; }; 211 C89A15D812E372FE1C56039B /* PUZToXDConverterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDE193CAB325C991952D7CE5 /* PUZToXDConverterTests.swift */; }; 212 C8ACF431021E7BEE61A99153 /* FriendController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E655698481325C92EF5C348B /* FriendController.swift */; }; 213 C9864C9940C9DAAD0A788094 /* ReplayLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FFD574AC2D0A910053E2A73 /* ReplayLoader.swift */; }; 214 CABF8BFAA30B9F26C482FAB9 /* EngagementCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FDE03B4A77A8095ED2C23AB /* EngagementCoordinator.swift */; }; 215 CC250D6BA9B41CB722D8A62E /* CloudService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56BC76178319D0D669CD50FF /* CloudService.swift */; }; 216 CCF3867C32C3F36E4F69A59E /* DebuggingMonitors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 16E1DA8C1B4E73AFB779CC06 /* DebuggingMonitors.swift */; }; 217 CED9627EAF70673B339D85EF /* AppDefaultsMigrator.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA74C894ECCA1A176DD5B2F8 /* AppDefaultsMigrator.swift */; }; 218 CEDF853009D0C367035F1F76 /* PlayerNamePublisherTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DE04D53EC3BC7D2DA0093C3 /* PlayerNamePublisherTests.swift */; }; 219 CF0CA17ABE211DAE4DD35AFD /* RecordSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C0A7348E1283E7CD2486E2A /* RecordSerializer.swift */; }; 220 CF1DC343A5D3110EDFA703AB /* LastUpdatedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF3B7E191D571FD800A4D719 /* LastUpdatedView.swift */; }; 221 CF56BBB90855367CB85FEB43 /* PUZToXDConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B369788E0FEA0DCE1B125816 /* PUZToXDConverter.swift */; }; 222 D05F1B226E67A31218BA4E3A /* InvitationFailureCallout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2494B62495C8048ED64072E2 /* InvitationFailureCallout.swift */; }; 223 D13ECFAE05DB508577D2FF66 /* RecordBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5267DDA1A330DCBD07303D44 /* RecordBuilder.swift */; }; 224 D240BF6498A9148855DB7734 /* EngagementLifecycle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DB0580C9B7C778F34BE6AC2 /* EngagementLifecycle.swift */; }; 225 D2AC1D9BD7E387B06B9B8A0E /* PuzzleHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBA3FB1334DB816E62B7D9B /* PuzzleHeader.swift */; }; 226 D3E5B61C695CE3DDA7016E47 /* FriendInviteRecencyStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4D705650CD98E8BB20AC4AD /* FriendInviteRecencyStore.swift */; }; 227 D4EDC0D426688B295DA77C08 /* ShareLinkRoute.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2ED0D601BB574618C15B5EF /* ShareLinkRoute.swift */; }; 228 D5022BFB2F8F2E5904EDF5C8 /* GameCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F34401948BC53DA9C93D64B /* GameCardView.swift */; }; 229 D519F54F8CE0BD53D9C6144C /* AppServicesAnnouncementTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9998739ED0875A17271B7899 /* AppServicesAnnouncementTests.swift */; }; 230 D58980B92C99122C368D4216 /* GameStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93EE5BA78566EDED68D846AB /* GameStore.swift */; }; 231 D94FF5DFB9412D2DC24F6574 /* RecordApplier.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD63A9B20168F3B81AF4348F /* RecordApplier.swift */; }; 232 DAD7EA11DA7330773A485473 /* PeerChangeLedgerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D243575E32A8663B1AAF492A /* PeerChangeLedgerTests.swift */; }; 233 DB098F40C6950E29B4BF10A7 /* ArchiveTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9EA9CF96312BFF5340CE2A7 /* ArchiveTests.swift */; }; 234 DCAA1C4A4E4943675EC6632A /* NYTPuzzleFetcherTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A0CCED43B365363662C45A30 /* NYTPuzzleFetcherTests.swift */; }; 235 DDC7994B951A3A7B836B36F6 /* SuccessPanel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41A62DA6F7138876CA5A27EF /* SuccessPanel.swift */; }; 236 DE90CC8BE23A0EFC4A32FFA5 /* MovesInboundTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF1254FE7BE3672AEC1607B1 /* MovesInboundTests.swift */; }; 237 DE9E4FAB098731A650F2D306 /* CrossmateApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14F2AC5C3B50F4178859E9AC /* CrossmateApp.swift */; }; 238 E15A40AA623B60279E8DDF43 /* CloudDiagnostics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07E5E4B165E374FEE732068B /* CloudDiagnostics.swift */; }; 239 E16A8FE849A8E8BCC0F32280 /* CloudZones.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44F86F0F1883A93F9622FB67 /* CloudZones.swift */; }; 240 E1FBC33E3348547D4DF946C4 /* ReplayControls.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50EE8A159CC553623F6F7DE4 /* ReplayControls.swift */; }; 241 E354A588DBA74627A9CD5591 /* Presence.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFC4FF046BF772646B5CA73F /* Presence.swift */; }; 242 E454051BA4797000C8AD2B48 /* MovesCodecLegacyDecodeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B33C21324E1474BCC126AA0 /* MovesCodecLegacyDecodeTests.swift */; }; 243 E632562D090D8BE907F28C53 /* NotificationStateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47532AED239AEF476D8E9206 /* NotificationStateTests.swift */; }; 244 E6A13F8736ABF41F6346E301 /* ParticipantSummaries.swift in Sources */ = {isa = PBXBuildFile; fileRef = FED7C2528355BC007E48B7EF /* ParticipantSummaries.swift */; }; 245 E81F92AAB2968997C3D68809 /* PuzzleNotificationText.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7CEB8980A9664BAAA5D196 /* PuzzleNotificationText.swift */; }; 246 E91FB8101E1927CA567DE825 /* PuzzleSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7AFD37B03A1C2E23E5766E6 /* PuzzleSource.swift */; }; 247 E9A65F3548DD062FD36A19E1 /* CellPatterns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F13534332699C80382FE682 /* CellPatterns.swift */; }; 248 EA0AA522F6C383034C4572F4 /* AccountPushCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03D59EA74A4BA084AD97478D /* AccountPushCoordinator.swift */; }; 249 EA9DA088AF131B0E6A874E70 /* NYTOverlaySlicerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7845E863A179DBB0B932C234 /* NYTOverlaySlicerTests.swift */; }; 250 EB6E99226D5EE27668787008 /* BadgeCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D5B1E8E12B86DF6CA478F65 /* BadgeCoordinator.swift */; }; 251 ECC1A5C3623F50B67185CFFB /* RecordSerializerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E4DEAF9F7887CBB46A99E8E /* RecordSerializerTests.swift */; }; 252 ED6C21CD9F5AB286B69A02E4 /* GridStateMerger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14B05C19BD4705876B3DF0EC /* GridStateMerger.swift */; }; 253 F15591B48E4155CB19C1F084 /* TimeLogTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7F35A7BFE52279BC24677F5 /* TimeLogTests.swift */; }; 254 F1854B64C63447B7C7232097 /* DiagnosticsReport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D36E66AE489DC5C5FB85E19 /* DiagnosticsReport.swift */; }; 255 F2F7CB23DA62BF714632B097 /* PushRequestAuthenticator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAF6E3F3558E128E7A482A61 /* PushRequestAuthenticator.swift */; }; 256 F34EDFD45E2F5006807DDAC7 /* PuzzleCatalogTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8560440C548752EE93E0ED9 /* PuzzleCatalogTests.swift */; }; 257 F46733AB3C72749A4A992667 /* SyncState+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A49C3C31F49A85764B84A15 /* SyncState+Helpers.swift */; }; 258 F5F333B36654AEAF69A3C220 /* MovesJournalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78C92190C4A344EC319A0F88 /* MovesJournalTests.swift */; }; 259 F627D68B521FEA85EB80A850 /* CalendarDayCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF20BDF7FF6423BA4FD911D5 /* CalendarDayCell.swift */; }; 260 F8A4B3A1F9601654C60550B3 /* PushPayload.swift in Sources */ = {isa = PBXBuildFile; fileRef = C2C9D3E7FCE2D42C5B7E3856 /* PushPayload.swift */; }; 261 F8D37DBE75D7B3F039A8FAC8 /* ImportedBrowseView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A832061C19BA0F073617CA2 /* ImportedBrowseView.swift */; }; 262 F8DDA34AC1A6B6499C5D222E /* PlayerPreferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46148CF0F4D719692F81A6EC /* PlayerPreferences.swift */; }; 263 FC480FE2930EAE406F5BBBDA /* GameRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DBD2570A5A3573D66B3C4A52 /* GameRowView.swift */; }; 264 FC4853B4261B06945D0D1470 /* PushPayloadCipher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33DE10D2A5AFBAC73469BD33 /* PushPayloadCipher.swift */; }; 265 FE447FF4339EA0BF874B1114 /* InviteDeliveryStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28AB8C4D560CA5D4E4C61750 /* InviteDeliveryStore.swift */; }; 266 /* End PBXBuildFile section */ 267 268 /* Begin PBXContainerItemProxy section */ 269 0751E0359C340223ADBA2B05 /* PBXContainerItemProxy */ = { 270 isa = PBXContainerItemProxy; 271 containerPortal = 9167165F088B7698D1319D3C /* Project object */; 272 proxyType = 1; 273 remoteGlobalIDString = 350366A68B75DC4BDA91F8E5; 274 remoteInfo = NotificationService; 275 }; 276 F0122CF3E216720C4437CE6A /* PBXContainerItemProxy */ = { 277 isa = PBXContainerItemProxy; 278 containerPortal = 9167165F088B7698D1319D3C /* Project object */; 279 proxyType = 1; 280 remoteGlobalIDString = 7708D1C8A0145D43BD15DEB7; 281 remoteInfo = Crossmate; 282 }; 283 /* End PBXContainerItemProxy section */ 284 285 /* Begin PBXCopyFilesBuildPhase section */ 286 2768812850886EB633B6C27C /* Embed Foundation Extensions */ = { 287 isa = PBXCopyFilesBuildPhase; 288 buildActionMask = 2147483647; 289 dstPath = ""; 290 dstSubfolderSpec = 13; 291 files = ( 292 C511387D9FFBCC2E2F5EF699 /* NotificationService.appex in Embed Foundation Extensions */, 293 ); 294 name = "Embed Foundation Extensions"; 295 runOnlyForDeploymentPostprocessing = 0; 296 }; 297 /* End PBXCopyFilesBuildPhase section */ 298 299 /* Begin PBXFileReference section */ 300 03D59EA74A4BA084AD97478D /* AccountPushCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountPushCoordinator.swift; sourceTree = "<group>"; }; 301 057F2B8B8A894D08BB801219 /* ShareLinkShortenerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareLinkShortenerTests.swift; sourceTree = "<group>"; }; 302 065CD67A1D9F7B63AE6B42D6 /* FriendAvatarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FriendAvatarView.swift; sourceTree = "<group>"; }; 303 07E5E4B165E374FEE732068B /* CloudDiagnostics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudDiagnostics.swift; sourceTree = "<group>"; }; 304 08C434DB97DE2FBD8BEB867C /* InboundRecordIdentityTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InboundRecordIdentityTests.swift; sourceTree = "<group>"; }; 305 08E8592B1CB1336E63498706 /* PeerPresenceGraceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerPresenceGraceTests.swift; sourceTree = "<group>"; }; 306 09C81EFA0B7776CB9713CD63 /* NewGameSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewGameSheet.swift; sourceTree = "<group>"; }; 307 09EA25E2AE98ACD029EC0129 /* GameStoreContributingDevicesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameStoreContributingDevicesTests.swift; sourceTree = "<group>"; }; 308 0BDC16DA7F762F4C5F4BED14 /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = "<group>"; }; 309 0BF60C84D92A9024AC1A53FC /* Media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Media.xcassets; sourceTree = "<group>"; }; 310 0C0A7348E1283E7CD2486E2A /* RecordSerializer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordSerializer.swift; sourceTree = "<group>"; }; 311 0C190EA5717C291B3F2AE46C /* SyncMonitorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncMonitorTests.swift; sourceTree = "<group>"; }; 312 0DF9C2FEF0D3584864DFC967 /* PuzzleNotificationText+GameEntity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PuzzleNotificationText+GameEntity.swift"; sourceTree = "<group>"; }; 313 0E230B327585E1E3A2921C92 /* GameStoreCompletionLockTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameStoreCompletionLockTests.swift; sourceTree = "<group>"; }; 314 0EB332831AB173ACF6BFEC59 /* SessionMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionMonitor.swift; sourceTree = "<group>"; }; 315 0F8AAA9540C80F787A1465C0 /* MailComposeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MailComposeView.swift; sourceTree = "<group>"; }; 316 0FD9A43789D0ED123F7A99B0 /* CheckResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckResult.swift; sourceTree = "<group>"; }; 317 10064D171DB7C48D3DE1E769 /* InviteCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteCoordinator.swift; sourceTree = "<group>"; }; 318 11BF168D5C1CD85DAE5CAF9E /* PlayerSelectionPublisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerSelectionPublisher.swift; sourceTree = "<group>"; }; 319 122BC1863D12DE06388D5DA7 /* GameStoreMergedAuthorCellsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameStoreMergedAuthorCellsTests.swift; sourceTree = "<group>"; }; 320 14B05C19BD4705876B3DF0EC /* GridStateMerger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridStateMerger.swift; sourceTree = "<group>"; }; 321 14F2AC5C3B50F4178859E9AC /* CrossmateApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrossmateApp.swift; sourceTree = "<group>"; }; 322 16AAC1E8D2CB3B5117159934 /* CloudQuery.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudQuery.swift; sourceTree = "<group>"; }; 323 16E1DA8C1B4E73AFB779CC06 /* DebuggingMonitors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebuggingMonitors.swift; sourceTree = "<group>"; }; 324 1747D4DCB4BCC831069BBE07 /* NYTLoginView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTLoginView.swift; sourceTree = "<group>"; }; 325 1813630FA05C194AFF43855C /* PlayerRosterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerRosterTests.swift; sourceTree = "<group>"; }; 326 18C701DAE36000DE19F7CC95 /* EngagementHost.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EngagementHost.swift; sourceTree = "<group>"; }; 327 1B7539E0AD285C5A3AC3DDA2 /* GameArchiver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameArchiver.swift; sourceTree = "<group>"; }; 328 1C08795365FABCC11A6C6E28 /* XDDecorationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XDDecorationTests.swift; sourceTree = "<group>"; }; 329 1D3ECD0DE71BE567BCEE15F6 /* AnnouncementCenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnnouncementCenter.swift; sourceTree = "<group>"; }; 330 20B331CC55827FEF3420ABCE /* PlayerSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerSession.swift; sourceTree = "<group>"; }; 331 23A7390848B1943C80142934 /* PuzzleGridStats.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleGridStats.swift; sourceTree = "<group>"; }; 332 23FCFFF1C2C7E909DFD8FC43 /* PlayerColorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerColorTests.swift; sourceTree = "<group>"; }; 333 2494B62495C8048ED64072E2 /* InvitationFailureCallout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvitationFailureCallout.swift; sourceTree = "<group>"; }; 334 24A4B5C8EC4A46906C07F819 /* GameEntity+ContentKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "GameEntity+ContentKey.swift"; sourceTree = "<group>"; }; 335 275DB12E9D81DD48B9025718 /* GameSyncVersion.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameSyncVersion.swift; sourceTree = "<group>"; }; 336 27ECEA51DE42D07495744EF8 /* JournalReplay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JournalReplay.swift; sourceTree = "<group>"; }; 337 283C5C97180C805B6C5BF622 /* PerGameZoneTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PerGameZoneTests.swift; sourceTree = "<group>"; }; 338 28AB8C4D560CA5D4E4C61750 /* InviteDeliveryStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InviteDeliveryStore.swift; sourceTree = "<group>"; }; 339 29686FFBC5BC8BCCF8CCC49A /* DriveMonitorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DriveMonitorTests.swift; sourceTree = "<group>"; }; 340 298A9C54A1CC753E860E174E /* FriendsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FriendsView.swift; sourceTree = "<group>"; }; 341 2A832061C19BA0F073617CA2 /* ImportedBrowseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportedBrowseView.swift; sourceTree = "<group>"; }; 342 2D2FD896D75863554E31654C /* NotificationState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationState.swift; sourceTree = "<group>"; }; 343 2D36E66AE489DC5C5FB85E19 /* DiagnosticsReport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiagnosticsReport.swift; sourceTree = "<group>"; }; 344 2D5B1E8E12B86DF6CA478F65 /* BadgeCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeCoordinator.swift; sourceTree = "<group>"; }; 345 2DD9C72266D1BAC43C8976C0 /* JournalUploadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JournalUploadTests.swift; sourceTree = "<group>"; }; 346 2E2702C74378FD2F14D1CE33 /* FriendControllerNicknameReplayTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FriendControllerNicknameReplayTests.swift; sourceTree = "<group>"; }; 347 3059A4C23D040E0D1F258B92 /* CellAccessibilityDescriberTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CellAccessibilityDescriberTests.swift; sourceTree = "<group>"; }; 348 3111803C8FFFB0C839217482 /* NicknameDirectory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NicknameDirectory.swift; sourceTree = "<group>"; }; 349 31C534911020BE4ED2E5065D /* GameStoreUnreadMovesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameStoreUnreadMovesTests.swift; sourceTree = "<group>"; }; 350 3292748EAE27B608C769D393 /* PlayerRoster.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerRoster.swift; sourceTree = "<group>"; }; 351 33878A29B09A6154C7A63C82 /* KeychainHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainHelper.swift; sourceTree = "<group>"; }; 352 33DE10D2A5AFBAC73469BD33 /* PushPayloadCipher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushPayloadCipher.swift; sourceTree = "<group>"; }; 353 3413F8755236FC0578AF8109 /* NYTBrowseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTBrowseView.swift; sourceTree = "<group>"; }; 354 362E3A93102B6C9AECD4133A /* PuzzleSessionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleSessionTests.swift; sourceTree = "<group>"; }; 355 382F9AAB0B98B4A78E255F15 /* DecorationRenderingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecorationRenderingTests.swift; sourceTree = "<group>"; }; 356 3FDE73AD7C543B29C8E493F8 /* KeyboardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardView.swift; sourceTree = "<group>"; }; 357 3FFD574AC2D0A910053E2A73 /* ReplayLoader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplayLoader.swift; sourceTree = "<group>"; }; 358 400B3C87248F3FCA3F76400B /* EngagementHostEnvironment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EngagementHostEnvironment.swift; sourceTree = "<group>"; }; 359 41A62DA6F7138876CA5A27EF /* SuccessPanel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuccessPanel.swift; sourceTree = "<group>"; }; 360 43DC132D49361C56DE79C13E /* GameMutator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameMutator.swift; sourceTree = "<group>"; }; 361 443BF6DF77C8226313EE9564 /* RecordSerializerMovesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordSerializerMovesTests.swift; sourceTree = "<group>"; }; 362 4494C40DD593DA7CE6641027 /* ImportServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportServiceTests.swift; sourceTree = "<group>"; }; 363 44F86F0F1883A93F9622FB67 /* CloudZones.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudZones.swift; sourceTree = "<group>"; }; 364 457B06DBFDC358D213A7CE54 /* AuthorIdentityTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthorIdentityTests.swift; sourceTree = "<group>"; }; 365 46148CF0F4D719692F81A6EC /* PlayerPreferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerPreferences.swift; sourceTree = "<group>"; }; 366 462CE0FD356F6137C9BFD30F /* ImportService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportService.swift; sourceTree = "<group>"; }; 367 465F2BB469EFE84CF3733398 /* Game.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Game.swift; sourceTree = "<group>"; }; 368 46801B570FC0B2C791ECDED3 /* PlayerSessionNavigationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerSessionNavigationTests.swift; sourceTree = "<group>"; }; 369 47532AED239AEF476D8E9206 /* NotificationStateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationStateTests.swift; sourceTree = "<group>"; }; 370 48EC33BC7DDAC3B7F29C3F02 /* AppDelegatePushBufferTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegatePushBufferTests.swift; sourceTree = "<group>"; }; 371 4A467BC00116EEC8500BE6A1 /* PersistenceRecoveryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersistenceRecoveryTests.swift; sourceTree = "<group>"; }; 372 4B166E87D13C41C4D3575169 /* AccountPushCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountPushCoordinatorTests.swift; sourceTree = "<group>"; }; 373 4B33C21324E1474BCC126AA0 /* MovesCodecLegacyDecodeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MovesCodecLegacyDecodeTests.swift; sourceTree = "<group>"; }; 374 4DB0580C9B7C778F34BE6AC2 /* EngagementLifecycle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EngagementLifecycle.swift; sourceTree = "<group>"; }; 375 4DC7784917397BCD6B8D679D /* PuzzleCatalog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleCatalog.swift; sourceTree = "<group>"; }; 376 4F4EBC0F07FF815274C028CA /* XDAcceptTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XDAcceptTests.swift; sourceTree = "<group>"; }; 377 507B4DC893CE8AC4778CBACE /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = "<group>"; }; 378 50EE8A159CC553623F6F7DE4 /* ReplayControls.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplayControls.swift; sourceTree = "<group>"; }; 379 51318FC5DAE02D35CB005729 /* NotificationService.appex */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "wrapper.app-extension"; path = NotificationService.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 380 51583D7304A586BF38F0D8E3 /* FriendInviteRecencyStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FriendInviteRecencyStoreTests.swift; sourceTree = "<group>"; }; 381 5267DDA1A330DCBD07303D44 /* RecordBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordBuilder.swift; sourceTree = "<group>"; }; 382 52B50A841D92D1F2B173E7DF /* ShareLinkShortener.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareLinkShortener.swift; sourceTree = "<group>"; }; 383 54A448620E71515AAA7BA3DD /* PersistenceControllerHealTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersistenceControllerHealTests.swift; sourceTree = "<group>"; }; 384 56BC76178319D0D669CD50FF /* CloudService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudService.swift; sourceTree = "<group>"; }; 385 570F8FE85CC46CE3CB5CFEC1 /* NYTOverlayLetterRecognizer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTOverlayLetterRecognizer.swift; sourceTree = "<group>"; }; 386 57B1734CF731C2E405A39159 /* PuzzleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleView.swift; sourceTree = "<group>"; }; 387 5990D989AD745211A18848E4 /* ShareLinkRouteTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareLinkRouteTests.swift; sourceTree = "<group>"; }; 388 5C74683332956B0D1CA37589 /* ShareController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareController.swift; sourceTree = "<group>"; }; 389 5C838C184A0C7B1B0A9821CE /* PlayerRecordPresenceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerRecordPresenceTests.swift; sourceTree = "<group>"; }; 390 5CBEE60E9D850739CA3D01AA /* MarketingScreenshots.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarketingScreenshots.swift; sourceTree = "<group>"; }; 391 5DE04D53EC3BC7D2DA0093C3 /* PlayerNamePublisherTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerNamePublisherTests.swift; sourceTree = "<group>"; }; 392 5E6BB07A54A3C3AF6F210F49 /* CloudJoinFailureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudJoinFailureTests.swift; sourceTree = "<group>"; }; 393 603E6FC55F1BD944592379D2 /* ReplayCacheTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplayCacheTests.swift; sourceTree = "<group>"; }; 394 605CA0FC7AF069CE3A3B38C1 /* RecentChanges.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentChanges.swift; sourceTree = "<group>"; }; 395 60E818B0F4689BAD57660B7C /* GameCursorStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameCursorStoreTests.swift; sourceTree = "<group>"; }; 396 630A65B1CCFEFEA825D3DD41 /* PushRequestAuthenticatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushRequestAuthenticatorTests.swift; sourceTree = "<group>"; }; 397 63AE7146492AD286EF13C3E7 /* PushClientTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushClientTests.swift; sourceTree = "<group>"; }; 398 64C8064F04FC6177D987ACA2 /* Puzzle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Puzzle.swift; sourceTree = "<group>"; }; 399 663934F0B7CA8BDD462DFAA4 /* GameShareItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameShareItem.swift; sourceTree = "<group>"; }; 400 67CFF96D54D2DE9C44EB120A /* EngagementCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EngagementCoordinatorTests.swift; sourceTree = "<group>"; }; 401 68072F4F3EB5D5A78E03D408 /* ShareRoutingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareRoutingTests.swift; sourceTree = "<group>"; }; 402 6940546CFA1E87EF814AA6BB /* HardwareKeyboardInputView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HardwareKeyboardInputView.swift; sourceTree = "<group>"; }; 403 6B1F07B5DDE2A8B49B28392A /* GridThumbnailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridThumbnailView.swift; sourceTree = "<group>"; }; 404 6BDD06460A76D4AF31077732 /* InputMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InputMonitor.swift; sourceTree = "<group>"; }; 405 6C793B5B9684D49328E42129 /* PushPayloadCipherTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushPayloadCipherTests.swift; sourceTree = "<group>"; }; 406 6C7F3A9BD7FAF81CB77032A6 /* GridStateMergerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridStateMergerTests.swift; sourceTree = "<group>"; }; 407 6F0B4F65D017C1FBAC3B23DF /* PlayerSelection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerSelection.swift; sourceTree = "<group>"; }; 408 6F34401948BC53DA9C93D64B /* GameCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameCardView.swift; sourceTree = "<group>"; }; 409 7023E506D777DB80B18A7DB5 /* BundledBrowseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundledBrowseView.swift; sourceTree = "<group>"; }; 410 70AD1A006E6D03E4429E3BF0 /* DriveMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DriveMonitor.swift; sourceTree = "<group>"; }; 411 710BCB6A647A820B106CE666 /* PuzzleSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleSession.swift; sourceTree = "<group>"; }; 412 71312F9248AA21238F7D5D6D /* RevealConfirmationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevealConfirmationTests.swift; sourceTree = "<group>"; }; 413 71DFD035381B6252DCD873C9 /* PlayerNamePublisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerNamePublisher.swift; sourceTree = "<group>"; }; 414 73DDDED719CFFDD6035C3B48 /* SyncEngine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncEngine.swift; sourceTree = "<group>"; }; 415 74C8886A66F0877858A67D62 /* AboutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutView.swift; sourceTree = "<group>"; }; 416 7845E863A179DBB0B932C234 /* NYTOverlaySlicerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTOverlaySlicerTests.swift; sourceTree = "<group>"; }; 417 78919F44C3035C48410FC894 /* GamePushCredentials.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GamePushCredentials.swift; sourceTree = "<group>"; }; 418 78C92190C4A344EC319A0F88 /* MovesJournalTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MovesJournalTests.swift; sourceTree = "<group>"; }; 419 7A4AFF292381C9B33C0F2CD6 /* FriendZone.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FriendZone.swift; sourceTree = "<group>"; }; 420 7A7BD8DFDB41BFBA694A0933 /* SessionCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionCoordinator.swift; sourceTree = "<group>"; }; 421 7B3E1A382B24A7803701D947 /* Crossmate.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Crossmate.entitlements; sourceTree = "<group>"; }; 422 7B5A8118AC2FE60D877F1D29 /* GamePushCredentialsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GamePushCredentialsTests.swift; sourceTree = "<group>"; }; 423 7B8B65482CA1739A3863A99E /* ClueList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClueList.swift; sourceTree = "<group>"; }; 424 7C6AB016CA4E2FC69A0E6A4F /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; }; 425 7DD270E16E00145EF2807EA9 /* MovesUpdater.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MovesUpdater.swift; sourceTree = "<group>"; }; 426 7E4DEAF9F7887CBB46A99E8E /* RecordSerializerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordSerializerTests.swift; sourceTree = "<group>"; }; 427 800CCFBE90554F287E765755 /* FriendZoneTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FriendZoneTests.swift; sourceTree = "<group>"; }; 428 80B377D237AC14B9856579E1 /* RecentChangesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecentChangesTests.swift; sourceTree = "<group>"; }; 429 833AAFBA0094BAB27E13FE29 /* FriendEncryptionKeyDirectory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FriendEncryptionKeyDirectory.swift; sourceTree = "<group>"; }; 430 836B8D4B351C9225162A82C0 /* Layouts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layouts.swift; sourceTree = "<group>"; }; 431 847415468DBB1C566D18BC17 /* ReplayControlsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReplayControlsTests.swift; sourceTree = "<group>"; }; 432 86470163BFF956F3DE438506 /* Moves.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Moves.swift; sourceTree = "<group>"; }; 433 88E8AACB638FE5724B534B41 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; 434 89528AF69DE06C61FA8E91A1 /* PuzzleCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleCommands.swift; sourceTree = "<group>"; }; 435 89B1FFD2F90141EA949A8540 /* JournalReplayTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JournalReplayTests.swift; sourceTree = "<group>"; }; 436 8A9F9E7ED4E1AF02F0C71051 /* PushClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushClient.swift; sourceTree = "<group>"; }; 437 8C040D5EBC73B1ED47C2C9D4 /* SessionPushPlannerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionPushPlannerTests.swift; sourceTree = "<group>"; }; 438 8D2AD5021F1AF0DB44FA4540 /* GameCursorStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameCursorStore.swift; sourceTree = "<group>"; }; 439 8D4A76B233E16B7C5A248EB7 /* TipStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TipStore.swift; sourceTree = "<group>"; }; 440 8FDE03B4A77A8095ED2C23AB /* EngagementCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EngagementCoordinator.swift; sourceTree = "<group>"; }; 441 9062DC673A2F5AC87FC417AB /* GridPosition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridPosition.swift; sourceTree = "<group>"; }; 442 92168360625ECDD36FF50EE8 /* NicknameDirectoryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NicknameDirectoryTests.swift; sourceTree = "<group>"; }; 443 927186458ED03FD0C5660765 /* CrossmateModel.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = CrossmateModel.xcdatamodel; sourceTree = "<group>"; }; 444 93EE5BA78566EDED68D846AB /* GameStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameStore.swift; sourceTree = "<group>"; }; 445 9406C27662147CD3C0783644 /* GameViewedStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameViewedStoreTests.swift; sourceTree = "<group>"; }; 446 9447F0FE34C63810C6F1D8BE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; 447 94CEBA27A8AC4FCC92ADE1B4 /* EnsureGameEntityTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnsureGameEntityTests.swift; sourceTree = "<group>"; }; 448 960353A6F38DD290112A2FE1 /* RemoteCoordinateValidationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemoteCoordinateValidationTests.swift; sourceTree = "<group>"; }; 449 978A96CC6F550ED7A73F8D96 /* AnnouncementCenterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnnouncementCenterTests.swift; sourceTree = "<group>"; }; 450 98E68FD021EF8ED50BC706EE /* CloudContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloudContainer.swift; sourceTree = "<group>"; }; 451 9998739ED0875A17271B7899 /* AppServicesAnnouncementTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppServicesAnnouncementTests.swift; sourceTree = "<group>"; }; 452 99F4D2E1504784E738D2B33A /* AppDefaultsMigratorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDefaultsMigratorTests.swift; sourceTree = "<group>"; }; 453 9A49C3C31F49A85764B84A15 /* SyncState+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "SyncState+Helpers.swift"; sourceTree = "<group>"; }; 454 9A56778AF8190F0D7EB2E27E /* GameStorePushAddressTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameStorePushAddressTests.swift; sourceTree = "<group>"; }; 455 9AF6157D97271205626E207C /* MovesUpdaterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MovesUpdaterTests.swift; sourceTree = "<group>"; }; 456 9B3E0C62CBF5ADF7C01C1D54 /* EngagementMessageAuthenticator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EngagementMessageAuthenticator.swift; sourceTree = "<group>"; }; 457 9F13534332699C80382FE682 /* CellPatterns.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CellPatterns.swift; sourceTree = "<group>"; }; 458 9F6DB4116933BB66274AC6E8 /* XDLimitsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XDLimitsTests.swift; sourceTree = "<group>"; }; 459 9F8D856707B4D76FDBF4AE69 /* FriendEntity+DisplayName.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FriendEntity+DisplayName.swift"; sourceTree = "<group>"; }; 460 A0CCED43B365363662C45A30 /* NYTPuzzleFetcherTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTPuzzleFetcherTests.swift; sourceTree = "<group>"; }; 461 A24FD313982C8094CD020106 /* EngagementMessageAuthenticatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EngagementMessageAuthenticatorTests.swift; sourceTree = "<group>"; }; 462 A253416F4FEA271A80B22A73 /* NYTAuthService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTAuthService.swift; sourceTree = "<group>"; }; 463 A3A251D89028B3CA065DE053 /* PuzzleScoreboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleScoreboard.swift; sourceTree = "<group>"; }; 464 A55219DFC3EEC971E3A8BA6D /* NYTOverlaySlicer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTOverlaySlicer.swift; sourceTree = "<group>"; }; 465 A61768D423564A9080414A38 /* NoticeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoticeView.swift; sourceTree = "<group>"; }; 466 A8C18E9B47668E008BE4CF86 /* Archive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Archive.swift; sourceTree = "<group>"; }; 467 A8CA0FC750259EB1D762B0EE /* OpenPuzzleBannerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenPuzzleBannerTests.swift; sourceTree = "<group>"; }; 468 A9A01534A21796A4EC7113A9 /* ZoneOrphaningTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZoneOrphaningTests.swift; sourceTree = "<group>"; }; 469 A9DC6394CB0F5B85C083FAC7 /* TipsArchive.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TipsArchive.swift; sourceTree = "<group>"; }; 470 ACC295195602B3DDF7BB3895 /* PersistenceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersistenceController.swift; sourceTree = "<group>"; }; 471 ADBA3FB1334DB816E62B7D9B /* PuzzleHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleHeader.swift; sourceTree = "<group>"; }; 472 AF3B7E191D571FD800A4D719 /* LastUpdatedView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LastUpdatedView.swift; sourceTree = "<group>"; }; 473 AFA63B0051B4E6F4FC4B132A /* ExternalBrowseView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExternalBrowseView.swift; sourceTree = "<group>"; }; 474 AFFB5B2EFBB62B7021AC2FC2 /* TimeLog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeLog.swift; sourceTree = "<group>"; }; 475 B024B2FFB11E51E9724BBE23 /* CompactSlider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompactSlider.swift; sourceTree = "<group>"; }; 476 B0938B0ACB40772EE522D77C /* NYTPuzzleFetcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTPuzzleFetcher.swift; sourceTree = "<group>"; }; 477 B09D52DB46731E92C3E9297C /* EngagementStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EngagementStore.swift; sourceTree = "<group>"; }; 478 B135C285570F91181595B405 /* CellMark.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CellMark.swift; sourceTree = "<group>"; }; 479 B1F1471BE4D6D84361DD692B /* AuthorIdentity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthorIdentity.swift; sourceTree = "<group>"; }; 480 B34489D0864DF76AF436E391 /* NYTPuzzleUpgraderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTPuzzleUpgraderTests.swift; sourceTree = "<group>"; }; 481 B369788E0FEA0DCE1B125816 /* PUZToXDConverter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PUZToXDConverter.swift; sourceTree = "<group>"; }; 482 B3D873ABDF871E14794A2845 /* NotificationService.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = NotificationService.entitlements; sourceTree = "<group>"; }; 483 B427285F8D6BE35025591BFA /* PeerChangeLedger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerChangeLedger.swift; sourceTree = "<group>"; }; 484 B689A7138429641E61E9E558 /* Crossmate.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = Crossmate.app; sourceTree = BUILT_PRODUCTS_DIR; }; 485 B7557050B17F113BB488AA23 /* DecorationImages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecorationImages.swift; sourceTree = "<group>"; }; 486 B766E872B12DC79ECCD80941 /* FriendModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FriendModelTests.swift; sourceTree = "<group>"; }; 487 B8560440C548752EE93E0ED9 /* PuzzleCatalogTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleCatalogTests.swift; sourceTree = "<group>"; }; 488 B9031A1574C21866940F6A2C /* XD.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XD.swift; sourceTree = "<group>"; }; 489 B9AE0F26E602A9246F5C6ABF /* GameViewedStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameViewedStore.swift; sourceTree = "<group>"; }; 490 B9EA9CF96312BFF5340CE2A7 /* ArchiveTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArchiveTests.swift; sourceTree = "<group>"; }; 491 BA67C509B467132D1B7510A4 /* Puzzles */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Puzzles; sourceTree = SOURCE_ROOT; }; 492 BAEDA3C3765CD8D8897FE5D5 /* PendingChangeReapTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PendingChangeReapTests.swift; sourceTree = "<group>"; }; 493 BCACEED6A9235EC6221F4F66 /* DiagnosticsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DiagnosticsView.swift; sourceTree = "<group>"; }; 494 BD32BDDE9B007B11BE86B7A0 /* PushCredentialRotationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushCredentialRotationTests.swift; sourceTree = "<group>"; }; 495 BD63A9B20168F3B81AF4348F /* RecordApplier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordApplier.swift; sourceTree = "<group>"; }; 496 BF6F111BE8750697C4BC7A17 /* NYTToXDConverter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTToXDConverter.swift; sourceTree = "<group>"; }; 497 BF7062403AC9CFB4FF04BBF3 /* GridSilhouetteTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridSilhouetteTests.swift; sourceTree = "<group>"; }; 498 BFC1C59A30FB2571598273E4 /* GameMutatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameMutatorTests.swift; sourceTree = "<group>"; }; 499 C06E2CC3A77CB306BD2DF867 /* LogScrubberTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogScrubberTests.swift; sourceTree = "<group>"; }; 500 C2C9D3E7FCE2D42C5B7E3856 /* PushPayload.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushPayload.swift; sourceTree = "<group>"; }; 501 C3A2D346F414F374A45F92AD /* XDDecorationWriter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XDDecorationWriter.swift; sourceTree = "<group>"; }; 502 C54223FED97577A593B7964E /* NYTToXDConverterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTToXDConverterTests.swift; sourceTree = "<group>"; }; 503 C7F35A7BFE52279BC24677F5 /* TimeLogTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeLogTests.swift; sourceTree = "<group>"; }; 504 C8D6991C1EBAB2C64D9DF669 /* TipStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TipStoreTests.swift; sourceTree = "<group>"; }; 505 C90E94A01FEA77A5C9A2BC94 /* PuzzleNotificationTextTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleNotificationTextTests.swift; sourceTree = "<group>"; }; 506 CA49DA9E0ADEB11A920787FA /* SessionPushPlanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionPushPlanner.swift; sourceTree = "<group>"; }; 507 CA74C894ECCA1A176DD5B2F8 /* AppDefaultsMigrator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDefaultsMigrator.swift; sourceTree = "<group>"; }; 508 CBDC81CA6A9C80EB31E7F493 /* AppServices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppServices.swift; sourceTree = "<group>"; }; 509 CD68E9CA9D3057FE07E985E1 /* AnnouncementBanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnnouncementBanner.swift; sourceTree = "<group>"; }; 510 CE54EF557E8D808BAA20EA54 /* NYTPuzzleUpgrader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTPuzzleUpgrader.swift; sourceTree = "<group>"; }; 511 CE7CEB8980A9664BAAA5D196 /* PuzzleNotificationText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleNotificationText.swift; sourceTree = "<group>"; }; 512 CF20BDF7FF6423BA4FD911D5 /* CalendarDayCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalendarDayCell.swift; sourceTree = "<group>"; }; 513 CF3D29B227D2B0E699423C48 /* Journal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Journal.swift; sourceTree = "<group>"; }; 514 CFC4FF046BF772646B5CA73F /* Presence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Presence.swift; sourceTree = "<group>"; }; 515 D16AC7215D0269195FEA8BA8 /* GridSilhouette.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridSilhouette.swift; sourceTree = "<group>"; }; 516 D243575E32A8663B1AAF492A /* PeerChangeLedgerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerChangeLedgerTests.swift; sourceTree = "<group>"; }; 517 D491B7232333AA8957732387 /* PendingEditFlagTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PendingEditFlagTests.swift; sourceTree = "<group>"; }; 518 D4D705650CD98E8BB20AC4AD /* FriendInviteRecencyStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FriendInviteRecencyStore.swift; sourceTree = "<group>"; }; 519 D97CBA409832A24D64DF0F5C /* Crossmate Unit Tests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = "Crossmate Unit Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 520 D9EE11280592CA66C2BEC71A /* PuzzleFileReaderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleFileReaderTests.swift; sourceTree = "<group>"; }; 521 DAD36DEDB3D997AB47146EA9 /* AppActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppActions.swift; sourceTree = "<group>"; }; 522 DB55FC337CF72C650373210A /* PlayerColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerColor.swift; sourceTree = "<group>"; }; 523 DB851649DE78AAAC5A928C52 /* Square.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Square.swift; sourceTree = "<group>"; }; 524 DBD2570A5A3573D66B3C4A52 /* GameRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameRowView.swift; sourceTree = "<group>"; }; 525 DD8B50452D3AFE25D98B497A /* NYTOverlayLetterRecognizerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTOverlayLetterRecognizerTests.swift; sourceTree = "<group>"; }; 526 DD8E8D1BC7DF9EBB08F8CABD /* GameStoreRevocationLockTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameStoreRevocationLockTests.swift; sourceTree = "<group>"; }; 527 E18FF14E0D73B0D2DB427F08 /* JoiningPuzzleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JoiningPuzzleView.swift; sourceTree = "<group>"; }; 528 E25A040EA4DC9672C895A7AC /* InviteEntity+DisplayName.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "InviteEntity+DisplayName.swift"; sourceTree = "<group>"; }; 529 E2ED0D601BB574618C15B5EF /* ShareLinkRoute.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareLinkRoute.swift; sourceTree = "<group>"; }; 530 E5EEBF169823C172000FC45B /* GameSummaryThumbnailTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameSummaryThumbnailTests.swift; sourceTree = "<group>"; }; 531 E655698481325C92EF5C348B /* FriendController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FriendController.swift; sourceTree = "<group>"; }; 532 E78C275F8A90E3E3EEF190CC /* FriendPickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FriendPickerView.swift; sourceTree = "<group>"; }; 533 E7AFD37B03A1C2E23E5766E6 /* PuzzleSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleSource.swift; sourceTree = "<group>"; }; 534 E7F1EDE21BB7D6456D6E9000 /* PlayerPreferencesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerPreferencesTests.swift; sourceTree = "<group>"; }; 535 E87E28DC9402A4369647DE50 /* PushPayloadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushPayloadTests.swift; sourceTree = "<group>"; }; 536 E935CE4384F3B67CC22EEBAC /* ClueBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClueBar.swift; sourceTree = "<group>"; }; 537 EAC61E2582D94B1E6EC67136 /* XDFileType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XDFileType.swift; sourceTree = "<group>"; }; 538 EAF18C52558DBD58ECAD4964 /* XDMarkup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XDMarkup.swift; sourceTree = "<group>"; }; 539 EAFA466405AABA1C06272795 /* ContentKeyDirectory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentKeyDirectory.swift; sourceTree = "<group>"; }; 540 ED2D830B9EFAD753C233BEB4 /* GameListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GameListView.swift; sourceTree = "<group>"; }; 541 ED48AD9C3A7A113D101BBD21 /* GridView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridView.swift; sourceTree = "<group>"; }; 542 ED8154F949E1D94252F70765 /* NYTAuthServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NYTAuthServiceTests.swift; sourceTree = "<group>"; }; 543 EE1A1BF1EBD7D9E4584EF5FE /* PuzzleFileReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleFileReader.swift; sourceTree = "<group>"; }; 544 EF1254FE7BE3672AEC1607B1 /* MovesInboundTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MovesInboundTests.swift; sourceTree = "<group>"; }; 545 F5DF04E70017065DFA95B396 /* PuzzleModifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PuzzleModifiers.swift; sourceTree = "<group>"; }; 546 F64DAE64C9AA042B330C526F /* SessionMonitorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionMonitorTests.swift; sourceTree = "<group>"; }; 547 F97B399E89BBB37730F2F1E9 /* TestHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestHelpers.swift; sourceTree = "<group>"; }; 548 F9B757D86362CD6F0500E9CB /* CustomButtons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomButtons.swift; sourceTree = "<group>"; }; 549 F9FE0A9624DB87758F3D1768 /* XDMarkupTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XDMarkupTests.swift; sourceTree = "<group>"; }; 550 FAF6E3F3558E128E7A482A61 /* PushRequestAuthenticator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PushRequestAuthenticator.swift; sourceTree = "<group>"; }; 551 FDE193CAB325C991952D7CE5 /* PUZToXDConverterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PUZToXDConverterTests.swift; sourceTree = "<group>"; }; 552 FED7C2528355BC007E48B7EF /* ParticipantSummaries.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ParticipantSummaries.swift; sourceTree = "<group>"; }; 553 FEDD63AD5E33E2B0399780EF /* NotificationNavigationBrokerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationNavigationBrokerTests.swift; sourceTree = "<group>"; }; 554 FF159746D076E051C2CB590C /* PlayerSelectionPublisherTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerSelectionPublisherTests.swift; sourceTree = "<group>"; }; 555 FF4CA70D10760D6770907606 /* GridAccessibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridAccessibility.swift; sourceTree = "<group>"; }; 556 /* End PBXFileReference section */ 557 558 /* Begin PBXGroup section */ 559 01B07D8724DEA04C3E74558E /* Support */ = { 560 isa = PBXGroup; 561 children = ( 562 F97B399E89BBB37730F2F1E9 /* TestHelpers.swift */, 563 ); 564 name = Support; 565 path = Tests/Support; 566 sourceTree = "<group>"; 567 }; 568 074C2962E79CAE6C0EA6431A /* Sync */ = { 569 isa = PBXGroup; 570 children = ( 571 A8C18E9B47668E008BE4CF86 /* Archive.swift */, 572 B1F1471BE4D6D84361DD692B /* AuthorIdentity.swift */, 573 07E5E4B165E374FEE732068B /* CloudDiagnostics.swift */, 574 16AAC1E8D2CB3B5117159934 /* CloudQuery.swift */, 575 44F86F0F1883A93F9622FB67 /* CloudZones.swift */, 576 2D36E66AE489DC5C5FB85E19 /* DiagnosticsReport.swift */, 577 8FDE03B4A77A8095ED2C23AB /* EngagementCoordinator.swift */, 578 9B3E0C62CBF5ADF7C01C1D54 /* EngagementMessageAuthenticator.swift */, 579 E655698481325C92EF5C348B /* FriendController.swift */, 580 7A4AFF292381C9B33C0F2CD6 /* FriendZone.swift */, 581 1B7539E0AD285C5A3AC3DDA2 /* GameArchiver.swift */, 582 78919F44C3035C48410FC894 /* GamePushCredentials.swift */, 583 275DB12E9D81DD48B9025718 /* GameSyncVersion.swift */, 584 14B05C19BD4705876B3DF0EC /* GridStateMerger.swift */, 585 86470163BFF956F3DE438506 /* Moves.swift */, 586 7DD270E16E00145EF2807EA9 /* MovesUpdater.swift */, 587 B427285F8D6BE35025591BFA /* PeerChangeLedger.swift */, 588 11BF168D5C1CD85DAE5CAF9E /* PlayerSelectionPublisher.swift */, 589 CFC4FF046BF772646B5CA73F /* Presence.swift */, 590 605CA0FC7AF069CE3A3B38C1 /* RecentChanges.swift */, 591 BD63A9B20168F3B81AF4348F /* RecordApplier.swift */, 592 5267DDA1A330DCBD07303D44 /* RecordBuilder.swift */, 593 0C0A7348E1283E7CD2486E2A /* RecordSerializer.swift */, 594 0EB332831AB173ACF6BFEC59 /* SessionMonitor.swift */, 595 5C74683332956B0D1CA37589 /* ShareController.swift */, 596 73DDDED719CFFDD6035C3B48 /* SyncEngine.swift */, 597 9A49C3C31F49A85764B84A15 /* SyncState+Helpers.swift */, 598 ); 599 path = Sync; 600 sourceTree = "<group>"; 601 }; 602 08204641416EEBE67C3EF5F6 /* GameList */ = { 603 isa = PBXGroup; 604 children = ( 605 6F34401948BC53DA9C93D64B /* GameCardView.swift */, 606 ED2D830B9EFAD753C233BEB4 /* GameListView.swift */, 607 DBD2570A5A3573D66B3C4A52 /* GameRowView.swift */, 608 663934F0B7CA8BDD462DFAA4 /* GameShareItem.swift */, 609 AF3B7E191D571FD800A4D719 /* LastUpdatedView.swift */, 610 ); 611 path = GameList; 612 sourceTree = "<group>"; 613 }; 614 12BCF7948BC2C200C647C279 /* Products */ = { 615 isa = PBXGroup; 616 children = ( 617 D97CBA409832A24D64DF0F5C /* Crossmate Unit Tests.xctest */, 618 B689A7138429641E61E9E558 /* Crossmate.app */, 619 51318FC5DAE02D35CB005729 /* NotificationService.appex */, 620 ); 621 name = Products; 622 sourceTree = "<group>"; 623 }; 624 1FB709FE7325CD51300A22F0 /* Settings */ = { 625 isa = PBXGroup; 626 children = ( 627 74C8886A66F0877858A67D62 /* AboutView.swift */, 628 BCACEED6A9235EC6221F4F66 /* DiagnosticsView.swift */, 629 7C6AB016CA4E2FC69A0E6A4F /* SettingsView.swift */, 630 A9DC6394CB0F5B85C083FAC7 /* TipsArchive.swift */, 631 ); 632 path = Settings; 633 sourceTree = "<group>"; 634 }; 635 212DB6FCF46C41F81C41D232 /* Unit */ = { 636 isa = PBXGroup; 637 children = ( 638 4B166E87D13C41C4D3575169 /* AccountPushCoordinatorTests.swift */, 639 978A96CC6F550ED7A73F8D96 /* AnnouncementCenterTests.swift */, 640 99F4D2E1504784E738D2B33A /* AppDefaultsMigratorTests.swift */, 641 48EC33BC7DDAC3B7F29C3F02 /* AppDelegatePushBufferTests.swift */, 642 B9EA9CF96312BFF5340CE2A7 /* ArchiveTests.swift */, 643 3059A4C23D040E0D1F258B92 /* CellAccessibilityDescriberTests.swift */, 644 5E6BB07A54A3C3AF6F210F49 /* CloudJoinFailureTests.swift */, 645 382F9AAB0B98B4A78E255F15 /* DecorationRenderingTests.swift */, 646 29686FFBC5BC8BCCF8CCC49A /* DriveMonitorTests.swift */, 647 51583D7304A586BF38F0D8E3 /* FriendInviteRecencyStoreTests.swift */, 648 60E818B0F4689BAD57660B7C /* GameCursorStoreTests.swift */, 649 BFC1C59A30FB2571598273E4 /* GameMutatorTests.swift */, 650 0E230B327585E1E3A2921C92 /* GameStoreCompletionLockTests.swift */, 651 09EA25E2AE98ACD029EC0129 /* GameStoreContributingDevicesTests.swift */, 652 122BC1863D12DE06388D5DA7 /* GameStoreMergedAuthorCellsTests.swift */, 653 9A56778AF8190F0D7EB2E27E /* GameStorePushAddressTests.swift */, 654 DD8E8D1BC7DF9EBB08F8CABD /* GameStoreRevocationLockTests.swift */, 655 31C534911020BE4ED2E5065D /* GameStoreUnreadMovesTests.swift */, 656 E5EEBF169823C172000FC45B /* GameSummaryThumbnailTests.swift */, 657 9406C27662147CD3C0783644 /* GameViewedStoreTests.swift */, 658 BF7062403AC9CFB4FF04BBF3 /* GridSilhouetteTests.swift */, 659 6C7F3A9BD7FAF81CB77032A6 /* GridStateMergerTests.swift */, 660 4494C40DD593DA7CE6641027 /* ImportServiceTests.swift */, 661 89B1FFD2F90141EA949A8540 /* JournalReplayTests.swift */, 662 2DD9C72266D1BAC43C8976C0 /* JournalUploadTests.swift */, 663 C06E2CC3A77CB306BD2DF867 /* LogScrubberTests.swift */, 664 78C92190C4A344EC319A0F88 /* MovesJournalTests.swift */, 665 9AF6157D97271205626E207C /* MovesUpdaterTests.swift */, 666 92168360625ECDD36FF50EE8 /* NicknameDirectoryTests.swift */, 667 FEDD63AD5E33E2B0399780EF /* NotificationNavigationBrokerTests.swift */, 668 47532AED239AEF476D8E9206 /* NotificationStateTests.swift */, 669 ED8154F949E1D94252F70765 /* NYTAuthServiceTests.swift */, 670 DD8B50452D3AFE25D98B497A /* NYTOverlayLetterRecognizerTests.swift */, 671 7845E863A179DBB0B932C234 /* NYTOverlaySlicerTests.swift */, 672 A0CCED43B365363662C45A30 /* NYTPuzzleFetcherTests.swift */, 673 B34489D0864DF76AF436E391 /* NYTPuzzleUpgraderTests.swift */, 674 C54223FED97577A593B7964E /* NYTToXDConverterTests.swift */, 675 A8CA0FC750259EB1D762B0EE /* OpenPuzzleBannerTests.swift */, 676 D243575E32A8663B1AAF492A /* PeerChangeLedgerTests.swift */, 677 D491B7232333AA8957732387 /* PendingEditFlagTests.swift */, 678 4A467BC00116EEC8500BE6A1 /* PersistenceRecoveryTests.swift */, 679 23FCFFF1C2C7E909DFD8FC43 /* PlayerColorTests.swift */, 680 5DE04D53EC3BC7D2DA0093C3 /* PlayerNamePublisherTests.swift */, 681 E7F1EDE21BB7D6456D6E9000 /* PlayerPreferencesTests.swift */, 682 1813630FA05C194AFF43855C /* PlayerRosterTests.swift */, 683 FF159746D076E051C2CB590C /* PlayerSelectionPublisherTests.swift */, 684 46801B570FC0B2C791ECDED3 /* PlayerSessionNavigationTests.swift */, 685 63AE7146492AD286EF13C3E7 /* PushClientTests.swift */, 686 6C793B5B9684D49328E42129 /* PushPayloadCipherTests.swift */, 687 E87E28DC9402A4369647DE50 /* PushPayloadTests.swift */, 688 630A65B1CCFEFEA825D3DD41 /* PushRequestAuthenticatorTests.swift */, 689 FDE193CAB325C991952D7CE5 /* PUZToXDConverterTests.swift */, 690 B8560440C548752EE93E0ED9 /* PuzzleCatalogTests.swift */, 691 D9EE11280592CA66C2BEC71A /* PuzzleFileReaderTests.swift */, 692 C90E94A01FEA77A5C9A2BC94 /* PuzzleNotificationTextTests.swift */, 693 362E3A93102B6C9AECD4133A /* PuzzleSessionTests.swift */, 694 80B377D237AC14B9856579E1 /* RecentChangesTests.swift */, 695 443BF6DF77C8226313EE9564 /* RecordSerializerMovesTests.swift */, 696 7E4DEAF9F7887CBB46A99E8E /* RecordSerializerTests.swift */, 697 603E6FC55F1BD944592379D2 /* ReplayCacheTests.swift */, 698 847415468DBB1C566D18BC17 /* ReplayControlsTests.swift */, 699 71312F9248AA21238F7D5D6D /* RevealConfirmationTests.swift */, 700 8C040D5EBC73B1ED47C2C9D4 /* SessionPushPlannerTests.swift */, 701 5990D989AD745211A18848E4 /* ShareLinkRouteTests.swift */, 702 057F2B8B8A894D08BB801219 /* ShareLinkShortenerTests.swift */, 703 0C190EA5717C291B3F2AE46C /* SyncMonitorTests.swift */, 704 C7F35A7BFE52279BC24677F5 /* TimeLogTests.swift */, 705 C8D6991C1EBAB2C64D9DF669 /* TipStoreTests.swift */, 706 4F4EBC0F07FF815274C028CA /* XDAcceptTests.swift */, 707 1C08795365FABCC11A6C6E28 /* XDDecorationTests.swift */, 708 9F6DB4116933BB66274AC6E8 /* XDLimitsTests.swift */, 709 F9FE0A9624DB87758F3D1768 /* XDMarkupTests.swift */, 710 ABB371EF2574E95782CB05FD /* Sync */, 711 ); 712 name = Unit; 713 path = Tests/Unit; 714 sourceTree = "<group>"; 715 }; 716 41DB2417FF67A47FE6890256 /* Models */ = { 717 isa = PBXGroup; 718 children = ( 719 B135C285570F91181595B405 /* CellMark.swift */, 720 0FD9A43789D0ED123F7A99B0 /* CheckResult.swift */, 721 B09D52DB46731E92C3E9297C /* EngagementStore.swift */, 722 9F8D856707B4D76FDBF4AE69 /* FriendEntity+DisplayName.swift */, 723 D4D705650CD98E8BB20AC4AD /* FriendInviteRecencyStore.swift */, 724 465F2BB469EFE84CF3733398 /* Game.swift */, 725 8D2AD5021F1AF0DB44FA4540 /* GameCursorStore.swift */, 726 24A4B5C8EC4A46906C07F819 /* GameEntity+ContentKey.swift */, 727 B9AE0F26E602A9246F5C6ABF /* GameViewedStore.swift */, 728 9062DC673A2F5AC87FC417AB /* GridPosition.swift */, 729 E25A040EA4DC9672C895A7AC /* InviteEntity+DisplayName.swift */, 730 FED7C2528355BC007E48B7EF /* ParticipantSummaries.swift */, 731 DB55FC337CF72C650373210A /* PlayerColor.swift */, 732 46148CF0F4D719692F81A6EC /* PlayerPreferences.swift */, 733 3292748EAE27B608C769D393 /* PlayerRoster.swift */, 734 6F0B4F65D017C1FBAC3B23DF /* PlayerSelection.swift */, 735 20B331CC55827FEF3420ABCE /* PlayerSession.swift */, 736 64C8064F04FC6177D987ACA2 /* Puzzle.swift */, 737 4DC7784917397BCD6B8D679D /* PuzzleCatalog.swift */, 738 0DF9C2FEF0D3584864DFC967 /* PuzzleNotificationText+GameEntity.swift */, 739 E7AFD37B03A1C2E23E5766E6 /* PuzzleSource.swift */, 740 50EE8A159CC553623F6F7DE4 /* ReplayControls.swift */, 741 DB851649DE78AAAC5A928C52 /* Square.swift */, 742 AFFB5B2EFBB62B7021AC2FC2 /* TimeLog.swift */, 743 8D4A76B233E16B7C5A248EB7 /* TipStore.swift */, 744 B9031A1574C21866940F6A2C /* XD.swift */, 745 C3A2D346F414F374A45F92AD /* XDDecorationWriter.swift */, 746 EAC61E2582D94B1E6EC67136 /* XDFileType.swift */, 747 EAF18C52558DBD58ECAD4964 /* XDMarkup.swift */, 748 F93AC31640C40FCC039570A3 /* CrossmateModel.xcdatamodeld */, 749 ); 750 path = Models; 751 sourceTree = "<group>"; 752 }; 753 486B6F0E3B86BC2765CCEC33 /* Friends */ = { 754 isa = PBXGroup; 755 children = ( 756 E78C275F8A90E3E3EEF190CC /* FriendPickerView.swift */, 757 298A9C54A1CC753E860E174E /* FriendsView.swift */, 758 2494B62495C8048ED64072E2 /* InvitationFailureCallout.swift */, 759 ); 760 path = Friends; 761 sourceTree = "<group>"; 762 }; 763 565DBAFC8DB2589B3F0AF90E /* Persistence */ = { 764 isa = PBXGroup; 765 children = ( 766 43DC132D49361C56DE79C13E /* GameMutator.swift */, 767 93EE5BA78566EDED68D846AB /* GameStore.swift */, 768 CF3D29B227D2B0E699423C48 /* Journal.swift */, 769 27ECEA51DE42D07495744EF8 /* JournalReplay.swift */, 770 ACC295195602B3DDF7BB3895 /* PersistenceController.swift */, 771 ); 772 path = Persistence; 773 sourceTree = "<group>"; 774 }; 775 5770CE69DB2B0B7462FACE53 /* Crossmate */ = { 776 isa = PBXGroup; 777 children = ( 778 7B3E1A382B24A7803701D947 /* Crossmate.entitlements */, 779 14F2AC5C3B50F4178859E9AC /* CrossmateApp.swift */, 780 9447F0FE34C63810C6F1D8BE /* Info.plist */, 781 0BF60C84D92A9024AC1A53FC /* Media.xcassets */, 782 41DB2417FF67A47FE6890256 /* Models */, 783 565DBAFC8DB2589B3F0AF90E /* Persistence */, 784 D8F0E3376B2616B4E917129C /* Services */, 785 074C2962E79CAE6C0EA6431A /* Sync */, 786 84445EA9CACB6AAAEDE6965F /* Views */, 787 ); 788 path = Crossmate; 789 sourceTree = "<group>"; 790 }; 791 6F470E54D9E6E99FCEA893D1 /* Generated */ = { 792 isa = PBXGroup; 793 children = ( 794 0BDC16DA7F762F4C5F4BED14 /* Config.xcconfig */, 795 ); 796 path = Generated; 797 sourceTree = "<group>"; 798 }; 799 84445EA9CACB6AAAEDE6965F /* Views */ = { 800 isa = PBXGroup; 801 children = ( 802 5CBEE60E9D850739CA3D01AA /* MarketingScreenshots.swift */, 803 AB1863007AA59F4769675599 /* Browse */, 804 99CEFF0AB23C2B9329A9F8B2 /* Components */, 805 486B6F0E3B86BC2765CCEC33 /* Friends */, 806 08204641416EEBE67C3EF5F6 /* GameList */, 807 895088B5D0214046158C6D24 /* Puzzle */, 808 1FB709FE7325CD51300A22F0 /* Settings */, 809 ); 810 path = Views; 811 sourceTree = "<group>"; 812 }; 813 895088B5D0214046158C6D24 /* Puzzle */ = { 814 isa = PBXGroup; 815 children = ( 816 9F13534332699C80382FE682 /* CellPatterns.swift */, 817 E935CE4384F3B67CC22EEBAC /* ClueBar.swift */, 818 7B8B65482CA1739A3863A99E /* ClueList.swift */, 819 B7557050B17F113BB488AA23 /* DecorationImages.swift */, 820 FF4CA70D10760D6770907606 /* GridAccessibility.swift */, 821 ED48AD9C3A7A113D101BBD21 /* GridView.swift */, 822 6940546CFA1E87EF814AA6BB /* HardwareKeyboardInputView.swift */, 823 E18FF14E0D73B0D2DB427F08 /* JoiningPuzzleView.swift */, 824 3FDE73AD7C543B29C8E493F8 /* KeyboardView.swift */, 825 89528AF69DE06C61FA8E91A1 /* PuzzleCommands.swift */, 826 23A7390848B1943C80142934 /* PuzzleGridStats.swift */, 827 ADBA3FB1334DB816E62B7D9B /* PuzzleHeader.swift */, 828 F5DF04E70017065DFA95B396 /* PuzzleModifiers.swift */, 829 A3A251D89028B3CA065DE053 /* PuzzleScoreboard.swift */, 830 57B1734CF731C2E405A39159 /* PuzzleView.swift */, 831 41A62DA6F7138876CA5A27EF /* SuccessPanel.swift */, 832 ); 833 path = Puzzle; 834 sourceTree = "<group>"; 835 }; 836 99CEFF0AB23C2B9329A9F8B2 /* Components */ = { 837 isa = PBXGroup; 838 children = ( 839 CD68E9CA9D3057FE07E985E1 /* AnnouncementBanner.swift */, 840 B024B2FFB11E51E9724BBE23 /* CompactSlider.swift */, 841 F9B757D86362CD6F0500E9CB /* CustomButtons.swift */, 842 065CD67A1D9F7B63AE6B42D6 /* FriendAvatarView.swift */, 843 6B1F07B5DDE2A8B49B28392A /* GridThumbnailView.swift */, 844 836B8D4B351C9225162A82C0 /* Layouts.swift */, 845 0F8AAA9540C80F787A1465C0 /* MailComposeView.swift */, 846 A61768D423564A9080414A38 /* NoticeView.swift */, 847 ); 848 path = Components; 849 sourceTree = "<group>"; 850 }; 851 9BF7383FE2AB07F12434C013 /* Shared */ = { 852 isa = PBXGroup; 853 children = ( 854 EAFA466405AABA1C06272795 /* ContentKeyDirectory.swift */, 855 833AAFBA0094BAB27E13FE29 /* FriendEncryptionKeyDirectory.swift */, 856 3111803C8FFFB0C839217482 /* NicknameDirectory.swift */, 857 2D2FD896D75863554E31654C /* NotificationState.swift */, 858 C2C9D3E7FCE2D42C5B7E3856 /* PushPayload.swift */, 859 33DE10D2A5AFBAC73469BD33 /* PushPayloadCipher.swift */, 860 CE7CEB8980A9664BAAA5D196 /* PuzzleNotificationText.swift */, 861 ); 862 path = Shared; 863 sourceTree = "<group>"; 864 }; 865 AB1863007AA59F4769675599 /* Browse */ = { 866 isa = PBXGroup; 867 children = ( 868 7023E506D777DB80B18A7DB5 /* BundledBrowseView.swift */, 869 CF20BDF7FF6423BA4FD911D5 /* CalendarDayCell.swift */, 870 AFA63B0051B4E6F4FC4B132A /* ExternalBrowseView.swift */, 871 2A832061C19BA0F073617CA2 /* ImportedBrowseView.swift */, 872 09C81EFA0B7776CB9713CD63 /* NewGameSheet.swift */, 873 3413F8755236FC0578AF8109 /* NYTBrowseView.swift */, 874 1747D4DCB4BCC831069BBE07 /* NYTLoginView.swift */, 875 ); 876 path = Browse; 877 sourceTree = "<group>"; 878 }; 879 ABB371EF2574E95782CB05FD /* Sync */ = { 880 isa = PBXGroup; 881 children = ( 882 9998739ED0875A17271B7899 /* AppServicesAnnouncementTests.swift */, 883 457B06DBFDC358D213A7CE54 /* AuthorIdentityTests.swift */, 884 67CFF96D54D2DE9C44EB120A /* EngagementCoordinatorTests.swift */, 885 A24FD313982C8094CD020106 /* EngagementMessageAuthenticatorTests.swift */, 886 94CEBA27A8AC4FCC92ADE1B4 /* EnsureGameEntityTests.swift */, 887 2E2702C74378FD2F14D1CE33 /* FriendControllerNicknameReplayTests.swift */, 888 B766E872B12DC79ECCD80941 /* FriendModelTests.swift */, 889 800CCFBE90554F287E765755 /* FriendZoneTests.swift */, 890 7B5A8118AC2FE60D877F1D29 /* GamePushCredentialsTests.swift */, 891 08C434DB97DE2FBD8BEB867C /* InboundRecordIdentityTests.swift */, 892 4B33C21324E1474BCC126AA0 /* MovesCodecLegacyDecodeTests.swift */, 893 EF1254FE7BE3672AEC1607B1 /* MovesInboundTests.swift */, 894 08E8592B1CB1336E63498706 /* PeerPresenceGraceTests.swift */, 895 BAEDA3C3765CD8D8897FE5D5 /* PendingChangeReapTests.swift */, 896 283C5C97180C805B6C5BF622 /* PerGameZoneTests.swift */, 897 54A448620E71515AAA7BA3DD /* PersistenceControllerHealTests.swift */, 898 5C838C184A0C7B1B0A9821CE /* PlayerRecordPresenceTests.swift */, 899 BD32BDDE9B007B11BE86B7A0 /* PushCredentialRotationTests.swift */, 900 960353A6F38DD290112A2FE1 /* RemoteCoordinateValidationTests.swift */, 901 F64DAE64C9AA042B330C526F /* SessionMonitorTests.swift */, 902 68072F4F3EB5D5A78E03D408 /* ShareRoutingTests.swift */, 903 A9A01534A21796A4EC7113A9 /* ZoneOrphaningTests.swift */, 904 ); 905 path = Sync; 906 sourceTree = "<group>"; 907 }; 908 C5342A31D253372339517EEE = { 909 isa = PBXGroup; 910 children = ( 911 BA67C509B467132D1B7510A4 /* Puzzles */, 912 5770CE69DB2B0B7462FACE53 /* Crossmate */, 913 6F470E54D9E6E99FCEA893D1 /* Generated */, 914 D7910EDB740AFF963BDCA6CE /* NotificationService */, 915 9BF7383FE2AB07F12434C013 /* Shared */, 916 01B07D8724DEA04C3E74558E /* Support */, 917 212DB6FCF46C41F81C41D232 /* Unit */, 918 12BCF7948BC2C200C647C279 /* Products */, 919 ); 920 sourceTree = "<group>"; 921 }; 922 D7910EDB740AFF963BDCA6CE /* NotificationService */ = { 923 isa = PBXGroup; 924 children = ( 925 88E8AACB638FE5724B534B41 /* Info.plist */, 926 B3D873ABDF871E14794A2845 /* NotificationService.entitlements */, 927 507B4DC893CE8AC4778CBACE /* NotificationService.swift */, 928 ); 929 path = NotificationService; 930 sourceTree = "<group>"; 931 }; 932 D8F0E3376B2616B4E917129C /* Services */ = { 933 isa = PBXGroup; 934 children = ( 935 03D59EA74A4BA084AD97478D /* AccountPushCoordinator.swift */, 936 1D3ECD0DE71BE567BCEE15F6 /* AnnouncementCenter.swift */, 937 DAD36DEDB3D997AB47146EA9 /* AppActions.swift */, 938 CA74C894ECCA1A176DD5B2F8 /* AppDefaultsMigrator.swift */, 939 CBDC81CA6A9C80EB31E7F493 /* AppServices.swift */, 940 2D5B1E8E12B86DF6CA478F65 /* BadgeCoordinator.swift */, 941 98E68FD021EF8ED50BC706EE /* CloudContainer.swift */, 942 56BC76178319D0D669CD50FF /* CloudService.swift */, 943 16E1DA8C1B4E73AFB779CC06 /* DebuggingMonitors.swift */, 944 70AD1A006E6D03E4429E3BF0 /* DriveMonitor.swift */, 945 18C701DAE36000DE19F7CC95 /* EngagementHost.swift */, 946 400B3C87248F3FCA3F76400B /* EngagementHostEnvironment.swift */, 947 4DB0580C9B7C778F34BE6AC2 /* EngagementLifecycle.swift */, 948 D16AC7215D0269195FEA8BA8 /* GridSilhouette.swift */, 949 462CE0FD356F6137C9BFD30F /* ImportService.swift */, 950 6BDD06460A76D4AF31077732 /* InputMonitor.swift */, 951 10064D171DB7C48D3DE1E769 /* InviteCoordinator.swift */, 952 28AB8C4D560CA5D4E4C61750 /* InviteDeliveryStore.swift */, 953 33878A29B09A6154C7A63C82 /* KeychainHelper.swift */, 954 A253416F4FEA271A80B22A73 /* NYTAuthService.swift */, 955 570F8FE85CC46CE3CB5CFEC1 /* NYTOverlayLetterRecognizer.swift */, 956 A55219DFC3EEC971E3A8BA6D /* NYTOverlaySlicer.swift */, 957 B0938B0ACB40772EE522D77C /* NYTPuzzleFetcher.swift */, 958 CE54EF557E8D808BAA20EA54 /* NYTPuzzleUpgrader.swift */, 959 BF6F111BE8750697C4BC7A17 /* NYTToXDConverter.swift */, 960 71DFD035381B6252DCD873C9 /* PlayerNamePublisher.swift */, 961 8A9F9E7ED4E1AF02F0C71051 /* PushClient.swift */, 962 FAF6E3F3558E128E7A482A61 /* PushRequestAuthenticator.swift */, 963 B369788E0FEA0DCE1B125816 /* PUZToXDConverter.swift */, 964 EE1A1BF1EBD7D9E4584EF5FE /* PuzzleFileReader.swift */, 965 710BCB6A647A820B106CE666 /* PuzzleSession.swift */, 966 3FFD574AC2D0A910053E2A73 /* ReplayLoader.swift */, 967 7A7BD8DFDB41BFBA694A0933 /* SessionCoordinator.swift */, 968 CA49DA9E0ADEB11A920787FA /* SessionPushPlanner.swift */, 969 E2ED0D601BB574618C15B5EF /* ShareLinkRoute.swift */, 970 52B50A841D92D1F2B173E7DF /* ShareLinkShortener.swift */, 971 ); 972 path = Services; 973 sourceTree = "<group>"; 974 }; 975 /* End PBXGroup section */ 976 977 /* Begin PBXNativeTarget section */ 978 350366A68B75DC4BDA91F8E5 /* NotificationService */ = { 979 isa = PBXNativeTarget; 980 buildConfigurationList = 97D15A585690B87E7C17FF8A /* Build configuration list for PBXNativeTarget "NotificationService" */; 981 buildPhases = ( 982 6D4D7955C5F70F9F18D7C1F0 /* Sources */, 983 ); 984 buildRules = ( 985 ); 986 dependencies = ( 987 ); 988 name = NotificationService; 989 packageProductDependencies = ( 990 ); 991 productName = NotificationService; 992 productReference = 51318FC5DAE02D35CB005729 /* NotificationService.appex */; 993 productType = "com.apple.product-type.app-extension"; 994 }; 995 7708D1C8A0145D43BD15DEB7 /* Crossmate */ = { 996 isa = PBXNativeTarget; 997 buildConfigurationList = AB7D49875A042FD78EDD157A /* Build configuration list for PBXNativeTarget "Crossmate" */; 998 buildPhases = ( 999 C17B62906BBF281D006D8DC2 /* Sources */, 1000 C475EFB2B47245175F9B415C /* Resources */, 1001 2768812850886EB633B6C27C /* Embed Foundation Extensions */, 1002 ); 1003 buildRules = ( 1004 ); 1005 dependencies = ( 1006 0638C125467274AA03088E07 /* PBXTargetDependency */, 1007 ); 1008 name = Crossmate; 1009 packageProductDependencies = ( 1010 ); 1011 productName = Crossmate; 1012 productReference = B689A7138429641E61E9E558 /* Crossmate.app */; 1013 productType = "com.apple.product-type.application"; 1014 }; 1015 C38EBD1A6B9D37EF81FF3511 /* Crossmate Unit Tests */ = { 1016 isa = PBXNativeTarget; 1017 buildConfigurationList = 0C7AF110B3697D116B91817A /* Build configuration list for PBXNativeTarget "Crossmate Unit Tests" */; 1018 buildPhases = ( 1019 931E2DAAD4EC47B06F7AB60A /* Sources */, 1020 ); 1021 buildRules = ( 1022 ); 1023 dependencies = ( 1024 42035D5EEE61A5D459E1D46D /* PBXTargetDependency */, 1025 ); 1026 name = "Crossmate Unit Tests"; 1027 packageProductDependencies = ( 1028 ); 1029 productName = "Crossmate Unit Tests"; 1030 productReference = D97CBA409832A24D64DF0F5C /* Crossmate Unit Tests.xctest */; 1031 productType = "com.apple.product-type.bundle.unit-test"; 1032 }; 1033 /* End PBXNativeTarget section */ 1034 1035 /* Begin PBXProject section */ 1036 9167165F088B7698D1319D3C /* Project object */ = { 1037 isa = PBXProject; 1038 attributes = { 1039 BuildIndependentTargetsInParallel = YES; 1040 LastUpgradeCheck = 1430; 1041 TargetAttributes = { 1042 350366A68B75DC4BDA91F8E5 = { 1043 DevelopmentTeam = 7TD7PZBNXP; 1044 ProvisioningStyle = Automatic; 1045 }; 1046 7708D1C8A0145D43BD15DEB7 = { 1047 DevelopmentTeam = 7TD7PZBNXP; 1048 ProvisioningStyle = Automatic; 1049 }; 1050 C38EBD1A6B9D37EF81FF3511 = { 1051 DevelopmentTeam = 7TD7PZBNXP; 1052 ProvisioningStyle = Automatic; 1053 }; 1054 }; 1055 }; 1056 buildConfigurationList = 9A436EF03A8593C66A18A832 /* Build configuration list for PBXProject "Crossmate" */; 1057 developmentRegion = en; 1058 hasScannedForEncodings = 0; 1059 knownRegions = ( 1060 Base, 1061 en, 1062 ); 1063 mainGroup = C5342A31D253372339517EEE; 1064 minimizedProjectReferenceProxies = 1; 1065 preferredProjectObjectVersion = 77; 1066 productRefGroup = 12BCF7948BC2C200C647C279 /* Products */; 1067 projectDirPath = ""; 1068 projectRoot = ""; 1069 targets = ( 1070 7708D1C8A0145D43BD15DEB7 /* Crossmate */, 1071 350366A68B75DC4BDA91F8E5 /* NotificationService */, 1072 C38EBD1A6B9D37EF81FF3511 /* Crossmate Unit Tests */, 1073 ); 1074 }; 1075 /* End PBXProject section */ 1076 1077 /* Begin PBXResourcesBuildPhase section */ 1078 C475EFB2B47245175F9B415C /* Resources */ = { 1079 isa = PBXResourcesBuildPhase; 1080 buildActionMask = 2147483647; 1081 files = ( 1082 9789150602A3321D2E1E7E81 /* Media.xcassets in Resources */, 1083 8B356C953DA0FAF149C3391A /* Puzzles in Resources */, 1084 ); 1085 runOnlyForDeploymentPostprocessing = 0; 1086 }; 1087 /* End PBXResourcesBuildPhase section */ 1088 1089 /* Begin PBXSourcesBuildPhase section */ 1090 6D4D7955C5F70F9F18D7C1F0 /* Sources */ = { 1091 isa = PBXSourcesBuildPhase; 1092 buildActionMask = 2147483647; 1093 files = ( 1094 95170ECF07E94E7581C2B66F /* ContentKeyDirectory.swift in Sources */, 1095 18CA29E61C4F1471A455FEC8 /* FriendEncryptionKeyDirectory.swift in Sources */, 1096 A0977C7B0B0D928DA569C326 /* NicknameDirectory.swift in Sources */, 1097 7D4A56FBB1C5D5F89271B77F /* NotificationService.swift in Sources */, 1098 88BACA1689459AC9AED20D43 /* NotificationState.swift in Sources */, 1099 F8A4B3A1F9601654C60550B3 /* PushPayload.swift in Sources */, 1100 FC4853B4261B06945D0D1470 /* PushPayloadCipher.swift in Sources */, 1101 351CB23C537BAB61863D95F6 /* PuzzleNotificationText.swift in Sources */, 1102 ); 1103 runOnlyForDeploymentPostprocessing = 0; 1104 }; 1105 931E2DAAD4EC47B06F7AB60A /* Sources */ = { 1106 isa = PBXSourcesBuildPhase; 1107 buildActionMask = 2147483647; 1108 files = ( 1109 521E877D28502B917C89B66D /* AccountPushCoordinatorTests.swift in Sources */, 1110 6C091D30AAC9F63B7CE6FB58 /* AnnouncementCenterTests.swift in Sources */, 1111 5082CCB75939E1BC6E9DC03A /* AppDefaultsMigratorTests.swift in Sources */, 1112 AC70BED45521BB77535C456C /* AppDelegatePushBufferTests.swift in Sources */, 1113 D519F54F8CE0BD53D9C6144C /* AppServicesAnnouncementTests.swift in Sources */, 1114 DB098F40C6950E29B4BF10A7 /* ArchiveTests.swift in Sources */, 1115 A98382E7659991FAF0F4ED0A /* AuthorIdentityTests.swift in Sources */, 1116 7BE53C851A311A7B6255B45E /* CellAccessibilityDescriberTests.swift in Sources */, 1117 8171E5B23FEC5FB63029A640 /* CloudJoinFailureTests.swift in Sources */, 1118 4E1A70D1EC709A0478631DCF /* DecorationRenderingTests.swift in Sources */, 1119 8C37D748EBFD75DACCB992C3 /* DriveMonitorTests.swift in Sources */, 1120 328309D8CC72CCB5623FB2A1 /* EngagementCoordinatorTests.swift in Sources */, 1121 3B3F30AA1B7AA6D4465CB537 /* EngagementMessageAuthenticatorTests.swift in Sources */, 1122 02943BA53D2130B910E6DC00 /* EnsureGameEntityTests.swift in Sources */, 1123 931431F8052FC58768C9BC26 /* FriendControllerNicknameReplayTests.swift in Sources */, 1124 61A0F71985C898D046556A1D /* FriendInviteRecencyStoreTests.swift in Sources */, 1125 6A1CA96FF48CBEEE78EA6D34 /* FriendModelTests.swift in Sources */, 1126 712A2764596A2D17A0BBBF3B /* FriendZoneTests.swift in Sources */, 1127 85A798525FE1DC98210A9E82 /* GameCursorStoreTests.swift in Sources */, 1128 2C0DFC182240A2519ED1FA6A /* GameMutatorTests.swift in Sources */, 1129 30703DDF575DCDA53227DA66 /* GamePushCredentialsTests.swift in Sources */, 1130 9AACF424992AE45FD7937064 /* GameStoreCompletionLockTests.swift in Sources */, 1131 4D7BF839BA71E1BF0AE9BCE9 /* GameStoreContributingDevicesTests.swift in Sources */, 1132 262A9CE8C3CB93869190CFF1 /* GameStoreMergedAuthorCellsTests.swift in Sources */, 1133 2C5A15054CCCBF9FD626AFBB /* GameStorePushAddressTests.swift in Sources */, 1134 205894D447BFE2CCEB07575D /* GameStoreRevocationLockTests.swift in Sources */, 1135 449B0A09A36B276C93CFB9A4 /* GameStoreUnreadMovesTests.swift in Sources */, 1136 7714B1C2FBCBBAD9BE8FEAF8 /* GameSummaryThumbnailTests.swift in Sources */, 1137 1D08DDEDEF5433912CC6D4DB /* GameViewedStoreTests.swift in Sources */, 1138 085B70680087464B8A7BA3EE /* GridSilhouetteTests.swift in Sources */, 1139 AACC9F70AEEDCB3360FFDEFF /* GridStateMergerTests.swift in Sources */, 1140 10AF4F2750E0D64AA3828F35 /* ImportServiceTests.swift in Sources */, 1141 9DFE90A6D7C58823CA02CA4E /* InboundRecordIdentityTests.swift in Sources */, 1142 0158184A413AE177F75B4150 /* JournalReplayTests.swift in Sources */, 1143 6E67C0DCB0416F382EA065B7 /* JournalUploadTests.swift in Sources */, 1144 2641299DE1F2E84E8C21E037 /* LogScrubberTests.swift in Sources */, 1145 E454051BA4797000C8AD2B48 /* MovesCodecLegacyDecodeTests.swift in Sources */, 1146 DE90CC8BE23A0EFC4A32FFA5 /* MovesInboundTests.swift in Sources */, 1147 F5F333B36654AEAF69A3C220 /* MovesJournalTests.swift in Sources */, 1148 C1930083671621AC79CF95DD /* MovesUpdaterTests.swift in Sources */, 1149 C1D97A4CD02BC9C22C4208BB /* NYTAuthServiceTests.swift in Sources */, 1150 2765E30202EF955B425CB1A3 /* NYTOverlayLetterRecognizerTests.swift in Sources */, 1151 EA9DA088AF131B0E6A874E70 /* NYTOverlaySlicerTests.swift in Sources */, 1152 DCAA1C4A4E4943675EC6632A /* NYTPuzzleFetcherTests.swift in Sources */, 1153 50C02D37A41D55CFA5D307E2 /* NYTPuzzleUpgraderTests.swift in Sources */, 1154 AA38A51862FC0AB8F7D34899 /* NYTToXDConverterTests.swift in Sources */, 1155 6850EAE474E589CE1EA2DF68 /* NicknameDirectoryTests.swift in Sources */, 1156 18D5BB584DBF92A2EC580AEA /* NotificationNavigationBrokerTests.swift in Sources */, 1157 E632562D090D8BE907F28C53 /* NotificationStateTests.swift in Sources */, 1158 903681985C17FCB5F97773A9 /* OpenPuzzleBannerTests.swift in Sources */, 1159 C89A15D812E372FE1C56039B /* PUZToXDConverterTests.swift in Sources */, 1160 DAD7EA11DA7330773A485473 /* PeerChangeLedgerTests.swift in Sources */, 1161 51E6F7F2FC52C2AA87B9DB45 /* PeerPresenceGraceTests.swift in Sources */, 1162 A458AF9CA8579AB51B695B08 /* PendingChangeReapTests.swift in Sources */, 1163 8225918652DCC822CA1C862F /* PendingEditFlagTests.swift in Sources */, 1164 014134FB81566B5D41168260 /* PerGameZoneTests.swift in Sources */, 1165 9B1162B1714415FE58CBAE2C /* PersistenceControllerHealTests.swift in Sources */, 1166 26DC22F88FA10C47BC06975E /* PersistenceRecoveryTests.swift in Sources */, 1167 95B4083F8BC2CA465077A662 /* PlayerColorTests.swift in Sources */, 1168 CEDF853009D0C367035F1F76 /* PlayerNamePublisherTests.swift in Sources */, 1169 47A6EAAC144C37608AB9AE91 /* PlayerPreferencesTests.swift in Sources */, 1170 7BD1A9F69953F9C3288969AF /* PlayerRecordPresenceTests.swift in Sources */, 1171 04062BCD473ED244159B1066 /* PlayerRosterTests.swift in Sources */, 1172 309457EC2DFEC476253D54D2 /* PlayerSelectionPublisherTests.swift in Sources */, 1173 00F2108848ADC7B4BF3AA0AE /* PlayerSessionNavigationTests.swift in Sources */, 1174 C6CC673F2D4BB8A1C0439FBB /* PushClientTests.swift in Sources */, 1175 5E80545A8ECEB1E2ED371C53 /* PushCredentialRotationTests.swift in Sources */, 1176 2A273C98FE3AC5E4C9BE1D88 /* PushPayloadCipherTests.swift in Sources */, 1177 A78FF09708EDED7ED50BB55B /* PushPayloadTests.swift in Sources */, 1178 33CEEDAFBAA46128A9713AF5 /* PushRequestAuthenticatorTests.swift in Sources */, 1179 F34EDFD45E2F5006807DDAC7 /* PuzzleCatalogTests.swift in Sources */, 1180 82D1714DC441E4943E96C882 /* PuzzleFileReaderTests.swift in Sources */, 1181 7FCD3F582B5ADC235E1F88A0 /* PuzzleNotificationTextTests.swift in Sources */, 1182 0A7AEB93A473AFCCD9217F49 /* PuzzleSessionTests.swift in Sources */, 1183 6E36ED34ACF047BABB3E2D69 /* RecentChangesTests.swift in Sources */, 1184 89CEDB8864F61E42AC04F9D6 /* RecordSerializerMovesTests.swift in Sources */, 1185 ECC1A5C3623F50B67185CFFB /* RecordSerializerTests.swift in Sources */, 1186 0BB721552A849A53AB9BF7CC /* RemoteCoordinateValidationTests.swift in Sources */, 1187 61F8B38587EE49D376B53544 /* ReplayCacheTests.swift in Sources */, 1188 C58F15CBEADA72032B54009D /* ReplayControlsTests.swift in Sources */, 1189 95FDB86366A30C95C69D5A02 /* RevealConfirmationTests.swift in Sources */, 1190 AE5D8C531F89F05B7201B3AC /* SessionMonitorTests.swift in Sources */, 1191 07A46496EE0B12FD526F36FB /* SessionPushPlannerTests.swift in Sources */, 1192 8AE376C0726116082B15241D /* ShareLinkRouteTests.swift in Sources */, 1193 41290C86E72D6567C43C31B7 /* ShareLinkShortenerTests.swift in Sources */, 1194 BE57957589423497338EBD37 /* ShareRoutingTests.swift in Sources */, 1195 025377AF80D45967CE910423 /* SyncMonitorTests.swift in Sources */, 1196 4819D7FBB407C9D76510EA2A /* TestHelpers.swift in Sources */, 1197 F15591B48E4155CB19C1F084 /* TimeLogTests.swift in Sources */, 1198 9AD5700398B1C1F29A3A75F6 /* TipStoreTests.swift in Sources */, 1199 31F2B6A61ED352C7D800149F /* XDAcceptTests.swift in Sources */, 1200 38439415796652D8B88C53B3 /* XDDecorationTests.swift in Sources */, 1201 47B4FB563BA4A8A54E2C26E0 /* XDLimitsTests.swift in Sources */, 1202 786813F3418C32EFBF296220 /* XDMarkupTests.swift in Sources */, 1203 9582AA583F5EA008FFC82B64 /* ZoneOrphaningTests.swift in Sources */, 1204 ); 1205 runOnlyForDeploymentPostprocessing = 0; 1206 }; 1207 C17B62906BBF281D006D8DC2 /* Sources */ = { 1208 isa = PBXSourcesBuildPhase; 1209 buildActionMask = 2147483647; 1210 files = ( 1211 924B29C1EEB29F849A6824C3 /* AboutView.swift in Sources */, 1212 EA0AA522F6C383034C4572F4 /* AccountPushCoordinator.swift in Sources */, 1213 A87E5E615559B6461B1C3F94 /* AnnouncementBanner.swift in Sources */, 1214 5EFCD28B3B682DCCF38068D6 /* AnnouncementCenter.swift in Sources */, 1215 AE92B185FB52032AEB9421A1 /* AppActions.swift in Sources */, 1216 CED9627EAF70673B339D85EF /* AppDefaultsMigrator.swift in Sources */, 1217 78802AFDF6273231781CC0DC /* AppServices.swift in Sources */, 1218 A65F99414F8CF6704567BB07 /* Archive.swift in Sources */, 1219 197DDF45C36B9570BB9AE4B5 /* AuthorIdentity.swift in Sources */, 1220 EB6E99226D5EE27668787008 /* BadgeCoordinator.swift in Sources */, 1221 4D9E2C35893E68E47F790994 /* BundledBrowseView.swift in Sources */, 1222 F627D68B521FEA85EB80A850 /* CalendarDayCell.swift in Sources */, 1223 6BE7E91158F4DF1F71247C6D /* CellMark.swift in Sources */, 1224 E9A65F3548DD062FD36A19E1 /* CellPatterns.swift in Sources */, 1225 5FB26F40F5DB52111E3D1BDC /* CheckResult.swift in Sources */, 1226 659F7E48357E164144A19789 /* CloudContainer.swift in Sources */, 1227 E15A40AA623B60279E8DDF43 /* CloudDiagnostics.swift in Sources */, 1228 1016604FBD4D63A0B9AAE503 /* CloudQuery.swift in Sources */, 1229 CC250D6BA9B41CB722D8A62E /* CloudService.swift in Sources */, 1230 E16A8FE849A8E8BCC0F32280 /* CloudZones.swift in Sources */, 1231 BAB41DBF7D099B1EE46B4ACB /* ClueBar.swift in Sources */, 1232 036EC1EDDEFD17DCDD9B5F1A /* ClueList.swift in Sources */, 1233 2571BA6482B3E896A80FF393 /* CompactSlider.swift in Sources */, 1234 609364CB79E0C7517298B404 /* ContentKeyDirectory.swift in Sources */, 1235 DE9E4FAB098731A650F2D306 /* CrossmateApp.swift in Sources */, 1236 C30C0C4E54E4209A22843872 /* CrossmateModel.xcdatamodeld in Sources */, 1237 C472EF02D8C7B0AC1D2284B8 /* CustomButtons.swift in Sources */, 1238 CCF3867C32C3F36E4F69A59E /* DebuggingMonitors.swift in Sources */, 1239 25141DD1C50C9191B6C94119 /* DecorationImages.swift in Sources */, 1240 F1854B64C63447B7C7232097 /* DiagnosticsReport.swift in Sources */, 1241 0F2992C16A3A658DEA0F707E /* DiagnosticsView.swift in Sources */, 1242 978F91DBAE94BC5DA1D94705 /* DriveMonitor.swift in Sources */, 1243 CABF8BFAA30B9F26C482FAB9 /* EngagementCoordinator.swift in Sources */, 1244 267ED5B329F05A30430B73A0 /* EngagementHost.swift in Sources */, 1245 A7FA870D794CA00F7F3F05D2 /* EngagementHostEnvironment.swift in Sources */, 1246 D240BF6498A9148855DB7734 /* EngagementLifecycle.swift in Sources */, 1247 648EA338E7718079EA354D7D /* EngagementMessageAuthenticator.swift in Sources */, 1248 06AE6DF7AA3274480C591E47 /* EngagementStore.swift in Sources */, 1249 1989FEF3DE02BEA414B6E9ED /* ExternalBrowseView.swift in Sources */, 1250 BD317ECC09C9099AC29B8C5D /* FriendAvatarView.swift in Sources */, 1251 C8ACF431021E7BEE61A99153 /* FriendController.swift in Sources */, 1252 7E6ED856CE78A774B061CA60 /* FriendEncryptionKeyDirectory.swift in Sources */, 1253 00A25F5D8DFF62EFA0C4D1D7 /* FriendEntity+DisplayName.swift in Sources */, 1254 D3E5B61C695CE3DDA7016E47 /* FriendInviteRecencyStore.swift in Sources */, 1255 884BC090D4E2D416AA52D6FD /* FriendPickerView.swift in Sources */, 1256 2AF2550B08CE79F8615B3076 /* FriendZone.swift in Sources */, 1257 B00743DAF8F46F14CE13E909 /* FriendsView.swift in Sources */, 1258 98F8FBF324ED00D53FEBB1DB /* Game.swift in Sources */, 1259 5992AD4A06D7C6440825E9C6 /* GameArchiver.swift in Sources */, 1260 D5022BFB2F8F2E5904EDF5C8 /* GameCardView.swift in Sources */, 1261 128915DB37018EE4CC16C856 /* GameCursorStore.swift in Sources */, 1262 16D7328AE0BB1F7ED46235C8 /* GameEntity+ContentKey.swift in Sources */, 1263 0063A5FC9F39E37A67F137FF /* GameListView.swift in Sources */, 1264 3A5483EF2893AE325DF27EE8 /* GameMutator.swift in Sources */, 1265 9FFD01CF6767220EEA20C0E4 /* GamePushCredentials.swift in Sources */, 1266 FC480FE2930EAE406F5BBBDA /* GameRowView.swift in Sources */, 1267 44FF4A5334A4086DEA7D8A7B /* GameShareItem.swift in Sources */, 1268 D58980B92C99122C368D4216 /* GameStore.swift in Sources */, 1269 774C5B5FC06366A0F5CD2376 /* GameSyncVersion.swift in Sources */, 1270 1A1A8A9AB36D02E2A5A9ED28 /* GameViewedStore.swift in Sources */, 1271 83CF8376EBFD7271931AC1B7 /* GridAccessibility.swift in Sources */, 1272 BA7FCA7D8713582B2396BE6B /* GridPosition.swift in Sources */, 1273 4B8CA45845618D75A3313816 /* GridSilhouette.swift in Sources */, 1274 ED6C21CD9F5AB286B69A02E4 /* GridStateMerger.swift in Sources */, 1275 1AAFF86B40CBBFF1EC9ADF9F /* GridThumbnailView.swift in Sources */, 1276 93DB3DD9A8EE994B92E7C084 /* GridView.swift in Sources */, 1277 01D1B4C7303F1CA52438FF86 /* HardwareKeyboardInputView.swift in Sources */, 1278 4A89595E3F6AB50E1D9E6BA8 /* ImportService.swift in Sources */, 1279 F8D37DBE75D7B3F039A8FAC8 /* ImportedBrowseView.swift in Sources */, 1280 1A19D13D9B820E276C60819E /* InputMonitor.swift in Sources */, 1281 D05F1B226E67A31218BA4E3A /* InvitationFailureCallout.swift in Sources */, 1282 59230713D85AE6895852B06A /* InviteCoordinator.swift in Sources */, 1283 FE447FF4339EA0BF874B1114 /* InviteDeliveryStore.swift in Sources */, 1284 7D9337A19747C79070AB3D59 /* InviteEntity+DisplayName.swift in Sources */, 1285 13C0F34520828020AD825D07 /* JoiningPuzzleView.swift in Sources */, 1286 9502840161DB88BB6BB409D5 /* Journal.swift in Sources */, 1287 B5F78A55C9BCCD24E44D865F /* JournalReplay.swift in Sources */, 1288 689DAEC70934027E76E8116E /* KeyboardView.swift in Sources */, 1289 38C913D00ED762BD9E355A2D /* KeychainHelper.swift in Sources */, 1290 CF1DC343A5D3110EDFA703AB /* LastUpdatedView.swift in Sources */, 1291 8D8A9F70731C98DD00BE1DA5 /* Layouts.swift in Sources */, 1292 6BD5C5B6BED06651312E2D01 /* MailComposeView.swift in Sources */, 1293 8ECA254A8BB852BF4B9CE6D7 /* MarketingScreenshots.swift in Sources */, 1294 91703E54DB4679C1911BF994 /* Moves.swift in Sources */, 1295 4D90B39AD2F79959FB8089EE /* MovesUpdater.swift in Sources */, 1296 1F4E5473F78A5CEDBA9719CE /* NYTAuthService.swift in Sources */, 1297 C843CADAA263CED503528A4E /* NYTBrowseView.swift in Sources */, 1298 6D2AF361587E43D807BA212F /* NYTLoginView.swift in Sources */, 1299 1E404AD99B04912167B83176 /* NYTOverlayLetterRecognizer.swift in Sources */, 1300 A4BF96473CD6D937402239C1 /* NYTOverlaySlicer.swift in Sources */, 1301 0241DC498C645FE1BDA00FB0 /* NYTPuzzleFetcher.swift in Sources */, 1302 85B9BAC5ED404FE4496250CB /* NYTPuzzleUpgrader.swift in Sources */, 1303 B762200F54C52E8377A80D15 /* NYTToXDConverter.swift in Sources */, 1304 5E89D1F8FDFE56395997281A /* NewGameSheet.swift in Sources */, 1305 36E2AAF1EE1314E13477EE85 /* NicknameDirectory.swift in Sources */, 1306 701BD90172F500B89E32E8E6 /* NoticeView.swift in Sources */, 1307 6AE88D9E1918508DBF2A91E1 /* NotificationState.swift in Sources */, 1308 CF56BBB90855367CB85FEB43 /* PUZToXDConverter.swift in Sources */, 1309 E6A13F8736ABF41F6346E301 /* ParticipantSummaries.swift in Sources */, 1310 4E14BB5D6F96D178373ED55A /* PeerChangeLedger.swift in Sources */, 1311 77556FD9473A3F10FADF5E4E /* PersistenceController.swift in Sources */, 1312 47584CBEF819C2F507D06DFF /* PlayerColor.swift in Sources */, 1313 3C54AE4AA04342CCF5705B20 /* PlayerNamePublisher.swift in Sources */, 1314 F8DDA34AC1A6B6499C5D222E /* PlayerPreferences.swift in Sources */, 1315 0C39CA21BE50E49F9F06C5F2 /* PlayerRoster.swift in Sources */, 1316 17A754692F05B97DBDD645F2 /* PlayerSelection.swift in Sources */, 1317 B6AB531F4E0C4031B627C539 /* PlayerSelectionPublisher.swift in Sources */, 1318 8F5CB2F94E083D06D7E04280 /* PlayerSession.swift in Sources */, 1319 E354A588DBA74627A9CD5591 /* Presence.swift in Sources */, 1320 A133A4B4A0C95AF8708BD7E6 /* PushClient.swift in Sources */, 1321 43E311FBD68B7D35A4D29743 /* PushPayload.swift in Sources */, 1322 8FEE38B2B540F0E91560747F /* PushPayloadCipher.swift in Sources */, 1323 F2F7CB23DA62BF714632B097 /* PushRequestAuthenticator.swift in Sources */, 1324 503229FF89FF7C29CEF4C16D /* Puzzle.swift in Sources */, 1325 350722635E9A17324148CACC /* PuzzleCatalog.swift in Sources */, 1326 ADBEAD1C0139BCF864CA8A1D /* PuzzleCommands.swift in Sources */, 1327 9DDFDF9D97FFC4F043CE84D8 /* PuzzleFileReader.swift in Sources */, 1328 5264996E0D72A805B20985E8 /* PuzzleGridStats.swift in Sources */, 1329 D2AC1D9BD7E387B06B9B8A0E /* PuzzleHeader.swift in Sources */, 1330 082B9BAADE3AFA54EFE30E19 /* PuzzleModifiers.swift in Sources */, 1331 24F7ED458A1C09F8CF309B35 /* PuzzleNotificationText+GameEntity.swift in Sources */, 1332 E81F92AAB2968997C3D68809 /* PuzzleNotificationText.swift in Sources */, 1333 2DD78CA0CD587AA4E5C4B178 /* PuzzleScoreboard.swift in Sources */, 1334 88A34C8857B2B3D45A6FBCB2 /* PuzzleSession.swift in Sources */, 1335 E91FB8101E1927CA567DE825 /* PuzzleSource.swift in Sources */, 1336 9C52C48DB4996D5C83DEC144 /* PuzzleView.swift in Sources */, 1337 9AD8936D94FD676B23DFBB77 /* RecentChanges.swift in Sources */, 1338 D94FF5DFB9412D2DC24F6574 /* RecordApplier.swift in Sources */, 1339 D13ECFAE05DB508577D2FF66 /* RecordBuilder.swift in Sources */, 1340 CF0CA17ABE211DAE4DD35AFD /* RecordSerializer.swift in Sources */, 1341 E1FBC33E3348547D4DF946C4 /* ReplayControls.swift in Sources */, 1342 C9864C9940C9DAAD0A788094 /* ReplayLoader.swift in Sources */, 1343 15768439C1783A1780FBB824 /* SessionCoordinator.swift in Sources */, 1344 5ECF5B80D08E5E999A540782 /* SessionMonitor.swift in Sources */, 1345 B48DE7079BE2F31D2367C5F7 /* SessionPushPlanner.swift in Sources */, 1346 4F1A93404828EDBDBBF86716 /* SettingsView.swift in Sources */, 1347 BCB9A4D5E06EE5006186465D /* ShareController.swift in Sources */, 1348 D4EDC0D426688B295DA77C08 /* ShareLinkRoute.swift in Sources */, 1349 779D1955F350B507A47B1E5B /* ShareLinkShortener.swift in Sources */, 1350 AF4F1AE2A1F94E92C785C524 /* Square.swift in Sources */, 1351 DDC7994B951A3A7B836B36F6 /* SuccessPanel.swift in Sources */, 1352 82918A74836E5076CBFA1592 /* SyncEngine.swift in Sources */, 1353 F46733AB3C72749A4A992667 /* SyncState+Helpers.swift in Sources */, 1354 B0170C8927EDD2E43F849204 /* TimeLog.swift in Sources */, 1355 35D97436772257DAD3936ECB /* TipStore.swift in Sources */, 1356 3C54B672A9FCA98C0A304470 /* TipsArchive.swift in Sources */, 1357 7FFEACFC672925A0968ACC1C /* XD.swift in Sources */, 1358 7CD7CC4681C2085AAC39FA79 /* XDDecorationWriter.swift in Sources */, 1359 9CB8808193A4A106D721D767 /* XDFileType.swift in Sources */, 1360 14749A042380925B7CA902F2 /* XDMarkup.swift in Sources */, 1361 ); 1362 runOnlyForDeploymentPostprocessing = 0; 1363 }; 1364 /* End PBXSourcesBuildPhase section */ 1365 1366 /* Begin PBXTargetDependency section */ 1367 0638C125467274AA03088E07 /* PBXTargetDependency */ = { 1368 isa = PBXTargetDependency; 1369 target = 350366A68B75DC4BDA91F8E5 /* NotificationService */; 1370 targetProxy = 0751E0359C340223ADBA2B05 /* PBXContainerItemProxy */; 1371 }; 1372 42035D5EEE61A5D459E1D46D /* PBXTargetDependency */ = { 1373 isa = PBXTargetDependency; 1374 target = 7708D1C8A0145D43BD15DEB7 /* Crossmate */; 1375 targetProxy = F0122CF3E216720C4437CE6A /* PBXContainerItemProxy */; 1376 }; 1377 /* End PBXTargetDependency section */ 1378 1379 /* Begin XCBuildConfiguration section */ 1380 209C1E6D178C7EF962FC85A5 /* Release */ = { 1381 isa = XCBuildConfiguration; 1382 baseConfigurationReference = 0BDC16DA7F762F4C5F4BED14 /* Config.xcconfig */; 1383 buildSettings = { 1384 ALWAYS_SEARCH_USER_PATHS = NO; 1385 ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOL_EXTENSIONS = YES; 1386 ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; 1387 CLANG_ANALYZER_NONNULL = YES; 1388 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 1389 CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 1390 CLANG_CXX_LIBRARY = "libc++"; 1391 CLANG_ENABLE_MODULES = YES; 1392 CLANG_ENABLE_OBJC_ARC = YES; 1393 CLANG_ENABLE_OBJC_WEAK = YES; 1394 CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 1395 CLANG_WARN_BOOL_CONVERSION = YES; 1396 CLANG_WARN_COMMA = YES; 1397 CLANG_WARN_CONSTANT_CONVERSION = YES; 1398 CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 1399 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1400 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1401 CLANG_WARN_EMPTY_BODY = YES; 1402 CLANG_WARN_ENUM_CONVERSION = YES; 1403 CLANG_WARN_INFINITE_RECURSION = YES; 1404 CLANG_WARN_INT_CONVERSION = YES; 1405 CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 1406 CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 1407 CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 1408 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1409 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 1410 CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 1411 CLANG_WARN_STRICT_PROTOTYPES = YES; 1412 CLANG_WARN_SUSPICIOUS_MOVE = YES; 1413 CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 1414 CLANG_WARN_UNREACHABLE_CODE = YES; 1415 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1416 COPY_PHASE_STRIP = NO; 1417 DEAD_CODE_STRIPPING = YES; 1418 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 1419 DEVELOPMENT_TEAM = 7TD7PZBNXP; 1420 ENABLE_NS_ASSERTIONS = NO; 1421 ENABLE_STRICT_OBJC_MSGSEND = YES; 1422 ENABLE_USER_SCRIPT_SANDBOXING = YES; 1423 GCC_C_LANGUAGE_STANDARD = gnu11; 1424 GCC_NO_COMMON_BLOCKS = YES; 1425 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1426 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1427 GCC_WARN_UNDECLARED_SELECTOR = YES; 1428 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1429 GCC_WARN_UNUSED_FUNCTION = YES; 1430 GCC_WARN_UNUSED_VARIABLE = YES; 1431 IPHONEOS_DEPLOYMENT_TARGET = 17.5; 1432 MTL_ENABLE_DEBUG_INFO = NO; 1433 MTL_FAST_MATH = YES; 1434 PRODUCT_NAME = "$(TARGET_NAME)"; 1435 SDKROOT = iphoneos; 1436 STRING_CATALOG_GENERATE_SYMBOLS = YES; 1437 SWIFT_COMPILATION_MODE = wholemodule; 1438 SWIFT_EMIT_LOC_STRINGS = YES; 1439 SWIFT_OPTIMIZATION_LEVEL = "-O"; 1440 SWIFT_VERSION = 6; 1441 }; 1442 name = Release; 1443 }; 1444 42CA2E441989D32BE123F48A /* Debug */ = { 1445 isa = XCBuildConfiguration; 1446 buildSettings = { 1447 BUNDLE_LOADER = "$(TEST_HOST)"; 1448 CODE_SIGN_STYLE = Automatic; 1449 GENERATE_INFOPLIST_FILE = YES; 1450 LD_RUNPATH_SEARCH_PATHS = ( 1451 "$(inherited)", 1452 "@executable_path/Frameworks", 1453 "@loader_path/Frameworks", 1454 ); 1455 PRODUCT_BUNDLE_IDENTIFIER = net.inqk.crossmate.unittests; 1456 SDKROOT = iphoneos; 1457 TARGETED_DEVICE_FAMILY = "1,2"; 1458 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Crossmate.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Crossmate"; 1459 }; 1460 name = Debug; 1461 }; 1462 642190659D822637293D1645 /* Release */ = { 1463 isa = XCBuildConfiguration; 1464 buildSettings = { 1465 BUNDLE_LOADER = "$(TEST_HOST)"; 1466 CODE_SIGN_STYLE = Automatic; 1467 GENERATE_INFOPLIST_FILE = YES; 1468 LD_RUNPATH_SEARCH_PATHS = ( 1469 "$(inherited)", 1470 "@executable_path/Frameworks", 1471 "@loader_path/Frameworks", 1472 ); 1473 PRODUCT_BUNDLE_IDENTIFIER = net.inqk.crossmate.unittests; 1474 SDKROOT = iphoneos; 1475 TARGETED_DEVICE_FAMILY = "1,2"; 1476 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Crossmate.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Crossmate"; 1477 }; 1478 name = Release; 1479 }; 1480 68A4416DD8D2ADB28F35E46C /* Release */ = { 1481 isa = XCBuildConfiguration; 1482 buildSettings = { 1483 CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements; 1484 CODE_SIGN_STYLE = Automatic; 1485 INFOPLIST_FILE = NotificationService/Info.plist; 1486 LD_RUNPATH_SEARCH_PATHS = ( 1487 "$(inherited)", 1488 "@executable_path/Frameworks", 1489 "@executable_path/../../Frameworks", 1490 ); 1491 PRODUCT_BUNDLE_IDENTIFIER = net.inqk.crossmate.notificationservice; 1492 SDKROOT = iphoneos; 1493 TARGETED_DEVICE_FAMILY = "1,2"; 1494 }; 1495 name = Release; 1496 }; 1497 8BC97916898B0BF1E6951C48 /* Release */ = { 1498 isa = XCBuildConfiguration; 1499 buildSettings = { 1500 APP_ATTEST_ENVIRONMENT = production; 1501 APS_ENVIRONMENT = production; 1502 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 1503 CODE_SIGN_ENTITLEMENTS = Crossmate/Crossmate.entitlements; 1504 CODE_SIGN_IDENTITY = "iPhone Developer"; 1505 CODE_SIGN_STYLE = Automatic; 1506 CROSSMATE_ENGAGEMENT_SOCKET_URL = "$(inherited)"; 1507 CROSSMATE_PUSH_BASE_URL = "$(inherited)"; 1508 CROSSMATE_SHARE_LINK_BASE_URL = "$(inherited)"; 1509 CROSSMATE_SHARE_LINK_HOST = "$(inherited)"; 1510 INFOPLIST_FILE = Crossmate/Info.plist; 1511 LD_RUNPATH_SEARCH_PATHS = ( 1512 "$(inherited)", 1513 "@executable_path/Frameworks", 1514 ); 1515 OTHER_LDFLAGS = "$(inherited) -Wl,-no_deduplicate"; 1516 PRODUCT_BUNDLE_IDENTIFIER = net.inqk.crossmate; 1517 SDKROOT = iphoneos; 1518 TARGETED_DEVICE_FAMILY = "1,2"; 1519 }; 1520 name = Release; 1521 }; 1522 AF49D30A1B81631106E05429 /* Debug */ = { 1523 isa = XCBuildConfiguration; 1524 buildSettings = { 1525 APP_ATTEST_ENVIRONMENT = production; 1526 APS_ENVIRONMENT = development; 1527 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 1528 CODE_SIGN_ENTITLEMENTS = Crossmate/Crossmate.entitlements; 1529 CODE_SIGN_IDENTITY = "iPhone Developer"; 1530 CODE_SIGN_STYLE = Automatic; 1531 CROSSMATE_ENGAGEMENT_SOCKET_URL = "$(inherited)"; 1532 CROSSMATE_PUSH_BASE_URL = "$(inherited)"; 1533 CROSSMATE_SHARE_LINK_BASE_URL = "$(inherited)"; 1534 CROSSMATE_SHARE_LINK_HOST = "$(inherited)"; 1535 INFOPLIST_FILE = Crossmate/Info.plist; 1536 LD_RUNPATH_SEARCH_PATHS = ( 1537 "$(inherited)", 1538 "@executable_path/Frameworks", 1539 ); 1540 PRODUCT_BUNDLE_IDENTIFIER = net.inqk.crossmate; 1541 SDKROOT = iphoneos; 1542 TARGETED_DEVICE_FAMILY = "1,2"; 1543 }; 1544 name = Debug; 1545 }; 1546 C32934743A6313F80D8A4C76 /* Debug */ = { 1547 isa = XCBuildConfiguration; 1548 buildSettings = { 1549 CODE_SIGN_ENTITLEMENTS = NotificationService/NotificationService.entitlements; 1550 CODE_SIGN_STYLE = Automatic; 1551 INFOPLIST_FILE = NotificationService/Info.plist; 1552 LD_RUNPATH_SEARCH_PATHS = ( 1553 "$(inherited)", 1554 "@executable_path/Frameworks", 1555 "@executable_path/../../Frameworks", 1556 ); 1557 PRODUCT_BUNDLE_IDENTIFIER = net.inqk.crossmate.notificationservice; 1558 SDKROOT = iphoneos; 1559 TARGETED_DEVICE_FAMILY = "1,2"; 1560 }; 1561 name = Debug; 1562 }; 1563 E7B092DD549FA4FFED8BC20E /* Debug */ = { 1564 isa = XCBuildConfiguration; 1565 baseConfigurationReference = 0BDC16DA7F762F4C5F4BED14 /* Config.xcconfig */; 1566 buildSettings = { 1567 ALWAYS_SEARCH_USER_PATHS = NO; 1568 ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOL_EXTENSIONS = YES; 1569 ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; 1570 CLANG_ANALYZER_NONNULL = YES; 1571 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 1572 CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 1573 CLANG_CXX_LIBRARY = "libc++"; 1574 CLANG_ENABLE_MODULES = YES; 1575 CLANG_ENABLE_OBJC_ARC = YES; 1576 CLANG_ENABLE_OBJC_WEAK = YES; 1577 CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 1578 CLANG_WARN_BOOL_CONVERSION = YES; 1579 CLANG_WARN_COMMA = YES; 1580 CLANG_WARN_CONSTANT_CONVERSION = YES; 1581 CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 1582 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 1583 CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 1584 CLANG_WARN_EMPTY_BODY = YES; 1585 CLANG_WARN_ENUM_CONVERSION = YES; 1586 CLANG_WARN_INFINITE_RECURSION = YES; 1587 CLANG_WARN_INT_CONVERSION = YES; 1588 CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 1589 CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 1590 CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 1591 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 1592 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 1593 CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 1594 CLANG_WARN_STRICT_PROTOTYPES = YES; 1595 CLANG_WARN_SUSPICIOUS_MOVE = YES; 1596 CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 1597 CLANG_WARN_UNREACHABLE_CODE = YES; 1598 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 1599 COPY_PHASE_STRIP = NO; 1600 DEAD_CODE_STRIPPING = YES; 1601 DEBUG_INFORMATION_FORMAT = dwarf; 1602 DEVELOPMENT_TEAM = 7TD7PZBNXP; 1603 ENABLE_STRICT_OBJC_MSGSEND = YES; 1604 ENABLE_TESTABILITY = YES; 1605 ENABLE_USER_SCRIPT_SANDBOXING = YES; 1606 GCC_C_LANGUAGE_STANDARD = gnu11; 1607 GCC_DYNAMIC_NO_PIC = NO; 1608 GCC_NO_COMMON_BLOCKS = YES; 1609 GCC_OPTIMIZATION_LEVEL = 0; 1610 GCC_PREPROCESSOR_DEFINITIONS = ( 1611 "$(inherited)", 1612 "DEBUG=1", 1613 ); 1614 GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 1615 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 1616 GCC_WARN_UNDECLARED_SELECTOR = YES; 1617 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 1618 GCC_WARN_UNUSED_FUNCTION = YES; 1619 GCC_WARN_UNUSED_VARIABLE = YES; 1620 IPHONEOS_DEPLOYMENT_TARGET = 17.5; 1621 MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 1622 MTL_FAST_MATH = YES; 1623 ONLY_ACTIVE_ARCH = YES; 1624 PRODUCT_NAME = "$(TARGET_NAME)"; 1625 SDKROOT = iphoneos; 1626 STRING_CATALOG_GENERATE_SYMBOLS = YES; 1627 SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 1628 SWIFT_EMIT_LOC_STRINGS = YES; 1629 SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 1630 SWIFT_VERSION = 6; 1631 }; 1632 name = Debug; 1633 }; 1634 /* End XCBuildConfiguration section */ 1635 1636 /* Begin XCConfigurationList section */ 1637 0C7AF110B3697D116B91817A /* Build configuration list for PBXNativeTarget "Crossmate Unit Tests" */ = { 1638 isa = XCConfigurationList; 1639 buildConfigurations = ( 1640 42CA2E441989D32BE123F48A /* Debug */, 1641 642190659D822637293D1645 /* Release */, 1642 ); 1643 defaultConfigurationIsVisible = 0; 1644 defaultConfigurationName = Debug; 1645 }; 1646 97D15A585690B87E7C17FF8A /* Build configuration list for PBXNativeTarget "NotificationService" */ = { 1647 isa = XCConfigurationList; 1648 buildConfigurations = ( 1649 C32934743A6313F80D8A4C76 /* Debug */, 1650 68A4416DD8D2ADB28F35E46C /* Release */, 1651 ); 1652 defaultConfigurationIsVisible = 0; 1653 defaultConfigurationName = Debug; 1654 }; 1655 9A436EF03A8593C66A18A832 /* Build configuration list for PBXProject "Crossmate" */ = { 1656 isa = XCConfigurationList; 1657 buildConfigurations = ( 1658 E7B092DD549FA4FFED8BC20E /* Debug */, 1659 209C1E6D178C7EF962FC85A5 /* Release */, 1660 ); 1661 defaultConfigurationIsVisible = 0; 1662 defaultConfigurationName = Debug; 1663 }; 1664 AB7D49875A042FD78EDD157A /* Build configuration list for PBXNativeTarget "Crossmate" */ = { 1665 isa = XCConfigurationList; 1666 buildConfigurations = ( 1667 AF49D30A1B81631106E05429 /* Debug */, 1668 8BC97916898B0BF1E6951C48 /* Release */, 1669 ); 1670 defaultConfigurationIsVisible = 0; 1671 defaultConfigurationName = Debug; 1672 }; 1673 /* End XCConfigurationList section */ 1674 1675 /* Begin XCVersionGroup section */ 1676 F93AC31640C40FCC039570A3 /* CrossmateModel.xcdatamodeld */ = { 1677 isa = XCVersionGroup; 1678 children = ( 1679 927186458ED03FD0C5660765 /* CrossmateModel.xcdatamodel */, 1680 ); 1681 currentVersion = 927186458ED03FD0C5660765 /* CrossmateModel.xcdatamodel */; 1682 path = CrossmateModel.xcdatamodeld; 1683 sourceTree = "<group>"; 1684 versionGroupType = wrapper.xcdatamodel; 1685 }; 1686 /* End XCVersionGroup section */ 1687 }; 1688 rootObject = 9167165F088B7698D1319D3C /* Project object */; 1689 }