From 15e80bdc189f777b28fde5c6c211279d55d3ae58 Mon Sep 17 00:00:00 2001 From: Daniel Tomlinson Date: Wed, 10 Feb 2016 19:32:34 +0000 Subject: [PATCH 1/2] [Pods] Add LetsMove --- app/Podfile | 1 + app/Podfile.lock | 7 +- app/Pods/LetsMove/PFMoveApplication.h | 17 + app/Pods/LetsMove/PFMoveApplication.m | 512 ++ app/Pods/LetsMove/README.md | 178 + .../LetsMove/ca.lproj/MoveApplication.strings | Bin 0 -> 1578 bytes .../LetsMove/cs.lproj/MoveApplication.strings | Bin 0 -> 2056 bytes .../LetsMove/da.lproj/MoveApplication.strings | Bin 0 -> 2054 bytes .../LetsMove/de.lproj/MoveApplication.strings | Bin 0 -> 1618 bytes app/Pods/LetsMove/en.lproj/InfoPlist.strings | 2 + app/Pods/LetsMove/en.lproj/MainMenu.xib | 4208 +++++++++++++++++ .../LetsMove/en.lproj/MoveApplication.strings | Bin 0 -> 2038 bytes .../LetsMove/es.lproj/MoveApplication.strings | Bin 0 -> 1540 bytes .../LetsMove/fr.lproj/MoveApplication.strings | Bin 0 -> 1610 bytes .../LetsMove/hu.lproj/MoveApplication.strings | Bin 0 -> 2106 bytes .../LetsMove/it.lproj/MoveApplication.strings | Bin 0 -> 2092 bytes .../LetsMove/ja.lproj/MoveApplication.strings | Bin 0 -> 1778 bytes .../LetsMove/ko.lproj/MoveApplication.strings | Bin 0 -> 1728 bytes .../LetsMove/mk.lproj/MoveApplication.strings | Bin 0 -> 2104 bytes .../LetsMove/nb.lproj/MoveApplication.strings | Bin 0 -> 2080 bytes .../LetsMove/nl.lproj/MoveApplication.strings | Bin 0 -> 2094 bytes .../LetsMove/pl.lproj/MoveApplication.strings | Bin 0 -> 2112 bytes .../LetsMove/pt.lproj/MoveApplication.strings | Bin 0 -> 2068 bytes .../pt_BR.lproj/MoveApplication.strings | Bin 0 -> 1964 bytes .../LetsMove/ru.lproj/MoveApplication.strings | Bin 0 -> 2060 bytes .../LetsMove/sk.lproj/MoveApplication.strings | Bin 0 -> 2040 bytes .../LetsMove/sr.lproj/MoveApplication.strings | Bin 0 -> 2036 bytes .../LetsMove/sv.lproj/MoveApplication.strings | Bin 0 -> 1978 bytes .../LetsMove/tr.lproj/MoveApplication.strings | Bin 0 -> 2058 bytes .../zh_CN.lproj/MoveApplication.strings | Bin 0 -> 1686 bytes .../zh_TW.lproj/MoveApplication.strings | Bin 0 -> 1694 bytes app/Pods/Manifest.lock | 7 +- app/Pods/Pods.xcodeproj/project.pbxproj | 1621 ++++--- .../Target Support Files/LetsMove/Info.plist | 26 + .../LetsMove/LetsMove-dummy.m | 5 + .../LetsMove/LetsMove-prefix.pch | 4 + .../LetsMove/LetsMove-umbrella.h | 7 + .../LetsMove/LetsMove.modulemap | 6 + .../LetsMove/LetsMove.xcconfig | 6 + .../Pods-CocoaPods-frameworks.sh | 2 + .../Pods-CocoaPods.debug.xcconfig | 7 +- .../Pods-CocoaPods.release.xcconfig | 7 +- .../Pods-CocoaPodsTests.debug.xcconfig | 5 +- .../Pods-CocoaPodsTests.release.xcconfig | 5 +- 44 files changed, 5950 insertions(+), 683 deletions(-) create mode 100644 app/Pods/LetsMove/PFMoveApplication.h create mode 100644 app/Pods/LetsMove/PFMoveApplication.m create mode 100644 app/Pods/LetsMove/README.md create mode 100644 app/Pods/LetsMove/ca.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/cs.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/da.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/de.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/en.lproj/InfoPlist.strings create mode 100644 app/Pods/LetsMove/en.lproj/MainMenu.xib create mode 100644 app/Pods/LetsMove/en.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/es.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/fr.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/hu.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/it.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/ja.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/ko.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/mk.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/nb.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/nl.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/pl.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/pt.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/pt_BR.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/ru.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/sk.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/sr.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/sv.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/tr.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/zh_CN.lproj/MoveApplication.strings create mode 100644 app/Pods/LetsMove/zh_TW.lproj/MoveApplication.strings create mode 100644 app/Pods/Target Support Files/LetsMove/Info.plist create mode 100644 app/Pods/Target Support Files/LetsMove/LetsMove-dummy.m create mode 100644 app/Pods/Target Support Files/LetsMove/LetsMove-prefix.pch create mode 100644 app/Pods/Target Support Files/LetsMove/LetsMove-umbrella.h create mode 100644 app/Pods/Target Support Files/LetsMove/LetsMove.modulemap create mode 100644 app/Pods/Target Support Files/LetsMove/LetsMove.xcconfig diff --git a/app/Podfile b/app/Podfile index 7b7ebee7..81e9ace7 100644 --- a/app/Podfile +++ b/app/Podfile @@ -12,6 +12,7 @@ target "CocoaPods" do # Has 6 warnings about integer precision loss. pod 'ANSIEscapeHelper', :podspec => 'ANSIEscapeHelper.podspec', :inhibit_warnings => true pod 'Sparkle' + pod 'LetsMove' target "CocoaPodsTests" do inherit! :search_paths diff --git a/app/Podfile.lock b/app/Podfile.lock index 28815b7a..c5d24dc0 100644 --- a/app/Podfile.lock +++ b/app/Podfile.lock @@ -3,6 +3,7 @@ PODS: - Fragaria (1.0.1): - Fragaria/unicode (= 1.0.1) - Fragaria/unicode (1.0.1) + - LetsMove (1.20) - Nimble (3.0.0) - Quick (0.8.0) - Sparkle (1.13.0) @@ -10,6 +11,7 @@ PODS: DEPENDENCIES: - ANSIEscapeHelper (from `ANSIEscapeHelper.podspec`) - Fragaria (from `Fragaria.podspec.json`) + - LetsMove - Nimble - Quick - Sparkle @@ -28,10 +30,11 @@ CHECKOUT OPTIONS: SPEC CHECKSUMS: ANSIEscapeHelper: 03afe6f9cb70698b1444d723fcc43d1b7c9a1cc2 Fragaria: c2827df37476ae2d627db69ce1403049686f8e0e + LetsMove: 40dda5f7a19bf9976e150ce304fa5765892bef8f Nimble: 4c353d43735b38b545cbb4cb91504588eb5de926 Quick: 563d0f6ec5f72e394645adb377708639b7dd38ab Sparkle: d04d17a32eaddab19471d0c3d9db15164afdbc6e -PODFILE CHECKSUM: 6e6e64489329403dcef63aa5aaca51d0157ec2f1 +PODFILE CHECKSUM: 182bca6568eaab8fdb1bae50cf0feca51f045ca4 -COCOAPODS: 1.0.0.beta.2 +COCOAPODS: 1.0.0.beta.3 diff --git a/app/Pods/LetsMove/PFMoveApplication.h b/app/Pods/LetsMove/PFMoveApplication.h new file mode 100644 index 00000000..f783fdcb --- /dev/null +++ b/app/Pods/LetsMove/PFMoveApplication.h @@ -0,0 +1,17 @@ +// +// PFMoveApplication.h, version 1.20 +// LetsMove +// +// Created by Andy Kim at Potion Factory LLC on 9/17/09 +// +// The contents of this file are dedicated to the public domain. + +#ifdef __cplusplus +extern "C" { +#endif + +void PFMoveToApplicationsFolderIfNecessary(void); + +#ifdef __cplusplus +} +#endif diff --git a/app/Pods/LetsMove/PFMoveApplication.m b/app/Pods/LetsMove/PFMoveApplication.m new file mode 100644 index 00000000..b7083973 --- /dev/null +++ b/app/Pods/LetsMove/PFMoveApplication.m @@ -0,0 +1,512 @@ +// +// PFMoveApplication.m, version 1.20 +// LetsMove +// +// Created by Andy Kim at Potion Factory LLC on 9/17/09 +// +// The contents of this file are dedicated to the public domain. + +#import "PFMoveApplication.h" + +#import +#import +#import +#import +#import +#import + +// Strings +// These are macros to be able to use custom i18n tools +#define _I10NS(nsstr) NSLocalizedStringFromTable(nsstr, @"MoveApplication", nil) +#define kStrMoveApplicationCouldNotMove _I10NS(@"Could not move to Applications folder") +#define kStrMoveApplicationQuestionTitle _I10NS(@"Move to Applications folder?") +#define kStrMoveApplicationQuestionTitleHome _I10NS(@"Move to Applications folder in your Home folder?") +#define kStrMoveApplicationQuestionMessage _I10NS(@"I can move myself to the Applications folder if you'd like.") +#define kStrMoveApplicationButtonMove _I10NS(@"Move to Applications Folder") +#define kStrMoveApplicationButtonDoNotMove _I10NS(@"Do Not Move") +#define kStrMoveApplicationQuestionInfoWillRequirePasswd _I10NS(@"Note that this will require an administrator password.") +#define kStrMoveApplicationQuestionInfoInDownloadsFolder _I10NS(@"This will keep your Downloads folder uncluttered.") + +// Needs to be defined for compiling under 10.5 SDK +#ifndef NSAppKitVersionNumber10_5 + #define NSAppKitVersionNumber10_5 949 +#endif + +// By default, we use a small control/font for the suppression button. +// If you prefer to use the system default (to match your other alerts), +// set this to 0. +#define PFUseSmallAlertSuppressCheckbox 1 + + +static NSString *AlertSuppressKey = @"moveToApplicationsFolderAlertSuppress"; + + +// Helper functions +static NSString *PreferredInstallLocation(BOOL *isUserDirectory); +static BOOL IsInApplicationsFolder(NSString *path); +static BOOL IsInDownloadsFolder(NSString *path); +static BOOL IsApplicationAtPathRunning(NSString *path); +static BOOL IsApplicationAtPathNested(NSString *path); +static NSString *ContainingDiskImageDevice(NSString *path); +static BOOL Trash(NSString *path); +static BOOL DeleteOrTrash(NSString *path); +static BOOL AuthorizedInstall(NSString *srcPath, NSString *dstPath, BOOL *canceled); +static BOOL CopyBundle(NSString *srcPath, NSString *dstPath); +static NSString *ShellQuotedString(NSString *string); +static void Relaunch(NSString *destinationPath); + +// Main worker function +void PFMoveToApplicationsFolderIfNecessary(void) { + // Skip if user suppressed the alert before + if ([[NSUserDefaults standardUserDefaults] boolForKey:AlertSuppressKey]) return; + + // Path of the bundle + NSString *bundlePath = [[NSBundle mainBundle] bundlePath]; + + // Check if the bundle is embedded in another application + BOOL isNestedApplication = IsApplicationAtPathNested(bundlePath); + + // Skip if the application is already in some Applications folder, + // unless it's inside another app's bundle. + if (IsInApplicationsFolder(bundlePath) && !isNestedApplication) return; + + // File Manager + NSFileManager *fm = [NSFileManager defaultManager]; + + // Are we on a disk image? + NSString *diskImageDevice = ContainingDiskImageDevice(bundlePath); + + // Since we are good to go, get the preferred installation directory. + BOOL installToUserApplications = NO; + NSString *applicationsDirectory = PreferredInstallLocation(&installToUserApplications); + NSString *bundleName = [bundlePath lastPathComponent]; + NSString *destinationPath = [applicationsDirectory stringByAppendingPathComponent:bundleName]; + + // Check if we need admin password to write to the Applications directory + BOOL needAuthorization = ([fm isWritableFileAtPath:applicationsDirectory] == NO); + + // Check if the destination bundle is already there but not writable + needAuthorization |= ([fm fileExistsAtPath:destinationPath] && ![fm isWritableFileAtPath:destinationPath]); + + // Setup the alert + NSAlert *alert = [[[NSAlert alloc] init] autorelease]; + { + NSString *informativeText = nil; + + [alert setMessageText:(installToUserApplications ? kStrMoveApplicationQuestionTitleHome : kStrMoveApplicationQuestionTitle)]; + + informativeText = kStrMoveApplicationQuestionMessage; + + if (needAuthorization) { + informativeText = [informativeText stringByAppendingString:@" "]; + informativeText = [informativeText stringByAppendingString:kStrMoveApplicationQuestionInfoWillRequirePasswd]; + } + else if (IsInDownloadsFolder(bundlePath)) { + // Don't mention this stuff if we need authentication. The informative text is long enough as it is in that case. + informativeText = [informativeText stringByAppendingString:@" "]; + informativeText = [informativeText stringByAppendingString:kStrMoveApplicationQuestionInfoInDownloadsFolder]; + } + + [alert setInformativeText:informativeText]; + + // Add accept button + [alert addButtonWithTitle:kStrMoveApplicationButtonMove]; + + // Add deny button + NSButton *cancelButton = [alert addButtonWithTitle:kStrMoveApplicationButtonDoNotMove]; + [cancelButton setKeyEquivalent:[NSString stringWithFormat:@"%C", 0x1b]]; // Escape key + + // Setup suppression button + [alert setShowsSuppressionButton:YES]; + + if (PFUseSmallAlertSuppressCheckbox) { + NSCell *cell = [[alert suppressionButton] cell]; + [cell setControlSize:NSSmallControlSize]; + [cell setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]]; + } + } + + // Activate app -- work-around for focus issues related to "scary file from internet" OS dialog. + if (![NSApp isActive]) { + [NSApp activateIgnoringOtherApps:YES]; + } + + if ([alert runModal] == NSAlertFirstButtonReturn) { + NSLog(@"INFO -- Moving myself to the Applications folder"); + + // Move + if (needAuthorization) { + BOOL authorizationCanceled; + + if (!AuthorizedInstall(bundlePath, destinationPath, &authorizationCanceled)) { + if (authorizationCanceled) { + NSLog(@"INFO -- Not moving because user canceled authorization"); + return; + } + else { + NSLog(@"ERROR -- Could not copy myself to /Applications with authorization"); + goto fail; + } + } + } + else { + // If a copy already exists in the Applications folder, put it in the Trash + if ([fm fileExistsAtPath:destinationPath]) { + // But first, make sure that it's not running + if (IsApplicationAtPathRunning(destinationPath)) { + // Give the running app focus and terminate myself + NSLog(@"INFO -- Switching to an already running version"); + [[NSTask launchedTaskWithLaunchPath:@"/usr/bin/open" arguments:[NSArray arrayWithObject:destinationPath]] waitUntilExit]; + exit(0); + } + else { + if (!Trash([applicationsDirectory stringByAppendingPathComponent:bundleName])) + goto fail; + } + } + + if (!CopyBundle(bundlePath, destinationPath)) { + NSLog(@"ERROR -- Could not copy myself to %@", destinationPath); + goto fail; + } + } + + // Trash the original app. It's okay if this fails. + // NOTE: This final delete does not work if the source bundle is in a network mounted volume. + // Calling rm or file manager's delete method doesn't work either. It's unlikely to happen + // but it'd be great if someone could fix this. + if (!isNestedApplication && diskImageDevice == nil && !DeleteOrTrash(bundlePath)) { + NSLog(@"WARNING -- Could not delete application after moving it to Applications folder"); + } + + // Relaunch. + Relaunch(destinationPath); + + // Launched from within a disk image? -- unmount (if no files are open after 5 seconds, + // otherwise leave it mounted). + if (diskImageDevice && !isNestedApplication) { + NSString *script = [NSString stringWithFormat:@"(/bin/sleep 5 && /usr/bin/hdiutil detach %@) &", ShellQuotedString(diskImageDevice)]; + [NSTask launchedTaskWithLaunchPath:@"/bin/sh" arguments:[NSArray arrayWithObjects:@"-c", script, nil]]; + } + + exit(0); + } + // Save the alert suppress preference if checked + else if ([[alert suppressionButton] state] == NSOnState) { + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:AlertSuppressKey]; + } + + return; + +fail: + { + // Show failure message + alert = [[[NSAlert alloc] init] autorelease]; + [alert setMessageText:kStrMoveApplicationCouldNotMove]; + [alert runModal]; + } +} + +#pragma mark - +#pragma mark Helper Functions + +static NSString *PreferredInstallLocation(BOOL *isUserDirectory) { + // Return the preferred install location. + // Assume that if the user has a ~/Applications folder, they'd prefer their + // applications to go there. + + NSFileManager *fm = [NSFileManager defaultManager]; + + NSArray *userApplicationsDirs = NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSUserDomainMask, YES); + + if ([userApplicationsDirs count] > 0) { + NSString *userApplicationsDir = [userApplicationsDirs objectAtIndex:0]; + BOOL isDirectory; + + if ([fm fileExistsAtPath:userApplicationsDir isDirectory:&isDirectory] && isDirectory) { + // User Applications directory exists. Get the directory contents. + NSArray *contents = [fm contentsOfDirectoryAtPath:userApplicationsDir error:NULL]; + + // Check if there is at least one ".app" inside the directory. + for (NSString *contentsPath in contents) { + if ([[contentsPath pathExtension] isEqualToString:@"app"]) { + if (isUserDirectory) *isUserDirectory = YES; + return [userApplicationsDir stringByResolvingSymlinksInPath]; + } + } + } + } + + // No user Applications directory in use. Return the machine local Applications directory + if (isUserDirectory) *isUserDirectory = NO; + + return [[NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSLocalDomainMask, YES) lastObject] stringByResolvingSymlinksInPath]; +} + +static BOOL IsInApplicationsFolder(NSString *path) { + // Check all the normal Application directories + NSArray *applicationDirs = NSSearchPathForDirectoriesInDomains(NSApplicationDirectory, NSAllDomainsMask, YES); + for (NSString *appDir in applicationDirs) { + if ([path hasPrefix:appDir]) return YES; + } + + // Also, handle the case that the user has some other Application directory (perhaps on a separate data partition). + if ([[path pathComponents] containsObject:@"Applications"]) return YES; + + return NO; +} + +static BOOL IsInDownloadsFolder(NSString *path) { + NSArray *downloadDirs = NSSearchPathForDirectoriesInDomains(NSDownloadsDirectory, NSAllDomainsMask, YES); + for (NSString *downloadsDirPath in downloadDirs) { + if ([path hasPrefix:downloadsDirPath]) return YES; + } + + return NO; +} + +static BOOL IsApplicationAtPathRunning(NSString *bundlePath) { + bundlePath = [bundlePath stringByStandardizingPath]; + +#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5 + // Use the new API on 10.6 or higher to determine if the app is already running + if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_5) { + for (NSRunningApplication *runningApplication in [[NSWorkspace sharedWorkspace] runningApplications]) { + NSString *runningAppBundlePath = [[[runningApplication bundleURL] path] stringByStandardizingPath]; + if ([runningAppBundlePath isEqualToString:bundlePath]) { + return YES; + } + } + return NO; + } +#endif + // Use the shell to determine if the app is already running on systems 10.5 or lower + NSString *script = [NSString stringWithFormat:@"/bin/ps ax -o comm | /usr/bin/grep %@/ | /usr/bin/grep -v grep >/dev/null", ShellQuotedString(bundlePath)]; + NSTask *task = [NSTask launchedTaskWithLaunchPath:@"/bin/sh" arguments:[NSArray arrayWithObjects:@"-c", script, nil]]; + [task waitUntilExit]; + + // If the task terminated with status 0, it means that the final grep produced 1 or more lines of output. + // Which means that the app is already running + return [task terminationStatus] == 0; +} + +static BOOL IsApplicationAtPathNested(NSString *path) { + NSString *containingPath = [path stringByDeletingLastPathComponent]; + + NSArray *components = [containingPath pathComponents]; + for (NSString *component in components) { + if ([[component pathExtension] isEqualToString:@"app"]) { + return YES; + } + } + + return NO; +} + +static NSString *ContainingDiskImageDevice(NSString *path) { + NSString *containingPath = [path stringByDeletingLastPathComponent]; + + struct statfs fs; + if (statfs([containingPath fileSystemRepresentation], &fs) || (fs.f_flags & MNT_ROOTFS)) + return nil; + + NSString *device = [[NSFileManager defaultManager] stringWithFileSystemRepresentation:fs.f_mntfromname length:strlen(fs.f_mntfromname)]; + + NSTask *hdiutil = [[[NSTask alloc] init] autorelease]; + [hdiutil setLaunchPath:@"/usr/bin/hdiutil"]; + [hdiutil setArguments:[NSArray arrayWithObjects:@"info", @"-plist", nil]]; + [hdiutil setStandardOutput:[NSPipe pipe]]; + [hdiutil launch]; + [hdiutil waitUntilExit]; + + NSData *data = [[[hdiutil standardOutput] fileHandleForReading] readDataToEndOfFile]; + NSDictionary *info = nil; +#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5 + if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_5) { + info = [NSPropertyListSerialization propertyListWithData:data options:NSPropertyListImmutable format:NULL error:NULL]; + } + else { +#endif +#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10 + info = [NSPropertyListSerialization propertyListFromData:data mutabilityOption:NSPropertyListImmutable format:NULL errorDescription:NULL]; +#endif +#if MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_5 + } +#endif + + if (![info isKindOfClass:[NSDictionary class]]) return nil; + + NSArray *images = (NSArray *)[info objectForKey:@"images"]; + if (![images isKindOfClass:[NSArray class]]) return nil; + + for (NSDictionary *image in images) { + if (![image isKindOfClass:[NSDictionary class]]) return nil; + + id systemEntities = [image objectForKey:@"system-entities"]; + if (![systemEntities isKindOfClass:[NSArray class]]) return nil; + + for (NSDictionary *systemEntity in systemEntities) { + if (![systemEntity isKindOfClass:[NSDictionary class]]) return nil; + + NSString *devEntry = [systemEntity objectForKey:@"dev-entry"]; + if (![devEntry isKindOfClass:[NSString class]]) return nil; + + if ([devEntry isEqualToString:device]) + return device; + } + } + + return nil; +} + +static BOOL Trash(NSString *path) { + BOOL result = NO; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_8 + if (floor(NSAppKitVersionNumber) >= NSAppKitVersionNumber10_8) { + result = [[NSFileManager defaultManager] trashItemAtURL:[NSURL fileURLWithPath:path] resultingItemURL:NULL error:NULL]; + } +#endif +#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11 + if (!result) { + result = [[NSWorkspace sharedWorkspace] performFileOperation:NSWorkspaceRecycleOperation + source:[path stringByDeletingLastPathComponent] + destination:@"" + files:[NSArray arrayWithObject:[path lastPathComponent]] + tag:NULL]; + } +#endif + if (!result) { + NSLog(@"ERROR -- Could not trash '%@'", path); + } + + return result; +} + +static BOOL DeleteOrTrash(NSString *path) { + NSError *error; + + if ([[NSFileManager defaultManager] removeItemAtPath:path error:&error]) { + return YES; + } + else { + NSLog(@"WARNING -- Could not delete '%@': %@", path, [error localizedDescription]); + return Trash(path); + } +} + +static BOOL AuthorizedInstall(NSString *srcPath, NSString *dstPath, BOOL *canceled) { + if (canceled) *canceled = NO; + + // Make sure that the destination path is an app bundle. We're essentially running 'sudo rm -rf' + // so we really don't want to fuck this up. + if (![[dstPath pathExtension] isEqualToString:@"app"]) return NO; + + // Do some more checks + if ([[dstPath stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length] == 0) return NO; + if ([[srcPath stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length] == 0) return NO; + + int pid, status; + AuthorizationRef myAuthorizationRef; + + // Get the authorization + OSStatus err = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &myAuthorizationRef); + if (err != errAuthorizationSuccess) return NO; + + AuthorizationItem myItems = {kAuthorizationRightExecute, 0, NULL, 0}; + AuthorizationRights myRights = {1, &myItems}; + AuthorizationFlags myFlags = (AuthorizationFlags)(kAuthorizationFlagInteractionAllowed | kAuthorizationFlagExtendRights | kAuthorizationFlagPreAuthorize); + + err = AuthorizationCopyRights(myAuthorizationRef, &myRights, NULL, myFlags, NULL); + if (err != errAuthorizationSuccess) { + if (err == errAuthorizationCanceled && canceled) + *canceled = YES; + goto fail; + } + + static OSStatus (*security_AuthorizationExecuteWithPrivileges)(AuthorizationRef authorization, const char *pathToTool, + AuthorizationFlags options, char * const *arguments, + FILE **communicationsPipe) = NULL; + if (!security_AuthorizationExecuteWithPrivileges) { + // On 10.7, AuthorizationExecuteWithPrivileges is deprecated. We want to still use it since there's no + // good alternative (without requiring code signing). We'll look up the function through dyld and fail + // if it is no longer accessible. If Apple removes the function entirely this will fail gracefully. If + // they keep the function and throw some sort of exception, this won't fail gracefully, but that's a + // risk we'll have to take for now. + security_AuthorizationExecuteWithPrivileges = (OSStatus (*)(AuthorizationRef, const char*, + AuthorizationFlags, char* const*, + FILE **)) dlsym(RTLD_DEFAULT, "AuthorizationExecuteWithPrivileges"); + } + if (!security_AuthorizationExecuteWithPrivileges) goto fail; + + // Delete the destination + { + char *args[] = {"-rf", (char *)[dstPath fileSystemRepresentation], NULL}; + err = security_AuthorizationExecuteWithPrivileges(myAuthorizationRef, "/bin/rm", kAuthorizationFlagDefaults, args, NULL); + if (err != errAuthorizationSuccess) goto fail; + + // Wait until it's done + pid = wait(&status); + if (pid == -1 || !WIFEXITED(status)) goto fail; // We don't care about exit status as the destination most likely does not exist + } + + // Copy + { + char *args[] = {"-pR", (char *)[srcPath fileSystemRepresentation], (char *)[dstPath fileSystemRepresentation], NULL}; + err = security_AuthorizationExecuteWithPrivileges(myAuthorizationRef, "/bin/cp", kAuthorizationFlagDefaults, args, NULL); + if (err != errAuthorizationSuccess) goto fail; + + // Wait until it's done + pid = wait(&status); + if (pid == -1 || !WIFEXITED(status) || WEXITSTATUS(status)) goto fail; + } + + AuthorizationFree(myAuthorizationRef, kAuthorizationFlagDefaults); + return YES; + +fail: + AuthorizationFree(myAuthorizationRef, kAuthorizationFlagDefaults); + return NO; +} + +static BOOL CopyBundle(NSString *srcPath, NSString *dstPath) { + NSFileManager *fm = [NSFileManager defaultManager]; + NSError *error = nil; + + if ([fm copyItemAtPath:srcPath toPath:dstPath error:&error]) { + return YES; + } + else { + NSLog(@"ERROR -- Could not copy '%@' to '%@' (%@)", srcPath, dstPath, error); + return NO; + } +} + +static NSString *ShellQuotedString(NSString *string) { + return [NSString stringWithFormat:@"'%@'", [string stringByReplacingOccurrencesOfString:@"'" withString:@"'\\''"]]; +} + +static void Relaunch(NSString *destinationPath) { + // The shell script waits until the original app process terminates. + // This is done so that the relaunched app opens as the front-most app. + int pid = [[NSProcessInfo processInfo] processIdentifier]; + + // Command run just before running open /final/path + NSString *preOpenCmd = @""; + + NSString *quotedDestinationPath = ShellQuotedString(destinationPath); + + // OS X >=10.5: + // Before we launch the new app, clear xattr:com.apple.quarantine to avoid + // duplicate "scary file from the internet" dialog. + if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_5) { + // Add the -r flag on 10.6 + preOpenCmd = [NSString stringWithFormat:@"/usr/bin/xattr -d -r com.apple.quarantine %@", quotedDestinationPath]; + } + else { + preOpenCmd = [NSString stringWithFormat:@"/usr/bin/xattr -d com.apple.quarantine %@", quotedDestinationPath]; + } + + NSString *script = [NSString stringWithFormat:@"(while /bin/kill -0 %d >&/dev/null; do /bin/sleep 0.1; done; %@; /usr/bin/open %@) &", pid, preOpenCmd, quotedDestinationPath]; + + [NSTask launchedTaskWithLaunchPath:@"/bin/sh" arguments:[NSArray arrayWithObjects:@"-c", script, nil]]; +} diff --git a/app/Pods/LetsMove/README.md b/app/Pods/LetsMove/README.md new file mode 100644 index 00000000..a4128fc2 --- /dev/null +++ b/app/Pods/LetsMove/README.md @@ -0,0 +1,178 @@ +LetsMove +======== + +A sample project that demonstrates how to move a running Mac OS X application to the Applications folder. + +![Screenshot](http://i.imgur.com/euTRZiI.png) + + +Requirements +------------ +Builds and runs on Mac OS X 10.5 or higher. Does NOT support sandboxed applications. + + +Usage +----- + +Copy the following files into your project: + +- PFMoveApplication.h +- PFMoveApplication.m + +In your app delegate's "-[applicationWillFinishLaunching:]" method, call the PFMoveToApplicationsFolderIfNecessary function at the very top. + +If your project has ARC enabled, you'll want to disable ARC on the above files. You can do so by adding -fno-objc-arc compiler flag to your PFMoveApplication.m source file. See http://stackoverflow.com/questions/6646052/how-can-i-disable-arc-for-a-single-file-in-a-project/6658549#6658549 + +If your application is localized, also copy the 'MoveApplication.string' files into your project. + +Link your application against Security.framework. + +License +------- +Public domain + + + +Version History +--------------- + +* 1.20 + - Support for applications bundled inside another application + - Brazilian Portuguese localization slightly updated + - Build warnings fixed + +* 1.19 + - Slovak localization added + +* 1.18 + - Catalan localization added + +* 1.17 + - Tranditional Chinese localization added. + +* 1.16 + - Deprecation warning that appears when minimum deployment target is set to OS X 10.10 taken care of + +* 1.15 + - Swedish localization added + +* 1.14 + - Hugarian, Serbian, and Turkish localizations added + - Macedonian localization added + +* 1.13 + - Polish localization added + +* 1.12 + - Use country code based .lproj directories + - Make it compile for projects that don't use precompiled headers to import AppKit.framework + - Minor adjustment to Dutch localization + - Warning fixes in example project + +* 1.11 + - Objective-C++ compatibility + +* 1.10 + - Fixed deprecation warnings that show up when building against the OS X 10.9 SDK. + +* 1.9 + - Removed OS X 10.4 support + - Properly detect if the running app is in a disk image + - Fixed a bug where if the app's name contained a quote, the app could not be moved + - After a successful move, delete the application instead of moving it to the Trash. + - Other fixes and improvements + +* 1.8 + - If the app is already there in the Applications folder but not writable, request authentication from user + - Added Korean localization + +* 1.7.2 + - Fixed an exception that could happen. + +* 1.7.1 + - Refactoring + +* 1.7 + - Only move to ~/Appilcations directory if an app is already in there. + +* 1.6.3 + - Function calls deprecated in 10.7 no longer cause compile time warnings. + - Added Simplified Chinese and European Portuguese localizations + +* 1.6.2 + - Garbage collection compatibility added + - Use a new method to check if an application is already running on Mac OS X 10.6 systems or higher + +* 1.6.1 + - Use exit(0) to terminate the app before relaunching instead of [NSApp terminate:]. We don't want applicationShouldTerminate or applicationWillTerminate NSApplication delegate methods to be called, possibly introducing side effects. + +* 1.6 + - Resolve any aliases when finding the Applications directory + +* 1.5.2 + - Cleaned up the code a bit. Almost functionally equivalent to 1.5.1. + +* 1.5.1 + - Fixed a bug with clearing the quarantine file attribute on Mac OS X 10.5 + +* 1.5 + - Don't prompt to move the application if it has "Applications" in its path somewhere + +* 1.4 + - Mac OS X 10.5 compatibility fixes + +* 1.3 + - Fixed a rare bug in the shell script that checks to see if the app is already running + - Clear quarantine flag after copying + - Compile time option to show normal sized alert supress checkbox button + - German, Danish, and Norwegian localizations added + +* 1.2 + - Copy application from disk image then unmount disk image + - Spanish, French, Dutch, and Russian localizations + +* 1.1 + - Prefers ~/Applications over /Applications if it exists + - Escape key pushes the "Do Not Move" button + +* 1.0 + - First release + + +Code Contributors: +------------- +* Andy Kim +* John Brayton +* Chad Sellers +* Kevin LaCoste +* Rasmus Andersson +* Timothy J. Wood +* Matt Gallagher +* Whitney Young +* Nick Moore +* Nicholas Riley + + +Translators: +------------ +* Eita Hayashi (Japanese) +* Gleb M. Borisov (Russian) +* Wouter Broekhof (Dutch) +* Rasmus Andersson / Spotify (French and Spanish) +* Markus Kirschner (German) +* Fredrik Nannestad (Danish) +* Georg Alexander Bøe (Norwegian) +* Marco Improda (Italian) +* Venj Chu (Simplified Chinese) +* Sérgio Miranda (European Portuguese) +* Victor Figueiredo and BR Lingo (Brazilian Portuguese) +* AppLingua (Korean) +* Czech X Team (Czech) +* Marek Telecki (Polish) +* Petar Vlahu (Macedonian) +* Václav Slavík (Hungarian, Serbian, and Turkish) +* Erik Vikström (Swedish) +* Inndy Lin (Traditional Chinese) +* aONe (Catalan) +* Marek Hrusovsky (Slovak) + diff --git a/app/Pods/LetsMove/ca.lproj/MoveApplication.strings b/app/Pods/LetsMove/ca.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..e051120905de40c2478d1a9b78027e4da5bfc3cd GIT binary patch literal 1578 zcmcJP%TB^z5QS&$Q#5Q`=?f5JP-AqVD_)?1BGtAi6p*L$RoodDuH38NnV(8i!9b#E zn)z=tXXec1^P^>_HnOQ@*0;zC)+I7W&MaY7vWl!@_k5Y9*0Y$il+(f{+zePrH?gs` z*dOt??Ao;^wr@k;N9d011{B#Yc^RXd@x^Gy>?41redGvZG!kBF-^YsZEA-wsddu3j z2ilpV2~+m3kn+9h%{tu5!sQaTK(1oXZGoQ&$OFy;6D1Lem+csd@Kw4Ce3}x6I942Y z*f^|t*s%xh6VO7;aURaS>#2XXt8QgnT{QuzKr1tOv}-Q@E28b=Sa}^fG)xuEg;32ySk)w%BQ+BuXI1@> zF8Pf;Uz!y;XNA8H-K<(y2Jf*p;hX!u|7&lJmb}JHn$*-;%3|n0tx|jBZ0eXj?B%>K zIS-R)ofmyaU3E&A8PSYM9iL#SUU!;Xb8s@G>^A3V@S?}Px>`QSzh-pu_YJ%1_k!Co iy)R3fI$e>RfG0hns;)KlUR`Qd$VOr>ej7WNZTkYBbQ&Z8 literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/cs.lproj/MoveApplication.strings b/app/Pods/LetsMove/cs.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..164e381664ebd14c9a44d5f1679ec1e81ca2fa34 GIT binary patch literal 2056 zcmd6o%}(1u6oqfLyh1mlY>-e}_C=_wK&V}`s#LmQ=@LVX;|axfP`c>5X4wU=(Dplb zVqt!Yf<#ng*)zT~bN|lVbN~F_wk-?x$)pgyfse`D*1dF%x8;N^N&m>T*6f+u&q3)v%7!eISUBe7(01@|123O8-hH>N{K=D# zj5D{^_r3F3{?0t&b$RmvAC%L`c%Ai%jMSdP6XXel#>Sq{)vyR;QfKGH*V?9|o3fjO z{xwpc9i1~YH@vSLfq?B|Y4;`LLr7*fP}8YZu$2evLAS%R%i6!QbwFnB-rSUr=W| zFom(BEjTR>e#8F5O{H)-CFB^;@upuD>IIj0tv;lPZg;eRmyx(9j17;vocd~?LBA4$;P=K1T` ory>{XGF>f{=n3`(S%!z|JPY(+(c|v(Bz2)N)@3tw&n{y;5QXQOrt5-RWj6{=bgDj?ck@B%4zVmG!)6DLt#IM2XU>33#r*(o4J zv=Or6?9R^4&zYIy$KNM*Xu-bPJ?}f-B~NOV)$FG>L$b8o5@ZRIAGYSL^D)wjRf^6r zvO_zu0~^>GHx^d7cEwtDO1F}-s#yj5gyktZIUa||a-@~bIT^9iU0EHlKjk;DYb;jo zEucH$k*yJ$Yi`%Rla&H#iA7mgjKRKp24mjCCNtUnK%@u6`+qY(_uPb}a=zhzNfccc z7frlf4*QDa68}P02z1z&pfx9=0_56C)RsAVyH!My>+YJ|7WU3-tSYJ=$GuFi*pJbh zG%;*fs^o@FV=POLW!KuhM?3S5RJSBV5$u6H=N`k%WhwY8n*CI{t!sfM=3mHEtg$`6AA23~nylqVHICjg`-z9hPTh>l$6MFAkIld4 zyuW-RFGUW{m`ib#rayPyUGZP=1eh|lU(8kRtI$mFkUD5?E7z}`PsQb`{uG@#&&v17 z7888-nr+aVm}WQn6~DKhKQOetHDwO{sjgoOn55Vwte>hIY{_SsJ#+&+Vm_%0>y z{tSryS436tuNeRSng#!c-EqEXau?FuXq_WzaZ$f-(AJks$aHKGzr+#A3~!NRLW6!p YP?OV5iKg{igYgKyoDp5&cH{K?0Z}_)uK)l5 literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/de.lproj/MoveApplication.strings b/app/Pods/LetsMove/de.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..2163f8d7324e4b6d0bd7e1d0eb9a9de9ba8c5a8e GIT binary patch literal 1618 zcmbu9O>PrG5QS^aDO%pJA-MoT$iYJKf`CNCe&QL&qj<*PjIqLbbB3%Cn*Rad?Ds=9vv8rVBq*vjTsTC$dT$Jj7_w~ATEEZNY$^3AQbi52YC?6!8x$&{Jy zR<^VO>o@!cHo`);hghwdwOFk9zh>{o@3wf6Me9Ci9<^qb+?U2rcwBH}NyLV)vJ?Br zs>Djsk|SJ#Vq!BauRKojc(PK|Q?R_Y7mi3gF0d274~*isMSRi2p_A-aJi>GKH0Hik z5XP-ejopEyLW?Q;p;`y7P~jN$5(sqn4s0uX34`Q{-{3<$vbJOAD; literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/en.lproj/InfoPlist.strings b/app/Pods/LetsMove/en.lproj/InfoPlist.strings new file mode 100644 index 00000000..477b28ff --- /dev/null +++ b/app/Pods/LetsMove/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/app/Pods/LetsMove/en.lproj/MainMenu.xib b/app/Pods/LetsMove/en.lproj/MainMenu.xib new file mode 100644 index 00000000..91ffec69 --- /dev/null +++ b/app/Pods/LetsMove/en.lproj/MainMenu.xib @@ -0,0 +1,4208 @@ + + + + 1060 + 10C540 + 740 + 1038.25 + 458.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 740 + + + YES + + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + AMainMenu + + YES + + + LetsMove + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + LetsMove + + YES + + + About LetsMove + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences… + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide LetsMove + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit LetsMove + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + File + + YES + + + New + n + 1048576 + 2147483647 + + + + + + Open… + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + Open Recent + + YES + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save + s + 1048576 + 2147483647 + + + + + + Save As… + S + 1179648 + 2147483647 + + + + + + Revert to Saved + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup... + P + 1179648 + 2147483647 + + + + + + + Print… + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + Edit + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1179648 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Paste and Match Style + V + 1572864 + 2147483647 + + + + + + Delete + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + Find + + YES + + + Find… + f + 1048576 + 2147483647 + + + 1 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1179648 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling and Grammar + + 1048576 + 2147483647 + + + submenuAction: + + Spelling and Grammar + + YES + + + Show Spelling and Grammar + : + 1048576 + 2147483647 + + + + + + Check Document Now + ; + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Check Spelling While Typing + + 1048576 + 2147483647 + + + + + + Check Grammar With Spelling + + 1048576 + 2147483647 + + + + + + Correct Spelling Automatically + + 2147483647 + + + + + + + + + Substitutions + + 1048576 + 2147483647 + + + submenuAction: + + Substitutions + + YES + + + Show Substitutions + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Smart Copy/Paste + f + 1048576 + 2147483647 + + + 1 + + + + Smart Quotes + g + 1048576 + 2147483647 + + + 2 + + + + Smart Dashes + + 2147483647 + + + + + + Smart Links + G + 1179648 + 2147483647 + + + 3 + + + + Text Replacement + + 2147483647 + + + + + + + + + Transformations + + 2147483647 + + + submenuAction: + + Transformations + + YES + + + Make Upper Case + + 2147483647 + + + + + + Make Lower Case + + 2147483647 + + + + + + Capitalize + + 2147483647 + + + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + Speech + + YES + + + Start Speaking + + 1048576 + 2147483647 + + + + + + Stop Speaking + + 1048576 + 2147483647 + + + + + + + + + + + + Format + + 2147483647 + + + submenuAction: + + Format + + YES + + + Font + + 2147483647 + + + submenuAction: + + Font + + YES + + + Show Fonts + t + 1048576 + 2147483647 + + + + + + Bold + b + 1048576 + 2147483647 + + + 2 + + + + Italic + i + 1048576 + 2147483647 + + + 1 + + + + Underline + u + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Bigger + + + 1048576 + 2147483647 + + + 3 + + + + Smaller + - + 1048576 + 2147483647 + + + 4 + + + + YES + YES + + + 2147483647 + + + + + + Kern + + 2147483647 + + + submenuAction: + + Kern + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Tighten + + 2147483647 + + + + + + Loosen + + 2147483647 + + + + + + + + + Ligature + + 2147483647 + + + submenuAction: + + Ligature + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Use All + + 2147483647 + + + + + + + + + Baseline + + 2147483647 + + + submenuAction: + + Baseline + + YES + + + Use Default + + 2147483647 + + + + + + Superscript + + 2147483647 + + + + + + Subscript + + 2147483647 + + + + + + Raise + + 2147483647 + + + + + + Lower + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Colors + C + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Copy Style + c + 1572864 + 2147483647 + + + + + + Paste Style + v + 1572864 + 2147483647 + + + + + _NSFontMenu + + + + + Text + + 2147483647 + + + submenuAction: + + Text + + YES + + + Align Left + { + 1048576 + 2147483647 + + + + + + Center + | + 1048576 + 2147483647 + + + + + + Justify + + 2147483647 + + + + + + Align Right + } + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Writing Direction + + 2147483647 + + + submenuAction: + + Writing Direction + + YES + + + YES + Paragraph + + 2147483647 + + + + + + CURlZmF1bHQ + + 2147483647 + + + + + + CUxlZnQgdG8gUmlnaHQ + + 2147483647 + + + + + + CVJpZ2h0IHRvIExlZnQ + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + YES + Selection + + 2147483647 + + + + + + CURlZmF1bHQ + + 2147483647 + + + + + + CUxlZnQgdG8gUmlnaHQ + + 2147483647 + + + + + + CVJpZ2h0IHRvIExlZnQ + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Ruler + + 2147483647 + + + + + + Copy Ruler + c + 1310720 + 2147483647 + + + + + + Paste Ruler + v + 1310720 + 2147483647 + + + + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + YES + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Customize Toolbar… + + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 2147483647 + + + submenuAction: + + Help + + YES + + + LetsMove Help + ? + 1048576 + 2147483647 + + + + + _NSHelpMenu + + + + _NSMainMenu + + + 15 + 2 + {{335, 390}, {480, 360}} + 1954021376 + LetsMove + NSWindow + + {3.40282e+38, 3.40282e+38} + + + 256 + + YES + + + 268 + {{105, 161}, {271, 57}} + + YES + + 68288064 + 138413056 + Let's move! + + LucidaGrande + 48 + 16 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2ODY1AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + {480, 360} + + + {{0, 0}, {1920, 1178}} + {3.40282e+38, 3.40282e+38} + + + LetsMoveAppDelegate + + + NSFontManager + + + + + YES + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + print: + + + + 86 + + + + runPageLayout: + + + + 87 + + + + clearRecentDocuments: + + + + 127 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + performClose: + + + + 193 + + + + toggleContinuousSpellChecking: + + + + 222 + + + + undo: + + + + 223 + + + + copy: + + + + 224 + + + + checkSpelling: + + + + 225 + + + + paste: + + + + 226 + + + + stopSpeaking: + + + + 227 + + + + cut: + + + + 228 + + + + showGuessPanel: + + + + 230 + + + + redo: + + + + 231 + + + + selectAll: + + + + 232 + + + + startSpeaking: + + + + 233 + + + + delete: + + + + 235 + + + + performZoom: + + + + 240 + + + + performFindPanelAction: + + + + 241 + + + + centerSelectionInVisibleArea: + + + + 245 + + + + toggleGrammarChecking: + + + + 347 + + + + toggleSmartInsertDelete: + + + + 355 + + + + toggleAutomaticQuoteSubstitution: + + + + 356 + + + + toggleAutomaticLinkDetection: + + + + 357 + + + + saveDocument: + + + + 362 + + + + saveDocumentAs: + + + + 363 + + + + revertDocumentToSaved: + + + + 364 + + + + runToolbarCustomizationPalette: + + + + 365 + + + + toggleToolbarShown: + + + + 366 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + newDocument: + + + + 373 + + + + openDocument: + + + + 374 + + + + addFontTrait: + + + + 421 + + + + addFontTrait: + + + + 422 + + + + modifyFont: + + + + 423 + + + + orderFrontFontPanel: + + + + 424 + + + + modifyFont: + + + + 425 + + + + raiseBaseline: + + + + 426 + + + + lowerBaseline: + + + + 427 + + + + copyFont: + + + + 428 + + + + subscript: + + + + 429 + + + + superscript: + + + + 430 + + + + tightenKerning: + + + + 431 + + + + underline: + + + + 432 + + + + orderFrontColorPanel: + + + + 433 + + + + useAllLigatures: + + + + 434 + + + + loosenKerning: + + + + 435 + + + + pasteFont: + + + + 436 + + + + unscript: + + + + 437 + + + + useStandardKerning: + + + + 438 + + + + useStandardLigatures: + + + + 439 + + + + turnOffLigatures: + + + + 440 + + + + turnOffKerning: + + + + 441 + + + + terminate: + + + + 449 + + + + toggleAutomaticSpellingCorrection: + + + + 456 + + + + orderFrontSubstitutionsPanel: + + + + 458 + + + + toggleAutomaticDashSubstitution: + + + + 461 + + + + toggleAutomaticTextReplacement: + + + + 463 + + + + uppercaseWord: + + + + 464 + + + + capitalizeWord: + + + + 467 + + + + lowercaseWord: + + + + 468 + + + + pasteAsPlainText: + + + + 486 + + + + performFindPanelAction: + + + + 487 + + + + performFindPanelAction: + + + + 488 + + + + performFindPanelAction: + + + + 489 + + + + showHelp: + + + + 493 + + + + delegate + + + + 495 + + + + alignCenter: + + + + 518 + + + + pasteRuler: + + + + 519 + + + + toggleRuler: + + + + 520 + + + + alignRight: + + + + 521 + + + + copyRuler: + + + + 522 + + + + alignJustified: + + + + 523 + + + + alignLeft: + + + + 524 + + + + makeBaseWritingDirectionNatural: + + + + 525 + + + + makeBaseWritingDirectionLeftToRight: + + + + 526 + + + + makeBaseWritingDirectionRightToLeft: + + + + 527 + + + + makeTextWritingDirectionNatural: + + + + 528 + + + + makeTextWritingDirectionLeftToRight: + + + + 529 + + + + makeTextWritingDirectionRightToLeft: + + + + 530 + + + + window + + + + 535 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + + + + + + + + + 19 + + + YES + + + + + + 56 + + + YES + + + + + + 217 + + + YES + + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + + + + + + + + + 75 + + + + + 80 + + + + + 78 + + + + + 72 + + + + + 82 + + + + + 124 + + + YES + + + + + + 77 + + + + + 73 + + + + + 79 + + + + + 112 + + + + + 74 + + + + + 125 + + + YES + + + + + + 126 + + + + + 205 + + + YES + + + + + + + + + + + + + + + + + + + + 202 + + + + + 198 + + + + + 207 + + + + + 214 + + + + + 199 + + + + + 203 + + + + + 197 + + + + + 206 + + + + + 215 + + + + + 218 + + + YES + + + + + + 216 + + + YES + + + + + + 200 + + + YES + + + + + + + + + + + 219 + + + + + 201 + + + + + 204 + + + + + 220 + + + YES + + + + + + + + + + 213 + + + + + 210 + + + + + 221 + + + + + 208 + + + + + 209 + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + + + 144 + + + + + 129 + + + + + 143 + + + + + 236 + + + + + 131 + + + YES + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 24 + + + YES + + + + + + + + + 92 + + + + + 5 + + + + + 239 + + + + + 23 + + + + + 295 + + + YES + + + + + + 296 + + + YES + + + + + + + 297 + + + + + 298 + + + + + 211 + + + YES + + + + + + 212 + + + YES + + + + + + + 195 + + + + + 196 + + + + + 346 + + + + + 348 + + + YES + + + + + + 349 + + + YES + + + + + + + + + + + + 350 + + + + + 351 + + + + + 354 + + + + + 371 + + + YES + + + + + + 372 + + + YES + + + + + + 375 + + + YES + + + + + + 376 + + + YES + + + + + + + 377 + + + YES + + + + + + 388 + + + YES + + + + + + + + + + + + + + + + + + + + + 389 + + + + + 390 + + + + + 391 + + + + + 392 + + + + + 393 + + + + + 394 + + + + + 395 + + + + + 396 + + + + + 397 + + + YES + + + + + + 398 + + + YES + + + + + + 399 + + + YES + + + + + + 400 + + + + + 401 + + + + + 402 + + + + + 403 + + + + + 404 + + + + + 405 + + + YES + + + + + + + + + + 406 + + + + + 407 + + + + + 408 + + + + + 409 + + + + + 410 + + + + + 411 + + + YES + + + + + + + + 412 + + + + + 413 + + + + + 414 + + + + + 415 + + + YES + + + + + + + + + 416 + + + + + 417 + + + + + 418 + + + + + 419 + + + + + 420 + + + + + 450 + + + YES + + + + + + 451 + + + YES + + + + + + + + 452 + + + + + 453 + + + + + 454 + + + + + 457 + + + + + 459 + + + + + 460 + + + + + 462 + + + + + 465 + + + + + 466 + + + + + 485 + + + + + 490 + + + YES + + + + + + 491 + + + YES + + + + + + 492 + + + + + 494 + + + + + 496 + + + YES + + + + + + 497 + + + YES + + + + + + + + + + + + + + + 498 + + + + + 499 + + + + + 500 + + + + + 501 + + + + + 502 + + + + + 503 + + + YES + + + + + + 504 + + + + + 505 + + + + + 506 + + + + + 507 + + + + + 508 + + + YES + + + + + + + + + + + + + + 509 + + + + + 510 + + + + + 511 + + + + + 512 + + + + + 513 + + + + + 514 + + + + + 515 + + + + + 516 + + + + + 517 + + + + + 533 + + + YES + + + + + + 534 + + + + + + + YES + + YES + -3.IBPluginDependency + 112.IBPluginDependency + 112.ImportedFromIB2 + 124.IBPluginDependency + 124.ImportedFromIB2 + 125.IBPluginDependency + 125.ImportedFromIB2 + 125.editorWindowContentRectSynchronizationRect + 126.IBPluginDependency + 126.ImportedFromIB2 + 129.IBPluginDependency + 129.ImportedFromIB2 + 130.IBPluginDependency + 130.ImportedFromIB2 + 130.editorWindowContentRectSynchronizationRect + 131.IBPluginDependency + 131.ImportedFromIB2 + 134.IBPluginDependency + 134.ImportedFromIB2 + 136.IBPluginDependency + 136.ImportedFromIB2 + 143.IBPluginDependency + 143.ImportedFromIB2 + 144.IBPluginDependency + 144.ImportedFromIB2 + 145.IBPluginDependency + 145.ImportedFromIB2 + 149.IBPluginDependency + 149.ImportedFromIB2 + 150.IBPluginDependency + 150.ImportedFromIB2 + 19.IBPluginDependency + 19.ImportedFromIB2 + 195.IBPluginDependency + 195.ImportedFromIB2 + 196.IBPluginDependency + 196.ImportedFromIB2 + 197.IBPluginDependency + 197.ImportedFromIB2 + 198.IBPluginDependency + 198.ImportedFromIB2 + 199.IBPluginDependency + 199.ImportedFromIB2 + 200.IBEditorWindowLastContentRect + 200.IBPluginDependency + 200.ImportedFromIB2 + 200.editorWindowContentRectSynchronizationRect + 201.IBPluginDependency + 201.ImportedFromIB2 + 202.IBPluginDependency + 202.ImportedFromIB2 + 203.IBPluginDependency + 203.ImportedFromIB2 + 204.IBPluginDependency + 204.ImportedFromIB2 + 205.IBEditorWindowLastContentRect + 205.IBPluginDependency + 205.ImportedFromIB2 + 205.editorWindowContentRectSynchronizationRect + 206.IBPluginDependency + 206.ImportedFromIB2 + 207.IBPluginDependency + 207.ImportedFromIB2 + 208.IBPluginDependency + 208.ImportedFromIB2 + 209.IBPluginDependency + 209.ImportedFromIB2 + 210.IBPluginDependency + 210.ImportedFromIB2 + 211.IBPluginDependency + 211.ImportedFromIB2 + 212.IBPluginDependency + 212.ImportedFromIB2 + 212.editorWindowContentRectSynchronizationRect + 213.IBPluginDependency + 213.ImportedFromIB2 + 214.IBPluginDependency + 214.ImportedFromIB2 + 215.IBPluginDependency + 215.ImportedFromIB2 + 216.IBPluginDependency + 216.ImportedFromIB2 + 217.IBPluginDependency + 217.ImportedFromIB2 + 218.IBPluginDependency + 218.ImportedFromIB2 + 219.IBPluginDependency + 219.ImportedFromIB2 + 220.IBEditorWindowLastContentRect + 220.IBPluginDependency + 220.ImportedFromIB2 + 220.editorWindowContentRectSynchronizationRect + 221.IBPluginDependency + 221.ImportedFromIB2 + 23.IBPluginDependency + 23.ImportedFromIB2 + 236.IBPluginDependency + 236.ImportedFromIB2 + 239.IBPluginDependency + 239.ImportedFromIB2 + 24.IBEditorWindowLastContentRect + 24.IBPluginDependency + 24.ImportedFromIB2 + 24.editorWindowContentRectSynchronizationRect + 29.IBEditorWindowLastContentRect + 29.IBPluginDependency + 29.ImportedFromIB2 + 29.WindowOrigin + 29.editorWindowContentRectSynchronizationRect + 295.IBPluginDependency + 296.IBEditorWindowLastContentRect + 296.IBPluginDependency + 296.editorWindowContentRectSynchronizationRect + 297.IBPluginDependency + 298.IBPluginDependency + 346.IBPluginDependency + 346.ImportedFromIB2 + 348.IBPluginDependency + 348.ImportedFromIB2 + 349.IBEditorWindowLastContentRect + 349.IBPluginDependency + 349.ImportedFromIB2 + 349.editorWindowContentRectSynchronizationRect + 350.IBPluginDependency + 350.ImportedFromIB2 + 351.IBPluginDependency + 351.ImportedFromIB2 + 354.IBPluginDependency + 354.ImportedFromIB2 + 371.IBEditorWindowLastContentRect + 371.IBPluginDependency + 371.IBWindowTemplateEditedContentRect + 371.NSWindowTemplate.visibleAtLaunch + 371.editorWindowContentRectSynchronizationRect + 371.windowTemplate.maxSize + 372.IBPluginDependency + 375.IBPluginDependency + 376.IBEditorWindowLastContentRect + 376.IBPluginDependency + 377.IBPluginDependency + 388.IBEditorWindowLastContentRect + 388.IBPluginDependency + 389.IBPluginDependency + 390.IBPluginDependency + 391.IBPluginDependency + 392.IBPluginDependency + 393.IBPluginDependency + 394.IBPluginDependency + 395.IBPluginDependency + 396.IBPluginDependency + 397.IBPluginDependency + 398.IBPluginDependency + 399.IBPluginDependency + 400.IBPluginDependency + 401.IBPluginDependency + 402.IBPluginDependency + 403.IBPluginDependency + 404.IBPluginDependency + 405.IBPluginDependency + 406.IBPluginDependency + 407.IBPluginDependency + 408.IBPluginDependency + 409.IBPluginDependency + 410.IBPluginDependency + 411.IBPluginDependency + 412.IBPluginDependency + 413.IBPluginDependency + 414.IBPluginDependency + 415.IBPluginDependency + 416.IBPluginDependency + 417.IBPluginDependency + 418.IBPluginDependency + 419.IBPluginDependency + 450.IBPluginDependency + 451.IBEditorWindowLastContentRect + 451.IBPluginDependency + 452.IBPluginDependency + 453.IBPluginDependency + 454.IBPluginDependency + 457.IBPluginDependency + 459.IBPluginDependency + 460.IBPluginDependency + 462.IBPluginDependency + 465.IBPluginDependency + 466.IBPluginDependency + 485.IBPluginDependency + 490.IBPluginDependency + 491.IBEditorWindowLastContentRect + 491.IBPluginDependency + 492.IBPluginDependency + 496.IBPluginDependency + 497.IBEditorWindowLastContentRect + 497.IBPluginDependency + 498.IBPluginDependency + 499.IBPluginDependency + 5.IBPluginDependency + 5.ImportedFromIB2 + 500.IBPluginDependency + 501.IBPluginDependency + 502.IBPluginDependency + 503.IBPluginDependency + 504.IBPluginDependency + 505.IBPluginDependency + 506.IBPluginDependency + 507.IBPluginDependency + 508.IBEditorWindowLastContentRect + 508.IBPluginDependency + 509.IBPluginDependency + 510.IBPluginDependency + 511.IBPluginDependency + 512.IBPluginDependency + 513.IBPluginDependency + 514.IBPluginDependency + 515.IBPluginDependency + 516.IBPluginDependency + 517.IBPluginDependency + 533.IBPluginDependency + 534.IBPluginDependency + 56.IBPluginDependency + 56.ImportedFromIB2 + 57.IBEditorWindowLastContentRect + 57.IBPluginDependency + 57.ImportedFromIB2 + 57.editorWindowContentRectSynchronizationRect + 58.IBPluginDependency + 58.ImportedFromIB2 + 72.IBPluginDependency + 72.ImportedFromIB2 + 73.IBPluginDependency + 73.ImportedFromIB2 + 74.IBPluginDependency + 74.ImportedFromIB2 + 75.IBPluginDependency + 75.ImportedFromIB2 + 77.IBPluginDependency + 77.ImportedFromIB2 + 78.IBPluginDependency + 78.ImportedFromIB2 + 79.IBPluginDependency + 79.ImportedFromIB2 + 80.IBPluginDependency + 80.ImportedFromIB2 + 81.IBEditorWindowLastContentRect + 81.IBPluginDependency + 81.ImportedFromIB2 + 81.editorWindowContentRectSynchronizationRect + 82.IBPluginDependency + 82.ImportedFromIB2 + 83.IBPluginDependency + 83.ImportedFromIB2 + 92.IBPluginDependency + 92.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{522, 812}, {146, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{436, 809}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{753, 187}, {275, 113}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {275, 83}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{547, 180}, {254, 283}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{187, 434}, {243, 243}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {167, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{753, 217}, {238, 103}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {241, 103}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{654, 239}, {194, 73}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{525, 802}, {197, 73}} + {{380, 394}, {433, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + + {74, 862} + {{6, 978}, {478, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + {{604, 269}, {231, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + {{475, 832}, {234, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{746, 287}, {220, 133}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {215, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{1054, 339}, {480, 360}} + com.apple.InterfaceBuilder.CocoaPlugin + {{1054, 339}, {480, 360}} + + {{33, 99}, {480, 360}} + {3.40282e+38, 3.40282e+38} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{591, 420}, {83, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{523, 2}, {178, 283}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{753, 197}, {170, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{725, 289}, {246, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{674, 260}, {204, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{878, 180}, {164, 173}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + {{286, 129}, {275, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{23, 794}, {245, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{452, 109}, {196, 203}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{145, 474}, {199, 203}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + + YES + + + + + YES + + + YES + + + + 535 + + + + YES + + LetsMoveAppDelegate + NSObject + + window + NSWindow + + + IBProjectSource + LetsMoveAppDelegate.h + + + + + YES + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSBrowser + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSBrowser.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSDocument + NSObject + + YES + + YES + printDocument: + revertDocumentToSaved: + runPageLayout: + saveDocument: + saveDocumentAs: + saveDocumentTo: + + + YES + id + id + id + id + id + id + + + + IBFrameworkSource + AppKit.framework/Headers/NSDocument.h + + + + NSDocument + + IBFrameworkSource + AppKit.framework/Headers/NSDocumentScripting.h + + + + NSDocumentController + NSObject + + YES + + YES + clearRecentDocuments: + newDocument: + openDocument: + saveAllDocuments: + + + YES + id + id + id + id + + + + IBFrameworkSource + AppKit.framework/Headers/NSDocumentController.h + + + + NSFontManager + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSMatrix + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSMatrix.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSMenuItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSMovieView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSMovieView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSTableView + NSControl + + + + NSText + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSText.h + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSTextView + NSText + + IBFrameworkSource + AppKit.framework/Headers/NSTextView.h + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSDrawer.h + + + + NSWindow + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSWindow.h + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSWindowScripting.h + + + + + 0 + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../LetsMove.xcodeproj + 3 + + diff --git a/app/Pods/LetsMove/en.lproj/MoveApplication.strings b/app/Pods/LetsMove/en.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..f5f7b1fceb6d819d99e9007cfea245e12806139f GIT binary patch literal 2038 zcmd6o(N4lJ6o$_=PtkB=!Ua5lF~(?&Ug(uCFx_;ETR}D;yuAAToeM)HA;`cqTTf5h z)BgWy|9-rWY+%mrZOs3Pe?dviTSa?fQ#^CaEXEh(d9)>e^}pctSP5f>_y#tzp7rgL z88genXpgNpMTnAMRank0h&*9T#)=WX46nD6o@Xr0Rn$K1Grs-CJY|?()lCKHvVc(%=mBU75Y1mDa~LXMTiS7HoX zXpgmiH*7Z9Y&hF|davQ-=jq*b{;|=t@1ioV(^O}Eigg24DaHDoJ#U?Y?Q!qA(tl#; z@5mLQ8$`7()%u$T#no9($*DAVL7h_^nw!`gH#-ZK`%;jIdtQY6YkWnYGo4Fe0_h*9ISdYIj62Ddf)V-wpH^GYt<}$ E0{XODr2qf` literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/es.lproj/MoveApplication.strings b/app/Pods/LetsMove/es.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..ffa298ed79c760457fc4e1f93503d16cd0d92bb8 GIT binary patch literal 1540 zcmd6nNlwE+5JhXvDO%pJ;{pgF#2{F}hFri(I>cZ*!FGspI?loo5PRVLZd)-)kP?Xn zvg{sQJ(ujm%lezF{p`U(B;>*f~418BcDR4K3v^S#KVx>%^;TKJ z`GhyIyP#DE3llUP+Eb)5UfFAqPSMZ#j(98XB&D+pJ}NXkayrX<=X==t_Gl+|YzKTV zf=&5U?6<6neLb2@pPl|q>$7BCWnS14A0E$R?jsJ3O+rq);o*o?x=SLO+aZ}M!_1zr zany_N57HU!3BAiD*`sh9| zePvTKNihtORUgEe6qcn#Wc*y literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/fr.lproj/MoveApplication.strings b/app/Pods/LetsMove/fr.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..220bd6e6477d7be2fe4294be64edeb00c7dba2d5 GIT binary patch literal 1610 zcmbu9O-|!L5QS^aDO%aEf(syo5D39Yu;KzHHelg6Ax?&Y8^a-h?^R*aBp?DKtKI*v zU%mQyc^=q-jcsm?m6oh!Jfk1c|Fw$Ij8U?EoA5PO+t3QuYF1n8*tuk+yOm9CznplN=^h~^R_?cM#oD+{+hwSc5H(e51r>3fAK%1 z7yng8!6Sb?mecPF_*#P_ zP*$VkF!OzQ_kX>=KBGKdfs)i88^ohEmEbhS2y!?vae9ee{qhT z{!QV1&Mmy6Y!0uSe`2fhy@G!pbE;f-*xAqvdAX`4IJZ=#hJMDUXsed2K44{tCDKOw sis1$KmRYY_Vk|Vp`Gq4%(cJFk_&q0E8`=veO9g*X|GOgFyG>DU|q}^ z0gc3NeC-)6ojj%OAW5++wh5;sNFzqNB}F@;&0I2Ne;0}DiQIxI{zRO=iRCNU|F=l& zxvxT2mLAg&v9a!z5WIB1Kl?F5x-7d6u|~M(jznpdFd1{Fki0@(#;L^ixA6*Kuf1bD z9oVWfKrvRtnl--zsH+8lf{5Vz59RP>iH`^h+`!mdW;S{s;UEZz3mz|enKJGDUrUOGo;F2 z@#r^Mu6@dM-SpqlU)1wOD%tY4-k%3!cw++MMC3%;_FenjtKj*GJ72#vy?&@b>(b-w-%N~1zduc&l&<^|u3wITUaR`U1y`3BYw Bdg1^8 literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/it.lproj/MoveApplication.strings b/app/Pods/LetsMove/it.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..5ca59b12ee7ab1f37b8322f2e185d2c039ee84b4 GIT binary patch literal 2092 zcmd6o&rX9t5XR@+ry#wU^w2(lF~(?&J!nic-my?iq!fX+sZZ;ZsK0NaDU=?1DA5qu zVRm=^d^7v)&-cg%=GlWS_)hrFc|uF9;6Jqt&B`JR&;@8-ZNpddZ)g*wkTpYe0~=Y- z`gYBZrNwS_f-F08XC*``kUYD>a>|+rk3PBxZDKhyQzY$`)jt0hynPp4f|N3w^TJTZ@tEXx_TcbcZx&&q3r{c|Gk5&vnCxN&g`Sz&O`xFVW%R_#o>ifCNn zA}n_`nN!o;;WR~GR;aKUnqw>Ffu;6t$Z=_BuJ)?#J2r;3j31dlef`u6igktW1zzQ` zn~H90xJ9YiQT0B)C6aa@Kh=8nKX&Z#`PI*Xhf$ zbG#AbwQ$xwzB>Qnve4xHue+j-TGwcFmv6~vC7aJ2e+%&$T_6TuGm3*f*f+EfY7jZe zW2L&pr%LMm#H}xw(+#j-6uEQ@psr` z$xhvL#q$9~#D^hS*3XJ=i8W}%jKXIB7E~7}cD< Z)4mV)J?kv$&irCeiY+m?Zr3fJ{sO~IX{7)F literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/ja.lproj/MoveApplication.strings b/app/Pods/LetsMove/ja.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..207ef907001baae94a2f47341ddeebac3b40056b GIT binary patch literal 1778 zcmd5-%_~Gv6hA2z{t2(yC<}gjNg|Q2eAF~i8s?c9^X3iap-G8_^0neGV4*CnWM^Yx zVPPQ)8#_g^uq6D>9b+Cwjq*yjckj99e!O$e@0{O#eQA(7v7}cr?8n)s*=%ve<9teH zsF{pf|6i%rR+WJwEep5mS) z{}`n%Nv$hcu1rwUvwCZY^Co^F*~KMpae!wW;s%enz&`G9j1-=77XxwhU=hREMjT;` zA|#Epq?-2pt!Hhpdzs76c8!I;O8uBr=P#g zvIsW*f#v@CP}DRN@~F*F>Y!g*y`Sr-*@xg2Yv}r;epdS3GSLgO!XoHG&1+EARX%$D z82EiFFAszFB+n3ewo4d((~L|IEoHcQjt-kehO=dw^_Db}^)g$#BUs=Ugja~$D;c%PyhC!@=2aUvL8^$nHqQ2E2A)&3k+ z7M*9_Ivmy4udHt|A}(3Z;pnmHOQ3JhXCB%l_pf5zWbZNd_$J&NPyM{J1<$VX@~=bD F^EVP66g=`;6b53Bb5*> zG+;%AWaG(#tRQ&IPw=chvuki8jaX=qB|EdT-#0t&yx+XJy_t|PG4e@@+?Ti)xNPyn z=eZ{u5!TJ7O$otE!qM zRwjo&=lZ71hp(NW)tbi2k6LpZn?96-&4bB{Z%zF0dt0?n(GPRBGJip;ieOWH@+7J@ zZg4tXtYUtw;fBt5=$4E1xm4HnpCqX)NzC2GKKQQoin&K3YF|+K>AV D9CCz& literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/mk.lproj/MoveApplication.strings b/app/Pods/LetsMove/mk.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..54b9140cfc74f306a24a72ea8f525ab10ed77646 GIT binary patch literal 2104 zcmd6o!A}!G6vp3SPMkb=RGIW*!T}bj(nxW;g&-dESPI*RFSjqU*&hT8=#D@5Wc;4F;t>!=B zEwDzcS;x0#8@6IC+vkgO%YAi$t$n7x%LuE)ik7kSDQhPDae!}vx3C#AAF=eUc5N}< z<89f)@FYa*hUeia))sau@@Aorzst-PYopx@Y1j>&@C@%EeddQ(;1&G^aovondHQ{#OTuwj)|p;%5@BA@U$ZiW)fs2Y!GFO~ zX=6OMQ#Eg$|a{zaXuW{#X| zRrY=O?=q^_xc>RCGoX&u-C?l2$SUQkRD0|?tt=nIvXuIgKIe%j^~kr3XO^e6PXR|fcI?4j|np%9N;0mYu`SE_yNT)uOyuj~|tH}Up-rpbO1+OXdV zd#?9=U(;uOZ?67iB{K)^Usg`M`3Xu=!V!_z>q9rhB{h@N3$L3uUEUa8-i1t}^CQHg0N zyW82BGiUzZUhB4H!7l89_bu;?C$Zd0_I(?0GP16;%R(A-C+i^V2qT~2c=_;SZeccrz)eve#{mlW&l( z3(E-z#H~1(v!B6N0j3o0X0a%(+>mL?pI=V8Tk4(Wc_I+!i8(iD7 z%RG2zR-O!~*TQo~H=np4v8eOUI=ZS{Sb9h&-b*!kgm^iQ?GGG66;Z4wH?F>6On aG*m6k>qZrP;kHtbow||cdYtI7rrrUyJZ4z{ literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/nl.lproj/MoveApplication.strings b/app/Pods/LetsMove/nl.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..564b56384c8572d63ef9f1af51b605c9dc368a05 GIT binary patch literal 2094 zcmc(gTT8=05QXR2UlIBu6x4S`L=;iHK8WvW6Kym}Ynxj1$E)9&ZEUn&!BRr9yR)0Q zoH;Z5^1NYfi|ow$e7k%Lp43XKSPyK7 z>>5U_OXQ`mhs>lSvI~#khHvbV#kT5p3f2QOZ{hO_p8qcf`yQn*m9M9a@^==`*$;6n z%C9555#mB>mXm^<3cnom>kL)abNqgnsfc*=?<0|pL0C*tcJI)!-iZ4MNyJ-wklNFm z-M?k-YX-zv7L&%j36_+B3BKga${3@iuW(n=DaBD~T;5gg5QaymLjFN+!k0n_$qy){v<;;#B=nG*Pa8|IRa+miq`_4Nb`}fbKomp--*7BY3t$9jotY_ZY63L@gRv;^o+}Xfa>rr*5!n`5<16Fr9kRl0rxw=e{Bj?rd;>TJtbG9I320x}?<+rDJj&y1{*T~$?t?gu z$Xgp{$3pW14C1!gu_i3yZ-C_zhVPlhSoAjYwZmeP!?$z?{9D_5kFw%8$HqnC?N8?8 zOe?}M<1IOPYv;_P{}X08Z;QNlq%p<;yFylbW(;UmHn}D6eVlRZpiT+c( zpICjF&2M0Sp5e;UG@lRk=rL6AjEmW^Wc1x5soYEVeM&NA-}A#OIkydVd%i8_ z){N(#GXZ{E`je_(d7eU_xN8VvoIurZtk~=zoL6yWl5hEIi zbFeR&G&*z&W;#!EAztm)Ud9sq?Bis`?SHsZr!2vmR*CM84Y-xJLb`tw=5X7qO7&pf;*m3P*Z3|~Qkt3SMY=m%_9_Ot>C?_V H>{$B;TNi3? literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/pt.lproj/MoveApplication.strings b/app/Pods/LetsMove/pt.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..e16135f07b12936aa75115a5bd33babff9974acf GIT binary patch literal 2068 zcmeH|&n^T(5XS55DLQ+RNbmq6A~wQ-ICz0!haG0e+8H+MZN+v*Y;4Odu%+J=DV=szbxDT%CORD$+ zJcErHOP)YA=5`74g-hz9Vm_nh27U^(zww$?*GTM&ld=Ez-c|o5dv#yjzxHrhRt(XK zdV>7iGU_%t=9Q%aE%gOedO86m(zW|te(mb&0I?TLkFV$P%&$8fPC-xIFDJfst>`Wo zlV8aw96#Q40Zb}#FBu!hOB}q%aTl%Fr4wEQZ0VlXT^aAXY4y@&z4rb;;?CAx7#tPJ O6*%8`M459IE9nI`FKBWA literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/pt_BR.lproj/MoveApplication.strings b/app/Pods/LetsMove/pt_BR.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..0b37c2d91f8b5b51f2a46bbe7a0e3863f3e41fc9 GIT binary patch literal 1964 zcmchY&q~8U5XR@+r&xLsJm>?6h$x~5MX)arP1Il$YZEQ{w#A#^E2zJ3;?lG#RxuKi z-JPBP-^}FoW!+XS*pXfHJ>y&OWL8?ud1PZKca~cUEroJw_k4AK0kve8!LtT!)z+b_r!!L;~5D>^-sF+KOYW{9d7Btrh7p_rgb5=U^ekA|}E`rwR|g z#wfU_fec;~$rCa+Sj?TOdh0545u2EwuPb#A&puXal%J3Jf9o*%@O=#JZWB_fmj+w; zzfXjk1@m3G)xtSiS|-|ncHv!t<6;dQW2LE=gq+GkH+>QP{aI#y8*z7WG&81|rJxN~ZHflX{WD&1 zPN8Xj2XHMMSx6oZD4?f9<=2XV?X;-2tjf&dUr2G4L_1`y yd6WbF3)}PV0I6o4Dg*j=#!M|%`T%KhRLoKFJh|>1n(PXL3%}3pfi>lwW#|o5IZ~AX literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/ru.lproj/MoveApplication.strings b/app/Pods/LetsMove/ru.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..0cbafc8855bd38526234a280b1f7690074cec03b GIT binary patch literal 2060 zcmcJQTTk0S5QXPqo_Iv+V}+HMN~q;h5-`oxNiU#Mc$YhtRFv{7e z4vAMW6&2ATaR|Yb{tn|Y98HL91e#OCGaKM}D)JGG=-X?~cwsLBmtyM&dkEhtFVDce z3ht4u`bXaH;3nsx;xAcsg0F^e$2&{;A}09TcCCF)E3=3-{e}4vyJ9P*=Kl`Uf5YmrTrcjV zxvu3JJqW6-tRIja(&a1q5l@6J_w6UDFbr07t3F*cVjMC_>oex0>!J_w^{^tDXKl9&v296X)mPz+IV#dm>0KK%66|u&l-+=XZo%bx cxyPCvkm>jySP5q-wW{jFEt*p6${+pw4PeJI`2YX_ literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/sk.lproj/MoveApplication.strings b/app/Pods/LetsMove/sk.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..b549b354307f86ccf99f65a531e4e74f16103dce GIT binary patch literal 2040 zcmcJQ-Ade05XUFCLf_%AHw7v60g4o{6unS{TJNJt-E=ouyGd5|X5V!$z32-F+W!7? z8jPhDR}3LJ=gdsz<3Atg*Zq!dTd-rB@x9<%^5j-o!}-eQP!?8L1}%efZcD!6UqY?e z<;c8;wrxAMWh2|?kJhFxU9p#*(zWF58g{|<(0qkVfyESB0kyIk&Np`YS6WA$cX>y4 z!YPN}A{F3DhkPrbzDeZA1YXoDtrJ_LS=``0p1an7j67K-^1HG-{2ti{yxzk1*G1uz z`zTZu{}Jl~n-38kb5aC~>K0yVc`}qQhj<{Ih229YN-|kve+uSZUK$%id2W6J2d*mZvtKhpzWN{5DxxM4uVW7+^U!_Z?d^gGRaCz)9*CF(D<$eZ* z|5xrUIo>R;p(^6}QT6*#`Bn|Ze9ze(5VNMm(XR%m`;8fRbNTH0ZtqudJ4pl2*)jr+p1q4_`P*Z zobX3T5LK3UXJ^Oj+4pAOe*3y-JLc_;UDAG_o$+K=SjqUxuJPR3)W-P6c;4GRt>!=B zEwD0TcJb}lo^4snQogvcJVY1RT4xqk$*@W+ZwV`35i{kFBYac5h0U4yh^23}YKw7? zw`JSz*tK1k_sk7ku%U17+2M^n3p|Rc&#bZA*zY5E z2-@CW1l(hIX}jn83;cBPU$~SuSwkfuPO&j_nm-{rai@$AVXyik!XLqBCwQYUI}EEv zP8n>5-Ep z>x$@McX(g^sDvZxphwhxXoo-5M(mW^Lv!E6bTe3OZkLsIRVq9Qx~p2BP#IF*JNlf* zqr91Y;p|U?(ZHgf#|>wKk^$Z-0S@lrLkC&C{dX;EofO(+ipPyUT-L zfj;N-C6Dei-JneceM+sz3$3hC&^@NR?iDkYN>*d-zYlKvyw&Zus+_`A%ImF)PXm_S K5UqbSmGe6ebTAVD literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/sv.lproj/MoveApplication.strings b/app/Pods/LetsMove/sv.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..466cdc5b7ec6b8d0b168130723c6bc706b66edf3 GIT binary patch literal 1978 zcmc(gNlwE+5JhXvDXeUeSik`gLI{Ky1S>9Ja7avS6JjS3_YGHI3A|s8vCSYr5Ji^V z?ds~9e%J5kr!CvC$j}sY=-Cga8-dl|dVN={B#Nmo{Te6KQkU&x;$Jw)>X z`A6@M?ikupG>9B?!ANWn^=t+2=J4@EVdbe}`w4y_4# zr@kUWHom&`yKEj~Q#Y&Pxb zK~c9ORCIL}h$Xs;DX>&P^Nf4MSYm>VevR$M_g2no4B}VhMtvsfz$oI;!quOL}txMq*11=?89+^oTJZ z1%?s7I7Wr#A@(HQ9XA}#Kuau`fk;SjJaDGo*Cv~O#BG__ k5|9`ZtN2_@JF8=aSHivXyn(sLCG?E?E4Js#&aG|4MUPn2G&tp zg(pD~3c(kGCrC*=`TZiiIxLAj9q_rxO;zNi0elfB)!ePa=5sXj6bZ|KC8!@KN3kb@ z8w2n~;MFOHHw&=%TRzo^buWHSx|7%HbMkbebD}{U`C8-E8yR1t*p*L8_f)&$q#oQ{ zh5LUN$)Fi4Gs750F((jLKB`)UV=C9}Be;{<(J|-w)4+cWQK(?bV$+~7Jl|zifNlOZ z2|RIXG4sTkSi%_{HgxsDRQe(HIJXyMwo9{L(OE7AEXFOIrK@HLSUy)x>6rgMVtbu) zMmWp4jI6>M1|IIh!hYzpWyihH>`kTZx$%2;5-#Oj$#uo$!A_!BuQX-<7xu3){VsxB zr{`2EZ0ZtMUKrV7Wm?0mVhAXcq!si|#I(eFj|R|5nwd%7Z{Qs(+cIX>(ExlgoWbi* zL7&~Lb%B~}+u~Jd)k>e+umBys^V#cvvzW(wS!Nw{e5wE=(SqIlpp(}qn8=?YJey=gqRmPh&qhE!9L literal 0 HcmV?d00001 diff --git a/app/Pods/LetsMove/zh_TW.lproj/MoveApplication.strings b/app/Pods/LetsMove/zh_TW.lproj/MoveApplication.strings new file mode 100644 index 0000000000000000000000000000000000000000..1abfb4ab1610c5ba30c96970ff405999b9b68966 GIT binary patch literal 1694 zcmd5-%_{_97=I9ANsfxVRw2bYDj|_L7$3R#idj4CGBb;v9hQJrEWR3sLOL0kFVPAtCPgR& zTL_jQCGh3-d02I53idR^)<^*=CO>uKM4VK6w+@}}(d=6kXa+PvUATD(dm?yIhAjfC zPBE;^LF2Q0s~_`r{QOk2e5F1nu0~o$D#fMT5cjQ@O;?Gdg}!jdSd-+ZHoRPn_kR{i zkL@c*hA|94n(!;_RjFhp*{f{5-;Y;0K00JNf*LXqgC8nl<;K&XFf8AVt3bT@Yyybl zRBvaBbFqj!nmzc+gI4m+dYIY`x-rk3gWQ&EMZt}`i#2oY^a9Vv+R5zm-+Sz>cFqcC z+R4fav_9bBUVPgXot_K@=ITbR + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.20.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/app/Pods/Target Support Files/LetsMove/LetsMove-dummy.m b/app/Pods/Target Support Files/LetsMove/LetsMove-dummy.m new file mode 100644 index 00000000..158fd928 --- /dev/null +++ b/app/Pods/Target Support Files/LetsMove/LetsMove-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_LetsMove : NSObject +@end +@implementation PodsDummy_LetsMove +@end diff --git a/app/Pods/Target Support Files/LetsMove/LetsMove-prefix.pch b/app/Pods/Target Support Files/LetsMove/LetsMove-prefix.pch new file mode 100644 index 00000000..b9c163b4 --- /dev/null +++ b/app/Pods/Target Support Files/LetsMove/LetsMove-prefix.pch @@ -0,0 +1,4 @@ +#ifdef __OBJC__ +#import +#endif + diff --git a/app/Pods/Target Support Files/LetsMove/LetsMove-umbrella.h b/app/Pods/Target Support Files/LetsMove/LetsMove-umbrella.h new file mode 100644 index 00000000..a6b4e57e --- /dev/null +++ b/app/Pods/Target Support Files/LetsMove/LetsMove-umbrella.h @@ -0,0 +1,7 @@ +#import + +#import "PFMoveApplication.h" + +FOUNDATION_EXPORT double LetsMoveVersionNumber; +FOUNDATION_EXPORT const unsigned char LetsMoveVersionString[]; + diff --git a/app/Pods/Target Support Files/LetsMove/LetsMove.modulemap b/app/Pods/Target Support Files/LetsMove/LetsMove.modulemap new file mode 100644 index 00000000..d36ec148 --- /dev/null +++ b/app/Pods/Target Support Files/LetsMove/LetsMove.modulemap @@ -0,0 +1,6 @@ +framework module LetsMove { + umbrella header "LetsMove-umbrella.h" + + export * + module * { export * } +} diff --git a/app/Pods/Target Support Files/LetsMove/LetsMove.xcconfig b/app/Pods/Target Support Files/LetsMove/LetsMove.xcconfig new file mode 100644 index 00000000..b1dbf3cc --- /dev/null +++ b/app/Pods/Target Support Files/LetsMove/LetsMove.xcconfig @@ -0,0 +1,6 @@ +CODE_SIGN_IDENTITY = +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Sparkle" +PODS_ROOT = ${SRCROOT} +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/app/Pods/Target Support Files/Pods-CocoaPods/Pods-CocoaPods-frameworks.sh b/app/Pods/Target Support Files/Pods-CocoaPods/Pods-CocoaPods-frameworks.sh index 4144ccf9..e83a9246 100755 --- a/app/Pods/Target Support Files/Pods-CocoaPods/Pods-CocoaPods-frameworks.sh +++ b/app/Pods/Target Support Files/Pods-CocoaPods/Pods-CocoaPods-frameworks.sh @@ -86,10 +86,12 @@ strip_invalid_archs() { if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "Pods-CocoaPods/ANSIEscapeHelper.framework" install_framework "Pods-CocoaPods/Fragaria.framework" + install_framework "Pods-CocoaPods/LetsMove.framework" install_framework "${PODS_ROOT}/Sparkle/Sparkle.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then install_framework "Pods-CocoaPods/ANSIEscapeHelper.framework" install_framework "Pods-CocoaPods/Fragaria.framework" + install_framework "Pods-CocoaPods/LetsMove.framework" install_framework "${PODS_ROOT}/Sparkle/Sparkle.framework" fi diff --git a/app/Pods/Target Support Files/Pods-CocoaPods/Pods-CocoaPods.debug.xcconfig b/app/Pods/Target Support Files/Pods-CocoaPods/Pods-CocoaPods.debug.xcconfig index 27d630ac..db74b796 100644 --- a/app/Pods/Target Support Files/Pods-CocoaPods/Pods-CocoaPods.debug.xcconfig +++ b/app/Pods/Target Support Files/Pods-CocoaPods/Pods-CocoaPods.debug.xcconfig @@ -1,8 +1,9 @@ +CODE_SIGN_IDENTITY = FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Sparkle" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Sparkle" LD_RUNPATH_SEARCH_PATHS = @loader_path/../Frameworks $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/ANSIEscapeHelper.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Fragaria.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Sparkle" -OTHER_LDFLAGS = $(inherited) -framework "ANSIEscapeHelper" -framework "Fragaria" -framework "Sparkle" -PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-CocoaPods +OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/ANSIEscapeHelper.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Fragaria.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/LetsMove.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Sparkle" +OTHER_LDFLAGS = $(inherited) -framework "ANSIEscapeHelper" -framework "Fragaria" -framework "LetsMove" -framework "Sparkle" +PODS_FRAMEWORK_BUILD_PATH = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-CocoaPods" PODS_ROOT = ${SRCROOT}/Pods diff --git a/app/Pods/Target Support Files/Pods-CocoaPods/Pods-CocoaPods.release.xcconfig b/app/Pods/Target Support Files/Pods-CocoaPods/Pods-CocoaPods.release.xcconfig index 27d630ac..db74b796 100644 --- a/app/Pods/Target Support Files/Pods-CocoaPods/Pods-CocoaPods.release.xcconfig +++ b/app/Pods/Target Support Files/Pods-CocoaPods/Pods-CocoaPods.release.xcconfig @@ -1,8 +1,9 @@ +CODE_SIGN_IDENTITY = FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Sparkle" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Sparkle" LD_RUNPATH_SEARCH_PATHS = @loader_path/../Frameworks $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/ANSIEscapeHelper.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Fragaria.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Sparkle" -OTHER_LDFLAGS = $(inherited) -framework "ANSIEscapeHelper" -framework "Fragaria" -framework "Sparkle" -PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-CocoaPods +OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/ANSIEscapeHelper.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Fragaria.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/LetsMove.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Sparkle" +OTHER_LDFLAGS = $(inherited) -framework "ANSIEscapeHelper" -framework "Fragaria" -framework "LetsMove" -framework "Sparkle" +PODS_FRAMEWORK_BUILD_PATH = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-CocoaPods" PODS_ROOT = ${SRCROOT}/Pods diff --git a/app/Pods/Target Support Files/Pods-CocoaPodsTests/Pods-CocoaPodsTests.debug.xcconfig b/app/Pods/Target Support Files/Pods-CocoaPodsTests/Pods-CocoaPodsTests.debug.xcconfig index 2fd88fd1..8e161081 100644 --- a/app/Pods/Target Support Files/Pods-CocoaPodsTests/Pods-CocoaPodsTests.debug.xcconfig +++ b/app/Pods/Target Support Files/Pods-CocoaPodsTests/Pods-CocoaPodsTests.debug.xcconfig @@ -1,9 +1,10 @@ +CODE_SIGN_IDENTITY = EMBEDDED_CONTENT_CONTAINS_SWIFT = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Sparkle" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/Nimble.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Quick.framework/Headers" $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/ANSIEscapeHelper.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Fragaria.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Sparkle" +OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/Nimble.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Quick.framework/Headers" $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/ANSIEscapeHelper.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Fragaria.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/LetsMove.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Sparkle" OTHER_LDFLAGS = $(inherited) -framework "Nimble" -framework "Quick" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-CocoaPodsTests $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-CocoaPods +PODS_FRAMEWORK_BUILD_PATH = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-CocoaPodsTests" "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-CocoaPods" PODS_ROOT = ${SRCROOT}/Pods diff --git a/app/Pods/Target Support Files/Pods-CocoaPodsTests/Pods-CocoaPodsTests.release.xcconfig b/app/Pods/Target Support Files/Pods-CocoaPodsTests/Pods-CocoaPodsTests.release.xcconfig index 2fd88fd1..8e161081 100644 --- a/app/Pods/Target Support Files/Pods-CocoaPodsTests/Pods-CocoaPodsTests.release.xcconfig +++ b/app/Pods/Target Support Files/Pods-CocoaPodsTests/Pods-CocoaPodsTests.release.xcconfig @@ -1,9 +1,10 @@ +CODE_SIGN_IDENTITY = EMBEDDED_CONTENT_CONTAINS_SWIFT = YES GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Sparkle" LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/Nimble.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Quick.framework/Headers" $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/ANSIEscapeHelper.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Fragaria.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Sparkle" +OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/Nimble.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Quick.framework/Headers" $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/ANSIEscapeHelper.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/Fragaria.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/LetsMove.framework/Headers" -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/Sparkle" OTHER_LDFLAGS = $(inherited) -framework "Nimble" -framework "Quick" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-CocoaPodsTests $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-CocoaPods +PODS_FRAMEWORK_BUILD_PATH = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-CocoaPodsTests" "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-CocoaPods" PODS_ROOT = ${SRCROOT}/Pods From 45ec926303a6cd34517f1fa5d36e0fed739ae8da Mon Sep 17 00:00:00 2001 From: Daniel Tomlinson Date: Wed, 10 Feb 2016 19:35:21 +0000 Subject: [PATCH 2/2] [App] Prompt to move to /Applications. closes #176 --- app/CocoaPods/CPAppDelegate.m | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/CocoaPods/CPAppDelegate.m b/app/CocoaPods/CPAppDelegate.m index 83bbd9e0..90e13ee8 100644 --- a/app/CocoaPods/CPAppDelegate.m +++ b/app/CocoaPods/CPAppDelegate.m @@ -5,7 +5,7 @@ #import "CocoaPods-Swift.h" #import "CPCLIToolInstallationController.h" #import - +#import @interface CPAppDelegate () @property (nonatomic, strong) CPHomeWindowController *homeWindowController; @@ -19,6 +19,7 @@ @implementation CPAppDelegate - (void)applicationWillFinishLaunching:(NSNotification *)notification; { + PFMoveToApplicationsFolderIfNecessary(); [self startURLService]; [self checkForBirthday]; }