From ccf45218fb551dc1ea102fd33f8c1f16b37919a0 Mon Sep 17 00:00:00 2001 From: vspader Date: Sun, 4 Nov 2007 03:44:15 +0000 Subject: [PATCH] Adding sparkle with minimum version checking. --- Frameworks/Sparkle/Info.plist | 26 + Frameworks/Sparkle/License.txt | 7 + Frameworks/Sparkle/Makefile | 7 + Frameworks/Sparkle/NSApplication+AppCopies.h | 13 + Frameworks/Sparkle/NSApplication+AppCopies.m | 27 + .../Sparkle/NSFileManager+Authentication.h | 11 + .../Sparkle/NSFileManager+Authentication.m | 109 +++ .../Sparkle/NSFileManager+Verification.h | 15 + .../Sparkle/NSFileManager+Verification.m | 153 ++++ Frameworks/Sparkle/NSString+extras.h | 61 ++ Frameworks/Sparkle/NSString+extras.m | 135 ++++ Frameworks/Sparkle/RSS.h | 98 +++ Frameworks/Sparkle/RSS.m | 692 ++++++++++++++++ Frameworks/Sparkle/Release Notes.rtf | 129 +++ Frameworks/Sparkle/SUAppcast.h | 27 + Frameworks/Sparkle/SUAppcast.m | 77 ++ Frameworks/Sparkle/SUAppcastItem.h | 62 ++ Frameworks/Sparkle/SUAppcastItem.m | 182 +++++ Frameworks/Sparkle/SUAutomaticUpdateAlert.h | 21 + Frameworks/Sparkle/SUAutomaticUpdateAlert.m | 61 ++ Frameworks/Sparkle/SUConstants.h | 20 + Frameworks/Sparkle/SUConstants.m | 20 + Frameworks/Sparkle/SUStatus.nib/classes.nib | 12 + Frameworks/Sparkle/SUStatus.nib/info.nib | 16 + .../Sparkle/SUStatus.nib/keyedobjects.nib | Bin 0 -> 6873 bytes Frameworks/Sparkle/SUStatusChecker.h | 26 + Frameworks/Sparkle/SUStatusChecker.m | 78 ++ Frameworks/Sparkle/SUStatusController.h | 33 + Frameworks/Sparkle/SUStatusController.m | 119 +++ Frameworks/Sparkle/SUUnarchiver.h | 25 + Frameworks/Sparkle/SUUnarchiver.m | 144 ++++ Frameworks/Sparkle/SUUpdateAlert.h | 40 + Frameworks/Sparkle/SUUpdateAlert.m | 185 +++++ Frameworks/Sparkle/SUUpdater+Authentication.m | 54 ++ Frameworks/Sparkle/SUUpdater+DSA.m | 131 ++++ Frameworks/Sparkle/SUUpdater.h | 57 ++ Frameworks/Sparkle/SUUpdater.m | 576 ++++++++++++++ Frameworks/Sparkle/SUUtilities.h | 20 + Frameworks/Sparkle/SUUtilities.m | 198 +++++ Frameworks/Sparkle/Sparkle.h | 22 + Frameworks/Sparkle/Sparkle.icns | Bin 0 -> 50219 bytes .../Sparkle/Sparkle.xcodeproj/project.pbxproj | 736 ++++++++++++++++++ Frameworks/Sparkle/Sparkle_Prefix.pch | 8 + .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6589 bytes .../ca.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1110 bytes .../ca.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../ca.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10881 bytes .../Sparkle/ca.lproj/SUUpdateAlert.strings | Bin 0 -> 1742 bytes Frameworks/Sparkle/ca.lproj/Sparkle.strings | Bin 0 -> 7138 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6559 bytes .../cs.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1076 bytes .../cs.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../cs.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10744 bytes .../Sparkle/cs.lproj/SUUpdateAlert.strings | Bin 0 -> 1656 bytes Frameworks/Sparkle/cs.lproj/Sparkle.strings | Bin 0 -> 6978 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6380 bytes .../cy.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../cy.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../cy.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10691 bytes .../Sparkle/cy.lproj/SUUpdateAlert.strings | Bin 0 -> 1630 bytes Frameworks/Sparkle/cy.lproj/Sparkle.strings | Bin 0 -> 6910 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6438 bytes .../da.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../da.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../da.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10841 bytes .../Sparkle/da.lproj/SUUpdateAlert.strings | Bin 0 -> 1674 bytes Frameworks/Sparkle/da.lproj/Sparkle.strings | Bin 0 -> 6944 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6406 bytes .../de.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1052 bytes .../de.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../de.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10689 bytes .../Sparkle/de.lproj/SUUpdateAlert.strings | Bin 0 -> 1648 bytes Frameworks/Sparkle/de.lproj/Sparkle.strings | Bin 0 -> 6938 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 16 + .../keyedobjects.nib | Bin 0 -> 6571 bytes .../en.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes Frameworks/Sparkle/en.lproj/SUStatus.strings | Bin 0 -> 96 bytes .../en.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../en.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10634 bytes .../Sparkle/en.lproj/SUUpdateAlert.strings | Bin 0 -> 1630 bytes Frameworks/Sparkle/en.lproj/Sparkle.strings | Bin 0 -> 6908 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6380 bytes .../es.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../es.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../es.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10634 bytes .../Sparkle/es.lproj/SUUpdateAlert.strings | Bin 0 -> 1630 bytes Frameworks/Sparkle/es.lproj/Sparkle.strings | Bin 0 -> 6910 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6583 bytes .../fi.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1080 bytes .../fi.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../fi.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10787 bytes .../Sparkle/fi.lproj/SUUpdateAlert.strings | Bin 0 -> 1648 bytes Frameworks/Sparkle/fi.lproj/Sparkle.strings | Bin 0 -> 6954 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6548 bytes .../fr.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../fr.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../fr.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10882 bytes .../Sparkle/fr.lproj/SUUpdateAlert.strings | Bin 0 -> 1726 bytes Frameworks/Sparkle/fr.lproj/Sparkle.strings | Bin 0 -> 7344 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6498 bytes .../he.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 998 bytes .../he.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../he.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10712 bytes .../Sparkle/he.lproj/SUUpdateAlert.strings | Bin 0 -> 1564 bytes Frameworks/Sparkle/he.lproj/Sparkle.strings | Bin 0 -> 6212 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6380 bytes .../hu.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../hu.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../hu.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10634 bytes .../Sparkle/hu.lproj/SUUpdateAlert.strings | Bin 0 -> 1630 bytes Frameworks/Sparkle/hu.lproj/Sparkle.strings | Bin 0 -> 6910 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6380 bytes .../id.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../id.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../id.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10634 bytes .../Sparkle/id.lproj/SUUpdateAlert.strings | Bin 0 -> 1630 bytes Frameworks/Sparkle/id.lproj/Sparkle.strings | Bin 0 -> 6910 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6380 bytes .../is.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../is.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../is.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10634 bytes .../Sparkle/is.lproj/SUUpdateAlert.strings | Bin 0 -> 1630 bytes Frameworks/Sparkle/is.lproj/Sparkle.strings | Bin 0 -> 6942 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6415 bytes .../it.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1066 bytes .../it.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../it.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10700 bytes .../Sparkle/it.lproj/SUUpdateAlert.strings | Bin 0 -> 1712 bytes Frameworks/Sparkle/it.lproj/Sparkle.strings | Bin 0 -> 7170 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6450 bytes .../ja.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 952 bytes .../ja.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../ja.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10724 bytes .../Sparkle/ja.lproj/SUUpdateAlert.strings | Bin 0 -> 1530 bytes Frameworks/Sparkle/ja.lproj/Sparkle.strings | Bin 0 -> 5994 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6380 bytes .../ko.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../ko.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../ko.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10634 bytes .../Sparkle/ko.lproj/SUUpdateAlert.strings | Bin 0 -> 1630 bytes Frameworks/Sparkle/ko.lproj/Sparkle.strings | Bin 0 -> 6910 bytes Frameworks/Sparkle/md5.c | 381 +++++++++ Frameworks/Sparkle/md5.h | 91 +++ .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6380 bytes .../nl.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../nl.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../nl.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10634 bytes .../Sparkle/nl.lproj/SUUpdateAlert.strings | Bin 0 -> 1630 bytes Frameworks/Sparkle/nl.lproj/Sparkle.strings | Bin 0 -> 6910 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6380 bytes .../no.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../no.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../no.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10634 bytes .../Sparkle/no.lproj/SUUpdateAlert.strings | Bin 0 -> 1630 bytes Frameworks/Sparkle/no.lproj/Sparkle.strings | Bin 0 -> 7056 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6565 bytes .../pl.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1078 bytes .../pl.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../pl.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10720 bytes .../Sparkle/pl.lproj/SUUpdateAlert.strings | Bin 0 -> 1686 bytes Frameworks/Sparkle/pl.lproj/Sparkle.strings | Bin 0 -> 7076 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6380 bytes .../ru.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../ru.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../ru.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10634 bytes .../Sparkle/ru.lproj/SUUpdateAlert.strings | Bin 0 -> 1630 bytes Frameworks/Sparkle/ru.lproj/Sparkle.strings | Bin 0 -> 6922 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6574 bytes .../sk.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1072 bytes .../sk.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../sk.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10776 bytes .../Sparkle/sk.lproj/SUUpdateAlert.strings | Bin 0 -> 1642 bytes Frameworks/Sparkle/sk.lproj/Sparkle.strings | Bin 0 -> 6902 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6380 bytes .../sv.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../sv.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../sv.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10634 bytes .../Sparkle/sv.lproj/SUUpdateAlert.strings | Bin 0 -> 1630 bytes Frameworks/Sparkle/sv.lproj/Sparkle.strings | Bin 0 -> 6912 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6380 bytes .../th.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../th.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../th.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10691 bytes .../Sparkle/th.lproj/SUUpdateAlert.strings | Bin 0 -> 1630 bytes Frameworks/Sparkle/th.lproj/Sparkle.strings | Bin 0 -> 6910 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6568 bytes .../tr.lproj/SUAutomaticUpdateAlert.strings | Bin 0 -> 1066 bytes .../tr.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../tr.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10773 bytes .../Sparkle/tr.lproj/SUUpdateAlert.strings | Bin 0 -> 1638 bytes Frameworks/Sparkle/tr.lproj/Sparkle.strings | Bin 0 -> 6936 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6346 bytes .../SUAutomaticUpdateAlert.strings | Bin 0 -> 926 bytes .../zh_CN.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../zh_CN.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10489 bytes .../Sparkle/zh_CN.lproj/SUUpdateAlert.strings | Bin 0 -> 1440 bytes .../Sparkle/zh_CN.lproj/Sparkle.strings | Bin 0 -> 5536 bytes .../SUAutomaticUpdateAlert.nib/classes.nib | 12 + .../SUAutomaticUpdateAlert.nib/info.nib | 12 + .../keyedobjects.nib | Bin 0 -> 6380 bytes .../SUAutomaticUpdateAlert.strings | Bin 0 -> 1040 bytes .../zh_TW.lproj/SUUpdateAlert.nib/classes.nib | 21 + .../zh_TW.lproj/SUUpdateAlert.nib/info.nib | 16 + .../SUUpdateAlert.nib/keyedobjects.nib | Bin 0 -> 10742 bytes .../Sparkle/zh_TW.lproj/SUUpdateAlert.strings | Bin 0 -> 1630 bytes .../Sparkle/zh_TW.lproj/Sparkle.strings | Bin 0 -> 8562 bytes 280 files changed, 6495 insertions(+) create mode 100755 Frameworks/Sparkle/Info.plist create mode 100755 Frameworks/Sparkle/License.txt create mode 100755 Frameworks/Sparkle/Makefile create mode 100755 Frameworks/Sparkle/NSApplication+AppCopies.h create mode 100755 Frameworks/Sparkle/NSApplication+AppCopies.m create mode 100755 Frameworks/Sparkle/NSFileManager+Authentication.h create mode 100755 Frameworks/Sparkle/NSFileManager+Authentication.m create mode 100755 Frameworks/Sparkle/NSFileManager+Verification.h create mode 100755 Frameworks/Sparkle/NSFileManager+Verification.m create mode 100755 Frameworks/Sparkle/NSString+extras.h create mode 100755 Frameworks/Sparkle/NSString+extras.m create mode 100755 Frameworks/Sparkle/RSS.h create mode 100755 Frameworks/Sparkle/RSS.m create mode 100755 Frameworks/Sparkle/Release Notes.rtf create mode 100755 Frameworks/Sparkle/SUAppcast.h create mode 100755 Frameworks/Sparkle/SUAppcast.m create mode 100755 Frameworks/Sparkle/SUAppcastItem.h create mode 100755 Frameworks/Sparkle/SUAppcastItem.m create mode 100755 Frameworks/Sparkle/SUAutomaticUpdateAlert.h create mode 100755 Frameworks/Sparkle/SUAutomaticUpdateAlert.m create mode 100755 Frameworks/Sparkle/SUConstants.h create mode 100755 Frameworks/Sparkle/SUConstants.m create mode 100755 Frameworks/Sparkle/SUStatus.nib/classes.nib create mode 100755 Frameworks/Sparkle/SUStatus.nib/info.nib create mode 100755 Frameworks/Sparkle/SUStatus.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/SUStatusChecker.h create mode 100755 Frameworks/Sparkle/SUStatusChecker.m create mode 100755 Frameworks/Sparkle/SUStatusController.h create mode 100755 Frameworks/Sparkle/SUStatusController.m create mode 100755 Frameworks/Sparkle/SUUnarchiver.h create mode 100755 Frameworks/Sparkle/SUUnarchiver.m create mode 100755 Frameworks/Sparkle/SUUpdateAlert.h create mode 100755 Frameworks/Sparkle/SUUpdateAlert.m create mode 100755 Frameworks/Sparkle/SUUpdater+Authentication.m create mode 100755 Frameworks/Sparkle/SUUpdater+DSA.m create mode 100755 Frameworks/Sparkle/SUUpdater.h create mode 100755 Frameworks/Sparkle/SUUpdater.m create mode 100755 Frameworks/Sparkle/SUUtilities.h create mode 100755 Frameworks/Sparkle/SUUtilities.m create mode 100755 Frameworks/Sparkle/Sparkle.h create mode 100755 Frameworks/Sparkle/Sparkle.icns create mode 100755 Frameworks/Sparkle/Sparkle.xcodeproj/project.pbxproj create mode 100755 Frameworks/Sparkle/Sparkle_Prefix.pch create mode 100755 Frameworks/Sparkle/ca.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/ca.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/ca.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/ca.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/ca.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/ca.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/ca.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/ca.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/ca.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/cs.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/cs.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/cs.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/cs.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/cs.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/cs.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/cs.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/cs.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/cs.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/cy.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/cy.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/cy.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/cy.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/cy.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/cy.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/cy.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/cy.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/cy.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/da.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/da.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/da.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/da.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/da.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/da.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/da.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/da.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/da.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/de.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/de.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/de.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/de.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/de.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/de.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/de.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/de.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/en.lproj/SUStatus.strings create mode 100755 Frameworks/Sparkle/en.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/en.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/en.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/en.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/en.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/es.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/es.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/es.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/es.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/es.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/es.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/es.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/es.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/fi.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/fi.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/fi.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/fi.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/fi.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/fi.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/fi.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/fi.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/fi.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/fr.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/fr.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/fr.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/fr.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/fr.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/fr.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/fr.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/he.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/he.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/he.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/he.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/he.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/hu.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/hu.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/hu.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/hu.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/hu.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/hu.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/hu.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/hu.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/hu.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/id.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/id.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/id.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/id.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/id.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/id.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/id.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/id.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/id.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/is.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/is.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/is.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/is.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/is.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/is.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/is.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/is.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/is.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/it.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/it.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/it.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/it.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/it.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/ja.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/ja.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/ja.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/ja.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/ja.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/ja.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/ja.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/ja.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/ja.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/ko.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/ko.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/ko.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/ko.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/ko.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/ko.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/ko.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/ko.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/ko.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/md5.c create mode 100755 Frameworks/Sparkle/md5.h create mode 100755 Frameworks/Sparkle/nl.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/nl.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/nl.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/nl.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/nl.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/nl.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/nl.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/no.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/no.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/no.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/no.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/no.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/no.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/no.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/no.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/no.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/pl.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/pl.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/pl.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/pl.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/pl.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/ru.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/ru.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/ru.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/ru.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/ru.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/ru.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/ru.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/sk.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/sk.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/sk.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/sk.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/sk.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/sk.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/sk.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/sk.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/sk.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/sv.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/sv.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/sv.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/sv.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/sv.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/sv.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/sv.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/th.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/th.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/th.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/th.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/th.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/th.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/th.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/th.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/th.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/tr.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/tr.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/tr.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/tr.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/tr.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/zh_CN.lproj/Sparkle.strings create mode 100755 Frameworks/Sparkle/zh_TW.lproj/SUAutomaticUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/zh_TW.lproj/SUAutomaticUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/zh_TW.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/zh_TW.lproj/SUAutomaticUpdateAlert.strings create mode 100755 Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.nib/classes.nib create mode 100755 Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.nib/info.nib create mode 100755 Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.nib/keyedobjects.nib create mode 100755 Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.strings create mode 100755 Frameworks/Sparkle/zh_TW.lproj/Sparkle.strings diff --git a/Frameworks/Sparkle/Info.plist b/Frameworks/Sparkle/Info.plist new file mode 100755 index 000000000..96ac2ab5a --- /dev/null +++ b/Frameworks/Sparkle/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleName + ${PRODUCT_NAME} + CFBundleIconFile + + CFBundleIdentifier + org.andymatuschak.Sparkle + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleSignature + ???? + CFBundleVersion + 1.1 + NSPrincipalClass + + + diff --git a/Frameworks/Sparkle/License.txt b/Frameworks/Sparkle/License.txt new file mode 100755 index 000000000..20466c417 --- /dev/null +++ b/Frameworks/Sparkle/License.txt @@ -0,0 +1,7 @@ +Copyright (c) 2006 Andy Matuschak + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/Frameworks/Sparkle/Makefile b/Frameworks/Sparkle/Makefile new file mode 100755 index 000000000..a40da763e --- /dev/null +++ b/Frameworks/Sparkle/Makefile @@ -0,0 +1,7 @@ +.PHONY: all localizable-strings + +localizable-strings: + rm English.lproj/Sparkle.strings || TRUE + genstrings -o English.lproj -s SULocalizedString *.m *.h + mv English.lproj/Localizable.strings English.lproj/Sparkle.strings + diff --git a/Frameworks/Sparkle/NSApplication+AppCopies.h b/Frameworks/Sparkle/NSApplication+AppCopies.h new file mode 100755 index 000000000..ee901e685 --- /dev/null +++ b/Frameworks/Sparkle/NSApplication+AppCopies.h @@ -0,0 +1,13 @@ +// +// NSApplication+AppCopies.h +// Sparkle +// +// Created by Andy Matuschak on 3/16/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import + +@interface NSApplication (SUAppCopies) +- (int)copiesRunning; +@end diff --git a/Frameworks/Sparkle/NSApplication+AppCopies.m b/Frameworks/Sparkle/NSApplication+AppCopies.m new file mode 100755 index 000000000..0bba7e269 --- /dev/null +++ b/Frameworks/Sparkle/NSApplication+AppCopies.m @@ -0,0 +1,27 @@ +// +// NSApplication+AppCopies.m +// Sparkle +// +// Created by Andy Matuschak on 3/16/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import "NSApplication+AppCopies.h" +#import "SUUtilities.h" + +@implementation NSApplication (SUAppCopies) + +- (int)copiesRunning +{ + id appEnumerator = [[[NSWorkspace sharedWorkspace] launchedApplications] objectEnumerator], currentApp; + int count = 0; + while ((currentApp = [appEnumerator nextObject])) + { + // Potential gotcha: the new version of your app better have the same NSApplicationName. + if([[currentApp objectForKey:@"NSApplicationName"] isEqualToString:SUHostAppName()]) + count++; + } + return count; +} + +@end diff --git a/Frameworks/Sparkle/NSFileManager+Authentication.h b/Frameworks/Sparkle/NSFileManager+Authentication.h new file mode 100755 index 000000000..c995911ca --- /dev/null +++ b/Frameworks/Sparkle/NSFileManager+Authentication.h @@ -0,0 +1,11 @@ +// +// NSFileManager+Authentication.m +// Sparkle +// +// Created by Andy Matuschak on 3/9/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +@interface NSFileManager (SUAuthenticationAdditions) +- (BOOL)movePathWithAuthentication:(NSString *)src toPath:(NSString *)dst; +@end diff --git a/Frameworks/Sparkle/NSFileManager+Authentication.m b/Frameworks/Sparkle/NSFileManager+Authentication.m new file mode 100755 index 000000000..e6f8029f6 --- /dev/null +++ b/Frameworks/Sparkle/NSFileManager+Authentication.m @@ -0,0 +1,109 @@ +// +// NSFileManager+Authentication.m +// Sparkle +// +// Created by Andy Matuschak on 3/9/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +// This code based on generous contribution from Allan Odgaard. Thanks, Allan! + +#import "sys/stat.h" +#import + +#import +#import +#import + +@implementation NSFileManager (SUAuthenticationAdditions) + +- (BOOL)currentUserOwnsPath:(NSString *)oPath +{ + char *path = (char *)[oPath fileSystemRepresentation]; + unsigned int uid = getuid(); + bool res = false; + struct stat sb; + if(stat(path, &sb) == 0) + { + if(sb.st_uid == uid) + { + res = true; + if(sb.st_mode & S_IFDIR) + { + DIR* dir = opendir(path); + struct dirent* entry = NULL; + while(res && (entry = readdir(dir))) + { + if(strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) + continue; + + char descend[strlen(path) + 1 + entry->d_namlen + 1]; + strcpy(descend, path); + strcat(descend, "/"); + strcat(descend, entry->d_name); + res = [self currentUserOwnsPath:[NSString stringWithUTF8String:descend]]; + } + closedir(dir); + } + } + } + return res; +} + +- (BOOL)_movePathWithForcedAuthentication:(NSString *)src toPath:(NSString *)dst +{ + NSString *tmp = [[[dst stringByDeletingPathExtension] stringByAppendingString:@".old"] stringByAppendingPathExtension:[dst pathExtension]]; + BOOL res = NO; + struct stat sb; + if((stat([src UTF8String], &sb) != 0) || (stat([tmp UTF8String], &sb) == 0) || stat([dst UTF8String], &sb) != 0) + return false; + + char* buf = NULL; + asprintf(&buf, + "mv -f \"$DST_PATH\" \"$TMP_PATH\" && " + "mv -f \"$SRC_PATH\" \"$DST_PATH\" && " + "rm -rf \"$TMP_PATH\" && " + "chown -R %d:%d \"$DST_PATH\"", + sb.st_uid, sb.st_gid); + + if(!buf) + return false; + + AuthorizationRef auth; + if(AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &auth) == errAuthorizationSuccess) + { + setenv("SRC_PATH", [src UTF8String], 1); + setenv("DST_PATH", [dst UTF8String], 1); + setenv("TMP_PATH", [tmp UTF8String], 1); + sig_t oldSigChildHandler = signal(SIGCHLD, SIG_DFL); + char const* arguments[] = { "-c", buf, NULL }; + if(AuthorizationExecuteWithPrivileges(auth, "/bin/sh", kAuthorizationFlagDefaults, (char**)arguments, NULL) == errAuthorizationSuccess) + { + int status; + int pid = wait(&status); + if(pid != -1 && WIFEXITED(status) && WEXITSTATUS(status) == 0) + res = YES; + } + signal(SIGCHLD, oldSigChildHandler); + } + AuthorizationFree(auth, 0); + free(buf); + return res; +} + +- (BOOL)movePathWithAuthentication:(NSString *)src toPath:(NSString *)dst +{ + if ([[NSFileManager defaultManager] isWritableFileAtPath:dst] && [[NSFileManager defaultManager] isWritableFileAtPath:[dst stringByDeletingLastPathComponent]]) + { + int tag = 0; + BOOL result = [[NSWorkspace sharedWorkspace] performFileOperation:NSWorkspaceRecycleOperation source:[dst stringByDeletingLastPathComponent] destination:@"" files:[NSArray arrayWithObject:[dst lastPathComponent]] tag:&tag]; + result &= [[NSFileManager defaultManager] movePath:src toPath:dst handler:NULL]; + return result; + } + else + { + return [self _movePathWithForcedAuthentication:src toPath:dst]; + } +} + +@end diff --git a/Frameworks/Sparkle/NSFileManager+Verification.h b/Frameworks/Sparkle/NSFileManager+Verification.h new file mode 100755 index 000000000..f0ce7c20c --- /dev/null +++ b/Frameworks/Sparkle/NSFileManager+Verification.h @@ -0,0 +1,15 @@ +// +// NSFileManager+Verification.h +// Sparkle +// +// Created by Andy Matuschak on 3/16/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import + +// For the paranoid folks! +@interface NSFileManager (SUVerification) +- (BOOL)validatePath:(NSString *)path withMD5Hash:(NSString *)hash; +- (BOOL)validatePath:(NSString *)path withEncodedDSASignature:(NSString *)encodedSignature; +@end diff --git a/Frameworks/Sparkle/NSFileManager+Verification.m b/Frameworks/Sparkle/NSFileManager+Verification.m new file mode 100755 index 000000000..c0ddb959e --- /dev/null +++ b/Frameworks/Sparkle/NSFileManager+Verification.m @@ -0,0 +1,153 @@ +// +// NSFileManager+Verification.m +// Sparkle +// +// Created by Andy Matuschak on 3/16/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +// DSA stuff adapted from code provided by Allan Odgaard. Thanks, Allan! + +#import "NSFileManager+Verification.h" +#import "SUUtilities.h" +#import "md5.h" + +#import +#import +#import +#import +#import +#import + +int b64decode(unsigned char* str) +{ + unsigned char *cur, *start; + int d, dlast, phase; + unsigned char c; + static int table[256] = { + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* 00-0F */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* 10-1F */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63, /* 20-2F */ + 52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1, /* 30-3F */ + -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14, /* 40-4F */ + 15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1, /* 50-5F */ + -1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40, /* 60-6F */ + 41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1, /* 70-7F */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* 80-8F */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* 90-9F */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* A0-AF */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* B0-BF */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* C0-CF */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* D0-DF */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* E0-EF */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 /* F0-FF */ + }; + + d = dlast = phase = 0; + start = str; + for (cur = str; *cur != '\0'; ++cur ) + { + if(*cur == '\n' || *cur == '\r'){phase = dlast = 0; continue;} + d = table[(int)*cur]; + if(d != -1) + { + switch(phase) + { + case 0: + ++phase; + break; + case 1: + c = ((dlast << 2) | ((d & 0x30) >> 4)); + *str++ = c; + ++phase; + break; + case 2: + c = (((dlast & 0xf) << 4) | ((d & 0x3c) >> 2)); + *str++ = c; + ++phase; + break; + case 3: + c = (((dlast & 0x03 ) << 6) | d); + *str++ = c; + phase = 0; + break; + } + dlast = d; + } + } + *str = '\0'; + return str - start; +} + +EVP_PKEY* load_dsa_key(char *key) +{ + EVP_PKEY* pkey = NULL; + BIO *bio; + if((bio = BIO_new_mem_buf(key, strlen(key)))) + { + DSA* dsa_key = 0; + if(PEM_read_bio_DSA_PUBKEY(bio, &dsa_key, NULL, NULL)) + { + if((pkey = EVP_PKEY_new())) + { + if(EVP_PKEY_assign_DSA(pkey, dsa_key) != 1) + { + DSA_free(dsa_key); + EVP_PKEY_free(pkey); + pkey = NULL; + } + } + } + BIO_free(bio); + } + return pkey; +} + +@implementation NSFileManager (SUVerification) + +- (BOOL)validatePath:(NSString *)path withMD5Hash:(NSString *)hash +{ + NSData *data = [NSData dataWithContentsOfFile:path]; + if (!data) { return NO; } + + md5_state_t md5_state; + md5_init(&md5_state); + md5_append(&md5_state, [data bytes], [data length]); + unsigned char digest[16]; + md5_finish(&md5_state, digest); + + int di; + char hexDigest[32]; + for (di = 0; di < 16; di++) + sprintf(hexDigest + di*2, "%02x", digest[di]); + + return [hash isEqualToString:[NSString stringWithCString:hexDigest]]; +} + +- (BOOL)validatePath:(NSString *)path withEncodedDSASignature:(NSString *)encodedSignature +{ + EVP_PKEY* pkey; + if(!encodedSignature || !SUInfoValueForKey(SUPublicDSAKeyKey) || !(pkey = load_dsa_key((char *)[SUInfoValueForKey(SUPublicDSAKeyKey) UTF8String]))) + return NO; + + // Now, the signature is in base64; we have to decode it into a binary stream. + unsigned char *signature = (unsigned char *)[encodedSignature UTF8String]; + long length = b64decode(signature); + + NSData *pathData = [NSData dataWithContentsOfFile:path]; + if (!pathData) { return NO; } + unsigned char md[SHA_DIGEST_LENGTH]; + SHA1([pathData bytes], [pathData length], md); + + BOOL res = false; + EVP_MD_CTX ctx; + if(EVP_VerifyInit(&ctx, EVP_dss1()) == 1) + { + EVP_VerifyUpdate(&ctx, md, SHA_DIGEST_LENGTH); + res = EVP_VerifyFinal(&ctx, signature, length, pkey) == 1; + } + EVP_PKEY_free(pkey); + return res; +} + +@end diff --git a/Frameworks/Sparkle/NSString+extras.h b/Frameworks/Sparkle/NSString+extras.h new file mode 100755 index 000000000..498e4d01c --- /dev/null +++ b/Frameworks/Sparkle/NSString+extras.h @@ -0,0 +1,61 @@ +/* + +BSD License + +Copyright (c) 2002, Brent Simmons +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +* Neither the name of ranchero.com or Brent Simmons nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + + +/* + NSString+extras.h + NetNewsWire + + Created by Brent Simmons on Fri Jun 14 2002. + Copyright (c) 2002 Brent Simmons. All rights reserved. +*/ + + +#import +#import + + +@interface NSString (extras) + +- (NSString *)stringWithSubstitute:(NSString *)subs forCharactersFromSet:(NSCharacterSet *)set; + +- (NSString *) trimWhiteSpace; + +- (NSString *) stripHTML; + +- (NSString *) ellipsizeAfterNWords: (int) n; + ++ (BOOL) stringIsEmpty: (NSString *) s; + + +@end diff --git a/Frameworks/Sparkle/NSString+extras.m b/Frameworks/Sparkle/NSString+extras.m new file mode 100755 index 000000000..b5bfb4c6f --- /dev/null +++ b/Frameworks/Sparkle/NSString+extras.m @@ -0,0 +1,135 @@ +/* + +BSD License + +Copyright (c) 2002, Brent Simmons +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +* Neither the name of ranchero.com or Brent Simmons nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + + +/* + NSString+extras.m + NetNewsWire + + Created by Brent Simmons on Fri Jun 14 2002. + Copyright (c) 2002 Brent Simmons. All rights reserved. +*/ + +#import "NSString+extras.h" + + +@implementation NSString (extras) + +- (NSString *)stringWithSubstitute:(NSString *)subs forCharactersFromSet:(NSCharacterSet *)set +{ + NSRange r = [self rangeOfCharacterFromSet:set]; + if (r.location == NSNotFound) return self; + NSMutableString *newString = [self mutableCopy]; + do + { + [newString replaceCharactersInRange:r withString:subs]; + r = [newString rangeOfCharacterFromSet:set]; + } + while (r.location != NSNotFound); + return [newString autorelease]; +} + +- (NSString *) trimWhiteSpace { + + NSMutableString *s = [[self mutableCopy] autorelease]; + + CFStringTrimWhitespace ((CFMutableStringRef) s); + + return (NSString *) [[s copy] autorelease]; + } /*trimWhiteSpace*/ + + +- (NSString *) ellipsizeAfterNWords: (int) n { + + NSArray *stringComponents = [self componentsSeparatedByString: @" "]; + NSMutableArray *componentsCopy = [stringComponents mutableCopy]; + int ix = n; + int len = [componentsCopy count]; + + if (len < n) + ix = len; + + [componentsCopy removeObjectsInRange: NSMakeRange (ix, len - ix)]; + + return [componentsCopy componentsJoinedByString: @" "]; + } /*ellipsizeAfterNWords*/ + + +- (NSString *) stripHTML { + + int len = [self length]; + NSMutableString *s = [NSMutableString stringWithCapacity: len]; + int i = 0, level = 0; + + for (i = 0; i < len; i++) { + + NSString *ch = [self substringWithRange: NSMakeRange (i, 1)]; + + if ([ch isEqualTo: @"<"]) + level++; + + else if ([ch isEqualTo: @">"]) { + + level--; + + if (level == 0) + [s appendString: @" "]; + } /*else if*/ + + else if (level == 0) + [s appendString: ch]; + } /*for*/ + + return (NSString *) [[s copy] autorelease]; + } /*stripHTML*/ + + ++ (BOOL) stringIsEmpty: (NSString *) s { + + NSString *copy; + + if (s == nil) + return (YES); + + if ([s isEqualTo: @""]) + return (YES); + + copy = [[s copy] autorelease]; + + if ([[copy trimWhiteSpace] isEqualTo: @""]) + return (YES); + + return (NO); + } /*stringIsEmpty*/ + +@end diff --git a/Frameworks/Sparkle/RSS.h b/Frameworks/Sparkle/RSS.h new file mode 100755 index 000000000..82da04a44 --- /dev/null +++ b/Frameworks/Sparkle/RSS.h @@ -0,0 +1,98 @@ +/* + +BSD License + +Copyright (c) 2002, Brent Simmons +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +* Neither the name of ranchero.com or Brent Simmons nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +/* + RSS.h + A class for reading RSS feeds. + + Created by Brent Simmons on Wed Apr 17 2002. + Copyright (c) 2002 Brent Simmons. All rights reserved. +*/ + + +#import +#import +#import "NSString+extras.h" + + +@interface RSS : NSObject { + + NSDictionary *headerItems; + NSMutableArray *newsItems; + NSString *version; + + BOOL flRdf; + BOOL normalize; + } + + +/*Public*/ + +- (RSS *) initWithTitle: (NSString *) title andDescription: (NSString *) description; + +- (RSS *) initWithData: (NSData *) rssData normalize: (BOOL) fl; + +- (RSS *) initWithURL: (NSURL *) url normalize: (BOOL) fl; +- (RSS *) initWithURL: (NSURL *) url normalize: (BOOL) fl userAgent:(NSString *)userAgent; + +- (NSDictionary *) headerItems; + +- (NSMutableArray *) newsItems; + +- (NSString *) version; + +// AMM's extensions for Sparkle +- (NSDictionary *)newestItem; + + +/*Private*/ + +- (void) createheaderdictionary: (CFXMLTreeRef) tree; + +- (void) createitemsarray: (CFXMLTreeRef) tree; + +- (void) setversionstring: (CFXMLTreeRef) tree; + +- (void) flattenimagechildren: (CFXMLTreeRef) tree into: (NSMutableDictionary *) dictionary; + +- (void) flattensourceattributes: (CFXMLNodeRef) node into: (NSMutableDictionary *) dictionary; + +- (CFXMLTreeRef) getchanneltree: (CFXMLTreeRef) tree; + +- (CFXMLTreeRef) getnamedtree: (CFXMLTreeRef) currentTree name: (NSString *) name; + +- (void) normalizeRSSItem: (NSMutableDictionary *) rssItem; + +- (NSString *) getelementvalue: (CFXMLTreeRef) tree; + +@end diff --git a/Frameworks/Sparkle/RSS.m b/Frameworks/Sparkle/RSS.m new file mode 100755 index 000000000..3664f5e02 --- /dev/null +++ b/Frameworks/Sparkle/RSS.m @@ -0,0 +1,692 @@ +/* + +BSD License + +Copyright (c) 2002, Brent Simmons +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +* Neither the name of ranchero.com or Brent Simmons nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS +BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +*/ + +/* + RSS.m + A class for reading RSS feeds. + + Created by Brent Simmons on Wed Apr 17 2002. + Copyright (c) 2002 Brent Simmons. All rights reserved. +*/ + + +#import "RSS.h" + +// This comparator function is used to sort the RSS items by their published date. +int compareNewsItems(id item1, id item2, void *context) +{ + // We compare item2 with item1 instead of the other way 'round because we want descending, not ascending. Bit of a hack. + return [(NSDate *)[NSDate dateWithNaturalLanguageString:[item2 objectForKey:@"pubDate"]] compare:(NSDate *)[NSDate dateWithNaturalLanguageString:[item1 objectForKey:@"pubDate"]]]; +} + +@implementation RSS + + +#define titleKey @"title" +#define linkKey @"link" +#define descriptionKey @"description" + + +/*Public interface*/ + +- (NSDictionary *)newestItem +{ + // The news items are already sorted by published date, descending. + return [[self newsItems] objectAtIndex:0]; +} + +- (RSS *) initWithTitle: (NSString *) title andDescription: (NSString *) description { + + /* + Create an empty feed. Useful for synthetic feeds. + */ + + NSMutableDictionary *header; + + flRdf = NO; + + header = [NSMutableDictionary dictionaryWithCapacity: 2]; + + [header setObject: title forKey: titleKey]; + + [header setObject: description forKey: descriptionKey]; + + headerItems = (NSDictionary *) [header copy]; + + newsItems = [[NSMutableArray alloc] initWithCapacity: 0]; + + version = [[NSString alloc] initWithString: @"synthetic"]; + + return (self); + } /*initWithTitle*/ + + +- (RSS *) initWithData: (NSData *) rssData normalize: (BOOL) fl { + + CFXMLTreeRef tree; + + flRdf = NO; + + normalize = fl; + + NS_DURING + + tree = CFXMLTreeCreateFromData (kCFAllocatorDefault, (CFDataRef) rssData, + NULL, kCFXMLParserSkipWhitespace, kCFXMLNodeCurrentVersion); + + NS_HANDLER + + tree = nil; + + NS_ENDHANDLER + + if (tree == nil) { + + /*If there was a problem parsing the RSS file, + raise an exception.*/ + + NSException *exception = [NSException exceptionWithName: @"RSSParseFailed" + reason: @"The XML parser could not parse the RSS data." userInfo: nil]; + + [exception raise]; + } /*if*/ + + [self createheaderdictionary: tree]; + + [self createitemsarray: tree]; + + [self setversionstring: tree]; + + CFRelease (tree); + + return (self); + } /*initWithData*/ + + +- (RSS *) initWithURL: (NSURL *) url normalize: (BOOL) fl +{ + return [self initWithURL: url normalize: fl userAgent: nil]; +} + + + +- (RSS *) initWithURL: (NSURL *) url normalize: (BOOL) fl userAgent: (NSString*)userAgent +{ + NSData *rssData; + + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: url cachePolicy: NSURLRequestReloadIgnoringCacheData + timeoutInterval: 30.0]; + if (userAgent) + [request setValue: userAgent forHTTPHeaderField: @"User-Agent"]; + + NSURLResponse *response=0; + NSError *error=0; + + rssData = [NSURLConnection sendSynchronousRequest: request returningResponse: &response error: &error]; + + if (rssData == nil) + { + NSException *exception = [NSException exceptionWithName: @"RSSDownloadFailed" + reason: [error localizedFailureReason] userInfo: [error userInfo] ]; + [exception raise]; + } + + return [self initWithData: rssData normalize: fl]; +} /*initWithUrl*/ + + +- (NSDictionary *) headerItems { + + return (headerItems); + } /*headerItems*/ + + +- (NSMutableArray *) newsItems { + + return (newsItems); + } /*newsItems*/ + + +- (NSString *) version { + + return (version); + } /*version*/ + + +- (void) dealloc { + + [headerItems release]; + + [newsItems release]; + + [version release]; + [super dealloc]; + } /*dealloc*/ + + + +/*Private methods. Don't call these: they may change.*/ + + +- (void) createheaderdictionary: (CFXMLTreeRef) tree { + + CFXMLTreeRef channelTree, childTree; + CFXMLNodeRef childNode; + int childCount, i; + NSString *childName; + NSMutableDictionary *headerItemsMutable; + + channelTree = [self getchanneltree: tree]; + + if (channelTree == nil) { + + NSException *exception = [NSException exceptionWithName: @"RSSCreateHeaderDictionaryFailed" + reason: @"Couldn't find the channel tree." userInfo: nil]; + + [exception raise]; + } /*if*/ + + childCount = CFTreeGetChildCount (channelTree); + + headerItemsMutable = [NSMutableDictionary dictionaryWithCapacity: childCount]; + + for (i = 0; i < childCount; i++) { + + childTree = CFTreeGetChildAtIndex (channelTree, i); + + childNode = CFXMLTreeGetNode (childTree); + + childName = (NSString *) CFXMLNodeGetString (childNode); + + if ([childName hasPrefix: @"rss:"]) + childName = [childName substringFromIndex: 4]; + + if ([childName isEqualToString: @"item"]) + break; + + if ([childName isEqualTo: @"image"]) + [self flattenimagechildren: childTree into: headerItemsMutable]; + + [headerItemsMutable setObject: [self getelementvalue: childTree] forKey: childName]; + } /*for*/ + + headerItems = [headerItemsMutable copy]; + } /*initheaderdictionary*/ + + +- (void) createitemsarray: (CFXMLTreeRef) tree { + + CFXMLTreeRef channelTree, childTree, itemTree; + CFXMLNodeRef childNode, itemNode; + NSString *childName; + NSString *itemName, *itemValue; + int childCount, itemChildCount, i, j; + NSMutableDictionary *itemDictionaryMutable; + NSMutableArray *itemsArrayMutable; + + if (flRdf) + channelTree = [self getnamedtree: tree name: @"rdf:RDF"]; + else + channelTree = [self getchanneltree: tree]; + + if (channelTree == nil) { + + NSException *exception = [NSException exceptionWithName: @"RSSCreateItemsArrayFailed" + reason: @"Couldn't find the news items." userInfo: nil]; + + [exception raise]; + } /*if*/ + + childCount = CFTreeGetChildCount (channelTree); + + itemsArrayMutable = [NSMutableArray arrayWithCapacity: childCount]; + + for (i = 0; i < childCount; i++) { + + childTree = CFTreeGetChildAtIndex (channelTree, i); + + childNode = CFXMLTreeGetNode (childTree); + + childName = (NSString *) CFXMLNodeGetString (childNode); + + if ([childName hasPrefix: @"rss:"]) + childName = [childName substringFromIndex: 4]; + + if (![childName isEqualToString: @"item"]) + continue; + + itemChildCount = CFTreeGetChildCount (childTree); + + itemDictionaryMutable = [NSMutableDictionary dictionaryWithCapacity: itemChildCount]; + + for (j = 0; j < itemChildCount; j++) { + + itemTree = CFTreeGetChildAtIndex (childTree, j); + + itemNode = CFXMLTreeGetNode (itemTree); + + itemName = (NSString *) CFXMLNodeGetString (itemNode); + + if ([itemName hasPrefix: @"rss:"]) + itemName = [itemName substringFromIndex: 4]; + + if ([itemName isEqualTo:@"enclosure"]) + { + // Hack to add attributes to the dictionary in addition to children. (AMM) + const CFXMLElementInfo *websiteInfo = CFXMLNodeGetInfoPtr(itemNode); + NSMutableDictionary *enclosureDictionary = [NSMutableDictionary dictionary]; + id keyEnumerator = [(NSDictionary *)websiteInfo->attributes keyEnumerator], current; + while ((current = [keyEnumerator nextObject])) + { + [enclosureDictionary setObject:[(NSDictionary *)websiteInfo->attributes objectForKey:current] forKey:current]; + } + [itemDictionaryMutable setObject: enclosureDictionary forKey: itemName]; + continue; + } + + itemValue = [self getelementvalue: itemTree]; + + if ([itemName isEqualTo: @"source"]) + [self flattensourceattributes: itemNode into: itemDictionaryMutable]; + + [itemDictionaryMutable setObject: itemValue forKey: itemName]; + } /*for*/ + + if (normalize) + [self normalizeRSSItem: itemDictionaryMutable]; + + [itemsArrayMutable addObject: itemDictionaryMutable]; + } /*for*/ + + // Sort the news items by published date, descending. + newsItems = [[itemsArrayMutable sortedArrayUsingFunction:compareNewsItems context:NULL] retain]; + } /*createitemsarray*/ + + +- (void) setversionstring: (CFXMLTreeRef) tree { + + CFXMLTreeRef rssTree; + const CFXMLElementInfo *elementInfo; + CFXMLNodeRef node; + + if (flRdf) { + + version = [[NSString alloc] initWithString: @"rdf"]; + + return; + } /*if*/ + + rssTree = [self getnamedtree: tree name: @"rss"]; + + node = CFXMLTreeGetNode (rssTree); + + elementInfo = CFXMLNodeGetInfoPtr (node); + + version = [[NSString alloc] initWithString: [(NSDictionary *) (*elementInfo).attributes objectForKey: @"version"]]; + } /*setversionstring*/ + + +- (void) flattenimagechildren: (CFXMLTreeRef) tree into: (NSMutableDictionary *) dictionary { + + int childCount = CFTreeGetChildCount (tree); + int i = 0; + CFXMLTreeRef childTree; + CFXMLNodeRef childNode; + NSString *childName, *childValue, *keyName; + + if (childCount < 1) + return; + + for (i = 0; i < childCount; i++) { + + childTree = CFTreeGetChildAtIndex (tree, i); + + childNode = CFXMLTreeGetNode (childTree); + + childName = (NSString *) CFXMLNodeGetString (childNode); + + if ([childName hasPrefix: @"rss:"]) + childName = [childName substringFromIndex: 4]; + + childValue = [self getelementvalue: childTree]; + + keyName = [NSString stringWithFormat: @"image%@", childName]; + + [dictionary setObject: childValue forKey: keyName]; + } /*for*/ + } /*flattenimagechildren*/ + + +- (void) flattensourceattributes: (CFXMLNodeRef) node into: (NSMutableDictionary *) dictionary { + + const CFXMLElementInfo *elementInfo; + NSString *sourceHomeUrl, *sourceRssUrl; + + elementInfo = CFXMLNodeGetInfoPtr (node); + + sourceHomeUrl = [(NSDictionary *) (*elementInfo).attributes objectForKey: @"homeUrl"]; + + sourceRssUrl = [(NSDictionary *) (*elementInfo).attributes objectForKey: @"url"]; + + if (sourceHomeUrl != nil) + [dictionary setObject: sourceHomeUrl forKey: @"sourceHomeUrl"]; + + if (sourceRssUrl != nil) + [dictionary setObject: sourceRssUrl forKey: @"sourceRssUrl"]; + } /*flattensourceattributes*/ + + +- (CFXMLTreeRef) getchanneltree: (CFXMLTreeRef) tree { + + CFXMLTreeRef rssTree, channelTree; + + rssTree = [self getnamedtree: tree name: @"rss"]; + + if (rssTree == nil) { /*It might be "rdf:RDF" instead, a 1.0 or greater feed.*/ + + rssTree = [self getnamedtree: tree name: @"rdf:RDF"]; + + if (rssTree != nil) + flRdf = YES; /*This info will be needed later when creating the items array.*/ + } /*if*/ + + if (rssTree == nil) + return (nil); + + channelTree = [self getnamedtree: rssTree name: @"channel"]; + + if (channelTree == nil) + channelTree = [self getnamedtree: rssTree name: @"rss:channel"]; + + return (channelTree); + } /*getchanneltree*/ + + +- (CFXMLTreeRef) getnamedtree: (CFXMLTreeRef) currentTree name: (NSString *) name { + + int childCount, i; + CFXMLNodeRef xmlNode; + CFXMLTreeRef xmlTreeNode; + NSString *itemName; + + childCount = CFTreeGetChildCount (currentTree); + + for (i = childCount - 1; i >= 0; i--) { + + xmlTreeNode = CFTreeGetChildAtIndex (currentTree, i); + + xmlNode = CFXMLTreeGetNode (xmlTreeNode); + + itemName = (NSString *) CFXMLNodeGetString (xmlNode); + + if ([itemName isEqualToString: name]) + return (xmlTreeNode); + } /*for*/ + + return (nil); + } /*getnamedtree*/ + + +- (void) normalizeRSSItem: (NSMutableDictionary *) rssItem { + + /* + Make sure item, link, and description are present and have + reasonable values. Description and link may be "". + Also trim white space, remove HTML when appropriate. + */ + + NSString *description, *link, *title; + BOOL nilDescription = NO; + + /*Description*/ + + description = [rssItem objectForKey: descriptionKey]; + + if (description == nil) { + + description = @""; + + nilDescription = YES; + } /*if*/ + + description = [description trimWhiteSpace]; + + if ([description isEqualTo: @""]) + nilDescription = YES; + + [rssItem setObject: description forKey: descriptionKey]; + + /*Link*/ + + link = [rssItem objectForKey: linkKey]; + + if ([NSString stringIsEmpty: link]) { + + /*Try to get a URL from the description.*/ + + if (!nilDescription) { + + NSArray *stringComponents = [description componentsSeparatedByString: @"href=\""]; + + if ([stringComponents count] > 1) { + + link = [stringComponents objectAtIndex: 1]; + + stringComponents = [link componentsSeparatedByString: @"\""]; + + link = [stringComponents objectAtIndex: 0]; + } /*if*/ + } /*if*/ + } /*if*/ + + if (link == nil) + link = @""; + + link = [link trimWhiteSpace]; + + [rssItem setObject: link forKey: linkKey]; + + /*Title*/ + + title = [rssItem objectForKey: titleKey]; + + if (title != nil) { + + title = [title stripHTML]; + + title = [title trimWhiteSpace]; + } /*if*/ + + if ([NSString stringIsEmpty: title]) { + + /*Grab a title from the description.*/ + + if (!nilDescription) { + + NSArray *stringComponents = [description componentsSeparatedByString: @">"]; + + if ([stringComponents count] > 1) { + + title = [stringComponents objectAtIndex: 1]; + + stringComponents = [title componentsSeparatedByString: @"<"]; + + title = [stringComponents objectAtIndex: 0]; + + title = [title stripHTML]; + + title = [title trimWhiteSpace]; + } /*if*/ + + if ([NSString stringIsEmpty: title]) { /*use first part of description*/ + + NSString *shortTitle = [[[description stripHTML] trimWhiteSpace] ellipsizeAfterNWords: 5]; + + shortTitle = [shortTitle trimWhiteSpace]; + + title = [NSString stringWithFormat: @"%@...", shortTitle]; + } /*else*/ + } /*if*/ + + title = [title stripHTML]; + + title = [title trimWhiteSpace]; + + if ([NSString stringIsEmpty: title]) + title = @"Untitled"; + } /*if*/ + + [rssItem setObject: title forKey: titleKey]; + + /*dangerousmeta case: super-long title with no description*/ + + if ((nilDescription) && ([title length] > 50)) { + + NSString *shortTitle = [[[title stripHTML] trimWhiteSpace] ellipsizeAfterNWords: 7]; + + description = [[title copy] autorelease]; + + [rssItem setObject: description forKey: descriptionKey]; + + title = [NSString stringWithFormat: @"%@...", shortTitle]; + + [rssItem setObject: title forKey: titleKey]; + } /*if*/ + + { /*deal with entities*/ + + const char *tempcstring; + NSAttributedString *s = nil; + NSString *convertedTitle = nil; + NSArray *stringComponents; + + stringComponents = [title componentsSeparatedByString: @"&"]; + + if ([stringComponents count] > 1) { + + stringComponents = [title componentsSeparatedByString: @";"]; + + if ([stringComponents count] > 1) { + + int len; + + tempcstring = [title UTF8String]; + + len = strlen (tempcstring); + + if (len > 0) { + + s = [[NSAttributedString alloc] + initWithHTML: [NSData dataWithBytes: tempcstring length: strlen (tempcstring)] + documentAttributes: (NSDictionary **) NULL]; + + convertedTitle = [s string]; + + [s autorelease]; + + convertedTitle = [convertedTitle stripHTML]; + + convertedTitle = [convertedTitle trimWhiteSpace]; + } /*if*/ + + if ([NSString stringIsEmpty: convertedTitle]) + convertedTitle = @"Untitled"; + + [rssItem setObject: convertedTitle forKey: @"convertedTitle"]; + } /*if*/ + } /*if*/ + } /*deal with entities*/ + } /*normalizeRSSItem*/ + + +- (NSString *) getelementvalue: (CFXMLTreeRef) tree { + + CFXMLNodeRef node; + CFXMLTreeRef itemTree; + int childCount, ix; + NSMutableString *valueMutable; + NSString *value; + NSString *name; + + childCount = CFTreeGetChildCount (tree); + + valueMutable = [[NSMutableString alloc] init]; + + for (ix = 0; ix < childCount; ix++) { + + itemTree = CFTreeGetChildAtIndex (tree, ix); + + node = CFXMLTreeGetNode (itemTree); + + name = (NSString *) CFXMLNodeGetString (node); + + if (name != nil) { + + if (CFXMLNodeGetTypeCode (node) == kCFXMLNodeTypeEntityReference) { + + if ([name isEqualTo: @"lt"]) + name = @"<"; + + else if ([name isEqualTo: @"gt"]) + name = @">"; + + else if ([name isEqualTo: @"quot"]) + name = @"\""; + + else if ([name isEqualTo: @"amp"]) + name = @"&"; + + else if ([name isEqualTo: @"rsquo"]) + name = @"\""; + + else if ([name isEqualTo: @"lsquo"]) + name = @"\""; + + else if ([name isEqualTo: @"apos"]) + name = @"'"; + else + name = [NSString stringWithFormat: @"&%@;", name]; + } /*if*/ + + [valueMutable appendString: name]; + } /*if*/ + } /*for*/ + + value = [valueMutable copy]; + + [valueMutable autorelease]; + + return ([value autorelease]); + } /*getelementvalue*/ + +@end diff --git a/Frameworks/Sparkle/Release Notes.rtf b/Frameworks/Sparkle/Release Notes.rtf new file mode 100755 index 000000000..2012a9eaa --- /dev/null +++ b/Frameworks/Sparkle/Release Notes.rtf @@ -0,0 +1,129 @@ +{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf410 +{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;\f2\fswiss\fcharset77 Helvetica-Oblique; +} +{\colortbl;\red255\green255\blue255;} +{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid1} +{\list\listtemplateid2\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid2} +{\list\listtemplateid3\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid3} +{\list\listtemplateid4\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid4} +{\list\listtemplateid5\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid5} +{\list\listtemplateid6\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid6} +{\list\listtemplateid7\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid7} +{\list\listtemplateid8\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid8} +{\list\listtemplateid9\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid9}} +{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}{\listoverride\listid9\listoverridecount0\ls9}} +\margl1440\margr1440\vieww9000\viewh8400\viewkind0 +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural + +\f0\b\fs24 \cf0 Sparkle Updater +\f1\b0 \ +Release Notes\ +\ +Version 1.1\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural\pardirnatural +\ls1\ilvl0\cf0 {\listtext \'a5 }Optimized framework size: now only 1.4mb with all localizations and 384kb with only English.\ +{\listtext \'a5 }Added a new SUStatusChecker class for programmatically determining if a new version is available (see the docs); thanks, Evan Schoenberg!\ +{\listtext \'a5 }Added support for apps using SIGCHLD; thanks, Augie Fackler!\ +{\listtext \'a5 }Added a zh_CN update from JT Lee\ +{\listtext \'a5 }Added a Polish update from Piotr Chylinski\ +{\listtext \'a5 }Fixed DMG support for images with /Applications symlinks.\ +{\listtext \'a5 }Fixed a really stupid interval-checking bug that could cause repeated hits to the appcast.\ +{\listtext \'a5 }Fixed a bug where the check interval would be inconsistent if a value of 0 was stored in the user defaults.\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural +\cf0 \ +Version 1.0\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural\pardirnatural +\ls2\ilvl0\cf0 {\listtext \'a5 }Additions:\ +\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\ql\qnatural\pardirnatural +\ls3\ilvl1\cf0 {\listtext \uc0\u8259 }Added real version comparison courtesy Kevin Ballard: Sparkle now knows that 0.89 < 1.0a3 < 1.0.\ +{\listtext \uc0\u8259 }Added many localizations courtesy David Kocher's localization team.\ +\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\ql\qnatural\pardirnatural +\ls4\ilvl1\cf0 {\listtext \uc0\u8259 }Added a much better installation mechanism courtesy Allan Odgaard.\ +{\listtext \uc0\u8259 }Added a user agent string to the RSS fetch request.\ +{\listtext \uc0\u8259 }Added support for CFBundleShortVersionString in addition to CFBundleVersion, and support for a sparkle:shortVersionString attribute on the enclosure.\ +{\listtext \uc0\u8259 }Added support for CFBundleDisplayName if available.\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural\pardirnatural +\ls4\ilvl0\cf0 {\listtext \'a5 }Changes:\ +\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\ql\qnatural\pardirnatural +\ls4\ilvl1\cf0 {\listtext \uc0\u8259 }Automatic updating is now allowed by default, but only if DSA signing is on.\ +{\listtext \uc0\u8259 }Pressing Escape or closing the update alert now reminds the user later.\ +{\listtext \uc0\u8259 }Now when there's a stored check interval, Sparkle doesn't check immediately on startup the first time the app is launched because the user hasn't consented to it yet.\ +{\listtext \uc0\u8259 }The update alert now remembers its size and floats.\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural\pardirnatural +\ls4\ilvl0\cf0 {\listtext \'a5 }Bug Fixes:\ +\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\ql\qnatural\pardirnatural +\ls4\ilvl1\cf0 {\listtext \uc0\u8259 }Fixed installation of DMGs with multiple files enclosed.\ +{\listtext \uc0\u8259 }Fixed a nasty memory leak.\ +{\listtext \uc0\u8259 }Fixed a bug wherein having no value for allowing automatic updates would display a checkbox for the updates but would not honor it.\ +{\listtext \uc0\u8259 }Fixed a bug in zip extraction that occurred in Panther.\ +{\listtext \uc0\u8259 }Fixed release notes caching.\ +{\listtext \uc0\u8259 }Fixed a bug wherein Sparkle refused to authenticate the installation if the user had cancelled authentication previously in that session.\ +{\listtext \uc0\u8259 }Fixed a weird bug that would cause a second help menu to appear on first launch.\ +\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\ql\qnatural\pardirnatural +\ls5\ilvl1\cf0 {\listtext \uc0\u8259 }Fixed a bug that could occur when changing the scheduled check interval.\ +{\listtext \uc0\u8259 }Fixed a bug wherein the host app could crash if the user clicked Remind Me Later before the release notes finished loading.\ +{\listtext \uc0\u8259 }Fixed a bug wherein the behavior was undefined if the user manually initiated a check when an automatic one was already taking place.\ +{\listtext \uc0\u8259 }Fixed wrapping on the description field in the update alert.\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural +\cf0 \ +Version 1.0 (beta 3):\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural\pardirnatural +\ls6\ilvl0\cf0 {\listtext \'a5 }Fixed a +\f2\i nasty +\f1\i0 crasher that occurred often when the user was not connected to the internet.\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural +\cf0 \ +Version 1.0 (beta 2):\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural\pardirnatural +\ls7\ilvl0\cf0 {\listtext \'a5 }Major Improvements:\ +\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\ql\qnatural\pardirnatural +\ls7\ilvl1\cf0 {\listtext \uc0\u8259 }Fully automatic updating! (see the Documentation: this is beta and off by default)\ +{\listtext \uc0\u8259 }Added support for DSA signatures (see the Documentation).\ +{\listtext \uc0\u8259 }Added support for MD5 sum verification.\ +{\listtext \uc0\u8259 }Added Security.framework-based authentication for installing to privileged directories.\ +{\listtext \uc0\u8259 }Huge refactoring of the codebase: there's now a Sparkle Xcode project, Sparkle is now a framework, and everything is modular / abstracted. And no more code-generated interface.\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural\pardirnatural +\ls7\ilvl0\cf0 {\listtext \'a5 }Minor Improvements:\ +\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\ql\qnatural\pardirnatural +\ls7\ilvl1\cf0 {\listtext \uc0\u8259 }A SUUpdaterWillRestartNotification is sent out before restarting now.\ +{\listtext \uc0\u8259 }Added key equivalents to alert panel buttons.\ +{\listtext \uc0\u8259 }Error handling is much prettier now: technical messages are not presented to the user anymore.\ +{\listtext \uc0\u8259 }There's now a test app for developers to see what Sparkle's like before using it.\ +{\listtext \uc0\u8259 }Wrote new, pretty, extremely thorough documentation.\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural\pardirnatural +\ls7\ilvl0\cf0 {\listtext \'a5 }Bug Fixes:\ +\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\ql\qnatural\pardirnatural +\ls7\ilvl1\cf0 {\listtext \uc0\u8259 }Relaunch behavior is much improved and shouldn't fail in huge apps anymore.\ +{\listtext \uc0\u8259 }Fixed a bug wherein a failing tar command could crash the host app.\ +{\listtext \uc0\u8259 }Sparkle now looks at InfoPlist.strings in addition to Info.plist.\ +{\listtext \uc0\u8259 }Fixed some stupid typos.\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural +\cf0 \ +Version 1.0 (beta 1):\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural\pardirnatural +\ls8\ilvl0\cf0 {\listtext \'a5 }Major New Features:\ +\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\ql\qnatural\pardirnatural +\ls8\ilvl1\cf0 {\listtext \uc0\u8259 }Sparkle now supports scheduled periodic updates\'d1read the Readme for information on how to use it.\ +{\listtext \uc0\u8259 }Sparkle now supports WebKit-based release notes (for CSS and full HTML), which it displays in the main update alert, not a separate panel. The Readme has much more information. Sparkle will, of course, fall back on NSTextView if the host app does not include WebKit.\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural\pardirnatural +\ls8\ilvl0\cf0 {\listtext \'a5 }Minor New Features:\ +\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\ql\qnatural\pardirnatural +\ls8\ilvl1\cf0 {\listtext \uc0\u8259 }Added support for .zip update archives.\ +{\listtext \uc0\u8259 }Added support for .dmg update archives.\ +{\listtext \uc0\u8259 }Implemented Remind Me Later to replace simple update cancellation.\ +{\listtext \uc0\u8259 }Implemented Skip This Version functionality.\ +{\listtext \uc0\u8259 }Added support for multiple feeds via the user defaults SUFeedURL key taking precedent over the one in Info.plist.\ +{\listtext \uc0\u8259 }Added support for Sparkle's custom XML namespace, which is optional but may prove useful. See the Readme for more information.\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural\pardirnatural +\ls8\ilvl0\cf0 {\listtext \'a5 }Bug Fixes:\ +\pard\tx940\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li1440\fi-1440\ql\qnatural\pardirnatural +\ls8\ilvl1\cf0 {\listtext \uc0\u8259 }Sparkle will no longer enter an inconsistent state if the user tries to update again while one is already in progress.\ +{\listtext \uc0\u8259 }Sparkle now uses CFBundleName to determine the application's name instead of the app's filename.\ +{\listtext \uc0\u8259 }Sparkle no longer crashes if the user cancels during extraction.\ +{\listtext \uc0\u8259 }Lots of code refactoring.\ +\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural +\cf0 \ +Version 0.1:\ +\pard\tx220\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural\pardirnatural +\ls9\ilvl0\cf0 {\listtext \'a5 }Initial Release\ +} \ No newline at end of file diff --git a/Frameworks/Sparkle/SUAppcast.h b/Frameworks/Sparkle/SUAppcast.h new file mode 100755 index 000000000..209fe2061 --- /dev/null +++ b/Frameworks/Sparkle/SUAppcast.h @@ -0,0 +1,27 @@ +// +// SUAppcast.h +// Sparkle +// +// Created by Andy Matuschak on 3/12/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import + +@class RSS, SUAppcastItem; +@interface SUAppcast : NSObject { + NSArray *items; + id delegate; +} + +- (void)fetchAppcastFromURL:(NSURL *)url; +- (void)setDelegate:delegate; + +- (SUAppcastItem *)newestItem; +- (NSArray *)items; + +@end + +@interface NSObject (SUAppcastDelegate) +- appcastDidFinishLoading:(SUAppcast *)appcast; +@end \ No newline at end of file diff --git a/Frameworks/Sparkle/SUAppcast.m b/Frameworks/Sparkle/SUAppcast.m new file mode 100755 index 000000000..d16cefff1 --- /dev/null +++ b/Frameworks/Sparkle/SUAppcast.m @@ -0,0 +1,77 @@ +// +// SUAppcast.m +// Sparkle +// +// Created by Andy Matuschak on 3/12/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import "SUAppcast.h" +#import "SUAppcastItem.h" +#import "SUUtilities.h" +#import "RSS.h" + +@implementation SUAppcast + +- (void)fetchAppcastFromURL:(NSURL *)url +{ + [NSThread detachNewThreadSelector:@selector(_fetchAppcastFromURL:) toTarget:self withObject:url]; // let's not block the main thread +} + +- (void)setDelegate:del +{ + delegate = del; +} + +- (void)dealloc +{ + [items release]; + [super dealloc]; +} + +- (SUAppcastItem *)newestItem +{ + return [items objectAtIndex:0]; // the RSS class takes care of sorting by published date, descending. +} + +- (NSArray *)items +{ + return items; +} + +- (void)_fetchAppcastFromURL:(NSURL *)url +{ + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + + RSS *feed; + @try + { + NSString *userAgent = [NSString stringWithFormat: @"%@/%@ (Mac OS X) Sparkle/1.0", SUHostAppName(), SUHostAppVersion()]; + + feed = [[RSS alloc] initWithURL:url normalize:YES userAgent:userAgent]; + // Set up all the appcast items + NSMutableArray *tempItems = [NSMutableArray array]; + id enumerator = [[feed newsItems] objectEnumerator], current; + while ((current = [enumerator nextObject])) + { + [tempItems addObject:[[[SUAppcastItem alloc] initWithDictionary:current] autorelease]]; + } + items = [[NSArray arrayWithArray:tempItems] retain]; + [feed release]; + + if ([delegate respondsToSelector:@selector(appcastDidFinishLoading:)]) + [delegate performSelectorOnMainThread:@selector(appcastDidFinishLoading:) withObject:self waitUntilDone:NO]; + + } + @catch (NSException *e) + { + if ([delegate respondsToSelector:@selector(appcastDidFailToLoad:)]) + [delegate performSelectorOnMainThread:@selector(appcastDidFailToLoad:) withObject:self waitUntilDone:NO]; + } + @finally + { + [pool release]; + } +} + +@end diff --git a/Frameworks/Sparkle/SUAppcastItem.h b/Frameworks/Sparkle/SUAppcastItem.h new file mode 100755 index 000000000..908707341 --- /dev/null +++ b/Frameworks/Sparkle/SUAppcastItem.h @@ -0,0 +1,62 @@ +// +// SUAppcastItem.h +// Sparkle +// +// Created by Andy Matuschak on 3/12/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import + + +@interface SUAppcastItem : NSObject { + NSString *title; + NSDate *date; + NSString *description; + + NSURL *releaseNotesURL; + + NSString *DSASignature; + NSString *MD5Sum; + + NSString *minimumSystemVersion; + + NSURL *fileURL; + NSString *fileVersion; + NSString *versionString; +} + +// Initializes with data from a dictionary provided by the RSS class. +- initWithDictionary:(NSDictionary *)dict; + +- (NSString *)title; +- (void)setTitle:(NSString *)aTitle; + +- (NSDate *)date; +- (void)setDate:(NSDate *)aDate; + +- (NSString *)description; +- (void)setDescription:(NSString *)aDescription; + +- (NSURL *)releaseNotesURL; +- (void)setReleaseNotesURL:(NSURL *)aReleaseNotesURL; + +- (NSString *)DSASignature; +- (void)setDSASignature:(NSString *)aDSASignature; + +- (NSString *)MD5Sum; +- (void)setMD5Sum:(NSString *)aMd5Sum; + +- (NSURL *)fileURL; +- (void)setFileURL:(NSURL *)aFileURL; + +- (NSString *)fileVersion; +- (void)setFileVersion:(NSString *)aFileVersion; + +- (NSString *)versionString; +- (void)setVersionString:(NSString *)versionString; + +- (NSString *)minimumSystemVersion; +- (void)setMinimumSystemVersion:(NSString *)systemVersionString; + +@end diff --git a/Frameworks/Sparkle/SUAppcastItem.m b/Frameworks/Sparkle/SUAppcastItem.m new file mode 100755 index 000000000..a0cecdb74 --- /dev/null +++ b/Frameworks/Sparkle/SUAppcastItem.m @@ -0,0 +1,182 @@ +// +// SUAppcastItem.m +// Sparkle +// +// Created by Andy Matuschak on 3/12/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import "SUAppcastItem.h" + + +@implementation SUAppcastItem + +- initWithDictionary:(NSDictionary *)dict +{ + [super init]; + [self setTitle:[dict objectForKey:@"title"]]; + [self setDate:[dict objectForKey:@"pubDate"]]; + [self setDescription:[dict objectForKey:@"description"]]; + + id enclosure = [dict objectForKey:@"enclosure"]; + [self setDSASignature:[enclosure objectForKey:@"sparkle:dsaSignature"]]; + [self setMD5Sum:[enclosure objectForKey:@"sparkle:md5Sum"]]; + + [self setFileURL:[NSURL URLWithString:[[enclosure objectForKey:@"url"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]]; + + // Find the appropriate release notes URL. + if ([dict objectForKey:@"sparkle:releaseNotesLink"]) + { + [self setReleaseNotesURL:[NSURL URLWithString:[dict objectForKey:@"sparkle:releaseNotesLink"]]]; + } + else if ([[self description] hasPrefix:@"http://"]) // if the description starts with http://, use that. + { + [self setReleaseNotesURL:[NSURL URLWithString:[self description]]]; + } + else + { + [self setReleaseNotesURL:nil]; + } + + NSString *minVersion = [dict objectForKey:@"sparkle:minimumSystemVersion"]; + if(minVersion) + [self setMinimumSystemVersion:minVersion]; + else + [self setMinimumSystemVersion:@"10.3.0"];//sparkle doesn't run on 10.2-, so we don't have to worry about it + + // Try to find a version string. + // Finding the new version number from the RSS feed is a little bit hacky. There are two ways: + // 1. A "sparkle:version" attribute on the enclosure tag, an extension from the RSS spec. + // 2. If there isn't a version attribute, Sparkle will parse the path in the enclosure, expecting + // that it will look like this: http://something.com/YourApp_0.5.zip. It'll read whatever's between the last + // underscore and the last period as the version number. So name your packages like this: APPNAME_VERSION.extension. + // The big caveat with this is that you can't have underscores in your version strings, as that'll confuse Sparkle. + // Feel free to change the separator string to a hyphen or something more suited to your needs if you like. + NSString *newVersion = [enclosure objectForKey:@"sparkle:version"]; + if (!newVersion) // no sparkle:version attribute + { + // Separate the url by underscores and take the last component, as that'll be closest to the end, + // then we remove the extension. Hopefully, this will be the version. + NSArray *fileComponents = [[enclosure objectForKey:@"url"] componentsSeparatedByString:@"_"]; + if ([fileComponents count] > 1) + newVersion = [[fileComponents lastObject] stringByDeletingPathExtension]; + } + [self setFileVersion:newVersion]; + + NSString *shortVersionString = [enclosure objectForKey:@"sparkle:shortVersionString"]; + if (shortVersionString) + { + if (![[self fileVersion] isEqualToString:shortVersionString]) + shortVersionString = [shortVersionString stringByAppendingFormat:@"/%@", [self fileVersion]]; + [self setVersionString:shortVersionString]; + } + else + [self setVersionString:[self fileVersion]]; + + return self; +} + +// Attack of accessors! + +- (NSString *)title { return [[title retain] autorelease]; } + +- (void)setTitle:(NSString *)aTitle +{ + [title release]; + title = [aTitle copy]; +} + + +- (NSDate *)date { return [[date retain] autorelease]; } + +- (void)setDate:(NSDate *)aDate +{ + [date release]; + date = [aDate copy]; +} + + +- (NSString *)description { return [[description retain] autorelease]; } + +- (void)setDescription:(NSString *)aDescription +{ + [description release]; + description = [aDescription copy]; +} + + +- (NSURL *)releaseNotesURL { return [[releaseNotesURL retain] autorelease]; } + +- (void)setReleaseNotesURL:(NSURL *)aReleaseNotesURL +{ + [releaseNotesURL release]; + releaseNotesURL = [aReleaseNotesURL copy]; +} + + +- (NSString *)DSASignature { return [[DSASignature retain] autorelease]; } + +- (void)setDSASignature:(NSString *)aDSASignature +{ + [DSASignature release]; + DSASignature = [aDSASignature copy]; +} + + +- (NSString *)MD5Sum { return [[MD5Sum retain] autorelease]; } + +- (void)setMD5Sum:(NSString *)aMD5Sum +{ + [MD5Sum release]; + MD5Sum = [aMD5Sum copy]; +} + + +- (NSURL *)fileURL { return [[fileURL retain] autorelease]; } + +- (void)setFileURL:(NSURL *)aFileURL +{ + [fileURL release]; + fileURL = [aFileURL copy]; +} + + +- (NSString *)fileVersion { return [[fileVersion retain] autorelease]; } + +- (void)setFileVersion:(NSString *)aFileVersion +{ + [fileVersion release]; + fileVersion = [aFileVersion copy]; +} + + +- (NSString *)versionString { return [[versionString retain] autorelease]; } + +- (void)setVersionString:(NSString *)aVersionString +{ + [versionString release]; + versionString = [aVersionString copy]; +} + +- (NSString *)minimumSystemVersion { return [[minimumSystemVersion retain] autorelease]; } +- (void)setMinimumSystemVersion:(NSString *)systemVersionString +{ + [minimumSystemVersion release]; + minimumSystemVersion = [systemVersionString copy]; +} + +- (void)dealloc +{ + [self setTitle:nil]; + [self setDate:nil]; + [self setDescription:nil]; + [self setReleaseNotesURL:nil]; + [self setDSASignature:nil]; + [self setMD5Sum:nil]; + [self setFileURL:nil]; + [self setFileVersion:nil]; + [self setVersionString:nil]; + [super dealloc]; +} + +@end diff --git a/Frameworks/Sparkle/SUAutomaticUpdateAlert.h b/Frameworks/Sparkle/SUAutomaticUpdateAlert.h new file mode 100755 index 000000000..fc0ac9fd0 --- /dev/null +++ b/Frameworks/Sparkle/SUAutomaticUpdateAlert.h @@ -0,0 +1,21 @@ +// +// SUAutomaticUpdateAlert.h +// Sparkle +// +// Created by Andy Matuschak on 3/18/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import + +@class SUAppcastItem; +@interface SUAutomaticUpdateAlert : NSWindowController { + SUAppcastItem *updateItem; +} + +- initWithAppcastItem:(SUAppcastItem *)item; + +- (IBAction)relaunchNow:sender; +- (IBAction)relaunchLater:sender; + +@end diff --git a/Frameworks/Sparkle/SUAutomaticUpdateAlert.m b/Frameworks/Sparkle/SUAutomaticUpdateAlert.m new file mode 100755 index 000000000..dc152910e --- /dev/null +++ b/Frameworks/Sparkle/SUAutomaticUpdateAlert.m @@ -0,0 +1,61 @@ +// +// SUAutomaticUpdateAlert.m +// Sparkle +// +// Created by Andy Matuschak on 3/18/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import "SUAutomaticUpdateAlert.h" +#import "SUUtilities.h" +#import "SUAppcastItem.h" + +@implementation SUAutomaticUpdateAlert + +- initWithAppcastItem:(SUAppcastItem *)item +{ + NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:@"SUAutomaticUpdateAlert" ofType:@"nib"]; + if (!path) // slight hack to resolve issues with running with in configurations + { + NSBundle *current = [NSBundle bundleForClass:[self class]]; + NSString *frameworkPath = [[[NSBundle mainBundle] sharedFrameworksPath] stringByAppendingFormat:@"/Sparkle.framework", [current bundleIdentifier]]; + NSBundle *framework = [NSBundle bundleWithPath:frameworkPath]; + path = [framework pathForResource:@"SUAutomaticUpdateAlert" ofType:@"nib"]; + } + + [super initWithWindowNibPath:path owner:self]; + + updateItem = [item retain]; + [self setShouldCascadeWindows:NO]; + + return self; +} + +- (IBAction)relaunchNow:sender +{ + [self close]; + [NSApp stopModalWithCode:NSAlertDefaultReturn]; +} + +- (IBAction)relaunchLater:sender +{ + [self close]; + [NSApp stopModalWithCode:NSAlertAlternateReturn]; +} + +- (NSImage *)applicationIcon +{ + return [NSApp applicationIconImage]; +} + +- (NSString *)titleText +{ + return [NSString stringWithFormat:SULocalizedString(@"A new version of %@ has been installed!", nil), SUHostAppDisplayName()]; +} + +- (NSString *)descriptionText +{ + return [NSString stringWithFormat:SULocalizedString(@"%@ %@ has been installed and will be ready to use next time %@ starts! Would you like to relaunch now?", nil), SUHostAppDisplayName(), [updateItem fileVersion], SUHostAppDisplayName()]; +} + +@end diff --git a/Frameworks/Sparkle/SUConstants.h b/Frameworks/Sparkle/SUConstants.h new file mode 100755 index 000000000..bfbe625bb --- /dev/null +++ b/Frameworks/Sparkle/SUConstants.h @@ -0,0 +1,20 @@ +// +// SUConstants.h +// Sparkle +// +// Created by Andy Matuschak on 3/16/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +extern NSString *SUUpdaterWillRestartNotification; + +extern NSString *SUCheckAtStartupKey; +extern NSString *SUFeedURLKey; +extern NSString *SUShowReleaseNotesKey; +extern NSString *SUSkippedVersionKey; +extern NSString *SUScheduledCheckIntervalKey; +extern NSString *SULastCheckTimeKey; +extern NSString *SUExpectsDSASignatureKey; +extern NSString *SUPublicDSAKeyKey; +extern NSString *SUAutomaticallyUpdateKey; +extern NSString *SUAllowsAutomaticUpdatesKey; \ No newline at end of file diff --git a/Frameworks/Sparkle/SUConstants.m b/Frameworks/Sparkle/SUConstants.m new file mode 100755 index 000000000..3399ab47e --- /dev/null +++ b/Frameworks/Sparkle/SUConstants.m @@ -0,0 +1,20 @@ +// +// SUConstants.m +// Sparkle +// +// Created by Andy Matuschak on 3/16/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +NSString *SUUpdaterWillRestartNotification = @"SUUpdaterWillRestartNotificationName"; + +NSString *SUCheckAtStartupKey = @"SUCheckAtStartup"; +NSString *SUFeedURLKey = @"SUFeedURL"; +NSString *SUShowReleaseNotesKey = @"SUShowReleaseNotes"; +NSString *SUSkippedVersionKey = @"SUSkippedVersion"; +NSString *SUScheduledCheckIntervalKey = @"SUScheduledCheckInterval"; +NSString *SULastCheckTimeKey = @"SULastCheckTime"; +NSString *SUExpectsDSASignatureKey = @"SUExpectsDSASignature"; +NSString *SUPublicDSAKeyKey = @"SUPublicDSAKey"; +NSString *SUAutomaticallyUpdateKey = @"SUAutomaticallyUpdate"; +NSString *SUAllowsAutomaticUpdatesKey = @"SUAllowsAutomaticUpdates"; \ No newline at end of file diff --git a/Frameworks/Sparkle/SUStatus.nib/classes.nib b/Frameworks/Sparkle/SUStatus.nib/classes.nib new file mode 100755 index 000000000..ff40c9ddf --- /dev/null +++ b/Frameworks/Sparkle/SUStatus.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + CLASS = SUStatusController; + LANGUAGE = ObjC; + OUTLETS = {actionButton = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/SUStatus.nib/info.nib b/Frameworks/Sparkle/SUStatus.nib/info.nib new file mode 100755 index 000000000..99183444c --- /dev/null +++ b/Frameworks/Sparkle/SUStatus.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 69 10 356 240 0 0 1280 832 + IBFramework Version + 443.0 + IBOpenObjects + + 5 + + IBSystem Version + 8H14 + + diff --git a/Frameworks/Sparkle/SUStatus.nib/keyedobjects.nib b/Frameworks/Sparkle/SUStatus.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..378b22f2a6e3c51f385cd62f3c93f35a69cedf27 GIT binary patch literal 6873 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 +#import + +@class SUStatusChecker; + +@protocol SUStatusCheckerDelegate +//versionString will be nil and isNewVersion will be NO if version checking fails. +- (void)statusChecker:(SUStatusChecker *)statusChecker foundVersion:(NSString *)versionString isNewVersion:(BOOL)isNewVersion; +@end + +@interface SUStatusChecker : SUUpdater { + id scDelegate; +} + +// Create a status checker which will notifiy delegate once the appcast version is determined. +// Notification occurs via the method defined in the SUStatusCheckerDelegate informal protocol. ++ (SUStatusChecker *)statusCheckerForDelegate:(id)delegate; + +@end diff --git a/Frameworks/Sparkle/SUStatusChecker.m b/Frameworks/Sparkle/SUStatusChecker.m new file mode 100755 index 000000000..0bc341c55 --- /dev/null +++ b/Frameworks/Sparkle/SUStatusChecker.m @@ -0,0 +1,78 @@ +// +// SUStatusChecker.m +// Sparkle +// +// Created by Evan Schoenberg on 7/6/06. +// + +#import "SUStatusChecker.h" +#import "SUAppcast.h" +#import "SUAppcastItem.h" + +@interface SUStatusChecker (Private) +- (id)initForDelegate:(id)inDelegate; +- (void)checkForUpdatesAndNotify:(BOOL)verbosity; +- (BOOL)newVersionAvailable; +@end; + +@implementation SUStatusChecker + ++ (SUStatusChecker *)statusCheckerForDelegate:(id)inDelegate; +{ + SUStatusChecker *statusChecker = [[self alloc] initForDelegate:inDelegate]; + + return [statusChecker autorelease]; +} + +- (id)initForDelegate:(id)inDelegate +{ + [super init]; + + scDelegate = [inDelegate retain]; + + [self checkForUpdatesAndNotify:NO]; + + return self; +} + +- (void)dealloc +{ + [scDelegate release]; scDelegate = nil; + + [super dealloc]; +} + +- (void)applicationDidFinishLaunching:(NSNotification *)note +{ + //Take no action when the application finishes launching +} + +- (void)appcastDidFinishLoading:(SUAppcast *)ac +{ + @try + { + if (!ac) { [NSException raise:@"SUAppcastException" format:@"Couldn't get a valid appcast from the server."]; } + + updateItem = [[ac newestItem] retain]; + [ac autorelease]; + + if (![updateItem fileVersion]) + { + [NSException raise:@"SUAppcastException" format:@"Can't extract a version string from the appcast feed. The filenames should look like YourApp_1.5.tgz, where 1.5 is the version number."]; + } + + [scDelegate statusChecker:self + foundVersion:[updateItem fileVersion] + isNewVersion:[self newVersionAvailable]]; + } + @catch (NSException *e) + { + NSLog([e reason]); + + [scDelegate statusChecker:self foundVersion:nil isNewVersion:NO]; + } + + updateInProgress = NO; +} + +@end diff --git a/Frameworks/Sparkle/SUStatusController.h b/Frameworks/Sparkle/SUStatusController.h new file mode 100755 index 000000000..19a3f89ec --- /dev/null +++ b/Frameworks/Sparkle/SUStatusController.h @@ -0,0 +1,33 @@ +// +// SUStatusController.h +// Sparkle +// +// Created by Andy Matuschak on 3/14/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import + + +@interface SUStatusController : NSWindowController { + double progressValue, maxProgressValue; + NSString *title, *statusText, *buttonTitle; + IBOutlet NSButton *actionButton; +} + +// Pass 0 for the max progress value to get an indeterminate progress bar. +// Pass nil for the status text to not show it. +- (void)beginActionWithTitle:(NSString *)title maxProgressValue:(double)maxProgressValue statusText:(NSString *)statusText; + +// If isDefault is YES, the button's key equivalent will be \r. +- (void)setButtonTitle:(NSString *)buttonTitle target:target action:(SEL)action isDefault:(BOOL)isDefault; +- (void)setButtonEnabled:(BOOL)enabled; + +- (double)progressValue; +- (void)setProgressValue:(double)value; +- (double)maxProgressValue; +- (void)setMaxProgressValue:(double)value; + +- (void)setStatusText:(NSString *)statusText; + +@end diff --git a/Frameworks/Sparkle/SUStatusController.m b/Frameworks/Sparkle/SUStatusController.m new file mode 100755 index 000000000..f66d7fae0 --- /dev/null +++ b/Frameworks/Sparkle/SUStatusController.m @@ -0,0 +1,119 @@ +// +// SUStatusController.m +// Sparkle +// +// Created by Andy Matuschak on 3/14/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import "SUStatusController.h" +#import "SUUtilities.h" + +@implementation SUStatusController + +- init +{ + NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:@"SUStatus" ofType:@"nib"]; + if (!path) // slight hack to resolve issues with running in debug configurations + { + NSBundle *current = [NSBundle bundleForClass:[self class]]; + NSString *frameworkPath = [[[NSBundle mainBundle] sharedFrameworksPath] stringByAppendingFormat:@"/Sparkle.framework", [current bundleIdentifier]]; + NSBundle *framework = [NSBundle bundleWithPath:frameworkPath]; + path = [framework pathForResource:@"SUStatus" ofType:@"nib"]; + } + [super initWithWindowNibPath:path owner:self]; + [self setShouldCascadeWindows:NO]; + return self; +} + +- (void)dealloc +{ + [title release]; + [statusText release]; + [buttonTitle release]; + [super dealloc]; +} + +- (void)awakeFromNib +{ + [[self window] center]; + [[self window] setFrameAutosaveName:@"SUStatusFrame"]; +} + +- (NSString *)windowTitle +{ + return [NSString stringWithFormat:SULocalizedString(@"Updating %@", nil), SUHostAppDisplayName()]; +} + +- (NSImage *)applicationIcon +{ + return [NSApp applicationIconImage]; +} + +- (void)beginActionWithTitle:(NSString *)aTitle maxProgressValue:(double)aMaxProgressValue statusText:(NSString *)aStatusText +{ + [self willChangeValueForKey:@"title"]; + title = [aTitle copy]; + [self didChangeValueForKey:@"title"]; + + [self setMaxProgressValue:aMaxProgressValue]; + [self setStatusText:aStatusText]; +} + +- (void)setButtonTitle:(NSString *)aButtonTitle target:target action:(SEL)action isDefault:(BOOL)isDefault +{ + [self willChangeValueForKey:@"buttonTitle"]; + buttonTitle = [aButtonTitle copy]; + [self didChangeValueForKey:@"buttonTitle"]; + + [actionButton sizeToFit]; + // Except we're going to add 15 px for padding. + [actionButton setFrameSize:NSMakeSize([actionButton frame].size.width + 15, [actionButton frame].size.height)]; + // Now we have to move it over so that it's always 15px from the side of the window. + [actionButton setFrameOrigin:NSMakePoint([[self window] frame].size.width - 15 - [actionButton frame].size.width, [actionButton frame].origin.y)]; + // Redisplay superview to clean up artifacts + [[actionButton superview] display]; + + [actionButton setTarget:target]; + [actionButton setAction:action]; + [actionButton setKeyEquivalent:isDefault ? @"\r" : @""]; +} + +- (void)setButtonEnabled:(BOOL)enabled +{ + [actionButton setEnabled:enabled]; +} + +- (double)progressValue +{ + return progressValue; +} + +- (void)setProgressValue:(double)value +{ + [self willChangeValueForKey:@"progressValue"]; + progressValue = value; + [self didChangeValueForKey:@"progressValue"]; +} + +- (double)maxProgressValue +{ + return maxProgressValue; +} + +- (void)setMaxProgressValue:(double)value +{ + [self willChangeValueForKey:@"maxProgressValue"]; + maxProgressValue = value; + [self didChangeValueForKey:@"maxProgressValue"]; + [self setProgressValue:0]; +} + +- (void)setStatusText:(NSString *)aStatusText +{ + [self willChangeValueForKey:@"statusText"]; + statusText = [aStatusText copy]; + [self didChangeValueForKey:@"statusText"]; +} + +@end diff --git a/Frameworks/Sparkle/SUUnarchiver.h b/Frameworks/Sparkle/SUUnarchiver.h new file mode 100755 index 000000000..da111c158 --- /dev/null +++ b/Frameworks/Sparkle/SUUnarchiver.h @@ -0,0 +1,25 @@ +// +// SUUnarchiver.h +// Sparkle +// +// Created by Andy Matuschak on 3/16/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import + + +@interface SUUnarchiver : NSObject { + id delegate; +} + +- (void)unarchivePath:(NSString *)path; +- (void)setDelegate:delegate; + +@end + +@interface NSObject (SUUnarchiverDelegate) +- (void)unarchiver:(SUUnarchiver *)unarchiver extractedLength:(long)length; +- (void)unarchiverDidFinish:(SUUnarchiver *)unarchiver; +- (void)unarchiverDidFail:(SUUnarchiver *)unarchiver; +@end \ No newline at end of file diff --git a/Frameworks/Sparkle/SUUnarchiver.m b/Frameworks/Sparkle/SUUnarchiver.m new file mode 100755 index 000000000..a273ebb0a --- /dev/null +++ b/Frameworks/Sparkle/SUUnarchiver.m @@ -0,0 +1,144 @@ +// +// SUUnarchiver.m +// Sparkle +// +// Created by Andy Matuschak on 3/16/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import "SUUnarchiver.h" + + +@implementation SUUnarchiver + +// This method abstracts the types that use a command line tool piping data from stdin. +- (BOOL)_extractArchivePath:archivePath pipingDataToCommand:(NSString *)command +{ + // Get the file size. + NSNumber *fs = [[[NSFileManager defaultManager] fileAttributesAtPath:archivePath traverseLink:NO] objectForKey:NSFileSize]; + if (fs == nil) { return NO; } + + // Thank you, Allan Odgaard! + // (who wrote the following extraction alg.) + + long current = 0; + FILE *fp, *cmdFP; + sig_t oldSigPipeHandler = signal(SIGPIPE, SIG_IGN); + if ((fp = fopen([archivePath UTF8String], "r"))) + { + setenv("DESTINATION", [[archivePath stringByDeletingLastPathComponent] UTF8String], 1); + if ((cmdFP = popen([command cString], "w"))) + { + char buf[32*1024]; + long len; + while((len = fread(buf, 1, 32 * 1024, fp))) + { + current += len; + + NSEvent *event; + while((event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:nil inMode:NSDefaultRunLoopMode dequeue:YES])) + [NSApp sendEvent:event]; + + fwrite(buf, 1, len, cmdFP); + + if ([delegate respondsToSelector:@selector(unarchiver:extractedLength:)]) + [delegate unarchiver:self extractedLength:len]; + } + pclose(cmdFP); + } + fclose(fp); + } + signal(SIGPIPE, oldSigPipeHandler); + return YES; +} + +- (BOOL)_extractTAR:(NSString *)archivePath +{ + return [self _extractArchivePath:archivePath pipingDataToCommand:@"tar -xC \"$DESTINATION\""]; +} + +- (BOOL)_extractTGZ:(NSString *)archivePath +{ + return [self _extractArchivePath:archivePath pipingDataToCommand:@"tar -zxC \"$DESTINATION\""]; +} + +- (BOOL)_extractTBZ:(NSString *)archivePath +{ + return [self _extractArchivePath:archivePath pipingDataToCommand:@"tar -jxC \"$DESTINATION\""]; +} + +- (BOOL)_extractZIP:(NSString *)archivePath +{ + return [self _extractArchivePath:archivePath pipingDataToCommand:@"ditto -x -k - \"$DESTINATION\""]; +} + +- (BOOL)_extractDMG:(NSString *)archivePath +{ + sig_t oldSigChildHandler = signal(SIGCHLD, SIG_DFL); + // First, we internet-enable the volume. + NSTask *hdiTask = [NSTask launchedTaskWithLaunchPath:@"/usr/bin/env" arguments:[NSArray arrayWithObjects:@"hdiutil", @"internet-enable", @"-quiet", archivePath, nil]]; + [hdiTask waitUntilExit]; + if ([hdiTask terminationStatus] != 0) { return NO; } + + // Now, open the volume; it'll extract into its own directory. + hdiTask = [NSTask launchedTaskWithLaunchPath:@"/usr/bin/env" arguments:[NSArray arrayWithObjects:@"hdiutil", @"attach", @"-idme", @"-noidmereveal", @"-noidmetrash", @"-noverify", @"-nobrowse", @"-noautoopen", @"-quiet", archivePath, nil]]; + [hdiTask waitUntilExit]; + if ([hdiTask terminationStatus] != 0) { return NO; } + + signal(SIGCHLD, oldSigChildHandler); + + return YES; +} + +- (void)_unarchivePath:(NSString *)path +{ + NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; + + // This dictionary associates names of methods responsible for extraction with file extensions. + // The methods take the path of the archive to extract. They return a BOOL indicating whether + // we should continue with the update; returns NO if an error occurred. + NSDictionary *commandDictionary = [NSDictionary dictionaryWithObjectsAndKeys: + @"_extractTBZ:", @"tbz", + @"_extractTGZ:", @"tgz", + @"_extractTAR:", @"tar", + @"_extractZIP:", @"zip", + @"_extractDMG:", @"dmg", nil]; + SEL command = NSSelectorFromString([commandDictionary objectForKey:[path pathExtension]]); + + BOOL result; + if (command) + { + NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[self methodSignatureForSelector:command]]; + [invocation setSelector:command]; + [invocation setArgument:&path atIndex:2]; // 0 and 1 are private! + [invocation invokeWithTarget:self]; + [invocation getReturnValue:&result]; + } + else + result = NO; + + if (result) + { + if ([delegate respondsToSelector:@selector(unarchiverDidFinish:)]) + [delegate performSelector:@selector(unarchiverDidFinish:) withObject:self]; + } + else + { + if ([delegate respondsToSelector:@selector(unarchiverDidFail:)]) + [delegate performSelector:@selector(unarchiverDidFail:) withObject:self]; + } + + [pool release]; +} + +- (void)unarchivePath:(NSString *)path +{ + [NSThread detachNewThreadSelector:@selector(_unarchivePath:) toTarget:self withObject:path]; +} + +- (void)setDelegate:del +{ + delegate = del; +} + +@end \ No newline at end of file diff --git a/Frameworks/Sparkle/SUUpdateAlert.h b/Frameworks/Sparkle/SUUpdateAlert.h new file mode 100755 index 000000000..69c281749 --- /dev/null +++ b/Frameworks/Sparkle/SUUpdateAlert.h @@ -0,0 +1,40 @@ +// +// SUUpdateAlert.h +// Sparkle +// +// Created by Andy Matuschak on 3/12/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import + +typedef enum +{ + SUInstallUpdateChoice, + SURemindMeLaterChoice, + SUSkipThisVersionChoice +} SUUpdateAlertChoice; + +@class WebView, SUAppcastItem; +@interface SUUpdateAlert : NSWindowController { + SUAppcastItem *updateItem; + id delegate; + + IBOutlet WebView *releaseNotesView; + IBOutlet NSTextField *description; + NSProgressIndicator *releaseNotesSpinner; + BOOL webViewFinishedLoading; +} + +- initWithAppcastItem:(SUAppcastItem *)item; +- (void)setDelegate:delegate; + +- (IBAction)installUpdate:sender; +- (IBAction)skipThisVersion:sender; +- (IBAction)remindMeLater:sender; + +@end + +@interface NSObject (SUUpdateAlertDelegate) +- (void)updateAlert:(SUUpdateAlert *)updateAlert finishedWithChoice:(SUUpdateAlertChoice)updateChoice; +@end diff --git a/Frameworks/Sparkle/SUUpdateAlert.m b/Frameworks/Sparkle/SUUpdateAlert.m new file mode 100755 index 000000000..db4d34946 --- /dev/null +++ b/Frameworks/Sparkle/SUUpdateAlert.m @@ -0,0 +1,185 @@ +// +// SUUpdateAlert.m +// Sparkle +// +// Created by Andy Matuschak on 3/12/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import "SUUpdateAlert.h" +#import "SUAppcastItem.h" +#import "SUUtilities.h" +#import + +@implementation SUUpdateAlert + +- initWithAppcastItem:(SUAppcastItem *)item +{ + NSString *path = [[NSBundle bundleForClass:[self class]] pathForResource:@"SUUpdateAlert" ofType:@"nib"]; + if (!path) // slight hack to resolve issues with running with in configurations + { + NSBundle *current = [NSBundle bundleForClass:[self class]]; + NSString *frameworkPath = [[[NSBundle mainBundle] sharedFrameworksPath] stringByAppendingFormat:@"/Sparkle.framework", [current bundleIdentifier]]; + NSBundle *framework = [NSBundle bundleWithPath:frameworkPath]; + path = [framework pathForResource:@"SUUpdateAlert" ofType:@"nib"]; + } + + [super initWithWindowNibPath:path owner:self]; + + updateItem = [item retain]; + [self setShouldCascadeWindows:NO]; + + return self; +} + +- (void)dealloc +{ + [updateItem release]; + [super dealloc]; +} + +- (void)endWithSelection:(SUUpdateAlertChoice)choice +{ + [releaseNotesView stopLoading:self]; + [releaseNotesView setFrameLoadDelegate:nil]; + [releaseNotesView setPolicyDelegate:nil]; + [self close]; + if ([delegate respondsToSelector:@selector(updateAlert:finishedWithChoice:)]) + [delegate updateAlert:self finishedWithChoice:choice]; +} + +- (IBAction)installUpdate:sender +{ + [self endWithSelection:SUInstallUpdateChoice]; +} + +- (IBAction)skipThisVersion:sender +{ + [self endWithSelection:SUSkipThisVersionChoice]; +} + +- (IBAction)remindMeLater:sender +{ + [self endWithSelection:SURemindMeLaterChoice]; +} + +- (void)displayReleaseNotes +{ + [releaseNotesView setFrameLoadDelegate:self]; + [releaseNotesView setPolicyDelegate:self]; + + // Stick a nice big spinner in the middle of the web view until the page is loaded. + NSRect frame = [[releaseNotesView superview] frame]; + releaseNotesSpinner = [[[NSProgressIndicator alloc] initWithFrame:NSMakeRect(NSMidX(frame)-16, NSMidY(frame)-16, 32, 32)] autorelease]; + [releaseNotesSpinner setStyle:NSProgressIndicatorSpinningStyle]; + [releaseNotesSpinner startAnimation:self]; + webViewFinishedLoading = NO; + [[releaseNotesView superview] addSubview:releaseNotesSpinner]; + + // If there's a release notes URL, load it; otherwise, just stick the contents of the description into the web view. + if ([updateItem releaseNotesURL]) + { + [[releaseNotesView mainFrame] loadRequest:[NSURLRequest requestWithURL:[updateItem releaseNotesURL] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30]]; + } + else + { + [[releaseNotesView mainFrame] loadHTMLString:[updateItem description] baseURL:nil]; + } +} + +- (BOOL)showsReleaseNotes +{ + if (!SUInfoValueForKey(SUShowReleaseNotesKey)) { return YES; } // defaults to YES + return [SUInfoValueForKey(SUShowReleaseNotesKey) boolValue]; +} + +- (BOOL)allowsAutomaticUpdates +{ + if (!SUInfoValueForKey(SUExpectsDSASignatureKey)) { return NO; } // automatic updating requires DSA-signed updates + if (!SUInfoValueForKey(SUAllowsAutomaticUpdatesKey)) { return YES; } // defaults to YES + return [SUInfoValueForKey(SUAllowsAutomaticUpdatesKey) boolValue]; +} + +- (void)awakeFromNib +{ + [[self window] setLevel:NSFloatingWindowLevel]; + [[self window] setFrameAutosaveName:@"SUUpdateAlertFrame"]; + + // We're gonna do some frame magic to match the window's size to the description field and the presence of the release notes view. + NSRect frame = [[self window] frame]; + + if (![self showsReleaseNotes]) + { + // Resize the window to be appropriate for not having a huge release notes view. + frame.size.height -= [releaseNotesView frame].size.height; + // No resizing! + [[self window] setShowsResizeIndicator:NO]; + [[self window] setMinSize:frame.size]; + [[self window] setMaxSize:frame.size]; + } + + if (![self allowsAutomaticUpdates]) + { + NSRect boxFrame = [[[releaseNotesView superview] superview] frame]; + boxFrame.origin.y -= 20; + boxFrame.size.height += 20; + [[[releaseNotesView superview] superview] setFrame:boxFrame]; + } + + [[self window] setFrame:frame display:NO]; + [[self window] center]; + + if ([self showsReleaseNotes]) + { + [self displayReleaseNotes]; + } +} + +- (BOOL)windowShouldClose:note +{ + [self endWithSelection:SURemindMeLaterChoice]; + return YES; +} + +- (NSImage *)applicationIcon +{ + return [NSApp applicationIconImage]; +} + +- (NSString *)titleText +{ + return [NSString stringWithFormat:SULocalizedString(@"A new version of %@ is available!", nil), SUHostAppDisplayName()]; +} + +- (NSString *)descriptionText +{ + return [NSString stringWithFormat:SULocalizedString(@"%@ %@ is now available (you have %@). Would you like to download it now?", nil), SUHostAppDisplayName(), [updateItem versionString], SUHostAppVersionString()]; +} + +- (void)webView:(WebView *)sender didFinishLoadForFrame:frame +{ + if ([frame parentFrame] == nil) { + webViewFinishedLoading = YES; + [releaseNotesSpinner setHidden:YES]; + [sender display]; // necessary to prevent weird scroll bar artifacting + } +} + +- (void)webView:sender decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:frame decisionListener:listener +{ + if (webViewFinishedLoading == YES) { + [[NSWorkspace sharedWorkspace] openURL:[request URL]]; + + [listener ignore]; + } + else { + [listener use]; + } +} + +- (void)setDelegate:del +{ + delegate = del; +} + +@end diff --git a/Frameworks/Sparkle/SUUpdater+Authentication.m b/Frameworks/Sparkle/SUUpdater+Authentication.m new file mode 100755 index 000000000..b622abe2c --- /dev/null +++ b/Frameworks/Sparkle/SUUpdater+Authentication.m @@ -0,0 +1,54 @@ +// +// SUUpdater+Authentication.m +// Pixen +// +// Created by Andy Matuschak on 3/9/06. +// Copyright 2006 __MyCompanyName__. All rights reserved. +// + +#import "SUUpdater.h" +#import "sys/stat.h" +#import + +@implementation SUUpdater (SUAuthenticationAdditions) + +// Thanks to Allan Odgaard for this! +- (BOOL)moveFileWithAuthenticationFrom:(NSString *)src toNewPath:(NSString *)dst withTempPath:(NSString *)tmp +{ + BOOL res = NO; + struct stat sb; + if((stat([src UTF8String], &sb) != 0) || (stat([tmp UTF8String], &sb) == 0) || stat([dst UTF8String], &sb) != 0) + return false; + + char* buf = NULL; + asprintf(&buf, + "mv -f \"$DST_PATH\" \"$TMP_PATH\" && " + "mv -f \"$SRC_PATH\" \"$DST_PATH\" && " + "rm -rf \"$TMP_PATH\" && " + "chown -R %d:%d \"$DST_PATH\"", + sb.st_uid, sb.st_gid); + + if(!buf) + return false; + + AuthorizationRef auth; + if(AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, kAuthorizationFlagDefaults, &auth) == errAuthorizationSuccess) + { + setenv("SRC_PATH", [src UTF8String], 1); + setenv("DST_PATH", [dst UTF8String], 1); + setenv("TMP_PATH", [tmp UTF8String], 1); + + char const* arguments[] = { "-c", buf, NULL }; + if(AuthorizationExecuteWithPrivileges(auth, "/bin/sh", kAuthorizationFlagDefaults, (char**)arguments, NULL) == errAuthorizationSuccess) + { + int status; + int pid = wait(&status); + if(pid != -1 && WIFEXITED(status) && WEXITSTATUS(status) == 0) + res = YES; + } + } + free(buf); + return res; +} + +@end diff --git a/Frameworks/Sparkle/SUUpdater+DSA.m b/Frameworks/Sparkle/SUUpdater+DSA.m new file mode 100755 index 000000000..8347bc242 --- /dev/null +++ b/Frameworks/Sparkle/SUUpdater+DSA.m @@ -0,0 +1,131 @@ +// +// SUUpdater+DSA.m +// Pixen +// +// Created by Andy Matuschak on 3/9/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +// Thanks to Allan Odgaard for this code! + +#import "SUUpdater.h" +#import +#import +#import +#import +#import +#import + +@implementation SUUpdater (SUDSAAdditions) + +int b64decode(unsigned char* str) +{ + unsigned char *cur, *start; + int d, dlast, phase; + unsigned char c; + static int table[256] = { + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* 00-0F */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* 10-1F */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63, /* 20-2F */ + 52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1, /* 30-3F */ + -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14, /* 40-4F */ + 15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1, /* 50-5F */ + -1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40, /* 60-6F */ + 41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1, /* 70-7F */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* 80-8F */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* 90-9F */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* A0-AF */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* B0-BF */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* C0-CF */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* D0-DF */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* E0-EF */ + -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 /* F0-FF */ + }; + + d = dlast = phase = 0; + start = str; + for (cur = str; *cur != '\0'; ++cur ) + { + if(*cur == '\n' || *cur == '\r'){phase = dlast = 0; continue;} + d = table[(int)*cur]; + if(d != -1) + { + switch(phase) + { + case 0: + ++phase; + break; + case 1: + c = ((dlast << 2) | ((d & 0x30) >> 4)); + *str++ = c; + ++phase; + break; + case 2: + c = (((dlast & 0xf) << 4) | ((d & 0x3c) >> 2)); + *str++ = c; + ++phase; + break; + case 3: + c = (((dlast & 0x03 ) << 6) | d); + *str++ = c; + phase = 0; + break; + } + dlast = d; + } + } + *str = '\0'; + return str - start; +} + +EVP_PKEY* load_dsa_key(char *key) +{ + EVP_PKEY* pkey = NULL; + BIO *bio; + if(bio = BIO_new_mem_buf(key, strlen(key))) + { + DSA* dsa_key = 0; + if(PEM_read_bio_DSA_PUBKEY(bio, &dsa_key, NULL, NULL)) + { + if(pkey = EVP_PKEY_new()) + { + if(EVP_PKEY_assign_DSA(pkey, dsa_key) != 1) + { + DSA_free(dsa_key); + EVP_PKEY_free(pkey); + pkey = NULL; + } + } + } + BIO_free(bio); + } + return pkey; +} + +- (BOOL)validateArchiveAtPath:(NSString *)path withSignature:(NSString *)encodedSignature +{ + EVP_PKEY* pkey; + if(!encodedSignature || ![self infoValueForKey:SUPublicDSAKeyKey] || !(pkey = load_dsa_key((char *)[[self infoValueForKey:SUPublicDSAKeyKey] UTF8String]))) + return NO; + + // Now, the signature is in base64; we have to decode it into a binary stream. + unsigned char *signature = (unsigned char *)[encodedSignature UTF8String]; + long length = b64decode(signature); + + NSData *pathData = [NSData dataWithContentsOfFile:path]; + if (!pathData) { return NO; } + unsigned char md[SHA_DIGEST_LENGTH]; + SHA1([pathData bytes], [pathData length], md); + + BOOL res = false; + EVP_MD_CTX ctx; + if(EVP_VerifyInit(&ctx, EVP_dss1()) == 1) + { + EVP_VerifyUpdate(&ctx, md, SHA_DIGEST_LENGTH); + res = EVP_VerifyFinal(&ctx, signature, length, pkey) == 1; + } + EVP_PKEY_free(pkey); + return res; +} + +@end \ No newline at end of file diff --git a/Frameworks/Sparkle/SUUpdater.h b/Frameworks/Sparkle/SUUpdater.h new file mode 100755 index 000000000..30e2595e6 --- /dev/null +++ b/Frameworks/Sparkle/SUUpdater.h @@ -0,0 +1,57 @@ +// +// SUUpdater.h +// Sparkle +// +// Created by Andy Matuschak on 1/4/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import + +// Before you use Sparkle in your app, you must set SUFeedURL in Info.plist to the +// address of the appcast on your webserver. If you don't already have an +// appcast, please see the Sparkle documentation to learn about how to set one up. + +// .zip, .dmg, .tar, .tbz, .tgz archives are supported at this time. + +// By default, Sparkle offers to show the user the release notes of the build they'll be +// getting, which it assumes are in the description (or body) field of the relevant RSS item. +// Set SUShowReleaseNotes to in Info.plist to hide the button. + +@class SUAppcastItem, SUUpdateAlert, SUStatusController; +@interface SUUpdater : NSObject { + SUAppcastItem *updateItem; + + SUStatusController *statusController; + SUUpdateAlert *updateAlert; + + NSURLDownload *downloader; + NSString *downloadPath; + + NSTimer *checkTimer; + NSTimeInterval checkInterval; + + BOOL verbose; + BOOL updateInProgress; + + NSString *currentSystemVersion; +} + +// This IBAction is meant for a main menu item. Hook up any menu item to this action, +// and Sparkle will check for updates and report back its findings verbosely. +- (IBAction)checkForUpdates:sender; + +// This method is similar to the above, but it's intended for updates initiated by +// the computer instead of by the user. It does not alert the user when he is up to date, +// and it remains silent about network errors in fetching the feed. This is what you +// want to call to update programmatically; only use checkForUpdates: with buttons and menu items. +- (void)checkForUpdatesInBackground; + +// This method allows you to schedule a check to run every time interval. You can +// pass 0 to this method to cancel a previously scheduled timer. You probably don't want +// to call this directly: if you set a SUScheduledCheckInterval key in Info.plist or +// the user defaults, Sparkle will set this up for you automatically on startup. You might +// just want to call this every time the user changes the setting in the preferences. +- (void)scheduleCheckWithInterval:(NSTimeInterval)interval; + +@end \ No newline at end of file diff --git a/Frameworks/Sparkle/SUUpdater.m b/Frameworks/Sparkle/SUUpdater.m new file mode 100755 index 000000000..2ada1d2d8 --- /dev/null +++ b/Frameworks/Sparkle/SUUpdater.m @@ -0,0 +1,576 @@ +// +// SUUpdater.m +// Sparkle +// +// Created by Andy Matuschak on 1/4/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import "SUUpdater.h" +#import "SUAppcast.h" +#import "SUAppcastItem.h" +#import "SUUnarchiver.h" +#import "SUUtilities.h" + +#import "SUUpdateAlert.h" +#import "SUAutomaticUpdateAlert.h" +#import "SUStatusController.h" + +#import "NSFileManager+Authentication.h" +#import "NSFileManager+Verification.h" +#import "NSApplication+AppCopies.h" + +#import +#import +#import +#import +#import + +@interface SUUpdater (Private) +- (void)checkForUpdatesAndNotify:(BOOL)verbosity; +- (void)showUpdateErrorAlertWithInfo:(NSString *)info; +- (NSTimeInterval)storedCheckInterval; +- (void)abandonUpdate; +- (IBAction)installAndRestart:sender; +- (NSString *)systemVersionString; +@end + +@implementation SUUpdater + +- init +{ + [super init]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidFinishLaunching:) name:@"NSApplicationDidFinishLaunchingNotification" object:NSApp]; + + // OS version (Apple recommends using SystemVersion.plist instead of Gestalt() here, don't ask me why). + // This code *should* use NSSearchPathForDirectoriesInDomains(NSCoreServiceDirectory, NSSystemDomainMask, YES) + // but that returns /Library/CoreServices for some reason + NSString *versionPlistPath = @"/System/Library/CoreServices/SystemVersion.plist"; + //gets a version string of the form X.Y.Z + currentSystemVersion = [[[NSDictionary dictionaryWithContentsOfFile:versionPlistPath] objectForKey:@"ProductVersion"] retain]; + return self; +} + +- (void)scheduleCheckWithInterval:(NSTimeInterval)interval +{ + if (checkTimer) + { + [checkTimer invalidate]; + checkTimer = nil; + } + + checkInterval = interval; + if (interval > 0) + checkTimer = [NSTimer scheduledTimerWithTimeInterval:interval target:self selector:@selector(checkForUpdatesInBackground) userInfo:nil repeats:YES]; +} + +- (void)scheduleCheckWithIntervalObject:(NSNumber *)interval +{ + [self scheduleCheckWithInterval:[interval doubleValue]]; +} + +- (void)applicationDidFinishLaunching:(NSNotification *)note +{ + // If there's a scheduled interval, we see if it's been longer than that interval since the last + // check. If so, we perform a startup check; if not, we don't. + if ([self storedCheckInterval]) + { + NSTimeInterval interval = [self storedCheckInterval]; + NSDate *lastCheck = [[NSUserDefaults standardUserDefaults] objectForKey:SULastCheckTimeKey]; + if (!lastCheck) { lastCheck = [NSDate date]; } + NSTimeInterval intervalSinceCheck = [[NSDate date] timeIntervalSinceDate:lastCheck]; + if (intervalSinceCheck < interval) + { + // Hasn't been long enough; schedule a check for the future. + [self performSelector:@selector(checkForUpdatesInBackground) withObject:nil afterDelay:intervalSinceCheck]; + [self performSelector:@selector(scheduleCheckWithIntervalObject:) withObject:[NSNumber numberWithLong:interval] afterDelay:intervalSinceCheck]; + } + else + { + [self scheduleCheckWithInterval:interval]; + [self checkForUpdatesInBackground]; + } + } + else + { + // There's no scheduled check, so let's see if we're supposed to check on startup. + NSNumber *shouldCheckAtStartup = [[NSUserDefaults standardUserDefaults] objectForKey:SUCheckAtStartupKey]; + if (!shouldCheckAtStartup) // hasn't been set yet; ask the user + { + // Let's see if there's a key in Info.plist for a default, though. We'll let that override the dialog if it's there. + NSNumber *infoStartupValue = SUInfoValueForKey(SUCheckAtStartupKey); + if (infoStartupValue) + { + shouldCheckAtStartup = infoStartupValue; + } + else + { + shouldCheckAtStartup = [NSNumber numberWithBool:NSRunAlertPanel(SULocalizedString(@"Check for updates on startup?", nil), [NSString stringWithFormat:SULocalizedString(@"Would you like %@ to check for updates on startup? If not, you can initiate the check manually from the application menu.", nil), SUHostAppDisplayName()], SULocalizedString(@"Yes", nil), SULocalizedString(@"No", nil), nil) == NSAlertDefaultReturn]; + } + [[NSUserDefaults standardUserDefaults] setObject:shouldCheckAtStartup forKey:SUCheckAtStartupKey]; + } + + if ([shouldCheckAtStartup boolValue]) + [self checkForUpdatesInBackground]; + } +} + +- (void)dealloc +{ + [updateItem release]; + [updateAlert release]; + + [downloadPath release]; + [statusController release]; + [downloader release]; + + if (checkTimer) + [checkTimer invalidate]; + + if (currentSystemVersion) + [currentSystemVersion release]; + + [[NSNotificationCenter defaultCenter] removeObserver:self]; + [super dealloc]; +} + +- (void)checkForUpdatesInBackground +{ + [self checkForUpdatesAndNotify:NO]; +} + +- (IBAction)checkForUpdates:sender +{ + [self checkForUpdatesAndNotify:YES]; // if we're coming from IB, then we want to be more verbose. +} + +// If the verbosity flag is YES, Sparkle will say when it can't reach the server and when there's no new update. +// This is generally useful for a menu item--when the check is explicitly invoked. +- (void)checkForUpdatesAndNotify:(BOOL)verbosity +{ + if (updateInProgress) + { + if (verbosity) + { + NSBeep(); + if ([[statusController window] isVisible]) + [statusController showWindow:self]; + else if ([[updateAlert window] isVisible]) + [updateAlert showWindow:self]; + else + [self showUpdateErrorAlertWithInfo:SULocalizedString(@"An update is already in progress!", nil)]; + } + return; + } + verbose = verbosity; + updateInProgress = YES; + + // A value in the user defaults overrides one in the Info.plist (so preferences panels can be created wherein users choose between beta / release feeds). + NSString *appcastString = [[NSUserDefaults standardUserDefaults] objectForKey:SUFeedURLKey]; + if (!appcastString) + appcastString = SUInfoValueForKey(SUFeedURLKey); + if (!appcastString) { [NSException raise:@"SUNoFeedURL" format:@"No feed URL is specified in the Info.plist or the user defaults!"]; } + + SUAppcast *appcast = [[SUAppcast alloc] init]; + [appcast setDelegate:self]; + [appcast fetchAppcastFromURL:[NSURL URLWithString:appcastString]]; +} + +- (BOOL)automaticallyUpdates +{ + if (![SUInfoValueForKey(SUAllowsAutomaticUpdatesKey) boolValue] && [SUInfoValueForKey(SUAllowsAutomaticUpdatesKey) boolValue]) { return NO; } + if (![[NSUserDefaults standardUserDefaults] objectForKey:SUAutomaticallyUpdateKey]) { return NO; } // defaults to NO + return [[[NSUserDefaults standardUserDefaults] objectForKey:SUAutomaticallyUpdateKey] boolValue]; +} + +- (BOOL)isAutomaticallyUpdating +{ + return [self automaticallyUpdates] && !verbose; +} + +- (void)showUpdateErrorAlertWithInfo:(NSString *)info +{ + if ([self isAutomaticallyUpdating]) { return; } + NSRunAlertPanel(SULocalizedString(@"Update Error!", nil), info, NSLocalizedString(@"Cancel", nil), nil, nil); +} + +- (NSTimeInterval)storedCheckInterval +{ + // Returns the scheduled check interval stored in the user defaults / info.plist. User defaults override Info.plist. + if ([[NSUserDefaults standardUserDefaults] objectForKey:SUScheduledCheckIntervalKey]) + { + long interval = [[[NSUserDefaults standardUserDefaults] objectForKey:SUScheduledCheckIntervalKey] longValue]; + if (interval > 0) + return interval; + } + if (SUInfoValueForKey(SUScheduledCheckIntervalKey)) + return [SUInfoValueForKey(SUScheduledCheckIntervalKey) longValue]; + return 0; +} + +- (void)beginDownload +{ + if (![self isAutomaticallyUpdating]) + { + statusController = [[SUStatusController alloc] init]; + [statusController beginActionWithTitle:SULocalizedString(@"Downloading update...", nil) maxProgressValue:0 statusText:nil]; + [statusController setButtonTitle:NSLocalizedString(@"Cancel", nil) target:self action:@selector(cancelDownload:) isDefault:NO]; + [statusController showWindow:self]; + } + + downloader = [[NSURLDownload alloc] initWithRequest:[NSURLRequest requestWithURL:[updateItem fileURL]] delegate:self]; +} + +- (void)remindMeLater +{ + // Clear out the skipped version so the dialog will actually come back if it was already skipped. + [[NSUserDefaults standardUserDefaults] setObject:nil forKey:SUSkippedVersionKey]; + + if (checkInterval) + [self scheduleCheckWithInterval:checkInterval]; + else + { + // If the host hasn't provided a check interval, we'll use 30 minutes. + [self scheduleCheckWithInterval:30 * 60]; + } +} + +- (void)updateAlert:(SUUpdateAlert *)alert finishedWithChoice:(SUUpdateAlertChoice)choice +{ + [alert release]; + switch (choice) + { + case SUInstallUpdateChoice: + // Clear out the skipped version so the dialog will come back if the download fails. + [[NSUserDefaults standardUserDefaults] setObject:nil forKey:SUSkippedVersionKey]; + [self beginDownload]; + break; + + case SURemindMeLaterChoice: + updateInProgress = NO; + [self remindMeLater]; + break; + + case SUSkipThisVersionChoice: + updateInProgress = NO; + [[NSUserDefaults standardUserDefaults] setObject:[updateItem fileVersion] forKey:SUSkippedVersionKey]; + break; + } +} + +- (void)showUpdatePanel +{ + updateAlert = [[SUUpdateAlert alloc] initWithAppcastItem:updateItem]; + [updateAlert setDelegate:self]; + [updateAlert showWindow:self]; +} + +- (void)appcastDidFailToLoad:(SUAppcast *)ac +{ + [ac autorelease]; + updateInProgress = NO; + if (verbose) + [self showUpdateErrorAlertWithInfo:SULocalizedString(@"An error occurred in retrieving update information; are you connected to the internet? Please try again later.", nil)]; +} + +// Override this to change the new version comparison logic! +- (BOOL)newVersionAvailable +{ + BOOL canRunOnCurrentSystem = SUStandardVersionComparison([updateItem minimumSystemVersion], [self systemVersionString]); + return (canRunOnCurrentSystem && (SUStandardVersionComparison([updateItem fileVersion], SUHostAppVersion()) == NSOrderedAscending)); + // Want straight-up string comparison like Sparkle 1.0b3 and earlier? Uncomment the line below and comment the one above. + // return ![SUHostAppVersion() isEqualToString:[updateItem fileVersion]]; +} + +- (NSString *)systemVersionString +{ + return currentSystemVersion; +} + +- (void)appcastDidFinishLoading:(SUAppcast *)ac +{ + @try + { + if (!ac) { [NSException raise:@"SUAppcastException" format:@"Couldn't get a valid appcast from the server."]; } + + updateItem = [[ac newestItem] retain]; + [ac autorelease]; + + // Record the time of the check for host app use and for interval checks on startup. + [[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:SULastCheckTimeKey]; + + if (![updateItem fileVersion]) + { + [NSException raise:@"SUAppcastException" format:@"Can't extract a version string from the appcast feed. The filenames should look like YourApp_1.5.tgz, where 1.5 is the version number."]; + } + + if (!verbose && [[[NSUserDefaults standardUserDefaults] objectForKey:SUSkippedVersionKey] isEqualToString:[updateItem fileVersion]]) { updateInProgress = NO; return; } + + if ([self newVersionAvailable]) + { + if (checkTimer) // There's a new version! Let's disable the automated checking timer unless the user cancels. + { + [checkTimer invalidate]; + checkTimer = nil; + } + + if ([self isAutomaticallyUpdating]) + { + [self beginDownload]; + } + else + { + [self showUpdatePanel]; + } + } + else + { + if (verbose) // We only notify on no new version when we're being verbose. + { + NSRunAlertPanel(SULocalizedString(@"You're up to date!", nil), [NSString stringWithFormat:SULocalizedString(@"%@ %@ is currently the newest version available.", nil), SUHostAppDisplayName(), SUHostAppVersionString()], NSLocalizedString(@"OK", nil), nil, nil); + } + updateInProgress = NO; + } + } + @catch (NSException *e) + { + NSLog([e reason]); + updateInProgress = NO; + if (verbose) + [self showUpdateErrorAlertWithInfo:SULocalizedString(@"An error occurred in retrieving update information. Please try again later.", nil)]; + } +} + +- (void)download:(NSURLDownload *)download didReceiveResponse:(NSURLResponse *)response +{ + [statusController setMaxProgressValue:[response expectedContentLength]]; +} + +- (void)download:(NSURLDownload *)download decideDestinationWithSuggestedFilename:(NSString *)name +{ + // If name ends in .txt, the server probably has a stupid MIME configuration. We'll give + // the developer the benefit of the doubt and chop that off. + if ([[name pathExtension] isEqualToString:@"txt"]) + name = [name stringByDeletingPathExtension]; + + // We create a temporary directory in /tmp and stick the file there. + NSString *tempDir = [NSTemporaryDirectory() stringByAppendingPathComponent:[[NSProcessInfo processInfo] globallyUniqueString]]; + BOOL success = [[NSFileManager defaultManager] createDirectoryAtPath:tempDir attributes:nil]; + if (!success) + { + [NSException raise:@"SUFailTmpWrite" format:@"Couldn't create temporary directory in /tmp"]; + [download cancel]; + [download release]; + } + + [downloadPath autorelease]; + downloadPath = [[tempDir stringByAppendingPathComponent:name] retain]; + [download setDestination:downloadPath allowOverwrite:YES]; +} + +- (void)download:(NSURLDownload *)download didReceiveDataOfLength:(unsigned)length +{ + [statusController setProgressValue:[statusController progressValue] + length]; + [statusController setStatusText:[NSString stringWithFormat:SULocalizedString(@"%.0lfk of %.0lfk", nil), [statusController progressValue] / 1024.0, [statusController maxProgressValue] / 1024.0]]; +} + +- (void)unarchiver:(SUUnarchiver *)ua extractedLength:(long)length +{ + if ([self isAutomaticallyUpdating]) { return; } + if ([statusController maxProgressValue] == 0) + [statusController setMaxProgressValue:[[[[NSFileManager defaultManager] fileAttributesAtPath:downloadPath traverseLink:NO] objectForKey:NSFileSize] longValue]]; + [statusController setProgressValue:[statusController progressValue] + length]; +} + +- (void)unarchiverDidFinish:(SUUnarchiver *)ua +{ + [ua autorelease]; + + if ([self isAutomaticallyUpdating]) + { + [self installAndRestart:self]; + } + else + { + [statusController beginActionWithTitle:SULocalizedString(@"Ready to install!", nil) maxProgressValue:1 statusText:nil]; + [statusController setProgressValue:1]; // fill the bar + [statusController setButtonTitle:SULocalizedString(@"Install and Relaunch", nil) target:self action:@selector(installAndRestart:) isDefault:YES]; + [NSApp requestUserAttention:NSInformationalRequest]; + } +} + +- (void)unarchiverDidFail:(SUUnarchiver *)ua +{ + [ua autorelease]; + [self showUpdateErrorAlertWithInfo:SULocalizedString(@"An error occurred while extracting the archive. Please try again later.", nil)]; + [self abandonUpdate]; +} + +- (void)extractUpdate +{ + // Now we have to extract the downloaded archive. + if (![self isAutomaticallyUpdating]) + [statusController beginActionWithTitle:SULocalizedString(@"Extracting update...", nil) maxProgressValue:0 statusText:nil]; + + @try + { + // If the developer's provided a sparkle:md5Hash attribute on the enclosure, let's verify that. + if ([updateItem MD5Sum] && ![[NSFileManager defaultManager] validatePath:downloadPath withMD5Hash:[updateItem MD5Sum]]) + { + [NSException raise:@"SUUnarchiveException" format:@"MD5 verification of the update archive failed."]; + } + + // DSA verification, if activated by the developer + if ([SUInfoValueForKey(SUExpectsDSASignatureKey) boolValue]) + { + NSString *dsaSignature = [updateItem DSASignature]; + if (![[NSFileManager defaultManager] validatePath:downloadPath withEncodedDSASignature:dsaSignature]) + { + [NSException raise:@"SUUnarchiveException" format:@"DSA verification of the update archive failed."]; + } + } + + SUUnarchiver *unarchiver = [[SUUnarchiver alloc] init]; + [unarchiver setDelegate:self]; + [unarchiver unarchivePath:downloadPath]; // asynchronous extraction! + } + @catch(NSException *e) { + NSLog([e reason]); + [self showUpdateErrorAlertWithInfo:SULocalizedString(@"An error occurred while extracting the archive. Please try again later.", nil)]; + [self abandonUpdate]; + } +} + +- (void)downloadDidFinish:(NSURLDownload *)download +{ + [download release]; + downloader = nil; + [self extractUpdate]; +} + +- (void)abandonUpdate +{ + [updateItem release]; + [statusController close]; + [statusController release]; + updateInProgress = NO; +} + +- (void)download:(NSURLDownload *)download didFailWithError:(NSError *)error +{ + [self abandonUpdate]; + + NSLog(@"Download error: %@", [error localizedDescription]); + [self showUpdateErrorAlertWithInfo:SULocalizedString(@"An error occurred while trying to download the file. Please try again later.", nil)]; +} + +- (IBAction)installAndRestart:sender +{ + NSString *currentAppPath = [[NSBundle mainBundle] bundlePath]; + NSString *newAppDownloadPath = [[downloadPath stringByDeletingLastPathComponent] stringByAppendingPathComponent:[SUInfoValueForKey(@"CFBundleName") stringByAppendingPathExtension:@"app"]]; + @try + { + if (![self isAutomaticallyUpdating]) + { + [statusController beginActionWithTitle:SULocalizedString(@"Installing update...", nil) maxProgressValue:0 statusText:nil]; + [statusController setButtonEnabled:NO]; + + // We have to wait for the UI to update. + NSEvent *event; + while((event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:nil inMode:NSDefaultRunLoopMode dequeue:YES])) + [NSApp sendEvent:event]; + } + + // We assume that the archive will contain a file named {CFBundleName}.app + // (where, obviously, CFBundleName comes from Info.plist) + if (!SUInfoValueForKey(@"CFBundleName")) { [NSException raise:@"SUInstallException" format:@"This application has no CFBundleName! This key must be set to the application's name."]; } + + // Search subdirectories for the application + NSString *file, *appName = [SUInfoValueForKey(@"CFBundleName") stringByAppendingPathExtension:@"app"]; + NSDirectoryEnumerator *dirEnum = [[NSFileManager defaultManager] enumeratorAtPath:[downloadPath stringByDeletingLastPathComponent]]; + while ((file = [dirEnum nextObject])) + { + // Some DMGs have symlinks into /Applications! That's no good! + if ([file isEqualToString:@"/Applications"]) + [dirEnum skipDescendents]; + if ([[file lastPathComponent] isEqualToString:appName]) + newAppDownloadPath = [[downloadPath stringByDeletingLastPathComponent] stringByAppendingPathComponent:file]; + } + + if (!newAppDownloadPath || ![[NSFileManager defaultManager] fileExistsAtPath:newAppDownloadPath]) + { + [NSException raise:@"SUInstallException" format:@"The update archive didn't contain an application with the proper name: %@. Remember, the updated app's file name must be identical to {CFBundleName}.app", [SUInfoValueForKey(@"CFBundleName") stringByAppendingPathExtension:@"app"]]; + } + } + @catch(NSException *e) + { + NSLog([e reason]); + [self showUpdateErrorAlertWithInfo:SULocalizedString(@"An error occurred during installation. Please try again later.", nil)]; + [self abandonUpdate]; + } + + if ([self isAutomaticallyUpdating]) // Don't do authentication if we're automatically updating; that'd be surprising. + { + int tag = 0; + BOOL result = [[NSWorkspace sharedWorkspace] performFileOperation:NSWorkspaceRecycleOperation source:[currentAppPath stringByDeletingLastPathComponent] destination:@"" files:[NSArray arrayWithObject:[currentAppPath lastPathComponent]] tag:&tag]; + result &= [[NSFileManager defaultManager] movePath:newAppDownloadPath toPath:currentAppPath handler:nil]; + if (!result) + { + [self abandonUpdate]; + return; + } + } + else // But if we're updating by the action of the user, do an authenticated move. + { + // Outside of the @try block because we want to be a little more informative on this error. + if (![[NSFileManager defaultManager] movePathWithAuthentication:newAppDownloadPath toPath:currentAppPath]) + { + [self showUpdateErrorAlertWithInfo:[NSString stringWithFormat:SULocalizedString(@"%@ does not have permission to write to the application's directory! Are you running off a disk image? If not, ask your system administrator for help.", nil), SUHostAppDisplayName()]]; + [self abandonUpdate]; + return; + } + } + + // Prompt for permission to restart if we're automatically updating. + if ([self isAutomaticallyUpdating]) + { + SUAutomaticUpdateAlert *alert = [[SUAutomaticUpdateAlert alloc] initWithAppcastItem:updateItem]; + if ([NSApp runModalForWindow:[alert window]] == NSAlertAlternateReturn) + { + [alert release]; + return; + } + } + + [[NSNotificationCenter defaultCenter] postNotificationName:SUUpdaterWillRestartNotification object:self]; + + // Thanks to Allan Odgaard for this restart code, which is much more clever than mine was. + setenv("LAUNCH_PATH", [currentAppPath UTF8String], 1); + setenv("TEMP_FOLDER", [[downloadPath stringByDeletingLastPathComponent] UTF8String], 1); // delete the temp stuff after it's all over + system("/bin/bash -c '{ for (( i = 0; i < 3000 && $(echo $(/bin/ps -xp $PPID|/usr/bin/wc -l))-1; i++ )); do\n" + " /bin/sleep .2;\n" + " done\n" + " if [[ $(/bin/ps -xp $PPID|/usr/bin/wc -l) -ne 2 ]]; then\n" + " /usr/bin/open \"${LAUNCH_PATH}\"\n" + " fi\n" + " rm -rf \"${TEMP_FOLDER}\"\n" + "} &>/dev/null &'"); + [NSApp terminate:self]; +} + +- (IBAction)cancelDownload:sender +{ + if (downloader) + { + [downloader cancel]; + [downloader release]; + } + [self abandonUpdate]; + + if (checkInterval) + { + [self scheduleCheckWithInterval:checkInterval]; + } +} + +@end diff --git a/Frameworks/Sparkle/SUUtilities.h b/Frameworks/Sparkle/SUUtilities.h new file mode 100755 index 000000000..5af355083 --- /dev/null +++ b/Frameworks/Sparkle/SUUtilities.h @@ -0,0 +1,20 @@ +// +// SUUtilities.h +// Sparkle +// +// Created by Andy Matuschak on 3/12/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import + +id SUInfoValueForKey(NSString *key); +NSString *SUHostAppName(); +NSString *SUHostAppDisplayName(); +NSString *SUHostAppVersion(); +NSString *SUHostAppVersionString(); + +NSComparisonResult SUStandardVersionComparison(NSString * versionA, NSString * versionB); + +// If running make localizable-strings for genstrings, ignore the error on this line. +NSString *SULocalizedString(NSString *key, NSString *comment); diff --git a/Frameworks/Sparkle/SUUtilities.m b/Frameworks/Sparkle/SUUtilities.m new file mode 100755 index 000000000..f6473e6d7 --- /dev/null +++ b/Frameworks/Sparkle/SUUtilities.m @@ -0,0 +1,198 @@ +// +// SUUtilities.m +// Sparkle +// +// Created by Andy Matuschak on 3/12/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import "SUUtilities.h" + +@interface SUUtilities : NSObject + +(NSString *)localizedStringForKey:(NSString *)key withComment:(NSString *)comment; +@end + +id SUInfoValueForKey(NSString *key) +{ + return [[NSBundle mainBundle] objectForInfoDictionaryKey:key]; +} + +NSString *SUHostAppName() +{ + if (SUInfoValueForKey(@"CFBundleName")) { return SUInfoValueForKey(@"CFBundleName"); } + return [[[NSFileManager defaultManager] displayNameAtPath:[[NSBundle mainBundle] bundlePath]] stringByDeletingPathExtension]; +} + +NSString *SUHostAppDisplayName() +{ + if (SUInfoValueForKey(@"CFBundleDisplayName")) { return SUInfoValueForKey(@"CFBundleDisplayName"); } + return SUHostAppName(); +} + +NSString *SUHostAppVersion() +{ + return SUInfoValueForKey(@"CFBundleVersion"); +} + +NSString *SUHostAppVersionString() +{ + NSString *shortVersionString = SUInfoValueForKey(@"CFBundleShortVersionString"); + if (shortVersionString) + { + if (![shortVersionString isEqualToString:SUHostAppVersion()]) + shortVersionString = [shortVersionString stringByAppendingFormat:@"/%@", SUHostAppVersion()]; + return shortVersionString; + } + else + return SUHostAppVersion(); // fall back on CFBundleVersion +} + +NSString *SULocalizedString(NSString *key, NSString *comment) { + return [SUUtilities localizedStringForKey:key withComment:comment]; +} + +enum { + kNumberType, + kStringType, + kPeriodType +}; + +// The version comparison code here is courtesy of Kevin Ballard, adapted from MacPAD. Thanks, Kevin! + +int SUGetCharType(NSString *character) +{ + if ([character isEqualToString:@"."]) { + return kPeriodType; + } else if ([character isEqualToString:@"0"] || [character intValue] != 0) { + return kNumberType; + } else { + return kStringType; + } +} + +NSArray *SUSplitVersionString(NSString *version) +{ + NSString *character; + NSMutableString *s; + int i, n, oldType, newType; + NSMutableArray *parts = [NSMutableArray array]; + if ([version length] == 0) { + // Nothing to do here + return parts; + } + s = [[[version substringToIndex:1] mutableCopy] autorelease]; + oldType = SUGetCharType(s); + n = [version length] - 1; + for (i = 1; i <= n; ++i) { + character = [version substringWithRange:NSMakeRange(i, 1)]; + newType = SUGetCharType(character); + if (oldType != newType || oldType == kPeriodType) { + // We've reached a new segment + NSString *aPart = [[NSString alloc] initWithString:s]; + [parts addObject:aPart]; + [aPart release]; + [s setString:character]; + } else { + // Add character to string and continue + [s appendString:character]; + } + oldType = newType; + } + + // Add the last part onto the array + [parts addObject:[NSString stringWithString:s]]; + return parts; +} + +NSComparisonResult SUStandardVersionComparison(NSString *versionA, NSString *versionB) +{ + NSArray *partsA = SUSplitVersionString(versionA); + NSArray *partsB = SUSplitVersionString(versionB); + + NSString *partA, *partB; + int i, n, typeA, typeB, intA, intB; + + n = MIN([partsA count], [partsB count]); + for (i = 0; i < n; ++i) { + partA = [partsA objectAtIndex:i]; + partB = [partsB objectAtIndex:i]; + + typeA = SUGetCharType(partA); + typeB = SUGetCharType(partB); + + // Compare types + if (typeA == typeB) { + // Same type; we can compare + if (typeA == kNumberType) { + intA = [partA intValue]; + intB = [partB intValue]; + if (intA > intB) { + return NSOrderedAscending; + } else if (intA < intB) { + return NSOrderedDescending; + } + } else if (typeA == kStringType) { + NSComparisonResult result = [partA compare:partB]; + if (result != NSOrderedSame) { + return result; + } + } + } else { + // Not the same type? Now we have to do some validity checking + if (typeA != kStringType && typeB == kStringType) { + // typeA wins + return NSOrderedAscending; + } else if (typeA == kStringType && typeB != kStringType) { + // typeB wins + return NSOrderedDescending; + } else { + // One is a number and the other is a period. The period is invalid + if (typeA == kNumberType) { + return NSOrderedAscending; + } else { + return NSOrderedDescending; + } + } + } + } + // The versions are equal up to the point where they both still have parts + // Lets check to see if one is larger than the other + if ([partsA count] != [partsB count]) { + // Yep. Lets get the next part of the larger + // n holds the value we want + NSString *missingPart; + int missingType, shorterResult, largerResult; + + if ([partsA count] > [partsB count]) { + missingPart = [partsA objectAtIndex:n]; + shorterResult = NSOrderedDescending; + largerResult = NSOrderedAscending; + } else { + missingPart = [partsB objectAtIndex:n]; + shorterResult = NSOrderedAscending; + largerResult = NSOrderedDescending; + } + + missingType = SUGetCharType(missingPart); + // Check the type + if (missingType == kStringType) { + // It's a string. Shorter version wins + return shorterResult; + } else { + // It's a number/period. Larger version wins + return largerResult; + } + } + + // The 2 strings are identical + return NSOrderedSame; +} + +@implementation SUUtilities + ++ (NSString *)localizedStringForKey:(NSString *)key withComment:(NSString *)comment +{ + return NSLocalizedStringFromTableInBundle(key, @"Sparkle", [NSBundle bundleForClass:[self class]], comment); +} + +@end diff --git a/Frameworks/Sparkle/Sparkle.h b/Frameworks/Sparkle/Sparkle.h new file mode 100755 index 000000000..13e9b2156 --- /dev/null +++ b/Frameworks/Sparkle/Sparkle.h @@ -0,0 +1,22 @@ +// +// Sparkle.h +// Sparkle +// +// Created by Andy Matuschak on 3/16/06. +// Copyright 2006 Andy Matuschak. All rights reserved. +// + +#import "SUUpdater.h" +#import "SUUtilities.h" +#import "SUConstants.h" +#import "SUAppcast.h" +#import "SUAppcastItem.h" +#import "SUUpdateAlert.h" +#import "SUAutomaticUpdateAlert.h" +#import "SUStatusController.h" +#import "SUUnarchiver.h" +#import "SUStatusChecker.h" + +#import "NSApplication+AppCopies.h" +#import "NSFileManager+Authentication.h" +#import "NSFileManager+Verification.h" \ No newline at end of file diff --git a/Frameworks/Sparkle/Sparkle.icns b/Frameworks/Sparkle/Sparkle.icns new file mode 100755 index 0000000000000000000000000000000000000000..8e56d45c0402ca41f1dc3993f8a79e93818d141c GIT binary patch literal 50219 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/Sparkle.xcodeproj/project.pbxproj b/Frameworks/Sparkle/Sparkle.xcodeproj/project.pbxproj new file mode 100755 index 000000000..4be8e3777 --- /dev/null +++ b/Frameworks/Sparkle/Sparkle.xcodeproj/project.pbxproj @@ -0,0 +1,736 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXBuildFile section */ + 345AF9E40A5D707200D7DA6F /* SUStatusChecker.h in Headers */ = {isa = PBXBuildFile; fileRef = 345AF9E20A5D707200D7DA6F /* SUStatusChecker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 345AF9E50A5D707200D7DA6F /* SUStatusChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = 345AF9E30A5D707200D7DA6F /* SUStatusChecker.m */; }; + 610D5A750A1670A4004AAD9C /* SUStatus.nib in Resources */ = {isa = PBXBuildFile; fileRef = 610D5A740A1670A4004AAD9C /* SUStatus.nib */; }; + 6120721209CC5C4B007FE0F6 /* SUAutomaticUpdateAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = 6120721009CC5C4B007FE0F6 /* SUAutomaticUpdateAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6120721309CC5C4B007FE0F6 /* SUAutomaticUpdateAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = 6120721109CC5C4B007FE0F6 /* SUAutomaticUpdateAlert.m */; }; + 61299A2F09CA2DAB00B7442F /* NSFileManager+Verification.h in Headers */ = {isa = PBXBuildFile; fileRef = 61299A2D09CA2DAB00B7442F /* NSFileManager+Verification.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61299A3009CA2DAB00B7442F /* NSFileManager+Verification.m in Sources */ = {isa = PBXBuildFile; fileRef = 61299A2E09CA2DAB00B7442F /* NSFileManager+Verification.m */; }; + 61299A4A09CA2DD000B7442F /* NSFileManager+Authentication.h in Headers */ = {isa = PBXBuildFile; fileRef = 6129984309C9E2DA00B7442F /* NSFileManager+Authentication.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61299A4B09CA2DD100B7442F /* NSApplication+AppCopies.m in Sources */ = {isa = PBXBuildFile; fileRef = 61299A1209C9E4FC00B7442F /* NSApplication+AppCopies.m */; }; + 61299A4C09CA2DD200B7442F /* NSApplication+AppCopies.h in Headers */ = {isa = PBXBuildFile; fileRef = 61299A1109C9E4FC00B7442F /* NSApplication+AppCopies.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61299A5C09CA6D4500B7442F /* SUConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 61299A5B09CA6D4500B7442F /* SUConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61299A6009CA6EB100B7442F /* SUConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 61299A5F09CA6EB100B7442F /* SUConstants.m */; }; + 61299A8D09CA790200B7442F /* SUUnarchiver.h in Headers */ = {isa = PBXBuildFile; fileRef = 61299A8B09CA790200B7442F /* SUUnarchiver.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61299A8E09CA790200B7442F /* SUUnarchiver.m in Sources */ = {isa = PBXBuildFile; fileRef = 61299A8C09CA790200B7442F /* SUUnarchiver.m */; }; + 61299B3609CB04E000B7442F /* Sparkle.h in Headers */ = {isa = PBXBuildFile; fileRef = 61299B3509CB04E000B7442F /* Sparkle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6196CFF909C72148000DC222 /* SUStatusController.h in Headers */ = {isa = PBXBuildFile; fileRef = 6196CFE309C71ADE000DC222 /* SUStatusController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 6196CFFA09C72149000DC222 /* SUStatusController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6196CFE409C71ADE000DC222 /* SUStatusController.m */; }; + 61AAE8280A321A7F00D8810D /* Sparkle.strings in Resources */ = {isa = PBXBuildFile; fileRef = 61AAE8220A321A7F00D8810D /* Sparkle.strings */; }; + 61AAE8290A321A8000D8810D /* SUAutomaticUpdateAlert.nib in Resources */ = {isa = PBXBuildFile; fileRef = 61AAE8240A321A7F00D8810D /* SUAutomaticUpdateAlert.nib */; }; + 61AAE82A0A321A8000D8810D /* SUUpdateAlert.nib in Resources */ = {isa = PBXBuildFile; fileRef = 61AAE8260A321A7F00D8810D /* SUUpdateAlert.nib */; }; + 61B5F8E709C4CE3C00B25A18 /* md5.c in Sources */ = {isa = PBXBuildFile; fileRef = 61B5F8DD09C4CE3C00B25A18 /* md5.c */; }; + 61B5F8E809C4CE3C00B25A18 /* md5.h in Headers */ = {isa = PBXBuildFile; fileRef = 61B5F8DE09C4CE3C00B25A18 /* md5.h */; settings = {ATTRIBUTES = (); }; }; + 61B5F8E909C4CE3C00B25A18 /* NSString+extras.h in Headers */ = {isa = PBXBuildFile; fileRef = 61B5F8DF09C4CE3C00B25A18 /* NSString+extras.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61B5F8EA09C4CE3C00B25A18 /* NSString+extras.m in Sources */ = {isa = PBXBuildFile; fileRef = 61B5F8E009C4CE3C00B25A18 /* NSString+extras.m */; }; + 61B5F8EB09C4CE3C00B25A18 /* RSS.h in Headers */ = {isa = PBXBuildFile; fileRef = 61B5F8E109C4CE3C00B25A18 /* RSS.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61B5F8EC09C4CE3C00B25A18 /* RSS.m in Sources */ = {isa = PBXBuildFile; fileRef = 61B5F8E209C4CE3C00B25A18 /* RSS.m */; }; + 61B5F8ED09C4CE3C00B25A18 /* SUUpdater.h in Headers */ = {isa = PBXBuildFile; fileRef = 61B5F8E309C4CE3C00B25A18 /* SUUpdater.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61B5F8EE09C4CE3C00B25A18 /* SUUpdater.m in Sources */ = {isa = PBXBuildFile; fileRef = 61B5F8E409C4CE3C00B25A18 /* SUUpdater.m */; }; + 61B5F8EF09C4CE3C00B25A18 /* NSFileManager+Authentication.m in Sources */ = {isa = PBXBuildFile; fileRef = 61B5F8E509C4CE3C00B25A18 /* NSFileManager+Authentication.m */; }; + 61B5F8F709C4CEB300B25A18 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61B5F8F609C4CEB300B25A18 /* Security.framework */; }; + 61B5FBB709C4FAFF00B25A18 /* SUAppcast.m in Sources */ = {isa = PBXBuildFile; fileRef = 61B5FB9509C4F04600B25A18 /* SUAppcast.m */; }; + 61B5FC0D09C4FC8200B25A18 /* SUAppcast.h in Headers */ = {isa = PBXBuildFile; fileRef = 61B5FB9409C4F04600B25A18 /* SUAppcast.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61B5FC0E09C4FC8400B25A18 /* SUUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 61B5FBCB09C4FBAB00B25A18 /* SUUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61B5FC0F09C4FC8500B25A18 /* SUUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 61B5FBCC09C4FBAB00B25A18 /* SUUtilities.m */; }; + 61B5FC4C09C4FD5E00B25A18 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 61B5FC3F09C4FD4000B25A18 /* WebKit.framework */; }; + 61B5FC6F09C51F4900B25A18 /* SUAppcastItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 61B5FC5409C5182000B25A18 /* SUAppcastItem.m */; }; + 61B5FC7009C51F4A00B25A18 /* SUAppcastItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 61B5FC5309C5182000B25A18 /* SUAppcastItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 61B5FCDE09C52A9F00B25A18 /* SUUpdateAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = 61B5FCA109C5228F00B25A18 /* SUUpdateAlert.m */; }; + 61B5FCDF09C52A9F00B25A18 /* SUUpdateAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = 61B5FCA009C5228F00B25A18 /* SUUpdateAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 0867D69BFE84028FC02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 0867D6A5FE840307C02AAC07 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 32DBCF5E0370ADEE00C91783 /* Sparkle_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sparkle_Prefix.pch; sourceTree = ""; }; + 345AF9E20A5D707200D7DA6F /* SUStatusChecker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SUStatusChecker.h; sourceTree = ""; }; + 345AF9E30A5D707200D7DA6F /* SUStatusChecker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SUStatusChecker.m; sourceTree = ""; }; + 610D5A740A1670A4004AAD9C /* SUStatus.nib */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; path = SUStatus.nib; sourceTree = ""; }; + 6120721009CC5C4B007FE0F6 /* SUAutomaticUpdateAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SUAutomaticUpdateAlert.h; sourceTree = ""; }; + 6120721109CC5C4B007FE0F6 /* SUAutomaticUpdateAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SUAutomaticUpdateAlert.m; sourceTree = ""; }; + 6129984309C9E2DA00B7442F /* NSFileManager+Authentication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSFileManager+Authentication.h"; sourceTree = ""; }; + 61299A1109C9E4FC00B7442F /* NSApplication+AppCopies.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSApplication+AppCopies.h"; sourceTree = ""; }; + 61299A1209C9E4FC00B7442F /* NSApplication+AppCopies.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSApplication+AppCopies.m"; sourceTree = ""; }; + 61299A2D09CA2DAB00B7442F /* NSFileManager+Verification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSFileManager+Verification.h"; sourceTree = ""; }; + 61299A2E09CA2DAB00B7442F /* NSFileManager+Verification.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSFileManager+Verification.m"; sourceTree = ""; }; + 61299A5B09CA6D4500B7442F /* SUConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SUConstants.h; sourceTree = ""; }; + 61299A5F09CA6EB100B7442F /* SUConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SUConstants.m; sourceTree = ""; }; + 61299A8B09CA790200B7442F /* SUUnarchiver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SUUnarchiver.h; sourceTree = ""; }; + 61299A8C09CA790200B7442F /* SUUnarchiver.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SUUnarchiver.m; sourceTree = ""; }; + 61299B3509CB04E000B7442F /* Sparkle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sparkle.h; sourceTree = ""; }; + 6196CFE309C71ADE000DC222 /* SUStatusController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SUStatusController.h; sourceTree = ""; }; + 6196CFE409C71ADE000DC222 /* SUStatusController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SUStatusController.m; sourceTree = ""; }; + 61AAE8230A321A7F00D8810D /* en */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8250A321A7F00D8810D /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = en; path = en.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8270A321A7F00D8810D /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = en; path = en.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE82D0A321AA200D8810D /* ca */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ca; path = ca.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE82E0A321AA200D8810D /* ca */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = ca; path = ca.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE82F0A321AA200D8810D /* ca */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = ca; path = ca.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE83F0A321AD200D8810D /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8400A321AD200D8810D /* cs */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = cs; path = cs.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8410A321AD200D8810D /* cs */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = cs; path = cs.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8420A321ADC00D8810D /* cy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cy; path = cy.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8430A321ADC00D8810D /* cy */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = cy; path = cy.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8440A321ADC00D8810D /* cy */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = cy; path = cy.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8450A321AE500D8810D /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8460A321AE500D8810D /* da */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = da; path = da.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8470A321AE500D8810D /* da */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = da; path = da.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8480A321AED00D8810D /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8490A321AED00D8810D /* de */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = de; path = de.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE84A0A321AED00D8810D /* de */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = de; path = de.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE84F0A321AF700D8810D /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8500A321AF700D8810D /* es */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = es; path = es.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8510A321AF700D8810D /* es */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = es; path = es.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8560A321AFC00D8810D /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8570A321AFC00D8810D /* fi */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = fi; path = fi.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8580A321AFC00D8810D /* fi */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = fi; path = fi.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8590A321B0400D8810D /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE85A0A321B0400D8810D /* fr */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = fr; path = fr.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE85B0A321B0400D8810D /* fr */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = fr; path = fr.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE85C0A321B0C00D8810D /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = he.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE85D0A321B0C00D8810D /* he */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = he; path = he.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE85E0A321B0C00D8810D /* he */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = he; path = he.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE85F0A321EF100D8810D /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8600A321EF100D8810D /* hu */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = hu; path = hu.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8610A321EF100D8810D /* hu */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = hu; path = hu.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8620A321EFA00D8810D /* id */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = id; path = id.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8630A321EFA00D8810D /* id */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = id; path = id.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8640A321EFA00D8810D /* id */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = id; path = id.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8650A321F0100D8810D /* is */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = is; path = is.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8660A321F0100D8810D /* is */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = is; path = is.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8670A321F0100D8810D /* is */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = is; path = is.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8680A321F0B00D8810D /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8690A321F0B00D8810D /* it */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = it; path = it.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE86A0A321F0B00D8810D /* it */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = it; path = it.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE86B0A321F2D00D8810D /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE86C0A321F2D00D8810D /* ja */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = ja; path = ja.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE86D0A321F2D00D8810D /* ja */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = ja; path = ja.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE86E0A321F3500D8810D /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE86F0A321F3500D8810D /* ko */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = ko; path = ko.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8700A321F3500D8810D /* ko */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = ko; path = ko.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8710A321F7700D8810D /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8720A321F7700D8810D /* nl */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = nl; path = nl.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8730A321F7700D8810D /* nl */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = nl; path = nl.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8740A321FA500D8810D /* no */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = no; path = no.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8750A321FA500D8810D /* no */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = no; path = no.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8760A321FA500D8810D /* no */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = no; path = no.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8770A321FBE00D8810D /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8780A321FBE00D8810D /* pl */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = pl; path = pl.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8790A321FBE00D8810D /* pl */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = pl; path = pl.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE87A0A321FC400D8810D /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE87B0A321FC400D8810D /* ru */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = ru; path = ru.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE87C0A321FC400D8810D /* ru */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = ru; path = ru.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE87D0A321FCD00D8810D /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE87E0A321FCD00D8810D /* sk */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = sk; path = sk.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE87F0A321FCD00D8810D /* sk */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = sk; path = sk.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8800A32201100D8810D /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8810A32201100D8810D /* sv */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = sv; path = sv.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8820A32201100D8810D /* sv */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = sv; path = sv.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8830A32202400D8810D /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8840A32202400D8810D /* th */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = th; path = th.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8850A32202400D8810D /* th */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = th; path = th.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8860A32203000D8810D /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE8870A32203000D8810D /* tr */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = tr; path = tr.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE8880A32203000D8810D /* tr */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = tr; path = tr.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE8890A32203800D8810D /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = zh_CN.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE88A0A32203800D8810D /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = zh_CN; path = zh_CN.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE88B0A32203800D8810D /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = zh_CN; path = zh_CN.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61AAE88C0A32203F00D8810D /* zh_TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_TW; path = zh_TW.lproj/Sparkle.strings; sourceTree = ""; }; + 61AAE88D0A32203F00D8810D /* zh_TW */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = zh_TW; path = zh_TW.lproj/SUAutomaticUpdateAlert.nib; sourceTree = ""; }; + 61AAE88E0A32203F00D8810D /* zh_TW */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = zh_TW; path = zh_TW.lproj/SUUpdateAlert.nib; sourceTree = ""; }; + 61B5F8DD09C4CE3C00B25A18 /* md5.c */ = {isa = PBXFileReference; fileEncoding = 30; includeInIndex = 0; lastKnownFileType = sourcecode.c.c; path = md5.c; sourceTree = ""; }; + 61B5F8DE09C4CE3C00B25A18 /* md5.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = md5.h; sourceTree = ""; }; + 61B5F8DF09C4CE3C00B25A18 /* NSString+extras.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "NSString+extras.h"; sourceTree = ""; }; + 61B5F8E009C4CE3C00B25A18 /* NSString+extras.m */ = {isa = PBXFileReference; fileEncoding = 30; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; path = "NSString+extras.m"; sourceTree = ""; }; + 61B5F8E109C4CE3C00B25A18 /* RSS.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = RSS.h; sourceTree = ""; }; + 61B5F8E209C4CE3C00B25A18 /* RSS.m */ = {isa = PBXFileReference; fileEncoding = 30; includeInIndex = 0; lastKnownFileType = sourcecode.c.objc; path = RSS.m; sourceTree = ""; }; + 61B5F8E309C4CE3C00B25A18 /* SUUpdater.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SUUpdater.h; sourceTree = ""; }; + 61B5F8E409C4CE3C00B25A18 /* SUUpdater.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = SUUpdater.m; sourceTree = ""; }; + 61B5F8E509C4CE3C00B25A18 /* NSFileManager+Authentication.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = "NSFileManager+Authentication.m"; sourceTree = ""; }; + 61B5F8F609C4CEB300B25A18 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = ""; }; + 61B5F90409C4CEE200B25A18 /* Test Application-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = "Test Application-Info.plist"; path = "Test Application/Test Application-Info.plist"; sourceTree = ""; }; + 61B5F92409C4CFC900B25A18 /* main.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = main.m; path = "Test Application/main.m"; sourceTree = ""; }; + 61B5F92B09C4CFD800B25A18 /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = English; path = "Test Application/English.lproj/InfoPlist.strings"; sourceTree = ""; }; + 61B5F92D09C4CFD800B25A18 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = "Test Application/English.lproj/MainMenu.nib"; sourceTree = ""; }; + 61B5FB9409C4F04600B25A18 /* SUAppcast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SUAppcast.h; sourceTree = ""; }; + 61B5FB9509C4F04600B25A18 /* SUAppcast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SUAppcast.m; sourceTree = ""; }; + 61B5FBCB09C4FBAB00B25A18 /* SUUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SUUtilities.h; sourceTree = ""; }; + 61B5FBCC09C4FBAB00B25A18 /* SUUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SUUtilities.m; sourceTree = ""; }; + 61B5FC3F09C4FD4000B25A18 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = ""; }; + 61B5FC5309C5182000B25A18 /* SUAppcastItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SUAppcastItem.h; sourceTree = ""; }; + 61B5FC5409C5182000B25A18 /* SUAppcastItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SUAppcastItem.m; sourceTree = ""; }; + 61B5FCA009C5228F00B25A18 /* SUUpdateAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SUUpdateAlert.h; sourceTree = ""; }; + 61B5FCA109C5228F00B25A18 /* SUUpdateAlert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SUUpdateAlert.m; sourceTree = ""; }; + 61BBDF810A49220C00378739 /* Sparkle.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Sparkle.icns; sourceTree = ""; }; + 8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 8DC2EF5B0486A6940098B216 /* Sparkle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Sparkle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D2F7E79907B2D74100F64583 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8DC2EF560486A6940098B216 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */, + 61B5F8F709C4CEB300B25A18 /* Security.framework in Frameworks */, + 61B5FC4C09C4FD5E00B25A18 /* WebKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 034768DFFF38A50411DB9C8B /* Products */ = { + isa = PBXGroup; + children = ( + 8DC2EF5B0486A6940098B216 /* Sparkle.framework */, + ); + name = Products; + sourceTree = ""; + }; + 0867D691FE84028FC02AAC07 /* Sparkle */ = { + isa = PBXGroup; + children = ( + 08FB77AEFE84172EC02AAC07 /* Sparkle Classes */, + 61B5F91D09C4CF7F00B25A18 /* Test Application Sources */, + 32C88DFF0371C24200C91783 /* Other Sources */, + 089C1665FE841158C02AAC07 /* Resources */, + 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */, + 034768DFFF38A50411DB9C8B /* Products */, + ); + name = Sparkle; + sourceTree = ""; + }; + 0867D69AFE84028FC02AAC07 /* External Frameworks and Libraries */ = { + isa = PBXGroup; + children = ( + 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */, + 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */, + ); + name = "External Frameworks and Libraries"; + sourceTree = ""; + }; + 089C1665FE841158C02AAC07 /* Resources */ = { + isa = PBXGroup; + children = ( + 8DC2EF5A0486A6940098B216 /* Info.plist */, + 610D5A740A1670A4004AAD9C /* SUStatus.nib */, + ); + name = Resources; + sourceTree = ""; + }; + 08FB77AEFE84172EC02AAC07 /* Sparkle Classes */ = { + isa = PBXGroup; + children = ( + 61299B3909CB055000B7442F /* Appcast Support */, + 61299B3809CB053D00B7442F /* Cocoa Categories */, + 61299B3A09CB056100B7442F /* User Interface */, + 61B5F8F309C4CE5900B25A18 /* Utilities */, + 61B5F8E309C4CE3C00B25A18 /* SUUpdater.h */, + 61B5F8E409C4CE3C00B25A18 /* SUUpdater.m */, + 61299A8B09CA790200B7442F /* SUUnarchiver.h */, + 61299A8C09CA790200B7442F /* SUUnarchiver.m */, + 345AF9E20A5D707200D7DA6F /* SUStatusChecker.h */, + 345AF9E30A5D707200D7DA6F /* SUStatusChecker.m */, + ); + name = "Sparkle Classes"; + sourceTree = ""; + }; + 1058C7B0FEA5585E11CA2CBB /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + 61B5FC3F09C4FD4000B25A18 /* WebKit.framework */, + 61B5F8F609C4CEB300B25A18 /* Security.framework */, + 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 1058C7B2FEA5585E11CA2CBB /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 0867D6A5FE840307C02AAC07 /* AppKit.framework */, + D2F7E79907B2D74100F64583 /* CoreData.framework */, + 0867D69BFE84028FC02AAC07 /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 32C88DFF0371C24200C91783 /* Other Sources */ = { + isa = PBXGroup; + children = ( + 61AAE8220A321A7F00D8810D /* Sparkle.strings */, + 61AAE8240A321A7F00D8810D /* SUAutomaticUpdateAlert.nib */, + 61AAE8260A321A7F00D8810D /* SUUpdateAlert.nib */, + 61299B3509CB04E000B7442F /* Sparkle.h */, + 32DBCF5E0370ADEE00C91783 /* Sparkle_Prefix.pch */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 61299B3809CB053D00B7442F /* Cocoa Categories */ = { + isa = PBXGroup; + children = ( + 61299A1109C9E4FC00B7442F /* NSApplication+AppCopies.h */, + 61299A1209C9E4FC00B7442F /* NSApplication+AppCopies.m */, + 6129984309C9E2DA00B7442F /* NSFileManager+Authentication.h */, + 61B5F8E509C4CE3C00B25A18 /* NSFileManager+Authentication.m */, + 61299A2D09CA2DAB00B7442F /* NSFileManager+Verification.h */, + 61299A2E09CA2DAB00B7442F /* NSFileManager+Verification.m */, + ); + name = "Cocoa Categories"; + sourceTree = ""; + }; + 61299B3909CB055000B7442F /* Appcast Support */ = { + isa = PBXGroup; + children = ( + 61B5FB9409C4F04600B25A18 /* SUAppcast.h */, + 61B5FB9509C4F04600B25A18 /* SUAppcast.m */, + 61B5FC5309C5182000B25A18 /* SUAppcastItem.h */, + 61B5FC5409C5182000B25A18 /* SUAppcastItem.m */, + ); + name = "Appcast Support"; + sourceTree = ""; + }; + 61299B3A09CB056100B7442F /* User Interface */ = { + isa = PBXGroup; + children = ( + 61B5FCA009C5228F00B25A18 /* SUUpdateAlert.h */, + 61B5FCA109C5228F00B25A18 /* SUUpdateAlert.m */, + 6120721009CC5C4B007FE0F6 /* SUAutomaticUpdateAlert.h */, + 6120721109CC5C4B007FE0F6 /* SUAutomaticUpdateAlert.m */, + 6196CFE309C71ADE000DC222 /* SUStatusController.h */, + 6196CFE409C71ADE000DC222 /* SUStatusController.m */, + ); + name = "User Interface"; + sourceTree = ""; + }; + 61B5F8F309C4CE5900B25A18 /* Utilities */ = { + isa = PBXGroup; + children = ( + 61B5F8DD09C4CE3C00B25A18 /* md5.c */, + 61B5F8DE09C4CE3C00B25A18 /* md5.h */, + 61B5F8DF09C4CE3C00B25A18 /* NSString+extras.h */, + 61B5F8E009C4CE3C00B25A18 /* NSString+extras.m */, + 61B5F8E109C4CE3C00B25A18 /* RSS.h */, + 61B5F8E209C4CE3C00B25A18 /* RSS.m */, + 61B5FBCB09C4FBAB00B25A18 /* SUUtilities.h */, + 61B5FBCC09C4FBAB00B25A18 /* SUUtilities.m */, + 61299A5B09CA6D4500B7442F /* SUConstants.h */, + 61299A5F09CA6EB100B7442F /* SUConstants.m */, + ); + includeInIndex = 1; + name = Utilities; + sourceTree = ""; + }; + 61B5F91D09C4CF7F00B25A18 /* Test Application Sources */ = { + isa = PBXGroup; + children = ( + 61BBDF810A49220C00378739 /* Sparkle.icns */, + 61B5F92A09C4CFD800B25A18 /* InfoPlist.strings */, + 61B5F92C09C4CFD800B25A18 /* MainMenu.nib */, + 61B5F92409C4CFC900B25A18 /* main.m */, + 61B5F90409C4CEE200B25A18 /* Test Application-Info.plist */, + ); + name = "Test Application Sources"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 8DC2EF500486A6940098B216 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 61B5F8E809C4CE3C00B25A18 /* md5.h in Headers */, + 61B5F8E909C4CE3C00B25A18 /* NSString+extras.h in Headers */, + 61B5F8EB09C4CE3C00B25A18 /* RSS.h in Headers */, + 61B5F8ED09C4CE3C00B25A18 /* SUUpdater.h in Headers */, + 61B5FC0D09C4FC8200B25A18 /* SUAppcast.h in Headers */, + 61B5FC0E09C4FC8400B25A18 /* SUUtilities.h in Headers */, + 61B5FC7009C51F4A00B25A18 /* SUAppcastItem.h in Headers */, + 61B5FCDF09C52A9F00B25A18 /* SUUpdateAlert.h in Headers */, + 6196CFF909C72148000DC222 /* SUStatusController.h in Headers */, + 61299A2F09CA2DAB00B7442F /* NSFileManager+Verification.h in Headers */, + 61299A4A09CA2DD000B7442F /* NSFileManager+Authentication.h in Headers */, + 61299A4C09CA2DD200B7442F /* NSApplication+AppCopies.h in Headers */, + 61299A5C09CA6D4500B7442F /* SUConstants.h in Headers */, + 61299A8D09CA790200B7442F /* SUUnarchiver.h in Headers */, + 61299B3609CB04E000B7442F /* Sparkle.h in Headers */, + 6120721209CC5C4B007FE0F6 /* SUAutomaticUpdateAlert.h in Headers */, + 345AF9E40A5D707200D7DA6F /* SUStatusChecker.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 8DC2EF4F0486A6940098B216 /* Sparkle */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Sparkle" */; + buildPhases = ( + 8DC2EF500486A6940098B216 /* Headers */, + 8DC2EF520486A6940098B216 /* Resources */, + 8DC2EF540486A6940098B216 /* Sources */, + 8DC2EF560486A6940098B216 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Sparkle; + productInstallPath = "$(HOME)/Library/Frameworks"; + productName = Sparkle; + productReference = 8DC2EF5B0486A6940098B216 /* Sparkle.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0867D690FE84028FC02AAC07 /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Sparkle" */; + compatibilityVersion = "Xcode 2.4"; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + Italian, + zh_TW, + en, + ca, + cs, + cy, + da, + de, + es, + fi, + fr, + he, + hu, + id, + is, + it, + ja, + ko, + nl, + no, + pl, + ru, + sk, + sv, + th, + tr, + zh_CN, + ); + mainGroup = 0867D691FE84028FC02AAC07 /* Sparkle */; + productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8DC2EF4F0486A6940098B216 /* Sparkle */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8DC2EF520486A6940098B216 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 610D5A750A1670A4004AAD9C /* SUStatus.nib in Resources */, + 61AAE8280A321A7F00D8810D /* Sparkle.strings in Resources */, + 61AAE8290A321A8000D8810D /* SUAutomaticUpdateAlert.nib in Resources */, + 61AAE82A0A321A8000D8810D /* SUUpdateAlert.nib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8DC2EF540486A6940098B216 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 61B5F8E709C4CE3C00B25A18 /* md5.c in Sources */, + 61B5F8EA09C4CE3C00B25A18 /* NSString+extras.m in Sources */, + 61B5F8EC09C4CE3C00B25A18 /* RSS.m in Sources */, + 61B5F8EE09C4CE3C00B25A18 /* SUUpdater.m in Sources */, + 61B5F8EF09C4CE3C00B25A18 /* NSFileManager+Authentication.m in Sources */, + 61B5FBB709C4FAFF00B25A18 /* SUAppcast.m in Sources */, + 61B5FC0F09C4FC8500B25A18 /* SUUtilities.m in Sources */, + 61B5FC6F09C51F4900B25A18 /* SUAppcastItem.m in Sources */, + 61B5FCDE09C52A9F00B25A18 /* SUUpdateAlert.m in Sources */, + 6196CFFA09C72149000DC222 /* SUStatusController.m in Sources */, + 61299A3009CA2DAB00B7442F /* NSFileManager+Verification.m in Sources */, + 61299A4B09CA2DD100B7442F /* NSApplication+AppCopies.m in Sources */, + 61299A6009CA6EB100B7442F /* SUConstants.m in Sources */, + 61299A8E09CA790200B7442F /* SUUnarchiver.m in Sources */, + 6120721309CC5C4B007FE0F6 /* SUAutomaticUpdateAlert.m in Sources */, + 345AF9E50A5D707200D7DA6F /* SUStatusChecker.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 61AAE8220A321A7F00D8810D /* Sparkle.strings */ = { + isa = PBXVariantGroup; + children = ( + 61AAE8230A321A7F00D8810D /* en */, + 61AAE82D0A321AA200D8810D /* ca */, + 61AAE83F0A321AD200D8810D /* cs */, + 61AAE8420A321ADC00D8810D /* cy */, + 61AAE8450A321AE500D8810D /* da */, + 61AAE8480A321AED00D8810D /* de */, + 61AAE84F0A321AF700D8810D /* es */, + 61AAE8560A321AFC00D8810D /* fi */, + 61AAE8590A321B0400D8810D /* fr */, + 61AAE85C0A321B0C00D8810D /* he */, + 61AAE85F0A321EF100D8810D /* hu */, + 61AAE8620A321EFA00D8810D /* id */, + 61AAE8650A321F0100D8810D /* is */, + 61AAE8680A321F0B00D8810D /* it */, + 61AAE86B0A321F2D00D8810D /* ja */, + 61AAE86E0A321F3500D8810D /* ko */, + 61AAE8710A321F7700D8810D /* nl */, + 61AAE8740A321FA500D8810D /* no */, + 61AAE8770A321FBE00D8810D /* pl */, + 61AAE87A0A321FC400D8810D /* ru */, + 61AAE87D0A321FCD00D8810D /* sk */, + 61AAE8800A32201100D8810D /* sv */, + 61AAE8830A32202400D8810D /* th */, + 61AAE8860A32203000D8810D /* tr */, + 61AAE8890A32203800D8810D /* zh_CN */, + 61AAE88C0A32203F00D8810D /* zh_TW */, + ); + name = Sparkle.strings; + sourceTree = ""; + }; + 61AAE8240A321A7F00D8810D /* SUAutomaticUpdateAlert.nib */ = { + isa = PBXVariantGroup; + children = ( + 61AAE8250A321A7F00D8810D /* en */, + 61AAE82E0A321AA200D8810D /* ca */, + 61AAE8400A321AD200D8810D /* cs */, + 61AAE8430A321ADC00D8810D /* cy */, + 61AAE8460A321AE500D8810D /* da */, + 61AAE8490A321AED00D8810D /* de */, + 61AAE8500A321AF700D8810D /* es */, + 61AAE8570A321AFC00D8810D /* fi */, + 61AAE85A0A321B0400D8810D /* fr */, + 61AAE85D0A321B0C00D8810D /* he */, + 61AAE8600A321EF100D8810D /* hu */, + 61AAE8630A321EFA00D8810D /* id */, + 61AAE8660A321F0100D8810D /* is */, + 61AAE8690A321F0B00D8810D /* it */, + 61AAE86C0A321F2D00D8810D /* ja */, + 61AAE86F0A321F3500D8810D /* ko */, + 61AAE8720A321F7700D8810D /* nl */, + 61AAE8750A321FA500D8810D /* no */, + 61AAE8780A321FBE00D8810D /* pl */, + 61AAE87B0A321FC400D8810D /* ru */, + 61AAE87E0A321FCD00D8810D /* sk */, + 61AAE8810A32201100D8810D /* sv */, + 61AAE8840A32202400D8810D /* th */, + 61AAE8870A32203000D8810D /* tr */, + 61AAE88A0A32203800D8810D /* zh_CN */, + 61AAE88D0A32203F00D8810D /* zh_TW */, + ); + name = SUAutomaticUpdateAlert.nib; + sourceTree = ""; + }; + 61AAE8260A321A7F00D8810D /* SUUpdateAlert.nib */ = { + isa = PBXVariantGroup; + children = ( + 61AAE8270A321A7F00D8810D /* en */, + 61AAE82F0A321AA200D8810D /* ca */, + 61AAE8410A321AD200D8810D /* cs */, + 61AAE8440A321ADC00D8810D /* cy */, + 61AAE8470A321AE500D8810D /* da */, + 61AAE84A0A321AED00D8810D /* de */, + 61AAE8510A321AF700D8810D /* es */, + 61AAE8580A321AFC00D8810D /* fi */, + 61AAE85B0A321B0400D8810D /* fr */, + 61AAE85E0A321B0C00D8810D /* he */, + 61AAE8610A321EF100D8810D /* hu */, + 61AAE8640A321EFA00D8810D /* id */, + 61AAE8670A321F0100D8810D /* is */, + 61AAE86A0A321F0B00D8810D /* it */, + 61AAE86D0A321F2D00D8810D /* ja */, + 61AAE8700A321F3500D8810D /* ko */, + 61AAE8730A321F7700D8810D /* nl */, + 61AAE8760A321FA500D8810D /* no */, + 61AAE8790A321FBE00D8810D /* pl */, + 61AAE87C0A321FC400D8810D /* ru */, + 61AAE87F0A321FCD00D8810D /* sk */, + 61AAE8820A32201100D8810D /* sv */, + 61AAE8850A32202400D8810D /* th */, + 61AAE8880A32203000D8810D /* tr */, + 61AAE88B0A32203800D8810D /* zh_CN */, + 61AAE88E0A32203F00D8810D /* zh_TW */, + ); + name = SUUpdateAlert.nib; + sourceTree = ""; + }; + 61B5F92A09C4CFD800B25A18 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 61B5F92B09C4CFD800B25A18 /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 61B5F92C09C4CFD800B25A18 /* MainMenu.nib */ = { + isa = PBXVariantGroup; + children = ( + 61B5F92D09C4CFD800B25A18 /* English */, + ); + name = MainMenu.nib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 1DEB91AE08733DA50010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Sparkle_Prefix.pch; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "@executable_path/../Frameworks"; + MACH_O_TYPE = mh_dylib; + OTHER_LDFLAGS = "-lcrypto"; + PRODUCT_NAME = Sparkle; + SKIP_INSTALL = YES; + STRIP_INSTALLED_PRODUCT = NO; + WARNING_CFLAGS = "-Wall"; + WRAPPER_EXTENSION = framework; + ZERO_LINK = NO; + }; + name = Debug; + }; + 1DEB91AF08733DA50010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + ppc, + i386, + ); + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Sparkle_Prefix.pch; + GCC_TREAT_WARNINGS_AS_ERRORS = YES; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "@executable_path/../Frameworks"; + MACH_O_TYPE = mh_dylib; + MACOSX_DEPLOYMENT_TARGET = 10.3; + OTHER_LDFLAGS = "-lcrypto"; + PREBINDING = YES; + PRODUCT_NAME = Sparkle; + SKIP_INSTALL = YES; + STRIP_INSTALLED_PRODUCT = NO; + STRIP_STYLE = all; + WARNING_CFLAGS = "-Wall"; + WRAPPER_EXTENSION = framework; + ZERO_LINK = NO; + }; + name = Release; + }; + 1DEB91B208733DA50010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + i386, + ppc, + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.4; + PREBINDING = NO; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + WARNING_CFLAGS = "-wall"; + }; + name = Debug; + }; + 1DEB91B308733DA50010E9CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = ( + i386, + ppc, + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.4; + PREBINDING = NO; + SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; + SYMROOT = ../../build; + WARNING_CFLAGS = "-wall"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DEB91AD08733DA50010E9CD /* Build configuration list for PBXNativeTarget "Sparkle" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB91AE08733DA50010E9CD /* Debug */, + 1DEB91AF08733DA50010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Sparkle" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB91B208733DA50010E9CD /* Debug */, + 1DEB91B308733DA50010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0867D690FE84028FC02AAC07 /* Project object */; +} diff --git a/Frameworks/Sparkle/Sparkle_Prefix.pch b/Frameworks/Sparkle/Sparkle_Prefix.pch new file mode 100755 index 000000000..759d046c8 --- /dev/null +++ b/Frameworks/Sparkle/Sparkle_Prefix.pch @@ -0,0 +1,8 @@ +// +// Prefix header for all source files of the 'Sparkle' target in the 'Sparkle' project. +// + +#ifdef __OBJC__ + #import + #import "SUConstants.h" +#endif \ No newline at end of file diff --git a/Frameworks/Sparkle/ca.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/ca.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/ca.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/ca.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/ca.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..5a7568096 --- /dev/null +++ b/Frameworks/Sparkle/ca.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/ca.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/ca.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..15daf3081231de924d80ee94c9ede541ca4f31ec GIT binary patch literal 6589 zcmai233wD$wm!G2_qD34SVim!0TDvzbP@=QNEQNNX+k;)TS90$MN-h|Zo4~>5CT^O z#uX5GipXOyVN*d|9*zq#j&DTVmCX$mm2qYq7seSkTzKbJbpj83^U_~xxpnV7=lthC z=bn2P#3O1ld47S;sp+vY*U7{prW#T2N#-f#(saSkgW^BPCC7epu z3GP5}iqfjo7p6OUfUMpACRo5)TUL~;9%PzV!XI@Cf8 znqdX31PV96D!36=!y32~Hp4xz1-3y4?1B5?0eBGh!{hJ_9DFACy_}X(iiS0SCD>W02xZM$aQ2qDIpWcBr=suCqXh3 zzs@4F$vmQvh2(mYAWKLqX(ubl4P-63ovb5wk-N!eau3-?{)-$SPmrg{pU4sNB6*p- zLS7}WkvGXva)NwBJ|SO`bDWVgac0iKSvebLCjrjExj7Fvh#Sp~;l^^;a^tw`xbY;y z6~c#H5m(HWa1*#vZX!2{E90he)47VO%xH5Y@}b}XC%C{30*K%N31sL2J)sx$hCa|2 zu7G}UCG>}@zze^D3>W~JFc1d8)i4;YfgvyyvS1iw!*K9vKANukt2z{ER?usG0>Q#? zSV<<;1!_c1wHC*sQS@glp?kDA5=thOq~3c@AUIvEPokHTa|6LZs7cYDYXiY_H}>W7 zDcKl(f*O5-F4;mLSgoSqh%!@+*2k76t24t)9-B~C18K(IG*S8}d`nxP3+r`>{ue1& znm`Sg#uAHhOld5dnih(N8kEFroKI;JVkm(zi0`!KR0shLDygbK5U={kQV8sZi7*MuU@}aBsW6RN=~Xn3UQ4Ia zYFbOfZ$UZCfC>mgB}%FSAIyYVFdOE;T&O_+OO#|vjiQaQC<2Jsmxoe~GXue?p#@5$ zPUwfAstbzHjcT-^n?u!lroaK|FKA;h)|?0{l%rSDD+G@Aqy4Gv9he7oFdss&0ELI4 z9u!!JzeZ4D5iEuXG=ZwImwB#2NycN*dL@Cr2sX!+#1d6mimGU6p{xl}hCn^aT2dMb zH6+o^#Y!ZCy-O0IhRW7Bx&nLEs~S?&jz7sN5(n)|W$LgVhd8P;9~HSC!zKwS>>O-f zz=R~}0t&RADmto5VEisv3N6qI%b*RGQzvy%Hx;NzJ=BbWP#BL#6mNM+sW%=+OLIvuCoPaW`(mNp<4#ktr5hP8$w>*|i1;Yt7p7Jiq$@X79roT3(vaGb!yCg5$ zcX@}tX@OBg5eNGHQrOL5d{H6N~Dx%iUD63RWVkS zBz`T7s0~pTQRp7cRY>6OXTJcnhlTdRb>tWDZ~$-&HlaX2{0H0xcVqM*5i~MsvDl0D zraf`avL+1jIzhzQ5q&kRQMN1`i|WC0FKq3Et?-{P2Ez=cX#vzR4V&4I3!{bq$F#=nYzi0iDU`O z$)mlY|E+hG){N}Gq+OS`7xs0+K6r@PgC72sAVi?BwL2y+5A;XiQ4I9QFwhTRSmx3k z>c^n;zI91ZvVeS23&^M8pcXa1u~Hw+s1tg%wdMHov%EQeALB`G!6df5!Siq!4!{w35nj^VR1^v?Zb-zMqxHqHNQ?z_B?h_njDTT)$76{UW}q(U z5I1@?&7zrf0QJ)09s{F?Fdm@%IJ^q4p`_R04R{ld!ZCz7s4i3R#wdabVWGydjKXpN zI*<+$Exl2Nsm)=vJ~S~A!kjX!C>E*Lkv$1-b--IN21m2i;{?0|@4|a<3I)6mAHauj z8a_h4bt$dgnHa`lW=Jp|3M))+ta&1_292ac=rw|g4yHq^gRPhlnre`jj1Ss?WAJC3 zzbAYOf6->1*{G(JDZcCx`rjxJcsf+q?K60%1N9kmu~MJI7rIh3n+{_#kl^X*y8-PI z@ih}sy(;`D6D;U_tRxuBtQtvCLGKq2IS&cI+~6_F6RFV7l}pZB4PR4PDd~I5J zbFmdJ;d}N^&t-A13)kAR|cz3LiyA zlQCp0#^PZzPIEl2>=UkUR?%meuC)|d7)dD!T=^9(&tWzxYEGqMQ7w}Eb%G}lELRe0 ztX>V5VUADWNF@D5eY9!2x|Ar9P-~qavD}}Ymc=z&8W8&;T0jfwIH8Yc(%2d2=>*{j z9pJ%@2*fbHi?BRUaj^|yp{r{DQMNkcdjx)u|ExWNg+mhWAtZ7N_Y&-zicib578Umw zYz+I}jIA*&D^BBG#oi%&R`6>Izp^{KM)0~&>)8y6qofc)EF#5S>0b-zVp_s#nx$$g z+^9tcDJ2s-$V3)KXrvB<2Ap2^=zYq_rs6Rh^`YR5OKo2ZB{eB~hX*3^hkm z$#g=+VpU67S|Y-iI$=OMVzpZ``=a_b6p6IzH7=HX|L*f~EGH{aJ1iv0Tv9`7F`6rB z6`l5L>_)$8?5@|?9k3#`r>CjS`0QuY_UHOAlKuad+N6Or;%^bDB@v`{Q#ZBaw1UpS zUpbv75a~Srtz9)9`GxGVU|kUtu0&-O$dd-VGKR4BCfsE*4l(8> zpuRg{=hjChcKf z0z;)a8g875p_dq~k6cM;C!rUw_Gu^LP2aX%4E&7<{2Bzl27#aXYrx-}2L3h;_*o42 z*&6VtYQWE-Ga1@Q!3sr>|6#9t_O;Nd)uR z1DMD5l6~YMvL6&MiLw_qKGed-clSwGd^0PxOo>^8HE7e&2F!KyX&qfi8>!tB zZ^6Yyr6EKI7q1+IJKwLZUio>*`J8+ty+$VTIB7w8=o%oG7{SPsq@|Kg%(#VnL~;-U zyPyUR5Cb}+7FQM<7D@RC|1>&|hIJM_PY!pI!{h~R3z}wMVImP~WhFVg*9lno=VWtFTt)(y|&e;f+}iNUyi?kY3uW$x^vQlM&`BG34Pmgv-5oZ0>3gem#xMZ zUfOkaUMFvKkT+N`U_qY7UTKQ6O;Pny?O;IfcZ?kGB*%5~%UV%8y%}AErDB@HA3r+P{TdiRt?QVD`Z<7>6j#!*$kjPz9VX236O+9bFIt6&s7f?1G-9)cj)g`R>-5CuuF z2sYia$q?Ai*o`Q2(=M{CJpGKk<$_#g2Un?azN|<;aw);m91ke_;GtO-`GB0oQ@j3XL_VI+)o~GSCAXH_#C32Fb1!ixxij3C+&A2J+z;H3+|S&3 zp71d4ehOd7*Yb^g6Th5a!*AyATaD*qCD+ zXB=-VGL{%ijgyR%jZ=+{#;wL@jPDx1Hn~g#O{J!QsoE4WMNBCZHQjDnZ@R;@(X`2Q zk7=9fLDN&FgQi2KXH7>;r%Zn~eQr8$mdyRk1I;<+apsBU3iCX3qd8`7GjB3)G4C}W zFdsA@H-BOQ3uiG{Ocsm9W^q`qu?)2gvkbTREPhL#C18nJZnUho++*2ox!>}jWuIlg zdlt+!Y=TDMuZTRW@|S|7GPZ+*e~qV;9#tJc%jFRW*+Ut52)8Eidm18iBgQML)T z3Y%h!*>1C~vu&_#v~9B8W!r2!VEeu8N!!!5gSJDqXKnA;&e?vl{bC0@XE)eQ_FndW z_WpLSeSqC(FSF0Jx7e52m)lohHdtj}ZNJanY2RtzZQo;m(7w;U-+sjYv%~GkaO5~j z9hHuSj^&OO4(eFtSnXKrxXE$5W4+@J$DNMN&MTamPM_27%yVArEOkzChMbF>&CXTM z4bFRs{9=*9WfCu8&=3Twl1pa{a^gtvlCU;x2Vha!+wry63s)yH$7Gy~=&7dyBi% z{eb&9_c8Yg_gn6F-0!)+cb{|r#>Iq~5?jSKv0dCO-X}gF z?iCM+Pl*S`=f$Jqaq*=1w)n1iO8h`PE&feBE1vh5J^ejbd$K(fJr$mqr^VCm+2Fa` zv)!}XbI9|8=UvY!&j+5iNv`x#vsIcb=alqtsjKEA^B5OI|5M%9I94 zgQX!-mXt4*N|U6?(o`uRl}i;;rBp4=l0s5KN=Zwk7HOHZTv{PfX_d5ES|{Br?UD9N zf0SO6-j+U+K9>^U4Wa-f{v=YP6i`sF5<@IGcI4O!a51h!%O!ws#)^ysBq&8> z?XKtVdEUJB$EOa}SI|&*x>u@PV-;H9+1CO48S6q7kxH2o>?@BIc*a=Ap4A7Xr#+sa zOP0Nz>n^&}JJM-qe!K3b)oZ{EQ$4ZU47+oFMF;bn{x;*N5fiRC zGjc1vxF>aGo46@$%D!=?WJlf;l&Pq;)Ao$L)o1g4x%HaJcXJRYRNsJWx|e@wyRKqY zhm(#D>nhusS(e>5W0=y*lGTik3O%wLZ}U&}?vt~7TXJ8wVLJqK@o%P0_A1Nn-};kf NQ?(64;}w^@z5rz`x|{$2 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/ca.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/ca.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/ca.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/ca.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/ca.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/ca.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/ca.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/ca.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..17f2f3de0f2f6d8823af59f5861b0a0483fdea4b GIT binary patch literal 10881 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 b8FY<;ZndaW_MtJI~BDJ7TW#-9PB3N literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/ca.lproj/Sparkle.strings b/Frameworks/Sparkle/ca.lproj/Sparkle.strings new file mode 100755 index 0000000000000000000000000000000000000000..329426ca35188446ad3a7c5ac7749c1255a31f10 GIT binary patch literal 7138 zcmd6sOK)675QTf4Uoo*jfe6fNi4chrO9Y}2kpRka>=`>3#xrK-jve#I_&eEp;Z=4l zfb;d4a`(*)jzPLkWcfb&_M_@l)v4;9zy402q}yqb9;KPCd%7O#Z=9y7)%#JJtK~Q~ zX{5H1T6WW^u6#dG>r_u;_1RY2ZOwEeZKe11_Gy}={q(C^XSxqMZCiT(O8@lyEWOw1 z%_{W%ywkpwzSPV&dXV%^UXAPXG)xQKce6%QJ)zw~C=8{`M6GB)R2%mbeWlg?2SQ-1 zZ=;M&n~_{mYoXai)tZ50XouCjCYG(W`y*jgyB0L!~3yD9O%m^fBj85pw}YZ%Ca=lr_mqie6f-mRDP0vpuf~J+9S974zny1 zjUP%fB-qmvv%FGYz78`k{rgTMEr^|^)>XF7RmtT0EuRx;6ow}l^Cy4nwGY{T#8z55!vqk*+W z>w==A>@aIp{K}khB40zw!Xm9k@Xka~}M%&}u}=SmT&$q`TvuR^r++ z4Kx$7fdssGls!Foa7Qh{wX6n*p6MD`oo79R(?E7lb76b*W?ja=jspxe+Q2y=XCB{K z$&L@f{a^@7k~^>(k_I~-WNko)S#4cr2h~7uFF(PO^lLA0e4-Zn!r&t28?AS~nv34> z4ss0BFS?s~t=F*-F`CwO9b^2B%-$Dw+|AO%i_Q%-BSzH_xeKqqEHmG%`0|PHBQpLi z$AK+h@d+YfVIReR@_^$byK{7v=*>-=A|3lHn^V4phU)#N^^O5%2= z*eH1uJ|D?Xi9+*9U8Ruif}^(8^RcW%)#W-1UZ66CXUL_j(7+&bIV61i@2#eqamvsR9|kL81K4*nHYv@4d#&@jSW`t})NZ^qk5!FV9p=uWk7 z^p}zx&T#Ia)qHCna<;f0OPI4};(*A|cu%oNkt^yyb9AYJB2RC&*1Da-e(#pGPUKb8 ziEy^}6=XxS44akQK36-vsk5%rN+B1S$C=c8x-VJUoDb(Y?>mQ=4AqU3cOQQ3O2{ zV?PPs|i^ZCfGw5IAVRRZS`n>BxxXX-EC???{skLrwYbzOqF(a5J5 znBHjMOM8&CsONm)aBm9h|t*b zd(U{e75dT!oP%}A*4-V|q{F!nWf4aO+zcOdds~}%kF5Gg5*APJTR(fZ@6&hHO7~Y0 z!j5L7_I}pbzH4VbaUuw!hp~oRpCFsl#Ano;l@vs;5Kk*UqZhIA@?HKY_4n^Yce1Yi_{cL!yXbiDd2bQ^Oz12XwIIo9#F4J{zu1F! OV?8R6O)=CKO#T79qO$h@ literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/cs.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/cs.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/cs.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/cs.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/cs.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..082030262 --- /dev/null +++ b/Frameworks/Sparkle/cs.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 136 94 356 240 0 0 1024 746 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/cs.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/cs.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..ac43a0cee6b83ce628cce69b73b65d5f32350823 GIT binary patch literal 6559 zcmai2349afwm;uDStk2TX4nyP%OXoD=>}z$F0>SAC{0@m6iS*5G>|4SNn1)Oej;$) z5JjFB6&0zVsEA%4UKiXIQBkqtj*9zp_xW6|xNy(Rq=g5*`;uQW+d1EN&j0++`OY_u z@kltC@_LT~0SX)#zz8NVgLT2MKqA-_ZdDR>!|*Q|jzz17rDE~AVX?*)N-&jd5L`b0 zY^7ZZ6{ZE!S1xE=Pu9dIY?gZtqTcobfM!*CQ{gE!$r_y|6R&*4k> z4*nZ{fPcboDEmA7L5##s97HAq$UxXb29d#JC>cXC$@yeDDIqh+OfrYeC4Mp=pVpBD zWC>BoGI9Y)kXF)8I>}mc5!pyKkt@lyOKLRv(N;eA>{ zXV6kwMrV=;EvIwnTv}B#EZP!@yf3)H0Zwp%03x_S0vY;1U+4$@VE_z-K`!&tDh}D#>KHF&qh} z+KXe+D8@6E&?8zL2_%zBQkP!n^Un>3k{IRWBA?$EXjZiI#Xf&pOnq|pkgAS8K)pUd z&)kB~UmM1WBg*`6G!$z~)(#7*^Qi;sW+2VfD{U%W3$M~1=#%w3!~W9@EKQ(=ZL!2k z)G3WcQx$<|V7Zc5fa58vQYcvK^H;@UDHdf{vem4E#aKJLimhQLb~WQ!oJH7XW@I4r zW3(F)&w*UXL&r5|Rg;*3aScLWe@$UaD%KoGg@ZM5WVlioQ4*}TDF)4-+)S( z2UXyQYMiMCyf7c?U;!+IMNp3bmMFjUl~X>&G-4|1R9k{gD@CD4L25H z7{k%!y&S65D+MZ~pP-NaSW6~&xG90Oi#!7yiCvdyw1)yVI%w%E`dwo zG6d;zxB@oe_e$7||5w4)umxk`4+b!+@tA6lCt6lQvi4sw&H|2@E>q3{0*}QiJ*~5%f)`IKkJKQmN#RP zHwYq*j_8Mj8fD9av8bLbH^BBT*bXruYZKs55kv_;x6^BGDf|OKm;7Gk>#zNAn*5pZ^!2h

-7{XR_e{g{@yESu$EQhMGv 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 + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/cs.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/cs.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..208496318c55d5790c7e715b344ad9e55b78548f GIT binary patch literal 10744 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/cs.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/cs.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..5804b89cee1b75ca00956ea6807c208f34b5d313 GIT binary patch literal 1656 zcmchXO;5r=5Qc}Vf5A(`3Aq?CN~|9V9!yM>7(tB33ME#c5I&WE%h3aWL49V?^dn{A zM4EPYr!%wf`_Als|Hz>f#gVGi&=IKj_r63iv?n_TRtbsHcyF8!#ZQ(V;ugmDM za`=X33>ZiFuY4VH46thkAG<>y%|4bl){eBz9upa|I$-VcUYOm+hZ=a;ZZ%++rxj1=31RV z=8R3_Kjq&mcCG6KTga$Y4A}V`=6jYtxlL94DOU09n%W|g`j_Q2p}#FM(kkwys%ZCR zbI;;eN2w1YZeZ`DlXiDO9?je**T^VYMWIzsyK6ev7LjCmB;^E4TV%xY0R(fjUvNS@ z=2Uh-I%U@S>jQU->girR(<{pJ-f+7!iuv?ZcKz%zNp7Xo39`q=*yUb8HGpFeOxlln zJ2}QOmsW0H-nZ(`8ro9mEjMyP@j%+@G_LwBIlN2x8ZV{(S#!ch@_v0^VP#6mU literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/cs.lproj/Sparkle.strings b/Frameworks/Sparkle/cs.lproj/Sparkle.strings new file mode 100755 index 0000000000000000000000000000000000000000..232852ca0d7b3cd1a44dedab849fafb45eebe247 GIT binary patch literal 6978 zcmeI1%Z?jG6o$*&NIXF{oe_`_MH2!`gu*Cf5h5i~BtT);u{{&d*xi=x9y4C#UFQMj z6(Ijtr)#R(HenDcn+3A$?yj!Ox&G(kKmK$N-F;WM7p~TCU%wN5hOTl8Jx|?CBj;}9 z1{xb^soZi4)pxJzRY~&KJUz4 z`MKY8Mi1O~+V@rlI)Ct|@%zq|Zm#QF&rhX0c$-TGr8pUD6y8gXab4;yqc*<~|3keS zc*!ih92>12>OJ!L-Ai(zHOLiNaH8!!)4RF5qvv0>uF;8il(HnO=J0PcbE-M4JJWuRyVRP>U1@}KPW3C_>)m#zz0!{k^vubP z{Ib&QK*6d#X;%_5tJ}tJ;qF~qFFu8Y%;LZD7;zIThs&k-8|#W!;fqN7X0~n;twe=M za#Lpadj2NVa3rV4LO#2gA^l{EVR;WZz>)@n!e}2Z27J~W1vy|ps$s+ z?k+r19r>|{QZtW7mF5x?4DrGIQeSqMOHSx;qLCBr_E=BPd{jWA3-`d!wONLIGmXr3 z8n!;vI`$fP&Nzk9nWq(+3hiW9_!*0ruFrvg|4Z#=Qp;nxN78`dX27dxogq88X_UH? z;OVE{cfZ`Dp>2qoa{QAl+^o491$>-XiwB0ftj@(35f8)x{qVzDI1ytfxIOTZG~hxv zqXI1rYsej6$#cn}ENjBQ$uhwU;wdK)Q$YiA&6w>R`FH!GVtR5pbH&vsJ}>Y4oH=B+sf3WURh#4hr6{s`Fzo@n1YK0igsOx{Y858k zjFBoA&_JL`6mt_U{2)fY0#9NBiegHRqc zKJFkQ9f*-E8@s}Wk#N!0&v6Z$jQqMh==VaWMhmc~JSV+$&y$nvDbGniOR6y|ekuuD z-IB&5u=m1yXhgAlo0dhtjLM&Vg?j2h61nN9&^ep*YCjVA z$6gD?^3SfN!~YXJSH5dG6@?Rh`)!|@PW6@OK9l9sGqC>*h_!hvhYssJvEJ~U>ooF# hyOIDhBRYrwQUVsF{{M?Bl>;#| + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/cy.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/cy.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..b619eb4ab4539674743cea9361ae86faa9c1ca4f GIT binary patch literal 6380 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 lNd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/cy.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/cy.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/cy.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/cy.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/cy.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/cy.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/cy.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/cy.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..81c59b757587358bbabd4343563376b80d4c474a GIT binary patch literal 10691 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/da.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/da.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/da.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/da.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/da.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..5a7568096 --- /dev/null +++ b/Frameworks/Sparkle/da.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/da.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/da.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..d371ff21d9e947292a6e7105b8e82eb4eeef951e GIT binary patch literal 6438 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/da.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/da.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/da.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/da.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/da.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/da.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/da.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/da.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..d51f9ad2ebf9b29b4a30b33089cf12a4b7c07851 GIT binary patch literal 10841 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 Sk78Ob{@9o5Ps^8o&i?=mOX zk)1>4l>OOW!xj?qthI91vnY>{e8QB`Z5Y!zx zk(R~PM5mh6caEkGnsY{7u1ku?GUkt~_YX>HE;N&Q=2CfQb!1hZT6Kr`jco?vwfrRZ zG+j@Kcnag1r#@~AneMNhv^keP4_EiL96P%EJadiQU6~e}_?5Z!;QWO$Hz*KLd0Np8 zd9vRDdZv77m&EMRI__+#R-cE<@IcxQL!W2Pun)2^7(XpCMWsCzt#BpaDswCLwMLrS zOe@QKEF*WT4oy6~w)?ouT7{nR$IH1r%5n{tM$773>rw9vWg9UPMm5VWH6K!uMta;e zq1EZxdZ$==$8E0BYQG}eLnn{b{yF15C^Vl-P!26S&PYn^ua e8c~@GvZ(49sqRI;kIV6>z|a>hXIGBk>BWDv$r(5R literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/da.lproj/Sparkle.strings b/Frameworks/Sparkle/da.lproj/Sparkle.strings new file mode 100755 index 0000000000000000000000000000000000000000..f9790999d6ef3d7a8a152bd78a56e0ee18abbcb5 GIT binary patch literal 6944 zcmdUzU2hvz5Qfinf5kSU0xA@~E)gnG6GVxWRvp;dHSGp_7|=3 zz4VoKe$a!Y--K*@zDjjk>iaY_n(7zYErmiYT_zeu`&wgsU+XQSo?i)pk=_jhn^hpW z*4mNYgV3*m#0r2wBnNO8?k)TR-+@d?w3QVRQ7mjI+>!^$R_n>o-VE)0@zNH|K#2 z>xP=q)XgV9N?&dy`8klw^Vln+3=-@$)eh*>zs<*?$3W*T!h-nxWMjiu8(Bs|7kxnn zZHIfB!f*;yyk;43C~l&zW{08peVCyLdW2M9g#{hm7`8BqT1f zcUs1_hi*%QKG+L?*oCKZevY?UoLX?5>&-%(f*%*JG*evb4Y(n%M^@qso@%lBJiKV2 z-(Z9{f2bYMY^-%7aSLk}vL(!P5MzavV1cRrU=U&+j)&#z%?`_8e%P)KkA0%?XE6gC zuF@wl*R#xYSYfHt?EA0d{V+7+6h;>zD>7Bu$=~QRkuL41%WTd}*faB|85@sc73|Cm z`v|gQQDg!)`)z*bEO;I=I6JNam*ez@#=KA093(|<_?O*5mlIC)opZ`aTvw$d&C7me zn{7*eruZi}uoL(#r8lRWtKkpxf|;s`B`dHkn&T^7h?4cmffsR#5$%Uf4s;IL ziI303EhXc^?rjhoI1;u6`X*z;TWo*` z3p(ST>H9*fs$evt%dC-W5~8%oz#7Z3Q0!f46`t0PJZE-fK}tLwhUhOlAB5g_BW!G3 z-+?qWV8(kb9vN;>b4_S=g}ZZZ*fsXU$W&BgCC501XANny&%hFB(x9*ld?pu;(ttDb)8=3iI@vK8e8Fvf@u!%Ks`KZL^B&k4bQ0z9(am++m=$qRQna zTzLB^W^~28V-JK}N3k0Ah6(arw7;zOROfR4rj9Jqej6Fi-Zt#5c6b_oI#6tuI=G28 zNc(n5B}f#nl-uU54nfx*T_`&n!b#-mvR{9<^FzsgEo}4MFGp=t!+kMiJG-~nSn4i) z^2&ayx})gxY;*iwlE09Bd_QqzR5EeSZB!7{Cd1IVzbfLH&ar*n)yjRYAHv5=zo~e8 zd&Teav)nn_?&FM z%)aay{n+>J?w#+~wma155`Yvu_zQN?ZI0rr5 zqs)3xYq&$@DzRk$yUqloW{p)#H?(s{sHtZ^9`jOXEgK&Dz2xaDAG{R$YxOZ + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/de.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..0808fc651a9f9b3c54a3643bf6a87ee6da80c783 GIT binary patch literal 6406 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/de.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/de.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/de.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/de.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/de.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/de.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/de.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/de.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..aeec008765ab49756bc2a8d825d4f4f48561060a GIT binary patch literal 10689 zcmai430#y_*T2gQ%nA=P!)y#Q&*Pp8vAL2KXr_f|f;)%um)?f0ef&K+zn^oY&--P;2Uruz7dbb3>jF;dRyc93P%kc`l60bs!;5GO;ycR!? z!gw8i8NY&G!&~qh_#ON{-i<%SC-6!9CH@+Jhkw97;h*uZ_)nrCT4E+iB$)^#m1K}B zNhZl6x#Svh9T`DJlQCo*DJ5k@Ce@^d%qF)GM&^*)$sOcQ@-OlLd6+yx9w$$cXUKB0 zf~+Sml8t0Dd5yeI-X%N8Uh)CiM?NI2+xB7 z6OGUYI-5R5U!kwkO>{GTjc%b^>Fe|j`X+sgzD>8$chFaKJAIe#p#P>j>3eh+eV^_o zF}jEDr61D$^w792p@v}aQ^A7FCG3v z4TnMi*>FS!?a-h<8kM7J>&ZpMqXSh@0CIFnQE`#KPFAkVii+dS_?t_I*=i>vaVt^;{J7p@h7u>~HpibtvNd6824v&C@v%--X z&}Vo!6dUCa`D^6JBp6Sg9fOABi;BmF!!h;|`PeQtd~p0G>n!Nj~iDH&MW5!p}Yy;cM-eB9=`|Jaje+Z376VOC72~7qGrl3qzhNhx&G!6Mt1t@fw9E}A+ z{uo#Y6biN&3VqA0AOnOkzK9IX$Bs^kb5rnsSA zj?4_mvp^I@i!j%1aYcCkXhhHjp$}*T-;E>CyBDV7-G+{M^$a#g05MCn$fN3HpI{zG?$rK z5=&+ROJNq42#%3oUmujkF~f$7_5Nr~t_b@hRbmVTC>OGdc_sJAH^C#{M%&Ok zirYxwHaeEcI+Y8KrlzdSe!az<+$;{2+}xbrVpe~Sl^y8cXeXfMy*O5Oq4&{lvm9Ok#Iw(YG^nZ=8jzgj;>sT&cMm*!;u(7p*HP->R5Nyn{{EGnaHlR zXgETIYY-ZyC(vi;bMysFa1woqzCx$a*8sUTp_RXU z8V+N=km7oOrOf39suv8`C^+rOt`HJf57ujZaU%qUx>A59hlJAMBlI1NZ%5ywGs?&l zY6CI(hRlq9>d!zVP}WP8?MHN?1?0)=DAZ5rXH_Vc!TRty0ORrD+ZEb2#qWHIf=tvl z-k<3FGISpO#SyN=THa%LKn_+ZIOlnnM}K~!2!Ig==7%xqfb{k*+%4K~K!`Z9V}V#u z=Fca!U+ss)GZ9ui1t;J{tV5ZsFPp)Fj2uMJU>A0y4A3)A50IM_*BTR%tL2Cs0^L2J;Ul7(*~4rhd>)CX1Kb&vEWuXj z49OIlm7IdFN1U{KdgZpzK+4|yXqtGOdQPvW9DJbSXMRe0Lt@VqDjs0b^@CChOM9v6?K6Xc4a z!9YD<9M356OSS0)JaH+Wh$ks@D^8B`BN2Zi&ocb4+H49gU4ct+8J?<+SuQwX)M1Sw ze_fzbRab#O66I4sRNxbaBeMGZA3EhX>WI^@e;M|xqm@Dj#kT5e;BvSUUGqGy!ZNPL zHMkZB@N_%_2XP$^;V`ae*Rc_7B)gv7zzW$YR>VfLG3-V*mKAgU5KreLN=6l4nwpdA z8!8~XWi&*BeL#B1cs&(*Fg8$GD{>bT0qc-wIhVK$Rj}~X909U+feK8%Fk-oo21^+? zwlF#&5UVZWUi%Nu;E2b!OU05@3Ie^wcn>a6m;V<(}T|~+7VVAy3ZEEV1)mzL| z5=02}`i8iMbDW_RKT@zVf_j2Te6 zJcsAuyWo2_eEH`-d_R5w&tny=624XN?M9A1bY!Vlv|@T2%K{5XCBKZ&2h zi`WDQd)o8>n^#RA+3cw7+1NmW~q3IKU)sN;gGg2bPvXnp42=VX2joM`c-q?aSLWlqvF3b~EU%rYrEytViX4RD^Kojo86T8MQAc;lf zpzM#zMPVSX7XrXm{Q6S-x=O%o3e_6j0R95(C0<##XE>CJ-@Z9uYSvql!W48g)X zVE1Gveh=?b2v!&fmdIwYdLW0KU~y8F&EcQbAHr)+c60MFya(@9`4#>E@53Jg$Xn5a z_#?Cs@5cw=a|myPU75r92>t{g1;(`pA6L>lsQ22N8Um1+!DAFIoF9zI5vcKG#auue z3mRgva7f85*#O?6;xTe05UvVTjs!9vfu4|YIYkX&)9eqSOE^#v<^! ziG>80^>6r@H}{&q*-T+4>uk{>gu;RiNP(=BeE}exA=v6TiYnqy>fw0+p4Gs8r~}=@ zpP|F}3l;@Rr?HiGBy_F#D_{<-_!MNTjHnXzSc7Wx)A*aE_#6Cfobt3))k+&)tST33 z)9>+_<@gN#kIIk$UFym?A1VX3bKy>H{v$rS9G`9DMlhDz02Cda5vVVz4MgMB@gTMR zfAKF%@h=^DJXe>(3onDC-vLMG07ndP)O0x<{f)u|%x@?Awkb z9!CEk9FYW$BcjLWF2)hNO)=!HtclHJox?&hDu#OfB#J4f5@8!tHC0Ht58aqHH6qu+ z9>FNN5KtBw)WI`|1?z|nR`eopzq!YVoj8b-xQLsi5f4cxUgAS`A`*#oLgl10=|Z}a zZlpWufr6wb=|y^zK1wB_MlYr69OaMBP#~#3;|v4h3t#|(7!O_mUiFQV-`ek#y&f>H z`fe<2j;TyamP7o8_xI1{{oC8{SOAYFlqjA8{Ek0RhEedZFajP6om9eC9A=EwvYi}!EGcDd&yujgc+c6nh%x> zvHO6lP zPbu5(W&eVyubct9)*)re2<&yoJsJTj;w2opk(Y3!q*H!oyjC-(Urxk{ajZ{KM7&=Q zKz~31dTwrZJJ7Q-|9_xQReCNoei3F2H*2f7dOeJs2dJw$FI5fUXaC|FX^8N%6lK{x`NSn4JWoEIo4ggu}D zud;Xr%vl$YE!)zwis#uY-K=4(v3DBgZbfv^y!B+CjHY*UTtW~wMg=}phTjM-RO;bv9b*uJrntBU7 zZX4Q0wkw)i4cWy2abeAcxBw}pJuYMq_+Pex$ZF8k5DpcxM~Mr|KtHQsI|p6ERiXlP zARnh=6oe{3K^|v8*#qEm0MB2O<821^g+S?U%E`#h%pQ;}_sSUnZhzqhURwUKeXj&( zRSo;effjOrs{!@}=m{NHrwXIK5T8E3amRwjMl=@$k>it zQ+)&Z?UGmVx`up1z9VOrkZ;**OUU}|FUR<^j6Vo*ewQbn)DwGg|ilmH4lGkW%xqI;^P2}@}LP2}2l78S#8O(b4YMB_9F z&RQU5Ubrb2Is*aa+oj5%Xh!k4f0Qh$m~b-jf4#npxu}VnQ8`Vb$;v_q`!{=+?O;3k zQpyEyn~@;=gO%E6RA+;YCi~@I#O*{=sRQgp?QGW)>SXV+Ef=W~Wl|4KhxxrQ`w&q5 zUbdUkuC!I{D;HWz%o9~gF_!W!-a#?Y$TE)P#?;TtdNh=XB7 zK8kXH69f?1uoq5~_~x=65y9cD+^C+sLY#*VX3*$LLl zbEs0}WCOUkHkA#}f81mNhE(&4%7LHQBVGrJAzlbx0s2=#Ew&-Hl%KP7kBXybh2#j& z*=^%yWwpLpkk7TMgxEIf{lu}M&M9yEFA9@#t-|r z#;?QM;Gk~{ssMgBfD8ev-T+5?_rWn=6X}=*w_Fz zoe!4o%Wmej<&r$E%ub)6PtvF8BKkCahCWLd*G*q7`pc8Yz?PP1>=x9mIEOZlFiVgF%2uxj=rJIj7zKePX`U)Zng zH}*UGgPmi4vh(aO)+z*qLSd9(7bXc>VT4d7lnXV&wL-Qa3X(8c&Ag`F9N89v z8pi`MttRzkCV3nFec(S7Ltt>yZnS`o24Dr~EP5w>2o}5)U4DzuX#oDq2?pa0nH)JVa+F+W13GjpJ~3(e5pC5Ij#9t^S#!fb!t0ldum5& zi?yZNsoH7U3T>6PT3f4~u6;neMEksUqxMbhPVEQUPqbfYzt(=E{Z9M6_6O}*?a$g@ zw7(|k608ZS362C;LRvzXgsg;|guV&=69y*aB@9luI$=t}0}1OB_9T3nh!b6jgAxl8 zuTLD8I4!X@F_t(d@%F?!6Xzw)PrNU2VdAriFC?x{d?|55;?~4{iH8$UB>tpJ)CoG5 zuB$Fvm!})98>=hTRqDdJ`MUdci*>7Y>vcPIhjc&de$oA=`$PAq?k_#kr|W%sN#9xD zMc-Y2g}#^mT79+tX8k<<0{t`k#rhWgGW`nuD*YP$I{gOyM*R-`9{qm(G5zQIllrgp zr}gIz2?nFVV(4zT(vW8uVHj_iXqap$HB2>3Gt?MjhB=124UZTeGdy8vF|0IfHN0VX z%dpL`-Ehco(s0Uf+Hlrz&S*Bejh&5|#;c4YjittF<1AyNvB}tMyv?}Y_=a(p@l)ez z<4?x_8hcALAH zGt8OhY;&%;pLw7;&pg~b#aw1CH~Y<%=3C5nnirTCnOB68Z>N3Ryyq&{ya$3>5N&!NQF~wa_d)DZC>bOEIQ&PRUCtNx41cj+BKd52rku z@_5PhUS*BRZEaeuzm=(GYnip&>bF)}WoyVqhIV z*3H(f*7vNf)}z+r)>GCqHe}P=EVgu8Pul=nzOB$U&Q@!?$u`@zz_!G;)VAEV(ze>R z!?x45%eLFL$F|SbYTIx7KDAS7m(*^lJyLt7_D;=6%}l*9wK%mRHJaLxIxDp?wJCLd z>h{!wsV7p;r2c8w+wFGI-pAhGKGZ(RKE+;UFSq;cm3G-)V-MIv_Ii879_~A~9jOkx!|8B4avkFw6C9Hq zQygWEa);kB+i|z!e#ZjGLdPSHmmC`$uQ)b2HaoUBUUwXH8l7fmvNOeLb*4HUPM5Qr zvxl?HIo)}SbG~z-bFp)cbFK3Q=X&Q$&JE62oSU4Rom-r*J9jwWbH4A~<2>j*?EJ)e z%=xqPyi4Qqy1KdwT*F+$T_arAy9!-pu5y>(Rq2}Ty4iJ$>sA+YJ?dKOTH#vd+UR=6 z^{#8L>yYc1>krqTuD{&Kjos9(b$i{#?s4u3?n&+`?lO0UyUJbdp5b2Ye$Bnr{f7H( z_b&HA_s8xd?l0WmxqnPcOzV=?Ev-jd&$M1?8EKhm*=dDob!p+Wo6@3b4QaE|8q;n~ zdnE1ov`uLT(!NRiDeX6p(PQ&;^>p`K;pye+D%ogPk~nf_q&Ax|ykNO_>J?UHI zd&ale*Wz2|Tj5*fTjN{n+vwZv+w0rsYxV8-9rS(dJK{U)JMKH-``mZZcgA;4)QR22 zf#PtnM4T$tiZ_W7F(x*Pw~9=>Tih=05O<2Z#NFavai7>K?iUY=AB#uCqvCP#g!s95 zQv6E%TKq=*PCO(2Af6R}7Jm_c6aNtZ6#tSEr2=V~G+Y`XT`v_%Mba2)tW+Y6mnKS+ zrBZ3CG)=0Is-$YER+=sarI1uFMWmQCQ<^Q^EZrjADluuUbcZxgnlIfW-7DQMEsz#U z4@-|qk4sNVi==0y#Zrs3Oj;qWlGaFTrH#@n(kAI`X`8fN+9U0i_DP4OKLqM$ O{zH$bf7^ab-~SJC{z0n% literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/de.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/de.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..b061aed93f480f82cba0035d924c962a57a8fce9 GIT binary patch literal 1648 zcmcgsO;5r=5PfHU#fB4dF=CWhKN3weF;NZ{^;{KXBNS3-(EsPp@aXSQ-^|vO1>AZf zO}or6Gdu6S+5P&)HkvT#AjTPT%=nCv($m1H+GC86&};F?b;#$9|2{El&bT4hgqGnq z)zxyHGTy}+)|k*Q6?*g=){*Kn3}_qlb&nhwtu5LS-y_{^#@apFo9^O-9W;o_vg-&3 zXlY+f@>D~8dy)t_VamkE!I1O%kqd#Uel;I=VLEA$V$}ADRt4hBrI=!QRXd~4}s;y{zt!S=@ z%gw=hb;3D5n%2_k2owtl{*Hf!Hzr^VGWAK58qQgmn*Xg*5_Fma=H>})6F%k92)||>^s$umR3+MPK S_m(h*b}R9%?hv}63Y0(Y_!RH} literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/de.lproj/Sparkle.strings b/Frameworks/Sparkle/de.lproj/Sparkle.strings new file mode 100755 index 0000000000000000000000000000000000000000..92064db7fc6d197903e946d8deb2042e4803dc35 GIT binary patch literal 6938 zcmds+TW=dh6vyYepJIuqS}Ig-j|dgF1gRj>iU<(AZQ@IoI(D>P*Dary&(Nm|`2WuF zWM*xXq)jJW6xo}Z**SAA|2a4R@n`rb+zVAW2y=ZO>-$uHqc97d#%H0`%=6HMq2`8~ zISMcJ&H6;MGyONxJNGqrPn2$jy>MHjkHa*K!!ym!^{jexdm4YC4{v@F-tWErT<_29 z{ZD%7kZ1Q_UiOtvQ}6tupKHSJJ^qYeUmc zCn>71)ZUSv=;(!Mv(p}Qi#|BfX}4Nig!eT5N&A+f3H_J$f2C0)J+jBCa?VsIEk*ZO zJVSpjZXQUVeZ9J5=#l?c+R=(Kl=^Ztnu7;ycqm#f)$Q=vdgrfN@4|2TxGYOOCz?y# zv(5?7;e?rSQ{G~YcmT6VhF-wzbZvnXjh$ckg4aqohQo#Aca+tdsWn2MNBSN~2N!FR z6QMNJu1Fs{cQ$hR=U6u+U$`u6u)(xJ2tn<};mkGOFdf&m=)3 zz0_LseRu2(v;sDdZBHvC;C%)*mpqSaVy1WT_3p{><+VOgSeSpuqt)gQ9%%ltd3zAh zg%9mrf6KjDtC@vP^ZRmY>qG751jj>byw1f*B})E8o~dN%-_7W;(G~s?8pwTUI6%5a zSOG0A>51uJV%D8V-cq-4ARgdkrKjUL*(}Dw$opl{1}>vd-#?cS>Pvk#Jqzc>=y^4d z|IcdytMBqp*OT0_6!o9`DiI{ z9z0w0oY%3+z$|t#Hr@q)|5e+pggmk^e46LV!~vpHv`~s_t>LLL-&)!x*Wv5`U<>y< z$p%z4+gV?<&3J9Yo3zT?bNKJI&!#u>2st%B94k!s7G9lCY=zu#J8D+phn{bvYNbZ= zs@1b3s!y-zh$)`$mWz{*bOx0xIbF(b29~SEOpRz!DpowQ{P@^%*O+1E8b=qNMR{zd zGG;xmuRY3=zaDCpI**7qGoM98p6eWX3sIm}M=t1;ssFwb-z%LE>#=xmbLs9YhUfXh zKzcwvau70t*bCT|UH*M_6seYxYu~yjn-Sq%Nrg>1*_U`j9YL1kIw~X0W1Wz)J~A!u zCw*@>BK39B-RSRd3&AIOi|_TUEAJ<B|c@va@+N7T(ZKPSoDhIkd zN#h5y1$>m!;FIuecAAgM$OWom%<%p|U%z?8_(gcar)}ETD`@Z*t7$5LauFi;o>kbF zclC-Y=e1w0z*k=N?8Y0nrDWxw_(sRn6?AzMs&;ebH#x7|OQG)Ko}PE49U~sA-X=zF zcYtCan=TX>LO0;2(Kz<4yknK0O64_M$0hIRjtvFiGv=GSJ6x4@*x8%Mx!wIiI#kqs zQ6H7){fmtygl#0v&&0X#BU1V0Un;3)MR+I z#_^Y#*G8X+by>E74$63zpC!v8L-#l0u-sYvE^C!wM#bR@zJ{( W*m`7I^?2#O3Pg*L$MN>LU;7K07K@?) literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2f65f2f49 --- /dev/null +++ b/Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBOpenObjects + + 5 + + IBSystem Version + 8H14 + + diff --git a/Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..c4201cf26aa4490d0092bd8c36f61259550aa224 GIT binary patch literal 6571 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 Zr5sj{Vqu9tM%(ey&U1`&=fCpCKLLTjt6~5E literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.strings b/Frameworks/Sparkle/en.lproj/SUAutomaticUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..15e62ba81404428593ab3abcf37041df4633ac0b GIT binary patch literal 1040 zcmcgr%MOAt5S%k#(RflX#)F#pO7v_v=)p4qj3x+%M~pwO4hsnup~eeoN}1j5ba$tH zzA(ZN3N{Wn;(`z!BHU@|W5Dm6bBUCm6ajqVwfG`hJfew24as7m$Dy#|%>Nd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/en.lproj/SUStatus.strings b/Frameworks/Sparkle/en.lproj/SUStatus.strings new file mode 100755 index 0000000000000000000000000000000000000000..ad32ad706739441536625ae21b96df602ad85d73 GIT binary patch literal 96 zcmezOpFy8Ni$Q_Gk0F>LoFS7Tk0FI2pP?KmqQRgEB&~qhhM@!~Q^JtLkP776f#vdn dA}K(gDOi;j&=f8PB_LE_umxfe%Ni)c1ppVi4MYF{ literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/en.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/en.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/en.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/en.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/en.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/en.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/en.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/en.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..be3dbd9069137fd7dfa8bbde36f0a264de1c690c GIT binary patch literal 10634 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

( zpR+I6QFe@d%YI-#vE%Fn`;GmkWy#}`FHf#djwjDczAkw|^1|dr$%~WkNPaN+vE)t3k0(Ewye)Zm@}cBUlYcQK znWll7T9jH-Dg{C+hlv%_PXs| z+dd!Ssln74sST--)GJeCsZFV~Qs<;Lr_N2iHub*L z$5KB`{VDZinkTI=Z9-Zs?bfulX-}rTnD%6 zl4L?Bvr4H_N2!z4S?VfvmwHI~QlZpS>Miw^ilzS27^zm8E8Qc#A{|aoNpGKCoL-TB zUHbLucckB$epmY4>C4kw($}ZInEp=sf%Fg3kEI_^KV>)CQ|*eqi#^{y)IP~R#Xikm zX%E=1v2*);`}Ot(_C@xa?EkT^v43Fy&i;=h)zRLO?-=Nq zqK>#@j$^Uo0mlkQi(`%BamQB2YmPS@yB!A|#~jBUCo_^V92rVRmyDhn12V>BOwI^o z%*nVZ<3Aa|9mO?6eeu6AAH;;#9w>s$+5 zH@H@~4!91w4!J&b9d>=<`pk92b=-Br-PzsCJ=9&{p6(90XS!#*uX11QzQ)bn^WE3G z7r1Y5-{`)>z0|$Tz1-d6UgKWtUhjU%{ib`j`y2Pqo>Y(Iv3oK+PLJEu+0)h2-P6M} z$TQe8)N`3XU)u-m-Rr_6It7`Ue4N|bvWyXte>)uXPwCU zHS1KiFZ;smF4^6(bF=fZ3$lx{du5N!o|N5?eO30{>}#{&n&WAaF`7(X&d>wtAd|iCqe7U~izLCCBzA?UX-#Fg{U!!lnZ;5ZIZ<%ko z?_S?p-zMKq-!9)C-#*^~-$CCY--o`#zE6Cg`HuL$^d0pb^L^_(;rqi+{eHjVZ}0Eu z@8s|7@9OXF@8Qq)7y5hpd;9zPi~armgZ#XpM0v-o2l=)bMs%2WRb8qh0> literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/en.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/en.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..c14506f58f3c6027bdd859f4ed3862af54c61eba GIT binary patch literal 1630 zcmc(fO-sW-5Qg7#e?{mi_99la7(YM{f}kEut>>aC2HT{hE!97-KD!puUChQ)B_zAE znc10VXJ$XYw6C5b-7D3VR$B6uDp-kiY2{Kgjakk0%sA!w;O`4sYxJg!W2A_0VaJ?t zf&Pzf#2$0j%?=ss5&M|kmwH8xG_gKbs*v`O6W%lHZOPsl@~)$}Ac7dGoTw9>sBh!y zaZVj|cOFfbXwG^6!}BS`oj`ruc$t3O%JlEK3|YA6KG3mq?jg(ijKW$z&yf0hr`E2? zbw;(BDvtGF=NT2dU}id_+|+K;P@y3Um+C+Rhbm-QQ-!sBD!+@3^~`pi;k&a;x0`;f z0z}O=E>qv@kgz|Os@X?ZZCt6|pqj%p9bv=gE4isb}jh%C|I ziZ=HcZIv9N{1xM-n3MC*^*ceS0E!%AvvQpQR+?hoE@bBXC8T)=H0!9^&WPjgclUa+ z>b7?n-wF!of~Q~#jS_2~g26(o*Qy8VbB2d|OK>u1{S~xSqA%^^77uMBg(cBy+V^NC z&WgK2%B*kIz7u)!+lqO%h?H6WQ)P=L)}ET-SvIA_#d@qsKv3|4m4mqy3C+1UTEsI4g-GO z_PqPuJvFq7SvT47y18QQlKzn1kr5*JS$^D+OFLO=&k5Oold;(9iyJT885}w!Y<|dJJ9E8mjojrJ^JD{{@9)XR0hVFtYYU^)x_2Y9|Jht|c6oyH%Nsc3OYd#!wXs%aRNK`E z+QqpcLPXl`qW<>H_Ao@(&pkN9t3}?A+z@ zbuu>}5l7-PU~G0_*(;aNx=>5@c_nYt%}4A);wE-cmw4TXI1-=3mOXw}inG!u`53HZ zr8q0mKI-{R;_59aWbGz><4F0X7TKP{r`X*ilx|(0*it!LWd7G%h?l6|9!Hw>c{j^U zTZV{n=w_Z~Ih*71*~}=>r*o&wJ{2gt9F%3B!c}=A8N&Zt2A(&*o@$i&9~Yyo&Q>Lw wY3JC`WBiMIk7Grbu#76OVONf|8viqLq%oq!gYN$!?j9SS@JsOT{k + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/es.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..b619eb4ab4539674743cea9361ae86faa9c1ca4f GIT binary patch literal 6380 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 lNd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/es.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/es.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/es.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/es.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/es.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/es.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/es.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/es.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..236c082b7b7ab556173032f83295d118589b9af1 GIT binary patch literal 10634 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 CH7pna literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/es.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/es.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..c14506f58f3c6027bdd859f4ed3862af54c61eba GIT binary patch literal 1630 zcmc(fO-sW-5Qg7#e?{mi_99la7(YM{f}kEut>>aC2HT{hE!97-KD!puUChQ)B_zAE znc10VXJ$XYw6C5b-7D3VR$B6uDp-kiY2{Kgjakk0%sA!w;O`4sYxJg!W2A_0VaJ?t zf&Pzf#2$0j%?=ss5&M|kmwH8xG_gKbs*v`O6W%lHZOPsl@~)$}Ac7dGoTw9>sBh!y zaZVj|cOFfbXwG^6!}BS`oj`ruc$t3O%JlEK3|YA6KG3mq?jg(ijKW$z&yf0hr`E2? zbw;(BDvtGF=NT2dU}id_+|+K;P@y3Um+C+Rhbm-QQ-!sBD!+@3^~`pi;k&a;x0`;f z0z}O=E>qv@kgz|Os@X?ZZCt6|pqj%p9bv=gE4isb}jh%C|I ziZ=HcZIv9N{1xM-n3MC*^*ceS0E!%AvvQpQR+?hoE@bBXC8T)=H0!9^&WPjgclUa+ z>b7?n-wF!of~Q~#jS_2~g26(o*Qy8VbB2d|OK>u1{S~xSqA%^^77uMBg(cBy+V^NC z&WgK2%B*kIz7u)!+lqO%h?H6WQ)P=L)}ET-SvIA_#d@qsKv3|4m4mqy3C+1UTEsI4g-GO z_PqPuJvFq7SvT47y18QQlKzn1kr5*JS$^D+OFLO=&k5Oold;(9iyJT885}w!Y<|dJJ9E8mjojrJ^JD{{@9)XR0hVFtYYU^)x_2Y9|Jht|c6oyH%Nsc3OYd#!wXs%aRNK`E z+QqpcLPXl`qW<>H_Ao@(&pkN9t3}?A+z@ zbuu>}5l7-PU~G0_*(;aNx=>5@c_nYt%}4A);wE-cmw4TXI1-=3mOXw}inG!u`53HZ zr8q0mKI-{R;_59aWbGz><4F0X7TKP{r`X*ilx|(0*it!LWd7G%h?l6|9!Hw>c{j^U zTZV{n=w_Z~Ih*71*~}=>r*o&wJ{2gt9F%3B!c}=A8N&Zt2A(&*o@$i&9~Yyo&Q>Lw wY3JC`WBiMIk7Grbu#76OVONf|8viqLq%oq!gYN$!?j9SS@JsOT{k>JvUjc}EOaK4? literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/fi.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/fi.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/fi.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/fi.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/fi.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..5a7568096 --- /dev/null +++ b/Frameworks/Sparkle/fi.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/fi.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/fi.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..e7f61432a3597b14a71c5330fd8fe062a3084efc GIT binary patch literal 6583 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 + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/fi.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/fi.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..ac21bcba231d538f843fbb6d8ac9616452fc6320 GIT binary patch literal 10787 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/fi.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/fi.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..efe935834b56666684ec1896b9cad1ae68c8db7c GIT binary patch literal 1648 zcmchY&rZTX5XR@sQ*1b)7b8ZA_$R@G(L^*6)H6|tMM?=Rpzqsf@TmS~TP>|+dm~NR zo$b!-_susue0|HF?23_F>B)sGB;pBV%1T2z)(*s%0jr)oGfsFu`1-=G75gTP11!Vu z)Q%ow$o^!nA;ye#jWA^05J#g&@``O_WY1X09BT)=&3kH3i-@YRx1D?~*q{oj3a}O7}+C0V`qZry3`k zswS$dMpDH*PC0>P%~2EA1$7_R)GgP~<&n>IOOA56c6nxb=~(>bnFvc5^RWuO)h2~ivlx8Us_BV7@sbo2lhKzaJq@2Bkzeu}u7U5^U)s6!)tJT;z? zN6Re4(r#8>nbm$pmIpZsg}wAhxVl3j`VjAe*kvU7XSbN literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/fi.lproj/Sparkle.strings b/Frameworks/Sparkle/fi.lproj/Sparkle.strings new file mode 100755 index 0000000000000000000000000000000000000000..c52cf30ced86e6628aef76744f03c40f73c271e2 GIT binary patch literal 6954 zcmd^^-EJF4429=9Pq8*yBn=9uKbJ+38mWP%1`;DpQuuOX$+jX{5+tovy|133mu=2R zYO*sc!%=FCFH#7Wc4ucf!$b0rL;v${coH6mD!d32eV^(3N}qlhhlTE^VWyGmFbF-3 z^)&J>tn|(E3yqF-)z_Q@jXjp62Vp;at-J5SD4d6(Mko5Mvax;L|Exb|ejmQdWk8fG!l0HWBaNbatucO=ddjHJucUup&w7T; z!ftqqp!%w-1_uLwR383nB#^un3Vd+SvY5_ipv2uCQ?>oWN%;?V}w)4iBp3Z}`^1 zPWD4zq_`ch0NzP#f`Ho*X-LmkMgD!^;vR{&b+xR*qmQ0Vyn%~H!#BnsyF@@w7%qjt zNWVlJaSFzt69;4SX?*!63?FSUCKe;AsXzN(x4o9RJ^f)5j}zYVwMzRXsNijm19-If zPW5DFQ9U=!+y|XcmU;qyEyFDICU>=%e=7Y4@^f@@-+gFn^mK>cpJ{xetChv^p^dfN zHIuh`43jB550D8!2MKeX~Md zS>Pq#Qzc344J2TQX%=J0#xU^OTAZ>rOT#hF%zf>O{Sr(3ItMq}FVV;Tx4CGjaq0gF*NPTzt{)Pgu&O+6J~T=;77O> zOW?t4&BVr0Q?APK!J*bAzby6J<-J%5?3!=)5>|Y(;l5mI*AgHACT_>bw%x3U+%jyq ztM;Bjwi)ujYne29jiGb7!&KWKGoGG^J#%PuEjrHzgkJplsX7De;>$|)`b;(H$mWgLwFpfQf z3wuJ8r&+Aa4rFZJd9Po%6^5YVfg8$YsArPSiJ3~U%^1gumn*Ga7pn)JS>8BPOt$rC ziYu5p9$vZ74d8ito`0?V5!FPrS2xp)alI-fQ+3bHD~;U70_9F6ze=n0lon$#)%`#W znC5RzRGu$#{m`0<)n}Kf+m5V9)8*~kc6(x6>-~@W-|usIvwH&-K5^-NsaNLVZGWis z^|m@92Yc72>o53FeoCpNWw*yts&>wG+Qnm1ot%f#N+kMzS(n*rNhE$xD+aHvg-CoOi90bmgS(gvWnOC z@j*Z=hN0}PLe(O$=#oqvF`0%Ha|JL)u~nK@_c^w+V14UjyBySVihFl zO3+V<{U=tVuiCEaonHDJ@EqsBbF(kKpIE=$+^LGSMYEM-@?JAunr2tn@g^Ukr*08Hne@|{w+h|f&b8!wFSC^v`&!-s&-a>E{=5-8!}%`h!TNs@VqdA;N%d6rn + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 439.0 + IBSystem Version + 8J133 + + diff --git a/Frameworks/Sparkle/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/fr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..552a5bdd373f32c150427e896ec6c6f8b1721bf6 GIT binary patch literal 6548 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 WWj_|5_{V4;xU_q%aqqb*FZ~;Xd73Z) literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/fr.lproj/SUAutomaticUpdateAlert.strings b/Frameworks/Sparkle/fr.lproj/SUAutomaticUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..15e62ba81404428593ab3abcf37041df4633ac0b GIT binary patch literal 1040 zcmcgr%MOAt5S%k#(RflX#)F#pO7v_v=)p4qj3x+%M~pwO4hsnup~eeoN}1j5ba$tH zzA(ZN3N{Wn;(`z!BHU@|W5Dm6bBUCm6ajqVwfG`hJfew24as7m$Dy#|%>Nd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/fr.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/fr.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/fr.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/fr.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/fr.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..b0e7f7bd7 --- /dev/null +++ b/Frameworks/Sparkle/fr.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 51 356 240 0 0 1280 1002 + IBFramework Version + 439.0 + IBOpenObjects + + 5 + + IBSystem Version + 8J133 + + diff --git a/Frameworks/Sparkle/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/fr.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..0cd65e6c00e0d716af8aedf26ac4fa7190cd1295 GIT binary patch literal 10882 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/fr.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/fr.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..e75b178233241497ab5d6b532f3cee824f87b687 GIT binary patch literal 1726 zcmchY&rZTX5XR@sQ#72=ixH#5`X|wYiHUF!)H8u1RiL$i=-YbbCDh;SmXtQI|%L5 zCuR&8r>wVYJz~VnYlMJ#k2o5ACPQpb24;`BBv=R7KKG^BZAR<>d*4}HlR*tsAzAx! zE_IXFAv{&2y7z3VWOKz`m5wZ7WQhtx*i7UVb`rh>uw_}zShrug1^qs-1Jn#qKz)>7 zRb&j-Y5M+y{RVnfq$(F+t~e^>zM%Efn%0}uba~{NZ^&7Wd6#F#Qht@?VFX_pN>AJv zJ23GDKX(H=O&-mAKqO^K`z2zH^5<`9I6&NL`*8(kuh*M$PGyXF^6H zxoMC2J1D4oss6Tin;~iwtAs|-1}wdY$jH@gnVKyRl_P8^EL;mo+H`| z{T-0DwpE8df56K}=X=87%%D7%eV^d|Dd%DL8J)>3cRo|9X z^h>I*p4eK;ZR%q{jD_J&BbE29+b7S!X#u}$w+wsJXrkGy_otpx5oewLeQZB!4WuX2 EKhV@6EC2ui literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/fr.lproj/Sparkle.strings b/Frameworks/Sparkle/fr.lproj/Sparkle.strings new file mode 100755 index 0000000000000000000000000000000000000000..9cca1c37057f662eb7273cef65051dd0671b96f0 GIT binary patch literal 7344 zcmdU!-Etd65QXOj@(vpp!H@#;cS%vfmEntqQevxm=QVXJ==+Pj{d0Y5((Y`YPQ|ReG8x`aab6iT(y@oaVZprkO_GreW%9 ztgn%Sbf#~fA8T~1tAXb1Y3#mMx|4R&J>7ksM(HU1q0xzctJc_#?tjpSnct*OTC?l4 z&}z*8w)JEueXq6ebRg@Gu^Zp7Q!mx}JqVq~xz~DSrMsbUE={*&d}bIlyb>i8#G zckdZ!OKjkq;6QAQmX>}Ul4IjjeXwXHy}+>+78A_{`?n!Ix*deBdskR1uLSyU0wrSX z`gFBVZIZl7pPl0>XSiT$u~CI7b1U$0++AUGH^uq(EhhGZv!PVqsr z$Ejon>%u2;cmF{h`Jux;jh5@_vjJrkW`}#`=R@j`bYo zhxdO5RZ>FRYEE z#0~Z_3Y#r32yX0-q4q<1ICedXbA^G0x5?pm8{GS1i6I`i2rhG`U*E;nb>7BnF3P2# z$qwCQrEPJrhpgwF|F3)YpUv#srRHQ(B8`fac$>&WOHL+>^ur4?|Fo-|!fDj1&lP9X zYp&4nZK_&$sae6mI?lVfvdaEqIqdaF<-G6emG~YnBM@$(UL?L@X`=fwxn62M@og_8 z_Ga=l)~~h3nXb?ro_5_toX)gZN^+k=tO7S!Y$w z!(iaUI0@vczKJ=S`(#btB?HbS)3ntC`9%_%$upyqIgy*UGv-`3867*)(I{Pr;;G&B z8XifT=6N{BcvI&+<@n}_<~Mo8>Up%tnxl%`mUV4uT7BA?^&UsJYc-!-rpu!(IQ=Fx zc_Lr8hq=>7L{MkqTX+c70X|kbZ|yf+t+}@bHx#exE_T`yY~xAoH%e7jPP8|H{Zqw6 z!IislXCC`3{nXgYcio)d@SL0>+>yaT#mAcY;kkIN^kCcb>{;Eh|BF`D{#cUu)YX*F zqxlR(FV8vYO72kvU5Dh^_c^l{Px@JPkxzYX-nZ1A+l}on?~J;$V4rZ_`k4H;-cif{ zN1($)^#Ce#0EfEIeL$agn!9p3BhULkADoSk!UO2RaFHZm9>W> z+d11D^zj)x_rK`xjHAC*y2Esi-ShD|dv)*a>V=FH>`ryj&cUTy=d)JEhB{+YkFdLQ w{42>;H{#%#bRTxcsILOsUHJ?r0CIo+|5feA^-pY literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..082030262 --- /dev/null +++ b/Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 136 94 356 240 0 0 1024 746 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..e4c7ba07d43f7a4acc01c7f0ed63e9fa13806abf GIT binary patch literal 6498 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.strings b/Frameworks/Sparkle/he.lproj/SUAutomaticUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..9e466bb77244efb9941293d4bd33cc32a161673e GIT binary patch literal 998 zcmchWJx>Bb5Qg7o8h*vbN@h8_GT zzK$5@*wY9Nb?{3oaA+s!PRIU^P;IpQYUZ6qwtFjD&-8EJ*?jS3eY>%-MRM$YOYGSm zkw+HU9mtc#_JH0)zGV(sV@p7;J${8}0uud$_XD_S!dM7XHF$E`|KP7(z|pJ|)BRk_ z^mEq9@7jChKCpYL8TtwbHb#!AGeP?MCI7yq;{Q + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/he.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/he.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..af7bfbb258d69eb70caf7842c3617e1162668df1 GIT binary patch literal 10712 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 M9aVoDzoozb51-pti~s-t literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/he.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/he.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..42117d016b7da58a9ed2295da480bce0282fe4ef GIT binary patch literal 1564 zcmchX%TB^T6o$`cHa71GQ`v0BpA6b)_IC3T_Ih4B8xJpta6O{uKm!u#WvaVdy=D8ktd&8&( z(Pk;u|_6Ja-d+!57Q9W_=hacJAhQ(tO8f23OKjm%JW)jRPc z{a5Zj&#v;wG)?}Aksg^A3_FmlSad%QD0nfW;Czj275?v;kS*W$v{lZs2YCl`IMVp# z9`78XT^9FfS4QRB^s_jyN>4kzH1T3`f#YlyewuYj_-JgEQ<_h7L>;5eSbeBAJ_}bx z&s{KokLEfxEGLuys$wBoT;pen2b^wSZ%Wfv&p2=lP0uj(jR#*$ri&9jdf{{_xr40? zS(=lPwL-w|-rc>sXV09OoxlDLpM|?23lBq!-%Wm>@~MSp=uqDY zyRN4*pYu5ZNR`V@rE~Dx@6ONSPAP(a^PUBG=P*ZsjM^>Itd$njE$CG$WeQZzqR{PUN z_v5~`%^3Nfk#A|;k8|F6D}3ee&>mu+r|+2IDE>ihtUmEDj%|JApJ5#&#o;dJA*96N z#^Ow#7>YWL9$#Uf!E1514aP0{>U5v+)yY=ifzEvWUvVA9eM9IuJAY#s4cPUeVIZsr z@kN|~n2^_O*M)-f;=Da&;m#?)#CoCNocx#-uExWvv91Y5EoKm7>xSrRY;;6kgU&1X zCKla+D`Lzj&TK8tDO=AOPKnFn;KAv5vA;}QwOet&`a%7qY?jeQxsW~G)PLK(I-4P z)*Ip^e9C)#ubY&X_PQ8_0%@mkXewqg@&zl=JQF_Hq|M~3o0n*x8?4W@=d9`^54oxr zx|wTI%vI+w9)PfRHY?y?)P0RB$4XY+o$K>imA%Z4ay2b;Kk^3h4T^rm_7>Kd`xWV3 z)x1oyzU5dUw`l3CNR16KdFO+83`VXiV21`Nh8dwe|7Em$cpF7C;+;pKQgHc|gn90d zc4=2{MFUrd@(HRvf`P8?Q&8O#kuNX`BEh$90Pq}9JO?2CyDAFqWjAXGMQE~?{?VH23ci44#e&QZ$ z)ICfQP_Em382=I^$EEq(dlp4*T7;M4up*K|(Qh>Q9aGN>w?wqBkIoI_)O4??c=92B zZ_^&ii><$BjXm&7cZj4(#ht994#mh)zAeT6`KhN~-P z@E&y+*R&i9=azpRt4e%T)-GqqL@_pTA~;z-uPmlqoE7v;qMxYZH)Rc!b-kQdIGY(r z`A20Zn#?B*l*y=5Px%bbWE9`3NWICu$TOz8 zoO%8fn_1O^>As{KLdphsmO(j$q8HRHAl;%S@czU+%}aX83Oq+zo`OH(?Air>iCJZF j>Jd8E4Yw_p$|&vF`FOnQ=UcSBeD~5~ao$lnwY`4;5_Id$ literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/hu.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/hu.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/hu.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/hu.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/hu.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..5a7568096 --- /dev/null +++ b/Frameworks/Sparkle/hu.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/hu.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/hu.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..b619eb4ab4539674743cea9361ae86faa9c1ca4f GIT binary patch literal 6380 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 lNd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/hu.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/hu.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/hu.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/hu.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/hu.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/hu.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/hu.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/hu.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..4fbd2d684eebafe14748acfd3d9314067dfd9bf7 GIT binary patch literal 10634 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 F{{sk2E0_QP literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/hu.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/hu.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..c14506f58f3c6027bdd859f4ed3862af54c61eba GIT binary patch literal 1630 zcmc(fO-sW-5Qg7#e?{mi_99la7(YM{f}kEut>>aC2HT{hE!97-KD!puUChQ)B_zAE znc10VXJ$XYw6C5b-7D3VR$B6uDp-kiY2{Kgjakk0%sA!w;O`4sYxJg!W2A_0VaJ?t zf&Pzf#2$0j%?=ss5&M|kmwH8xG_gKbs*v`O6W%lHZOPsl@~)$}Ac7dGoTw9>sBh!y zaZVj|cOFfbXwG^6!}BS`oj`ruc$t3O%JlEK3|YA6KG3mq?jg(ijKW$z&yf0hr`E2? zbw;(BDvtGF=NT2dU}id_+|+K;P@y3Um+C+Rhbm-QQ-!sBD!+@3^~`pi;k&a;x0`;f z0z}O=E>qv@kgz|Os@X?ZZCt6|pqj%p9bv=gE4isb}jh%C|I ziZ=HcZIv9N{1xM-n3MC*^*ceS0E!%AvvQpQR+?hoE@bBXC8T)=H0!9^&WPjgclUa+ z>b7?n-wF!of~Q~#jS_2~g26(o*Qy8VbB2d|OK>u1{S~xSqA%^^77uMBg(cBy+V^NC z&WgK2%B*kIz7u)!+lqO%h?H6WQ)P=L)}ET-SvIA_#d@qsKv3|4m4mqy3C+1UTEsI4g-GO z_PqPuJvFq7SvT47y18QQlKzn1kr5*JS$^D+OFLO=&k5Oold;(9iyJT885}w!Y<|dJJ9E8mjojrJ^JD{{@9)XR0hVFtYYU^)x_2Y9|Jht|c6oyH%Nsc3OYd#!wXs%aRNK`E z+QqpcLPXl`qW<>H_Ao@(&pkN9t3}?A+z@ zbuu>}5l7-PU~G0_*(;aNx=>5@c_nYt%}4A);wE-cmw4TXI1-=3mOXw}inG!u`53HZ zr8q0mKI-{R;_59aWbGz><4F0X7TKP{r`X*ilx|(0*it!LWd7G%h?l6|9!Hw>c{j^U zTZV{n=w_Z~Ih*71*~}=>r*o&wJ{2gt9F%3B!c}=A8N&Zt2A(&*o@$i&9~Yyo&Q>Lw wY3JC`WBiMIk7Grbu#76OVONf|8viqLq%oq!gYN$!?j9SS@JsOT{k>JvUjc}EOaK4? literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/id.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/id.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/id.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/id.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/id.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..5a7568096 --- /dev/null +++ b/Frameworks/Sparkle/id.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/id.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/id.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..b619eb4ab4539674743cea9361ae86faa9c1ca4f GIT binary patch literal 6380 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 lNd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/id.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/id.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/id.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/id.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/id.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/id.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/id.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/id.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..c815112f63daa8433d72635d772f429a05988ce6 GIT binary patch literal 10634 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 EKL&p+B>(^b literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/id.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/id.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..c14506f58f3c6027bdd859f4ed3862af54c61eba GIT binary patch literal 1630 zcmc(fO-sW-5Qg7#e?{mi_99la7(YM{f}kEut>>aC2HT{hE!97-KD!puUChQ)B_zAE znc10VXJ$XYw6C5b-7D3VR$B6uDp-kiY2{Kgjakk0%sA!w;O`4sYxJg!W2A_0VaJ?t zf&Pzf#2$0j%?=ss5&M|kmwH8xG_gKbs*v`O6W%lHZOPsl@~)$}Ac7dGoTw9>sBh!y zaZVj|cOFfbXwG^6!}BS`oj`ruc$t3O%JlEK3|YA6KG3mq?jg(ijKW$z&yf0hr`E2? zbw;(BDvtGF=NT2dU}id_+|+K;P@y3Um+C+Rhbm-QQ-!sBD!+@3^~`pi;k&a;x0`;f z0z}O=E>qv@kgz|Os@X?ZZCt6|pqj%p9bv=gE4isb}jh%C|I ziZ=HcZIv9N{1xM-n3MC*^*ceS0E!%AvvQpQR+?hoE@bBXC8T)=H0!9^&WPjgclUa+ z>b7?n-wF!of~Q~#jS_2~g26(o*Qy8VbB2d|OK>u1{S~xSqA%^^77uMBg(cBy+V^NC z&WgK2%B*kIz7u)!+lqO%h?H6WQ)P=L)}ET-SvIA_#d@qsKv3|4m4mqy3C+1UTEsI4g-GO z_PqPuJvFq7SvT47y18QQlKzn1kr5*JS$^D+OFLO=&k5Oold;(9iyJT885}w!Y<|dJJ9E8mjojrJ^JD{{@9)XR0hVFtYYU^)x_2Y9|Jht|c6oyH%Nsc3OYd#!wXs%aRNK`E z+QqpcLPXl`qW<>H_Ao@(&pkN9t3}?A+z@ zbuu>}5l7-PU~G0_*(;aNx=>5@c_nYt%}4A);wE-cmw4TXI1-=3mOXw}inG!u`53HZ zr8q0mKI-{R;_59aWbGz><4F0X7TKP{r`X*ilx|(0*it!LWd7G%h?l6|9!Hw>c{j^U zTZV{n=w_Z~Ih*71*~}=>r*o&wJ{2gt9F%3B!c}=A8N&Zt2A(&*o@$i&9~Yyo&Q>Lw wY3JC`WBiMIk7Grbu#76OVONf|8viqLq%oq!gYN$!?j9SS@JsOT{k>JvUjc}EOaK4? literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/is.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/is.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/is.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/is.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/is.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..5a7568096 --- /dev/null +++ b/Frameworks/Sparkle/is.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/is.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/is.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..b619eb4ab4539674743cea9361ae86faa9c1ca4f GIT binary patch literal 6380 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 lNd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/is.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/is.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/is.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/is.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/is.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/is.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/is.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/is.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..44b9da5f9eb0dc93032562a5294da0ab7e618ac3 GIT binary patch literal 10634 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 CXDjvq literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/is.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/is.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..c14506f58f3c6027bdd859f4ed3862af54c61eba GIT binary patch literal 1630 zcmc(fO-sW-5Qg7#e?{mi_99la7(YM{f}kEut>>aC2HT{hE!97-KD!puUChQ)B_zAE znc10VXJ$XYw6C5b-7D3VR$B6uDp-kiY2{Kgjakk0%sA!w;O`4sYxJg!W2A_0VaJ?t zf&Pzf#2$0j%?=ss5&M|kmwH8xG_gKbs*v`O6W%lHZOPsl@~)$}Ac7dGoTw9>sBh!y zaZVj|cOFfbXwG^6!}BS`oj`ruc$t3O%JlEK3|YA6KG3mq?jg(ijKW$z&yf0hr`E2? zbw;(BDvtGF=NT2dU}id_+|+K;P@y3Um+C+Rhbm-QQ-!sBD!+@3^~`pi;k&a;x0`;f z0z}O=E>qv@kgz|Os@X?ZZCt6|pqj%pN*mJ z|L+`6XRZ^4AUZY+WZC!5nb(>BdCu|b&+t)r5UOw#7WzHb?+bkQ|5Vhu-Xa$HK6UQ{e`}a{3N_L7+tSN ze>$M=htIY0odTSGWxVlw7V6OI`P5D{*Bhs6g+i^f%tYn%wP-w->V@j#D?BZ{#H_2 zXe|2iQeSkVmL{P!2Y(|O<|D;F!ZXcr#Hw(q)lb7KSpyn}u1usmmD;b2!pf&=`|OpT ztv

`Xhx;$kie`)><3*Tw5lsKWiXI*p})o7=(r;_!C5KQ>LD3)O{Iz)GejgPSbC zab$?6M^K zV1n%355RFk_gp=VPJm7)4Rt@VR1fGS&(dioty(_+To_Mf1+_-FX5X_t&?&6qSoDS7 zF2bH>jEt6iR%7}%*H~hNM*v~~xUfQNaRFagtA8TjRfR|9_mN~5KCrPq%Kab~(rP!X z!|ee1b24^;+8D3!giQU(d1gAx&;s#>|D$$0)XHe?ND^=_dewi%Y~i*sYcKPz?|R+c zo*oHZ=SlMuA1P`KV+Auj-vUARbVDD<{8A?)Qn4pFBbK<3r%16Bk3F`?8a)F~k9g!# z$=l$szZZp^%CjgeoV*i{L40K=pTT~)g^#RnS6u84S;qwL3|3P;$=clm_ws^c!xs+^ z)qNx$IC}WfnD2tW-AQAqXi63c-k$#xp@^GNCMn)FqBEMDsI(Ne$=81aefJy*b#A#= zGs!58leN^gDTnQGSW+UJKE|WhOui`HjNJ!#P2tpf$V~Hy=HC0?tySif4`sjHxydQh zUHcnl|D8VMw)opO#iHv&%g>K3ca9lujuUwM9n>Q#bp`tK%D_mpGf|15>2AZQb47&L zl1Qu5ardpl@A@{PadRMw^tMtNY`+%gOYIVGcF|h%^Bu@H=5hXUcJGR}=R6nci%H_p z>N%VK{3c#ULU(0%M34sitC*L{${q>Vlw*-Wc?IhS)8tf1N;>^mJ>B|7>wKbF+~iyz z;GZlL{c4J#JmmX!8Uf#)-;f_}4`Z+#R{!8Pp`LrVA2+NGG|38Psux|Ft#O0B5VG90 z<7vo(JFV$B^r2i9eJtN$*1o9*PSGCP5J%6|`qtKU#^xp+;7J4N*5*J)5W z+!K#c*QpXGN#uGn6_4Iq2Cthd(O$jwIue;H^&l$!|12t9t@*^7H+3iM7aXWjP1TN- zDz8!HyK;w_%htV0&mHl^q)W9lW_8Z7|EtjtqDWrJtF6-Kr|{|+@f@VRh7K1VJ;6U# z2KxUc?xfL&c2@N|6tB>q>%*Ebn}V)Qy=c>^xUmLKmIooEj+jCUkBK` Wj(}M%HLsdJQ)M00f78lut^6+q*qg@y literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..5a7568096 --- /dev/null +++ b/Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..53fa5b31973f6c55c9bc07b504987781350fe54f GIT binary patch literal 6415 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 T(jTXOTT;)n^mEUzcgBAJl~#x8 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.strings b/Frameworks/Sparkle/it.lproj/SUAutomaticUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..5bbc8d97b9ce11dbb79af8e9770e315cbda538e4 GIT binary patch literal 1066 zcmchWOH0E*6ot>azhZEu-G~bnd_mm_(uIPqgQ@L6I#ZGq@u#~{zqwIjY8u2v2}$NY z=FYk2+RylX3d$Arf@fa`e9w3LHXoh`dv4|(fI<~AaRYuz5ak}J9 zt8+Y~AJwn5rbbQmU==22M=h0E{U`nf&nwXeL%@o7b3B~Up{I>ijZ`PyZ zlH6dLIL%SfTi%?tN70g4hVD&{|HG`@kz3eF0W1ru-C`xp%PqPN?by`dq@%&m&X%tS yJKHm1-|Vbdy@4#vX30$cudk`yzW!PLjjYMu?5BGtx9uA0Wdi + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/it.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/it.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..0e8d6a6ae40560056863267417ab47cac563c677 GIT binary patch literal 10700 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/it.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/it.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..6099b14270b2daf9839f0b2ed97461c0e6cd46d8 GIT binary patch literal 1712 zcmchXPfx-?5XI-rr`T{pE=G(J>z@PwM-@FNhM*WCM|2HGLn$hSbB^@o-h8s;5EZ<$QWW7zKI=U z#tHs&Uqg;D>zW~A-H=DK=kkheq;L0_N``fS9q?Y*-EwkA*!!;HiVA9=im5t~Gilhm z>hM&N>fWoVQq3iARc*N9=wM`iiGlw7ON*A6Hc0tgA1=)u1V-jt0I+m#?BCMf!@sdtW{zhe1j)SD(l zpZFgbJMxC#n5ZuIPYgpwo-Dp4SDSlvcU&3kv7_bg_yTVZ8ofKU$9mMLdcLErc9~*b yS9kq%J`<-p>K(0p+hNuxdPaOkCL_Dgr$5HUds0H{+pR#_+HxPwZ#Fl_0^=VjDIY5U literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/it.lproj/Sparkle.strings b/Frameworks/Sparkle/it.lproj/Sparkle.strings new file mode 100755 index 0000000000000000000000000000000000000000..7a5a38459fa813dc813331b9d9272159f1e953ce GIT binary patch literal 7170 zcmdU!-HsbY5QY0XPvNXUh6pVLE)gQDWiM7pAGK!8CSe}dx?YBrMmAv@ z#u^)I=A3Hmkyd&TPQu5!`XbE2>+rKi7y2G_#!htojo!?B96svI zu0s=Nf7uy7314gF2L&{J5~cC^CRCx;_p4~pT)(ic77CSYnQ0X3D~<7eqq~fH{y+#! zbZ;E7Sw|!rJv-5T5c)M@xz;lv3mQoD+AH0w!$V#Fq~{u~$@;hP_dr)up~y2{6*)6W zYP9Z1IDpFpS4U2*)mPyU{j%?g10usH3?;d~yH0az zjbWSTZDPFed#q8c{c5WPR=&`zCXTQ4S!piOg-oP_;Y6z;1DneGeJWYReIpIf0efd# zKfZ}N;lZ1z6&bP7uT`{np}Afg~@wH@vYRWe3XO&$Uj4vhOuPE(0 z=G{U%%r%$jG|si=pwU!XppEtTQ203t`_LGKPwt|b90NaRz^9Ql4vG4)EW43yGkp^w zMUU2pktHwV?tTlY084Ep6Zj2$*0+u0#QLwg7 z1FeK^AOR~bcQOy&LynQcw?jSKY@eQn-}I{Vw%ta=KE}h&b4JO3xIS6c#f9wieO7NH znpXz9E6If?2GRhIrH-H*2o5z))deLiMXDo~dTi9-8vJDTWgMmg4YXw?>cLdcnst$7 zTfq?h(GMwoSSE?sZ=6BDiinoskTYp)X5Hnx+%w?8L+bLw7UN#XPOJcJvm^HU+FtZ1 zxZ}|-pMyi-rPjl|>Pf|vUEwvEN_n(;2?OZLwdC3JZGSU8rjxunI!HVj6u zNj@(W%ef-M_hV^EoSSFvd(=66s+rFe>GWdmzQ_>zRWgf=KoXe@yU?}fuIWm5-6uIB zrec@Gj44msS~?=oid;6ol4HBNWfnlY=enPI>ayAOeoT!9Q4UHl2c4J^ZlvXSi<3KH zb1j^ZD#h{9CT7um6uk*MW;Vt@Sd;Zmo^T~^6cN-u#|FGh?7<1CADhPhr0cQF4zS27 zW*1RZiVNQF#hb|b#5~c-PJ@V~ZYN*ndcV>*HG&8~zW0XGB31O{8)sFnr&(kCgU2z*lAB@rUqzOOmh3NcyqUk6#Eu@0Hrv=TUc2`zskw zmew^zJp0G&k+XNQhtCB|>9zl)(ffLzkkKXoyNY-Jd@G&gQv>Kqz=YZc@1#>XpU1VO zvd^MI_~eEi?Ca=pPQ+5bXpOyFX*v}rpICZLaOIyC&QtQqkt;D#lFznw&q)7U6$TA# z#&(}uapJ>H9Q!xQQ%(SvveW0QyZ;8bGu_pgF074D+OIk4L5%yH+vNX}o + + + + IBDocumentLocation + 136 94 356 240 0 0 1024 746 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/ja.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/ja.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..d31704664714e4cf26e714745c86b2a4fa1dddc8 GIT binary patch literal 6450 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 DhC8v+ literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/ja.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/ja.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/ja.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/ja.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/ja.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..f213cf3be --- /dev/null +++ b/Frameworks/Sparkle/ja.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 531 94 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/ja.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/ja.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..00b088deefe357bbd8b8ecb196628b870b2e1913 GIT binary patch literal 10724 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 + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/ko.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/ko.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..b619eb4ab4539674743cea9361ae86faa9c1ca4f GIT binary patch literal 6380 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 lNd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/ko.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/ko.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/ko.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/ko.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/ko.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/ko.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/ko.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/ko.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..aeb4628f8848d1b5d132b2d8fb75b92706c1905c GIT binary patch literal 10634 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/ko.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/ko.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..c14506f58f3c6027bdd859f4ed3862af54c61eba GIT binary patch literal 1630 zcmc(fO-sW-5Qg7#e?{mi_99la7(YM{f}kEut>>aC2HT{hE!97-KD!puUChQ)B_zAE znc10VXJ$XYw6C5b-7D3VR$B6uDp-kiY2{Kgjakk0%sA!w;O`4sYxJg!W2A_0VaJ?t zf&Pzf#2$0j%?=ss5&M|kmwH8xG_gKbs*v`O6W%lHZOPsl@~)$}Ac7dGoTw9>sBh!y zaZVj|cOFfbXwG^6!}BS`oj`ruc$t3O%JlEK3|YA6KG3mq?jg(ijKW$z&yf0hr`E2? zbw;(BDvtGF=NT2dU}id_+|+K;P@y3Um+C+Rhbm-QQ-!sBD!+@3^~`pi;k&a;x0`;f z0z}O=E>qv@kgz|Os@X?ZZCt6|pqj%p9bv=gE4isb}jh%C|I ziZ=HcZIv9N{1xM-n3MC*^*ceS0E!%AvvQpQR+?hoE@bBXC8T)=H0!9^&WPjgclUa+ z>b7?n-wF!of~Q~#jS_2~g26(o*Qy8VbB2d|OK>u1{S~xSqA%^^77uMBg(cBy+V^NC z&WgK2%B*kIz7u)!+lqO%h?H6WQ)P=L)}ET-SvIA_#d@qsKv3|4m4mqy3C+1UTEsI4g-GO z_PqPuJvFq7SvT47y18QQlKzn1kr5*JS$^D+OFLO=&k5Oold;(9iyJT885}w!Y<|dJJ9E8mjojrJ^JD{{@9)XR0hVFtYYU^)x_2Y9|Jht|c6oyH%Nsc3OYd#!wXs%aRNK`E z+QqpcLPXl`qW<>H_Ao@(&pkN9t3}?A+z@ zbuu>}5l7-PU~G0_*(;aNx=>5@c_nYt%}4A);wE-cmw4TXI1-=3mOXw}inG!u`53HZ zr8q0mKI-{R;_59aWbGz><4F0X7TKP{r`X*ilx|(0*it!LWd7G%h?l6|9!Hw>c{j^U zTZV{n=w_Z~Ih*71*~}=>r*o&wJ{2gt9F%3B!c}=A8N&Zt2A(&*o@$i&9~Yyo&Q>Lw wY3JC`WBiMIk7Grbu#76OVONf|8viqLq%oq!gYN$!?j9SS@JsOT{k>JvUjc}EOaK4? literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/md5.c b/Frameworks/Sparkle/md5.c new file mode 100755 index 000000000..c35d96c5e --- /dev/null +++ b/Frameworks/Sparkle/md5.c @@ -0,0 +1,381 @@ +/* + Copyright (C) 1999, 2000, 2002 Aladdin Enterprises. All rights reserved. + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + L. Peter Deutsch + ghost@aladdin.com + + */ +/* $Id: md5.c,v 1.6 2002/04/13 19:20:28 lpd Exp $ */ +/* + Independent implementation of MD5 (RFC 1321). + + This code implements the MD5 Algorithm defined in RFC 1321, whose + text is available at + http://www.ietf.org/rfc/rfc1321.txt + The code is derived from the text of the RFC, including the test suite + (section A.5) but excluding the rest of Appendix A. It does not include + any code or documentation that is identified in the RFC as being + copyrighted. + + The original and principal author of md5.c is L. Peter Deutsch + . Other authors are noted in the change history + that follows (in reverse chronological order): + + 2002-04-13 lpd Clarified derivation from RFC 1321; now handles byte order + either statically or dynamically; added missing #include + in library. + 2002-03-11 lpd Corrected argument list for main(), and added int return + type, in test program and T value program. + 2002-02-21 lpd Added missing #include in test program. + 2000-07-03 lpd Patched to eliminate warnings about "constant is + unsigned in ANSI C, signed in traditional"; made test program + self-checking. + 1999-11-04 lpd Edited comments slightly for automatic TOC extraction. + 1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5). + 1999-05-03 lpd Original version. + */ + +#include "md5.h" +#include + +#undef BYTE_ORDER /* 1 = big-endian, -1 = little-endian, 0 = unknown */ +#ifdef ARCH_IS_BIG_ENDIAN +# define BYTE_ORDER (ARCH_IS_BIG_ENDIAN ? 1 : -1) +#else +# define BYTE_ORDER 0 +#endif + +#define T_MASK ((md5_word_t)~0) +#define T1 /* 0xd76aa478 */ (T_MASK ^ 0x28955b87) +#define T2 /* 0xe8c7b756 */ (T_MASK ^ 0x173848a9) +#define T3 0x242070db +#define T4 /* 0xc1bdceee */ (T_MASK ^ 0x3e423111) +#define T5 /* 0xf57c0faf */ (T_MASK ^ 0x0a83f050) +#define T6 0x4787c62a +#define T7 /* 0xa8304613 */ (T_MASK ^ 0x57cfb9ec) +#define T8 /* 0xfd469501 */ (T_MASK ^ 0x02b96afe) +#define T9 0x698098d8 +#define T10 /* 0x8b44f7af */ (T_MASK ^ 0x74bb0850) +#define T11 /* 0xffff5bb1 */ (T_MASK ^ 0x0000a44e) +#define T12 /* 0x895cd7be */ (T_MASK ^ 0x76a32841) +#define T13 0x6b901122 +#define T14 /* 0xfd987193 */ (T_MASK ^ 0x02678e6c) +#define T15 /* 0xa679438e */ (T_MASK ^ 0x5986bc71) +#define T16 0x49b40821 +#define T17 /* 0xf61e2562 */ (T_MASK ^ 0x09e1da9d) +#define T18 /* 0xc040b340 */ (T_MASK ^ 0x3fbf4cbf) +#define T19 0x265e5a51 +#define T20 /* 0xe9b6c7aa */ (T_MASK ^ 0x16493855) +#define T21 /* 0xd62f105d */ (T_MASK ^ 0x29d0efa2) +#define T22 0x02441453 +#define T23 /* 0xd8a1e681 */ (T_MASK ^ 0x275e197e) +#define T24 /* 0xe7d3fbc8 */ (T_MASK ^ 0x182c0437) +#define T25 0x21e1cde6 +#define T26 /* 0xc33707d6 */ (T_MASK ^ 0x3cc8f829) +#define T27 /* 0xf4d50d87 */ (T_MASK ^ 0x0b2af278) +#define T28 0x455a14ed +#define T29 /* 0xa9e3e905 */ (T_MASK ^ 0x561c16fa) +#define T30 /* 0xfcefa3f8 */ (T_MASK ^ 0x03105c07) +#define T31 0x676f02d9 +#define T32 /* 0x8d2a4c8a */ (T_MASK ^ 0x72d5b375) +#define T33 /* 0xfffa3942 */ (T_MASK ^ 0x0005c6bd) +#define T34 /* 0x8771f681 */ (T_MASK ^ 0x788e097e) +#define T35 0x6d9d6122 +#define T36 /* 0xfde5380c */ (T_MASK ^ 0x021ac7f3) +#define T37 /* 0xa4beea44 */ (T_MASK ^ 0x5b4115bb) +#define T38 0x4bdecfa9 +#define T39 /* 0xf6bb4b60 */ (T_MASK ^ 0x0944b49f) +#define T40 /* 0xbebfbc70 */ (T_MASK ^ 0x4140438f) +#define T41 0x289b7ec6 +#define T42 /* 0xeaa127fa */ (T_MASK ^ 0x155ed805) +#define T43 /* 0xd4ef3085 */ (T_MASK ^ 0x2b10cf7a) +#define T44 0x04881d05 +#define T45 /* 0xd9d4d039 */ (T_MASK ^ 0x262b2fc6) +#define T46 /* 0xe6db99e5 */ (T_MASK ^ 0x1924661a) +#define T47 0x1fa27cf8 +#define T48 /* 0xc4ac5665 */ (T_MASK ^ 0x3b53a99a) +#define T49 /* 0xf4292244 */ (T_MASK ^ 0x0bd6ddbb) +#define T50 0x432aff97 +#define T51 /* 0xab9423a7 */ (T_MASK ^ 0x546bdc58) +#define T52 /* 0xfc93a039 */ (T_MASK ^ 0x036c5fc6) +#define T53 0x655b59c3 +#define T54 /* 0x8f0ccc92 */ (T_MASK ^ 0x70f3336d) +#define T55 /* 0xffeff47d */ (T_MASK ^ 0x00100b82) +#define T56 /* 0x85845dd1 */ (T_MASK ^ 0x7a7ba22e) +#define T57 0x6fa87e4f +#define T58 /* 0xfe2ce6e0 */ (T_MASK ^ 0x01d3191f) +#define T59 /* 0xa3014314 */ (T_MASK ^ 0x5cfebceb) +#define T60 0x4e0811a1 +#define T61 /* 0xf7537e82 */ (T_MASK ^ 0x08ac817d) +#define T62 /* 0xbd3af235 */ (T_MASK ^ 0x42c50dca) +#define T63 0x2ad7d2bb +#define T64 /* 0xeb86d391 */ (T_MASK ^ 0x14792c6e) + + +static void +md5_process(md5_state_t *pms, const md5_byte_t *data /*[64]*/) +{ + md5_word_t + a = pms->abcd[0], b = pms->abcd[1], + c = pms->abcd[2], d = pms->abcd[3]; + md5_word_t t; +#if BYTE_ORDER > 0 + /* Define storage only for big-endian CPUs. */ + md5_word_t X[16]; +#else + /* Define storage for little-endian or both types of CPUs. */ + md5_word_t xbuf[16]; + const md5_word_t *X; +#endif + + { +#if BYTE_ORDER == 0 + /* + * Determine dynamically whether this is a big-endian or + * little-endian machine, since we can use a more efficient + * algorithm on the latter. + */ + static const int w = 1; + + if (*((const md5_byte_t *)&w)) /* dynamic little-endian */ +#endif +#if BYTE_ORDER <= 0 /* little-endian */ + { + /* + * On little-endian machines, we can process properly aligned + * data without copying it. + */ + if (!((data - (const md5_byte_t *)0) & 3)) { + /* data are properly aligned */ + X = (const md5_word_t *)data; + } else { + /* not aligned */ + memcpy(xbuf, data, 64); + X = xbuf; + } + } +#endif +#if BYTE_ORDER == 0 + else /* dynamic big-endian */ +#endif +#if BYTE_ORDER >= 0 /* big-endian */ + { + /* + * On big-endian machines, we must arrange the bytes in the + * right order. + */ + const md5_byte_t *xp = data; + int i; + +# if BYTE_ORDER == 0 + X = xbuf; /* (dynamic only) */ +# else +# define xbuf X /* (static only) */ +# endif + for (i = 0; i < 16; ++i, xp += 4) + xbuf[i] = xp[0] + (xp[1] << 8) + (xp[2] << 16) + (xp[3] << 24); + } +#endif + } + +#define ROTATE_LEFT(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) + + /* Round 1. */ + /* Let [abcd k s i] denote the operation + a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */ +#define F(x, y, z) (((x) & (y)) | (~(x) & (z))) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + F(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 0, 7, T1); + SET(d, a, b, c, 1, 12, T2); + SET(c, d, a, b, 2, 17, T3); + SET(b, c, d, a, 3, 22, T4); + SET(a, b, c, d, 4, 7, T5); + SET(d, a, b, c, 5, 12, T6); + SET(c, d, a, b, 6, 17, T7); + SET(b, c, d, a, 7, 22, T8); + SET(a, b, c, d, 8, 7, T9); + SET(d, a, b, c, 9, 12, T10); + SET(c, d, a, b, 10, 17, T11); + SET(b, c, d, a, 11, 22, T12); + SET(a, b, c, d, 12, 7, T13); + SET(d, a, b, c, 13, 12, T14); + SET(c, d, a, b, 14, 17, T15); + SET(b, c, d, a, 15, 22, T16); +#undef SET + + /* Round 2. */ + /* Let [abcd k s i] denote the operation + a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */ +#define G(x, y, z) (((x) & (z)) | ((y) & ~(z))) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + G(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 1, 5, T17); + SET(d, a, b, c, 6, 9, T18); + SET(c, d, a, b, 11, 14, T19); + SET(b, c, d, a, 0, 20, T20); + SET(a, b, c, d, 5, 5, T21); + SET(d, a, b, c, 10, 9, T22); + SET(c, d, a, b, 15, 14, T23); + SET(b, c, d, a, 4, 20, T24); + SET(a, b, c, d, 9, 5, T25); + SET(d, a, b, c, 14, 9, T26); + SET(c, d, a, b, 3, 14, T27); + SET(b, c, d, a, 8, 20, T28); + SET(a, b, c, d, 13, 5, T29); + SET(d, a, b, c, 2, 9, T30); + SET(c, d, a, b, 7, 14, T31); + SET(b, c, d, a, 12, 20, T32); +#undef SET + + /* Round 3. */ + /* Let [abcd k s t] denote the operation + a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */ +#define H(x, y, z) ((x) ^ (y) ^ (z)) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + H(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 5, 4, T33); + SET(d, a, b, c, 8, 11, T34); + SET(c, d, a, b, 11, 16, T35); + SET(b, c, d, a, 14, 23, T36); + SET(a, b, c, d, 1, 4, T37); + SET(d, a, b, c, 4, 11, T38); + SET(c, d, a, b, 7, 16, T39); + SET(b, c, d, a, 10, 23, T40); + SET(a, b, c, d, 13, 4, T41); + SET(d, a, b, c, 0, 11, T42); + SET(c, d, a, b, 3, 16, T43); + SET(b, c, d, a, 6, 23, T44); + SET(a, b, c, d, 9, 4, T45); + SET(d, a, b, c, 12, 11, T46); + SET(c, d, a, b, 15, 16, T47); + SET(b, c, d, a, 2, 23, T48); +#undef SET + + /* Round 4. */ + /* Let [abcd k s t] denote the operation + a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */ +#define I(x, y, z) ((y) ^ ((x) | ~(z))) +#define SET(a, b, c, d, k, s, Ti)\ + t = a + I(b,c,d) + X[k] + Ti;\ + a = ROTATE_LEFT(t, s) + b + /* Do the following 16 operations. */ + SET(a, b, c, d, 0, 6, T49); + SET(d, a, b, c, 7, 10, T50); + SET(c, d, a, b, 14, 15, T51); + SET(b, c, d, a, 5, 21, T52); + SET(a, b, c, d, 12, 6, T53); + SET(d, a, b, c, 3, 10, T54); + SET(c, d, a, b, 10, 15, T55); + SET(b, c, d, a, 1, 21, T56); + SET(a, b, c, d, 8, 6, T57); + SET(d, a, b, c, 15, 10, T58); + SET(c, d, a, b, 6, 15, T59); + SET(b, c, d, a, 13, 21, T60); + SET(a, b, c, d, 4, 6, T61); + SET(d, a, b, c, 11, 10, T62); + SET(c, d, a, b, 2, 15, T63); + SET(b, c, d, a, 9, 21, T64); +#undef SET + + /* Then perform the following additions. (That is increment each + of the four registers by the value it had before this block + was started.) */ + pms->abcd[0] += a; + pms->abcd[1] += b; + pms->abcd[2] += c; + pms->abcd[3] += d; +} + +void +md5_init(md5_state_t *pms) +{ + pms->count[0] = pms->count[1] = 0; + pms->abcd[0] = 0x67452301; + pms->abcd[1] = /*0xefcdab89*/ T_MASK ^ 0x10325476; + pms->abcd[2] = /*0x98badcfe*/ T_MASK ^ 0x67452301; + pms->abcd[3] = 0x10325476; +} + +void +md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes) +{ + const md5_byte_t *p = data; + int left = nbytes; + int offset = (pms->count[0] >> 3) & 63; + md5_word_t nbits = (md5_word_t)(nbytes << 3); + + if (nbytes <= 0) + return; + + /* Update the message length. */ + pms->count[1] += nbytes >> 29; + pms->count[0] += nbits; + if (pms->count[0] < nbits) + pms->count[1]++; + + /* Process an initial partial block. */ + if (offset) { + int copy = (offset + nbytes > 64 ? 64 - offset : nbytes); + + memcpy(pms->buf + offset, p, copy); + if (offset + copy < 64) + return; + p += copy; + left -= copy; + md5_process(pms, pms->buf); + } + + /* Process full blocks. */ + for (; left >= 64; p += 64, left -= 64) + md5_process(pms, p); + + /* Process a final partial block. */ + if (left) + memcpy(pms->buf, p, left); +} + +void +md5_finish(md5_state_t *pms, md5_byte_t digest[16]) +{ + static const md5_byte_t pad[64] = { + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + md5_byte_t data[8]; + int i; + + /* Save the length before padding. */ + for (i = 0; i < 8; ++i) + data[i] = (md5_byte_t)(pms->count[i >> 2] >> ((i & 3) << 3)); + /* Pad to 56 bytes mod 64. */ + md5_append(pms, pad, ((55 - (pms->count[0] >> 3)) & 63) + 1); + /* Append the length. */ + md5_append(pms, data, 8); + for (i = 0; i < 16; ++i) + digest[i] = (md5_byte_t)(pms->abcd[i >> 2] >> ((i & 3) << 3)); +} diff --git a/Frameworks/Sparkle/md5.h b/Frameworks/Sparkle/md5.h new file mode 100755 index 000000000..698c995d8 --- /dev/null +++ b/Frameworks/Sparkle/md5.h @@ -0,0 +1,91 @@ +/* + Copyright (C) 1999, 2002 Aladdin Enterprises. All rights reserved. + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + L. Peter Deutsch + ghost@aladdin.com + + */ +/* $Id: md5.h,v 1.4 2002/04/13 19:20:28 lpd Exp $ */ +/* + Independent implementation of MD5 (RFC 1321). + + This code implements the MD5 Algorithm defined in RFC 1321, whose + text is available at + http://www.ietf.org/rfc/rfc1321.txt + The code is derived from the text of the RFC, including the test suite + (section A.5) but excluding the rest of Appendix A. It does not include + any code or documentation that is identified in the RFC as being + copyrighted. + + The original and principal author of md5.h is L. Peter Deutsch + . Other authors are noted in the change history + that follows (in reverse chronological order): + + 2002-04-13 lpd Removed support for non-ANSI compilers; removed + references to Ghostscript; clarified derivation from RFC 1321; + now handles byte order either statically or dynamically. + 1999-11-04 lpd Edited comments slightly for automatic TOC extraction. + 1999-10-18 lpd Fixed typo in header comment (ansi2knr rather than md5); + added conditionalization for C++ compilation from Martin + Purschke . + 1999-05-03 lpd Original version. + */ + +#ifndef md5_INCLUDED +# define md5_INCLUDED + +/* + * This package supports both compile-time and run-time determination of CPU + * byte order. If ARCH_IS_BIG_ENDIAN is defined as 0, the code will be + * compiled to run only on little-endian CPUs; if ARCH_IS_BIG_ENDIAN is + * defined as non-zero, the code will be compiled to run only on big-endian + * CPUs; if ARCH_IS_BIG_ENDIAN is not defined, the code will be compiled to + * run on either big- or little-endian CPUs, but will run slightly less + * efficiently on either one than if ARCH_IS_BIG_ENDIAN is defined. + */ + +typedef unsigned char md5_byte_t; /* 8-bit byte */ +typedef unsigned int md5_word_t; /* 32-bit word */ + +/* Define the state of the MD5 Algorithm. */ +typedef struct md5_state_s { + md5_word_t count[2]; /* message length in bits, lsw first */ + md5_word_t abcd[4]; /* digest buffer */ + md5_byte_t buf[64]; /* accumulate block */ +} md5_state_t; + +#ifdef __cplusplus +extern "C" +{ +#endif + +/* Initialize the algorithm. */ +void md5_init(md5_state_t *pms); + +/* Append a string to the message. */ +void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes); + +/* Finish the message and return the digest. */ +void md5_finish(md5_state_t *pms, md5_byte_t digest[16]); + +#ifdef __cplusplus +} /* end extern "C" */ +#endif + +#endif /* md5_INCLUDED */ diff --git a/Frameworks/Sparkle/nl.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/nl.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/nl.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/nl.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/nl.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..5a7568096 --- /dev/null +++ b/Frameworks/Sparkle/nl.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/nl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..b619eb4ab4539674743cea9361ae86faa9c1ca4f GIT binary patch literal 6380 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 lNd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/nl.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/nl.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/nl.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/nl.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/nl.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/nl.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/nl.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..26b2e8affa01d31ba0c939981a08e61da60cc167 GIT binary patch literal 10634 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/nl.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/nl.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..c14506f58f3c6027bdd859f4ed3862af54c61eba GIT binary patch literal 1630 zcmc(fO-sW-5Qg7#e?{mi_99la7(YM{f}kEut>>aC2HT{hE!97-KD!puUChQ)B_zAE znc10VXJ$XYw6C5b-7D3VR$B6uDp-kiY2{Kgjakk0%sA!w;O`4sYxJg!W2A_0VaJ?t zf&Pzf#2$0j%?=ss5&M|kmwH8xG_gKbs*v`O6W%lHZOPsl@~)$}Ac7dGoTw9>sBh!y zaZVj|cOFfbXwG^6!}BS`oj`ruc$t3O%JlEK3|YA6KG3mq?jg(ijKW$z&yf0hr`E2? zbw;(BDvtGF=NT2dU}id_+|+K;P@y3Um+C+Rhbm-QQ-!sBD!+@3^~`pi;k&a;x0`;f z0z}O=E>qv@kgz|Os@X?ZZCt6|pqj%p9bv=gE4isb}jh%C|I ziZ=HcZIv9N{1xM-n3MC*^*ceS0E!%AvvQpQR+?hoE@bBXC8T)=H0!9^&WPjgclUa+ z>b7?n-wF!of~Q~#jS_2~g26(o*Qy8VbB2d|OK>u1{S~xSqA%^^77uMBg(cBy+V^NC z&WgK2%B*kIz7u)!+lqO%h?H6WQ)P=L)}ET-SvIA_#d@qsKv3|4m4mqy3C+1UTEsI4g-GO z_PqPuJvFq7SvT47y18QQlKzn1kr5*JS$^D+OFLO=&k5Oold;(9iyJT885}w!Y<|dJJ9E8mjojrJ^JD{{@9)XR0hVFtYYU^)x_2Y9|Jht|c6oyH%Nsc3OYd#!wXs%aRNK`E z+QqpcLPXl`qW<>H_Ao@(&pkN9t3}?A+z@ zbuu>}5l7-PU~G0_*(;aNx=>5@c_nYt%}4A);wE-cmw4TXI1-=3mOXw}inG!u`53HZ zr8q0mKI-{R;_59aWbGz><4F0X7TKP{r`X*ilx|(0*it!LWd7G%h?l6|9!Hw>c{j^U zTZV{n=w_Z~Ih*71*~}=>r*o&wJ{2gt9F%3B!c}=A8N&Zt2A(&*o@$i&9~Yyo&Q>Lw wY3JC`WBiMIk7Grbu#76OVONf|8viqLq%oq!gYN$!?j9SS@JsOT{k>JvUjc}EOaK4? literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/no.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/no.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/no.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/no.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/no.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..5a7568096 --- /dev/null +++ b/Frameworks/Sparkle/no.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/no.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/no.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..b619eb4ab4539674743cea9361ae86faa9c1ca4f GIT binary patch literal 6380 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 lNd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/no.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/no.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/no.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/no.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/no.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..a28ff7a56 --- /dev/null +++ b/Frameworks/Sparkle/no.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 528 61 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/no.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/no.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..36947a7baefd002f3c19113796b1c9bffc5eb7d3 GIT binary patch literal 10634 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 D8Fwp~ literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/no.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/no.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..c14506f58f3c6027bdd859f4ed3862af54c61eba GIT binary patch literal 1630 zcmc(fO-sW-5Qg7#e?{mi_99la7(YM{f}kEut>>aC2HT{hE!97-KD!puUChQ)B_zAE znc10VXJ$XYw6C5b-7D3VR$B6uDp-kiY2{Kgjakk0%sA!w;O`4sYxJg!W2A_0VaJ?t zf&Pzf#2$0j%?=ss5&M|kmwH8xG_gKbs*v`O6W%lHZOPsl@~)$}Ac7dGoTw9>sBh!y zaZVj|cOFfbXwG^6!}BS`oj`ruc$t3O%JlEK3|YA6KG3mq?jg(ijKW$z&yf0hr`E2? zbw;(BDvtGF=NT2dU}id_+|+K;P@y3Um+C+Rhbm-QQ-!sBD!+@3^~`pi;k&a;x0`;f z0z}O=E>qv@kgz|Os@X?ZZCt6|pqj%p&%bS0v}_ zvqg{X(e4syj3Ub(Pybe(sybEO|GZ0Iru(T%XKAkAp?)v*8K*j}^u9<-wY*N#G*a70 zE$8Wte(9g6wbs9}#yn8leXVpS9i@AE`zp=SMfyXnb3LoAwj;fNuP-CNPM>s+{${KF zD1E1u@AM$)4_P*TU#3B7^gPcR)%u5ajZhd!mzi48exNp<8}-ua@s$u5t8bLCS!E>G znmblM2>qF{Txkx-f(AQ!?WOvfbXV`cYu;LGvi_U=ztY=OC^E;Zvd>IAt+nn@GPC|% z(mWKJ+o)PIa18C18gZUiTxEH7^+OWuHPJ6Nt+X?H@ekRp?NWPVSM)*yWSeAMn0GII zd$nWH&TGx(ON%Q#1G|ydYU99Ki}bgCYaw7MYrUgg{~j=vK19G;8iO+tFuSto%d96l zZ}dgCN>PDkjgXmZEWYttUvwK}oX7I)>#bsBh%Dx#bHUVzPtvR0JJBz`z_aZ9D(}o} zb~+S7_P8#6tMu8wo=ZG|kiGqLNq9RCA7y{8rR`iR5DU|c_U-)Kh~hKhv-=1lr9BTB z@$T?iOZk`ZY;x4m=aH<3UBlyx&CCmj@KTV$KOFOTV8M8yo~76YA1)qg&e*6246%h< zR+`D%Ajc$rHPnAR4p06x?=jLFQ83JNma;1xb)4G@KfwmIK5z-~58K1{1ASQm9I@b~ zTJYV6dV8ElV9!(?;6kk@iu}2;>p+ZJ<%|^iu7N2Dd}nXDw+Kl8W3JQrSk%QsgvxkZYAC``9gE zz6o7jFYVW)VHu-v7@JUO1#dZO8`S~SG-f606u#{`6-FY?LQYN!9~v$FWy)GI?J^Tp z0Vi*GEKb%~CGI4sx~PUZJC{?|(@y4a1~B8tX`b2653o3u+9a>k4{txpI}EkwtR?NS z;^tg>aMtY$-A9>Yhw_tBEw`}-XP;lmZmv=3Z{H|9SA>%}U9~zd<8@KZcJsCIh8gfc zk12cfccwqlUK`mnPLL7HZLJ?D4%)TD&(a*(EOSInw_Y)~A5S^Ww?(^|;5yl#Np_!Y zsAyp9KzlcX_AB{gVQ%~SW-RW?e#u^6?yO3*ZqG3GzJDryvU?-cSDb9iavPu7o`LkC zL09$CFZO5h`GV`2B$@WcC{NRq)?R+=Cl>IW;C^Rf>{5KJ&HPUk@37bQxqW-QZPed6 z=(kqYTBTD-vatP_dySaxhUb8Eiz1d^>vG4Ua-o7Qb-Kl=Li~8?b zZ2!I~?$){UqMiT^?#HHjCj;O??8aSi*_9JVEp~PNz=@RG8{eqJ`0o3(D&Gt-x1Dji zZW-A>ZZJ5-vX@VmoMLa6Z`)Pke$MT>Q{tZANR<5Uy?nx@kGnn2TjQK*>_4um0v9S9 zq@QM72Ku*uJLVhiI^)ofN4=1QP0Oc$l4gBnj2E*0TDPU}zU$YxUyZ!mj{6gh^&QE6 Jc3zdr^F0HfqH6#E literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..082030262 --- /dev/null +++ b/Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 136 94 356 240 0 0 1024 746 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..6da4ab11da41b3eba731161f1225a4d005b8e755 GIT binary patch literal 6565 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.strings b/Frameworks/Sparkle/pl.lproj/SUAutomaticUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..0f615561d0205432b01314ff2db90e7848412555 GIT binary patch literal 1078 zcmchWOHaa35QPt0e#MO|Wn)~ZiLXS~hK0tkaD@~jSlb3@4E@{g)o-RWwFrc`AWeHa zuXAV4x%cZ^$Lc7krw8>lR-#C$KJXmsi0=jOmF7g|iZ#N%@mPu{!aDV=4k&FM@C04+ z+TSIf_Am6VaxmtgCysFIcB*#`9Dm3f^DKy#JtSBu-U!dYI}6_7jQlb;fRPb5gpp?C z*#rUW6+7s~_sBKHT0hOcyJ)g^qVooS`|hUJs}EZlJQeUiQ_<=wZ9QoSpT@l@S1Gl? zTfp+z8P4!O`~Q@@3E5U*DpV@v?#+q5fnsaCtTv3n4kzWFonkU`>V_yAbcbb%PdBK# ztzuPyvxWlODr>eL**W)Kj1^ + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/pl.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/pl.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..dc2fbf34b20611c7a4057cbb3e394fb0d5f4cd58 GIT binary patch literal 10720 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/pl.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/pl.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..176d179ec4fddffc9962c782a7af5529a6f5c74e GIT binary patch literal 1686 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 + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/ru.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..b619eb4ab4539674743cea9361ae86faa9c1ca4f GIT binary patch literal 6380 zcmai233wD$wmzq-_qDnzECH1Uf*^#D6~ZEBBajf9Kxc(O=yX>|OQ$>ZLWnWr1qBh@ zb=((B08w<1LC0-ea79GKh~fgGqkb;qQ=f{s0q;~*C+3N7Uf1_^ZTH@D&VT>^+;gj` zEfkE!GcykX0tYlVFsKJg)j@|!xD%<0{#M* z0E0EK7A}R$U>)25x4^A%8{7$-VH?~F+u=TV5FUmn;h*pd?1Nr-6W)do;UoALd5W^K70)i;2U@p zkKw=ZM-DlTzU?>>xD2{}~ zG@p^EHlxKMUo0lawAPC}-ub~mjAl8u*yHv1T4nWmiN~94ro1_GNTrW9K!Y|wpKZb8 ztqGFhkX#!K2O{mUnl!&+PZ>~igJ`DQsiw4EbeD`kGdAQ8{ts}lG)f+}N1`jJPiZ6^ zpXUqvmdnw48c$vwr-n5i@4`qV&cf_!b`k4j5!S)3WfwC8yN;Py8w;^(n4W}pYZQdCqT+}@;_Hu~7iN+J7eE0`K~hSw&CICTD1zc1D25W4 zPWaAC#C-&)SB_VEy!5a2ECtWKFdODT8I;3ZsDOFQ%to+Wc0Q|MHEap%VrU=$OXOHQ7^WB_VFHk_uk^)RYCYZxUy~ea6wV@0gH1&=jluBp zeh$@WnSweb-%yO+NFwT&8OP3M!v&6=#m-@tcVQ_s!ZPqd6B+kI0Ay&UqXmL+A*_H9 zv_ep2uQGEBR7?KtG#VS=-6exc8(lh(aJ}I4@**WR%DLGx~?#{`%>F&w7U0v_Mdbk`mz!k8O zK-vUX!c}x!4cE~BwQwC=Pjlh*`$*Mvj(3D)0+1*Xm&0)d_`-0Iv?9moZDA<5Jgg{+ zrbnGBB5?n8wg7C9iKWsyatcHafb#r}WH1~43OB*cq#h!IN+wl{L)cI@n8qw?C6PA@ zE*hQC5BgQgmiZ%LO)R&=9o=vTOec|%EmeMf!)Oieg1dX*ZX)4ya!ege@ko1j4|H#Z zZs>t6u=V%%HN*^}of2X+5+b%K52$lLPbo*NQqt`-x9@+uRINTHV*lZ}X6=61(E~f+ z0mWIGyg$(wVL(s&<#wiqcfv!Y;a#NR-K4l2mc_D3Z|=i?(3_&QM^&vo4o|3p7-?pi zY*eE#q_Z$rlJO|Ii3$Pnrf|p^hIs-*M z|BB_&NFp34j)WqLUaLsI>NNpI+HH$OMhwlfp&&0QiiK0yC8}EDgVGH~K#}!7aDOBlE z8k9o;h1V2Op?4rDdS<9IM0l9lK6{a0s_?aTpHAv!EW&rdUU?*=#N= zW91a<%s-2DGz4)Bo{MAESTCTJ2Usa9_&wabd@bB;l3IRO*HIjg6Evw|I!?q47>tu( z6J}E4eF3x4j=4C3j8DcXn2%FQd@rCj)3i#@TA2vaoKfmk6JB8`E=Oq7ytS zk4M6)bg~--(c`U@qrpfZ=r5yu9i^Vc@&RpB0`)a1kwdWcPY+~1;V2#c|#8>t>rozvV`1J-H}txYM; z-h#6=U62a2R{bi#GA!SU<$Wrk@wEoMSV1xlqDO_(+v1DLfilJAuwOQ_Ioi;bxS$6Y z;6lZLp&oB_Opcbw&Avn^9!q9ADiGCNqGkxXX%t2$m8G6y83Src1tYDlq%!M2y*@-G z+(Pn>iZ`sqI;qQel|yTPPWFGKAo?*t zM>E!A3sErGPr(pd$QIC1$>s?tou=RVwFSfjVu6X)@}&!jJ&CZt#a%&kjP}bE4yZC+ zsVY<_^kR%6dIjUOUS!1LQK~MPS3`Lfw)bE=u1==4zQR{+qwqn!SQ<^5QLRkVdUoQ) zJ$UiJg*7=Xbka6I1EIWxpj<;xHV~Axe+K2cB$OLeDC-m`>s2UoCg&?FrwU~@Eu8-! zl$%s2uf{cJK)G0jauKUl@N4LY&J$^0U~lLPk?yATJB~Nu&3FrBvZd@owt{g-@OHcd z@5H^^qSR-p@EzBymt)@gCWIhrZEfiT)o#th$D@9&b7U7;p#8v5of5$ix zLi2#wqfiPT!FZK2u)-!KsXPXrZO{O_5efc!%HkHPK=KIid2A;0YrNTm&-LJQ_`JGx zOY*HS8ufK3rL1yp6sTY(+f$V(AK-pEQ_5P50<4x+OO(`auY5$lB&D2BLU1 z^*_#SP z))j)3jBIorUl zU>n&cb|t%twF-h@5(W!aVUXYw9D-3W3r;~VNP;M&2o^0e`Yfqsh-CU(g`LZJIOGOElz4To#mA*BlLl#V&WK zHF6>D5^gqW=04%R=8khGxSzRSxs%*!9(kVE^G4pxTX{S0-2;4Zv7~In*LngVXo^%eRS{T=$J z^zZ4vGdK)m45bE-p~m1dgbZ;5GhAi3#&DhCdc%!|TMc&^b{L*8{L}EX;aS68!x6)$ zhA#~#jRvFLm}(qloM@bCEH;)KYm5eoyMn)?;DRAj~PEQer){I_?by( zGMG#zi^*!To1CWeOy#DfrVCAR(^}JIruC)`rj4d6O;?+4Fx_Ih)pWmUm+3Ln9@9&v zy{3Jp*GwOozBGMf`q6APOXd;gbn`Ux4D(ELfw{Q) z>nxXBHdr=VuC#2mykyyH*=N~rIbb9u@p`P}lQ7*nYq_<; z>akW@Tdfi6N^8s-x3*h5tew^yt*=<$w|;FsX%lU3TefYEt=v{&^VlkF3vE@ldfQ^# z5?iA!V7uG4-S)8UAGXJAdu;n`uiHMgeQi5o*V*m%q4tsX@%HoWGwlWTGJBv+TQq2mk3w@#BY)j8aGwsVAYq;saTz**!han5qi zc9uDtoHsjfb>8m0(|Nb^9%qkptMl*9hn;(zz0O0ZxN2ODu4dO?TvxcZxpul9cD?L6;5zL3z;)bpN_2^mI7l2Kri#PG zv&9kONO80{M$8a%#2Mmzae?R+tHoNeUR*3L5gSFH=odp`mw1V|M!Zy9CtfaIA#M_{ z60Z?&5$_Xsh!2W8#a-fV@e%P+@p17<@kOy$JR*J}{wi^jQyMCzO2efzX^b>h%9N_5 zTB%-IEG>~5C7kEKtg&!jJ;@1*ag lNd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/ru.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/ru.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/ru.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/ru.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/ru.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/ru.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/ru.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..b2f8b50abe452bdb19173eb17458f1da6d65a777 GIT binary patch literal 10634 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/ru.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/ru.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..c14506f58f3c6027bdd859f4ed3862af54c61eba GIT binary patch literal 1630 zcmc(fO-sW-5Qg7#e?{mi_99la7(YM{f}kEut>>aC2HT{hE!97-KD!puUChQ)B_zAE znc10VXJ$XYw6C5b-7D3VR$B6uDp-kiY2{Kgjakk0%sA!w;O`4sYxJg!W2A_0VaJ?t zf&Pzf#2$0j%?=ss5&M|kmwH8xG_gKbs*v`O6W%lHZOPsl@~)$}Ac7dGoTw9>sBh!y zaZVj|cOFfbXwG^6!}BS`oj`ruc$t3O%JlEK3|YA6KG3mq?jg(ijKW$z&yf0hr`E2? zbw;(BDvtGF=NT2dU}id_+|+K;P@y3Um+C+Rhbm-QQ-!sBD!+@3^~`pi;k&a;x0`;f z0z}O=E>qv@kgz|Os@X?ZZCt6|pqj%p4qbaXmg)Fy+WW(pT1{|s@LZipwMNk zWB7~>%?WF}j0>ed4bL%agsu?LiN5zKW23M{`*+q&*i-wT+wX!_4b0r^dcqAKbBuP@Unm7|zkny{*7Mpyx<9BhxzRlR8Z!12F>v1z~@T*3DgLc!} zkLWpw2lTBo`kdanT2l?G@>yry6hI+HjVW@DWNiVlCzoOdwcx)IpRmI&d=RqV*i4sVr@4rq7`NaVJgM2-@*WwR6t@sn|XK`(gpLOO+Lv!**h)F8lB1kq9_9rH#ufcFskyW=SXUMOx zO*UrCO10W}fD<^-Lm%4Aa2daEXLM*uKMv_1^6T6zSkwBF^*S{>HDInhhWi6~gf@?M z7@3!lRctff1*0PDn$HlQ$Kh+6>$BV}=)6?_mYY=tHY> z-AkTOeo^tG^l*rsNIq58ykj1=vZXsoVOZ%Q1^V^{B_PB9|FI6-s+4Vd? z{z+c5+bhp4x6xna-ijz^-X`87@_$NJpxiB&U){F2{Lo_N zGP12AB&0nHO?kJ*E46|6Dfy%FOy!XWZ_QSeYc`mn+~zS^O@rJ>IZn*DF63RF`EAF2=uWxvem0KmSY_v;MSmB?1!y+Gvj*kj!yZp9?iXKV zqj48ZT^_t%RaUTmH3?3Yq$JBLP?#zb^{JFd78)iu8x@&oQHxN{n@i^BslSR$BU*e z{M%eayMr(BoTG~Qz4#+iuqImp;)}JJgN&Fb`bybV?RUln{KjIX$TPHDym@!^%`4Mh z8B#Q=3XdxJ@8@q8t2kvnTa_evcA=rFQ;&98d-AGN^;G301EK)0z$@=NGXARWQ$}h| zvH#a%GUpw!>PGtCJS4#XWZN|3pw{FrSyazq9*+h<0F&Br_i8^qSMx-*Q<+OMf`cX(*7$ljV|zP(CbzGeAV6; p@O_k|G?eW;I{X5=Gzs@D4)mC>{BK8@t5&sn#jw1d8v4xE{sT;BJ#hd4 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/sk.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/sk.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/sk.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/sk.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/sk.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..082030262 --- /dev/null +++ b/Frameworks/Sparkle/sk.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 136 94 356 240 0 0 1024 746 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/sk.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/sk.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..7a79f4dc117e0ee56e5dd32a6c98abab06f7ad6c GIT binary patch literal 6574 zcma)A33wD$wm!G2m#SW?x(XtzEt@PMbT$$QTNVNV(!_KUwm|4~DoLA8cjzS{gy0ng zS3rGmg(?#DzIk)d_jv^Lyzpwcc~jIsf_3 zxuBh-Y*nI*N8uqBjD#yj#Um|?M@4F{R08o> zjo|e9<}2+=U4C+)3&_UZuK@@A@{)oyeOR48?x*CCunnwWgLKG-$uJG3Lq5!gg|HkV zkbre?6;QYu*26V$Eo^{WVF&DlJK!$pf_vdU_ygPzhv3if1Uw1H;3YT-r{GQa5I%yB z;lJT?_zM0B-@w1%Cmj1T{6dVxM(ji;gUDdGj|?G0$w)GRq>`Cr7AYdL$y~C4EF?a% z2;VLyOUMeMkb1I;L`f@YC!J&+xteSwo5*Hz8@ZkAAUnxjE#F!b5;Ta2KC0@qHI2ji+hJ=`@Odc~0-e;yWGnkpo zEGC~RU<#QcW;RpI%wgs-CCmb5AyZyCDx3&~-WOb82M0Jo01;dufeZs+Af&)0FbD?2 z5Eu%>U^rX~Znz9az(^PcqhSnO4r5^)jE4!33KJm>CV@wb(Lz05RsK*y!Ke-L`tkz- zB^C?T21CJkdtoFT#&|}edPECD{#Z7$o=eG7wiF^qC-nb+s_H!Irpa<4BrOnr0l zl&XwALA5?XuWrHXs|upxkg_Nku8XwAszwD=ed>g|8AvnrPE(~z;a$=LU0KQn_V+We zIEogwMWRh8QydA$OZ{PggA!eW^C_$2IIzm=E009tG)yQp(dyX%?MM7tkuY zoCe;2GPnZD!3PznsS-S}2o}QpMrNuzC$lrv-7z^U)jc_@v-3^Z z2-m^&a0A?kAl(Ev!zTP~hAnu!1-8OAjD;`Y$E?P4ygj5KfJlkB5{|3D=ZAxsD@qLC z=7)j}VKt*LJX)xbz_H-EWYTgmgh}L{yDPQF$o>nS>)H;$!EQJR52*fNgnuOo5h#4xmy;JK`h)N%O!S8^(GO!UswXC^}rye?@Mo8)CNcUu?y3;c}Do-+Vr{HytN|dMIY4}g1 z$}>r#{1-e6&%qHm3`gMwcu@;efj`jH5RD|lb%l{oL`~`nOmgiS0mB4uiA3XAfqJ1s z-00;rm5!n#shdu68B}@*vjECY!praqYI+rp!)wq3ClF>|aE*c|l_FRW>NS>)$S(t+ zqv;rty97;GkO&0p{BxpytSJ)kc-*B!bQUATqJ7!w$jNe7jrO) zl3dJ9@1tU7`u{;iBES)1(5a|VDiDBHx3AnSz9|4Xy4^m-9(m zr^K|0-68J2Ft%mw8h;uYSdk@J+=n6<-Z_(G%xR4g9olILW9%$6^ zffSQDU1W}$Jm{M4yat!v?dW4l$h^H|9+|JF8I}osoSIb2F=fu*>BCEjcQ5hwCK&3| z2lS9KtPw#{t_8=}=#MIOCE-}y9}XxyovX`MkjidSNvc$XF7f&*V@kA0srM&B@mR8q zVvDL3Dy{tBO^q-znWx$*me#MU^@l?3dS{D`-fz7=iA`iVT8Hf;Sw^bKa?IfhT1iWP zjnn=lr|UFMdwC@ELY>f))77;^C3JcYb|0A;ze#A)KpOFPC0R~FNa*H1LbuRzdIkQ< zXsJM?bNIJ${VZe^a*D%lA|lAx-KsolMeewfO)YrVIHfTqjI4PSP{i^NQ4883oyN+ zQ+3I!2<;}c|B9Xr8J_e{v;Ht&gD`JEn5z-yMZX5~4M~`9)?i+&!n{O-IWrUcxg^Y! z{~s`K(O}+2He3YrG7aXXbdic}M381$h9|>Uv`vX?41LPoifE1c}G#FOf11wkin+kP>>buiE^DsyBcjfp|j5pYyD@s_sQRV%s zRr$U#$sTV}g;pD}VyF+aX=nphx0SSp*3(96b+xR<VuAdd^M=W^}_I2ysEcTck9iCLT z*5{>rGSKpztjV37OOrA=S)Db);Ev3+EKf#mhB6^D7t{CrO{Z?ntK@hWIj&{~cHl|q zmF5=pE2yeX+X>LeoggQ>$w@sEWUY%`n7{~OZx?QLJ7l81G^F=kWofoDc5-HS(r!lRcP)`KhXfJ5 z7ylxvYE+D4wFke={kB9rSxjLo?b(*r5or* zdL6x<-av1pH_@BvCfY2Bf-DGvRTv;Rgn@!2aDqi}3cTPFi~{a?AhOIn@a|U0tzMV* z^Qld^r*s?q8>N+ZYA%LuW*}g zI69Gy8*(*Fh`EZ{$ZTi2m_ITvGOsfqGk<5kWxi*AV18tNX3nvMWmzL@W_i}i+F2(n zvJyLhO<@PIBiJ<7!)CDa*$Q?!+sHPvYuOF#4t5WFfIY|_Vjp3jVqao=*tglw*e}?> zvtO}av){1avHxPv8d40S4U-HxhAP8KL(tG4O_#eZ!hVKnO7|t4gHk>mOBWpAm2N>PP5ynx*F~+gRbmI);EMtMO$XINgYn*3X zU~Dw*GCpB^%lNg)VH#~JHhE1|Cci0UikqlulWB`-t7)5QyJ@HCF4O&{znC63J!yK{ zbky{Y=@ZizrgLV=Jk&heoNk_Bo?|XIuP`^7BjyhCcJm$P1Lni#$IU0rA927joPjfO z9B1Kd+&FFmH<6pfdAJNNi}P|3?iy|jx0Bn?-N)U}9pnyi4{{H2k8n?LPjatvuXFEm zf8{>szU2PFea)MACol6ucn_b;7x7o{HN2k>@Cx6+2l*DhlfRMQ#^1&7=DYa&`9Jc{ z@z3)w@W=R<`7`{N{8#+f{ErrcWuRrGCDk&;GTTyaQ7jS5&6drUTP)iw+by?Qc32Ku z9=1GcdCc;-a6}EcYTH87swXL^ZYujkM-nPlM z#kSRUt8Ir}v=6qAv5&Qnw`ba?+4Jp->?`d}_SN={_AT~1?A`VQ_NVMm+n=!?v-jA) zw4Zgj9Wxzej&etZqsp<^k#Mv*+8rH^wT^WT>e%Uc#c|xx<2dPf-SMX5EyqWWPaK~* zzHp{E$2!M5Q=OBXxy}M-k+alU;jDK?oa>y|IX64^IUjaD>U_-kg!3uqJI?o7@VW4<$cmykT$~_g ziv{8Wak02mtQJ>@E5%x|POKN3#AY!f-YDKG?h@}3_lpO_2gHZPXT>ApQSn9bCGi#U zxY#4UEq*BeQ~bdtxCXi0u3T54Yo#mb3cId$UGLiJ+Tl9ndc<|i^|I?#*K4j5u2Zfz zT&G=cyWVxZ@A{kTOV@W2FIgqKDk&xo$^)k)$%p+2KhSq2Kgp=le|UVD&H#qPQG2poUcOu2BX`RO*k*RFSEaX-Ir#InPN#v~N{CRJz*Y zaXMv%-7zQK1@#NnXjG`@rf_bt*MlO{k9lW2k7S!3aw5-Z!bxPEIqPsjeN*euD98te zp(fOY2^`TqvD3)DqgF}u^E8|8qD^m4hb?}a?q=@S4YUT(O7yB2h8~*1^+0~it~TPS zp7cyUHM)gy9k4GIbpr2*g#(@7M{vk%`jrXpFSA!y^SEy%b)$|nOs?#M=aJ&4) z(N#B==^wP{uev!Wb!T*@bmU-E@HSF5e@aQ$ + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/sk.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/sk.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..13cdb318f106dbe76d578781b2ddfdc1451489ae GIT binary patch literal 10776 zcmai434Bx4(w}oq(q?UMlQc`yG`R&t_HIC-g0>)nLRnh&rKIg`8%dLzq(G_F11h5L zx$irxfQsOPil8Vef`AIbLsS%3#9iDTBJ$0-H!TQ!-`D#~a+kBrnfcGmf6i@nQ#ce) z1&}=0(sWX1XL(xcO=R~w=Qs-#(#a4b4JLw|tj!<{%wU0h=nMVe0vH6Pa50RB8fb=AxE8L1 zg>XGAf*asQ_!ry<55ps{7?#5-coNpaI(Q1!!zOqg-he&u9()KN!6$G8zJYJyCpZd! zz<=R5oWwcS5*^VK6UipI?EI%L*xtcCHb0sM}8u|kYC9k4Xdca{Mf4(i z2^~&H(=l{Bokpiqh1St}I+tEaIh{|hq1V#u=)dSK^iFygy_Y^fAEqnlqjVj8ims;{ z=!^6v`Uc%f-=^=-cj<1rhrUPuL-*5<=t24wJxsr*N9d3AC;Bt}h5nZwW59IG0Bf0% znV5|pW_IQf&si3e@op~b#Lj2k*g$px8^xxw5WAesA}_EoYh)1?Wlih~a+JkbGn>oq zVb8JW*$Zp~dy#Eqo7hY2W%!CF*k<+$dzEcrud&zJ8*D3klWk+$*;{M}+sSsZx7lvC zm+c?lIno>seUC6eB8ZBt zP!i+IEAU(EISeY-z$GvoM!=sxCvbh9dPHn3|vkN9>S%f@`mcHpgldPPvbJCCamT4mTZuT2P=4>Y)KA z55eUy3&MCrAPP-z1;ii@Q5DU?lH-(kQ#4Ym#LzGm%}q*dc1W3nqNrNLxh{?f&D7#t zvxkL)^>H-&5G5SO)Tp#E{CfA7-M4LSaR~GCoEXMX2JGl;xM4qfcvVK~c{@!GNN+ zo`KeWc-pV1t?hmIH{1j_!!2+tYUwt(9qz#6PPhxd?}mHeUNlBUO%UB2e-kZX1vQA6 zNGOqn(0pkm)QAg?gMP|>7%ri;6|6UQ9Uh+bbMW#H(j{!opI*%39-h~`C0VCgbg3d^7b{SRkTJ+plv z?AGPXds?>@@aS@Q6jmZSOHg2S5+Ug{Y~OLAHC+vlt$@eiad-mOoN7D)@q^$LdWc2C zh)Hn+N9sUxmE@c)g7m;Z@Sk#zS8pTy&$zG6_B1@R44#2!#d^@h=kP*Q6yEJ{%CkNF zd3XUmeFJ*>M)b=NYaEje+O!+$zb{+M1u&uVN)BRoxCX;OJEdg*B+{lcjY~KXWoeicpsZiAVj(dV9Z|F3;S@U|G<8D9}d6= zsOgH(JOzIQN-!wYsX)su9Rt9-@bfYZZWLi;b4{o=cu6dXaiv#TG+e7G_aJ<{6h4L$ z>@70NJ~#xQ!e{U~PVfbM317is_!=SCF0}e9rV%g}3#n)d)+j=5q`f`4K`-LwZLS;T9biC`1z3iBKY}i2IW}&h}#BnS?8zN>WHFF+d*g%V+U0 zryr?tSRrO&fjVM^29k!&E+^?kA{lttiGyS!>vTbH;vrek8}%&G1Lh{xwZ_DhIwht= zknB`Rw()UAfNWSaHV1?7NF?@?)qEjLGWimOUXyB^{=6R^#e6)kG-MDPM*GY8Fph{4 zIYFc-C-IRSJOVI}-^p*s5raG<`VAFjI?KLc^yci{I0WDsIHu3|dr zAQ)za0uY0kO`_p&X=5VJOHi&d{9J&?kkOJ<8UPTVvgAjb{X#MOKx|UFAH~NNlObfN zx`c~S_?~1qRFM(nQjyRvQSpjrHCmSCgHY&!d~gObsEekw78Ul#ypfmRb~-%2AmvGT zcIOvr@N_2Oc}4`#5LQ7dSCC3FJ{d_TD%C^6p(e37kx`PTTGNSS(lRoMOjhYuk{p%B zV!;-XWyG)6Y$}=dD49m4lNs8WRgxP=9oiBJHil|6b(IBUaWMr(1u(!B zNQq6*3JA;)AwJ2~{D|Wwax=MwEacU^20yj< z5r@L-cs;LvoZL?CAa|0x$lc@~axb}$+)o}L5Aun85}(Yc@Tq(npU!9SDn643d4qs8Sbf4r3smtElZo z*r<}u(;k+F!_hfOK2@vIkoc*vhk+3Dver;Yp>fNO@q3*4WJoYFx=D#7YqQd3tXPmc zA&(2=IGI}OQ6VI6&5c5EO_1dMb}2jVJGJ&hL-D3?utgJ16{x57;B3i9Mx#vvj~!tf zn;WKUi8-KUX2~iM$!yddZykAR8F`94EwYupqaYd@QnOSr)`Icx)P>gNS+ag9S&tzC zWjHlYTzmLDd0_>4fo#xRc_KCuUOcHw@&uDuObIK&xKbWP@_H%&Y$7i$BQI$L%%M`P z(aq>D$X=3_bw`GSJn{;8m25$hHJ7*W$T%*^O9DiW|Gi9|G_=9U5kZ+XQSB^HX-hH6G2 znU7&l%s8jDQHO1BGE_mktCr~)7B!;Q06f8CcwE6FlE;1${}wK|=p>&lZR4G61^|dk z4kQIFSpF%v3)TQZqTpsn0{+BL6whYk{TR$cqSAaC-6NmE0rEMIBc;fT zIqV^aFSq`PkU9Zwh_gudZIP`p8T+a{6K!x7!smOTe;vv z(~<3*y3(5eOpdM~N87m(j-@p~MaO4_nkpMY@nm&8P;37i`F$Dr{d68L)TQ#mbKvM0 z;^;Wyh$D_#&xNCt5T%4{r%c7sm53u5any#6+}c`LG@udsMx^MoPgShfjUt5r+AnzI7pq; zMcvdxv#6J5Qys;Nlu_xh=T3S*m}xpeRASj~)&Pon%Qz$BL4UR_2!GC2KdU?_5GpN@9PiD)h}p z1pX~*04*xS9gJiE%`g7{kv~I4eh`&*MgZlvsmQ+-m50a=Bl3eNYXo^C_^Sj=R=4^%MsvSx# ze3ziY7Waojq5>1uv0!8(@*oyR*VV<9gxEH%#PT)X6vUcGK({P9SM=w1s9Ly>-^1^f zYzC}u9?^i&BDj7AUYBauZQ?owYmrizF+1h8?eD1l)ms{9%4Sva>#?*;mAHdb5b(l5|?( zKyRhDB@2g#_=8&EU{4^&J)>$!mbUb6wY1I0(zgB1ed5ljyg**>;ym?FJk%ESAbn^# zeMnmp?xmvI&V{KZn3qRjJYBA8bBVyz(qvLbukEXG(xL)XTEG7@DZ?(hims-Q(Lq>B z9iUINCuO=8Rk4CE=gatF+wcp+8tjkG^B~$rGn!BWp|0LMkNmxD5Ja7fU_J`y9#%S;39x_Y!48KJr!})yr_a!kgI}X zJS`UVYD%)rfWDYIvsw##7v&Wc7branMf5mzfe&r}cq^bL0!At0OpHKsCHzu=? z(uk}$p-iepMp=(19odmO=mB*TWC4E$vm>1_M}1TBJ|ZBwJ5N6rnAhdAcd=lOd69Df1#@D}0rZbPURYodXHcmuw18FxB`)t+E3J?l}jT%zC5 z@8}Op=(qgECG>l~fp0{}W6l%Xlxnc4!xB@83Hz(rw_IIJSu~0~S=(-x@UTpvW%s$RH1!$c?E6)#gdguJjt%`6%K~mQx{cI zC*-wa7gqg=_pTWKk4i`r6JL1zUysjWE@oj?sA6d>U0n#}Z}Kevp66KjDY?9)y(8p}KpDl~cB6$AJ36 zFmQgdjtoRZA=z!3cq`L29vD3*qGGY5V?LTd!*!q?v?8smHCcYgS&>Nm?Q`Xyx?iBJ zInD+wZeRcG)6QGifVEOKZo*#*705cq!f0BI!KVZnNeaF-%)_^b<6tC~jyb|=NN`5L za15%K&_6Myj6wS~;#411P;$-m-<`Pcji|Av3dzvJKYANY^_C$8|H`BDB0|CRs7f9HSj|MFwJj{nJz z^S}5B{x{zvnIu^XNmHa+X_S;9>7|j<#ZsIdv2_AxueK4V|7!|VwA zmi@qfVn^Ap><@N~9cL%lNu5FG&^dK(-Fdn`x?sIR4=$_N<*1f0Or`xYPp!-mFQ1^-MQ{CsfFLj4?M|9unzSo=dZhfx4yMBbeLO)GE zLqAhrt*_PB=^ONy>u=F7(XY|3*KgKu)4!wtQ2&+wYyCI+@ATj6f6^b-|Em98|3``; z#h#Lx;!5$PcvCv3P@M)r#_PUWa_%qr&FIz-IV%n>VeclslOOf4U)lQ=wc`^ zlo*B?#u=s=Y79}sBE!vw#fH^}b%t$*{f1u+zZ?E*_|x#0;cp`teMY}gHg+<0Hg+|3 zGxjiEY^*cRGcGjVYJAwZ*tpcV-1w+*mGLp-TH~|E^~SBnUBqFx_Rk$8?`*scEHYlj&vCE2b@` z*G>CPUziS?j+l;`j+?FKEORGwp7{dv2=g>^oq3MA#oTIcGhc09XMWlImiZI&5%VwR z-^_oQkC~5~Pnb_yz``tgORB|aFcA)~VL%)+%ezT4TM^dY$!F>x0&n)^*nBty`^cTlZVPu%1k_rv=iw zr4^)Im^M7ECQV7JPYb2ZN^4Aurd^R1Pisz_lh%^fn%0(fb=rezPo{mC_EXyNbWeI= z`o#2j`Yq`z)1OV>oW3=ETl!n+JJS!Of13W^^gq-8O8;8|iAp*tMKYi}TBJ0oi_}%> zCiRedNqwYzsZi=G^_K=nCDI^itW+npN%u>yNe45`8J#jpGAc8!$+$M-_KZ6-?#{S3 zW0+a}wl+NRs8Y(d*qHf~#ByViD{ zZISIp+rMoqY#-RZvz@f3**n?u?L+L7?Nja3?N#=my~eKCBlaeH%$~5f*q7Va+n={@ zuy3+&x9_okWdGQH*#3h997c!D;d69%6gx^CBOT)%4UQ`ua~-!jmN=F~!pMyzAKG*z5Q%Q_k#^*(I}UX1B~9nY}XmWL}UtICE6yjLeyt)tR-Kb(s%j zuFZTkb4TWZ%)^<#I*HTlbUSmMy`4jy!<@sNmpVr}%bjDKCP(WJm*U1 zI_C!G%g$Gv+npadKXx8+e&+nb`IYl)=QqypoIf~!a#>yJt_+vm<#0J&ZdZY;!ZqGC z(KXpM)ivE!rJb=OwcHrIC74%aT%S8lJ{=k~j0cPDojcUN~e zcbR*ryT!fGeXo1D`$_jE_g42d_gn6r?zi3Vy7##Ey7#&FyAQZObARbR>^|Z?>i*6B zhx?dE@_0M}&p=P9XNG5{r`l8Nsq-{=T0E_uHqX_bJ3V)M?)BX7dC>E;XR~LE=XK9+ z&nKQwJ>PhK@f^!?X1TMnva+*$S^g|JYhYG1>x!&+R&&;ztd^{+vUt{ltn0nt&G6d2 znO?V7_V)7j@#cF6dWU$2duMoCy=~sBz4N^byw`cJ_uk-L=6&6})w|96mUpN3ZST9@ zectb~b=m3JJ+n)*FU=mEU7bBE`^xOAvU&D`>}#|CmHkBabJ;IsznHx#`{nFcvbSWv zo_#3$aQ1PZ!DseaeUi`SbNG7sF7yrejq=U#&Gc3KYJGLSX5a0;JAHTi?)Ba8d(ii= zZ>8@=-$vg{zOBApzOQ}1<#=-j=1k3*o>P?*%&Eyya_VzJIXC7k%UPH6OwRh87jjhI?7>mTf&>Ywhf@(2Aje#Kw!5BX>L z8~suL75=!t*+0kM;$Psu-hZoqjeo8GDgQJ6_5SDm8~hvnFZnn7U-iG{f5ZQ#f4hH& zf3N>r|M&hM{XhGE@&D%k!+*?w+<(GUEX$qbE^=47o7_Y0 zCHIl@&f-z fcFygR+ch^Yw=eEM;~&M+Tl}#PwBPpc+@b#i95Y4) literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/sk.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/sk.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..4bbf5a662a34fa7ea67700473c37b0cbeab438bf GIT binary patch literal 1642 zcmchX%TB^T6o!AdKE;F;vN2+mh?hhcCMHUZAg=2zHew-#df{zdx_9M5{mx*lEja8* z(@y7dX8y}L^ZBJ!)#TJtTL;QC;^`}4q^f=2@9RMkqp_}Ndps}9UbE_nbv@dMp5vSN zHl`i2ezMlF$AEF$;f8U?KDPTvcl4cZ{TZ23dMossygUB15qsazUo?t65L96mgSx3L z)jh5nIxVZRa5NRr?DAIB<$H-**ZRPT1cat?%xI*0{xYw4tg&91kG;ABuj?iMsiGy* zJL1KGCG*1^>g(}$#@zqw_B~Elv<>g&K$aYp{67EV_iRT)5k>VI+AOFaip-U2!E6@C zX)YanKL>C!5E!isYP?e z@pU-&;wviweMYWM^D9@ho%Uebc%~?li)`I`WPth`q z?6RVY$NBD^R?kR^F_4J^<&rehJ=5Ly+;h*p-TwWL@NT#jvTzv2`tIrbRDXjo3Ul30 z!c;A1p$L7o_0`f1=lZ7qv06vE8t9qZYP+S8u7&+@U3c$=VK@pWY8~r0Yqag_{$qW3 z^8N5;;{WT;kb&(+57LcO&5 z^O@`)sIPCx%nip=ERcV$;6uk6CJ*z}wFa($lIT=={&&*$pL z)AaK$e9$U8KdT>m2H_pGX@#9P^m{#gSk0$(R&!uqY2(iIGMq+Isf&NW4q6)tgm-v{q;k}i-M;oJofqOKQM_0P`I0tE3#5*b4 ziB{uSx$3Tj3GeQy^?|JhT_9Q=V=~oPQSJ;YbqAK%SepF@X06YUN=i9RH?fmg_fc2@ zntG~FPuDZ8d#qm9#fZ>T>pu%mtM+ZIU^f`$hD|%VaG>?M{%tE?%<}l+GP!iGri-6z zmx64g~m)hHgyNPn;vuhVTP;4!CAJQ6Y93_Qnc62S~44mQwb7qr!$c%C+OcM|8m+1` zhGK@tD=`F@&P-j1YH~O&R7~f3n;6N$H;T_+^{mGsye4*^SM#>ToWI5r^t_@39qgt0 zcHN~CKs|iTw7N2)yHVHw4a(?Tq1l(=nW5p_9qG>N;W%5u8vV+J8&w{aa$yRKCm83y z?TLl>LM=!B@G2gCB~wO!qzpSXb`_>gFT(@G+7hmIKGBs|>3AWRhv4xuwGjdTAB0^C z60$IByE2T3A61@t8Ca8l$=a?-o{?ky=WzuCW>O3GQPe`OKkl1KK|M))Vi(l|steYx zs$*4c^iWmSvlBJUc4VWaXfZWbs;#;j4_(e}gm(1vjz(waOBI-M!w>j`U6U&HwsJnZ z1gc~z*jSC$F$Q1X1CmjQQgE9zcINjDFF#MoZCBCU$!ND{t-JL!A}w95avpO~Yqw?d z7qY0nFN?8RxBIqoX+2MqK|Djlj~FMrEy}aET3h>FJ9XLA>x)+YP}WAp^*aCRR)0?{ zcOLmEQ#^NiXv|ONKPd(d#X0$>Vg@^D<&26=*fBAEQ|7X^rN-xpvNimh7F>oodSku% ztH%FO=+v=A+1iS-`{AqFTz=P%dcvNl{eEVEUlPyi%I}pRDo+jAJOk8QYfpJ4ShlG7 z-!^LAyIPU&L+YzVoxQSuQ8mgwzAX=?6-J(O!khTBnMIrI_GjDi_{FDheh%$Spr-t1 z`EC28C!St&+C+r`Dt=xZcP_DttIx_FW+X-O^LFZ!Bl9$8L-G0DCs~~C!O*giiQq&! zXGZPVQzl*fySdlVA|f_3Fr3>wgWv=VzjLO6diXgx6#{iG=N(j$r{THIgyM-3JJu8R z=@i6NIwG>t)9g>#m-%TCw!Y}Rs=agJM_R+I#_M0SDs-|P?mp7kWw;@ + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/sv.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..b619eb4ab4539674743cea9361ae86faa9c1ca4f GIT binary patch literal 6380 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 lNd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/sv.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/sv.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/sv.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/sv.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/sv.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/sv.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/sv.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..c4116cc628a85c11df80a6e1f76713d8f7dbe673 GIT binary patch literal 10634 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 ui7QRYwaRtMJmnVUU&i+;#4l82- literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/sv.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/sv.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..c14506f58f3c6027bdd859f4ed3862af54c61eba GIT binary patch literal 1630 zcmc(fO-sW-5Qg7#e?{mi_99la7(YM{f}kEut>>aC2HT{hE!97-KD!puUChQ)B_zAE znc10VXJ$XYw6C5b-7D3VR$B6uDp-kiY2{Kgjakk0%sA!w;O`4sYxJg!W2A_0VaJ?t zf&Pzf#2$0j%?=ss5&M|kmwH8xG_gKbs*v`O6W%lHZOPsl@~)$}Ac7dGoTw9>sBh!y zaZVj|cOFfbXwG^6!}BS`oj`ruc$t3O%JlEK3|YA6KG3mq?jg(ijKW$z&yf0hr`E2? zbw;(BDvtGF=NT2dU}id_+|+K;P@y3Um+C+Rhbm-QQ-!sBD!+@3^~`pi;k&a;x0`;f z0z}O=E>qv@kgz|Os@X?ZZCt6|pqj%pnbhlLgFa8bnedctS-O^wU zOzVYd+TER3Xj1&eb~5HLJC4==q(#^nB$W)p|Fy7QJ8B+Be)= z&AgUC(hq($e$QOP6}p~!jrzJnyFw^5q)Sh&Xx~s9*NNWJYW*`I(9*lyV^ex0#~Rzx zdl35Wu`D$PWYLcmZSIlY6>eS6Uo~#5Ihp^;-)DO23Pr})tgO@1N@LC2l+4UOkTmaw zW*t@23>=rQ-J9vE53ON(FX+k^?1Hf@3fAm`-qfmR-VWGvqA$8-@>aaRkd+4Ni+^0| zi*GdKNqEiHA1rgN@tOOk6>Y}8?lSoRYvUta@yt?pc!Bv{$6c$vqZPXPZRky15=OD| zvJf*boTq>0p5Ayfdki^k2RxI6i+O$SeY`Ji2bzKX(e>yr=KF@Q;W{5bWXwJ8NQgZi zJM&?a@yir-?1FW$Zmtiw;}47o7GoWDV@l+~0}r&_j~_;4hhClwNnGd?{LxsS4RQo`8SDvl5eOqLzk@W8C18a6PBfJmugAp?n zJ{rJ)4ZUv(qs;C59$2w-&wXF(W$Xv4g;q1)zwqyKjb{bsDikR6UiLenFBFLjHs|TED94DQ`GaU$Ua1ekJ`&*R+dY#{~tI_6Cr#)g*nJljE_)NX&v*?iPRuKYe zJA;xLbBZYyWrwxOz@g;k9cB7RaI5hPy)>Y!V%6C!`KLzM*&ydCfl@-t5P z^}eP@x=j8^R*crSr!>BJ><%g`*;AU8K3AA7b9>r-c1o$@PM_O+Scox=^;1h0Jen$T z#D7*QV-D++Mxwjx(N@E@x)PZy^&#s0e;1o>*MLIhn>rNdJJ6tJ)%Cl;Dpyvss;Nz8}y=AEyg{;mbw*NN9wKy_c-wXTA{-2;KK@M+G^**tan%A+I(X=A|QuQj_ z5B;7`^$iuq5UGP^_+HPm05KVkHBGKOO7@QllBTQro=D!J;*sGwjrX01ea5Olk~vz0 e4F7?IGi-Iw?y9d + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/th.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/th.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..b619eb4ab4539674743cea9361ae86faa9c1ca4f GIT binary patch literal 6380 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 lNd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/th.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/th.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/th.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/th.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/th.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/th.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/th.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/th.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..2b1c6e30ed9cf1910d5be091ea41349cdbcd1db2 GIT binary patch literal 10691 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..082030262 --- /dev/null +++ b/Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 136 94 356 240 0 0 1024 746 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..6e20460839b0b2817dc5902712091986b034dac0 GIT binary patch literal 6568 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 O7duxO=kBBW!T$ovNR9ab literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.strings b/Frameworks/Sparkle/tr.lproj/SUAutomaticUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..6a3316f58deb7d018d8c2692040ed5e0ebd8ffbf GIT binary patch literal 1066 zcmchW%}T>S6opT=eTu=Ab|YD+;2-G5jdWob;zkKgq`@?iG`0AIzEn}axg*9@t;IzN z)6D&ulY7pYzP@Q!eK`#@)U|SzN>yo2W?MV_9sBR;iSMJ6TMv#vfUJ#Fzg zov{4wh)nMb`nhIcG@zG;aAt9(i4wyf@h*6tsfHO!qKa%vCb7w!O*o}L^g1vese6P> zQ~EpuM>HmOy0>r4R1^KoX46x2)r)n|(Qnh!w0>P^fpQ~s@*ZTk;&&O!<)(hECW`gI zzCzvBwU8-rpl10f+@YM<=?MgfqYEk??eAN0W#3Kk%}+Dt^yP=U^)C*tI4j_&#nGLqQ~!(K0Q~vd+(P# + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/tr.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/tr.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..4f31fd7587e850f6ce885835e89ceb52dc46cd3f GIT binary patch literal 10773 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/tr.lproj/Sparkle.strings b/Frameworks/Sparkle/tr.lproj/Sparkle.strings new file mode 100755 index 0000000000000000000000000000000000000000..c15c890fa1202fd06e0e91e28a64b9fda3d275b6 GIT binary patch literal 6936 zcmd^^U2hvj6o$vQ{S#~>s+0AI?AEDgxf; z98YHKI!$P_K`M&u_0H#+cg}gwNB;Udd=VanBD@SEeYf>J&|fzU!&L9%Fj31{s6t0= z9km>Xg}&+UsdcDdU5(jO+as-XFYJT|dV3uD;Ut`@b);vp*0!VfZ}eg0m*LZF^llio z_O&MC_cwZK_3VVNwZpvzBz|gp^8GfHq1N-*PKGR;vKAVp&eT^cD3ogBIae>OKE4nV zUG;Sgqp2Y})7-B5LFx~~bgDTZ%qiK?*Pf`a4)^u`tLDwLChITkccHgRXfnrFWuLxw znrYp(WM=)5q4TR%)~ zHmjjQl_7+d6`IQ%H&TVAowj+6U`H%tCJDeD%jmCe_^sakZs+>NO%}2iWJO941i3SP z(34VH1@?RIzoph2?G<$ll-aY8yusXXz*f5}6kN-;ov8>9FSQj700r0Z z&m`f^w7O$DJkniCa^|%Z#5Le&^xz(&X}+tt7o#Zn52!)A9MA9ZDN$EX7W~w^T)b@ zN~o0@;aa?Fd%zf2KwIr2{aRqt;lSDwS51tSuuy!2djNa@n#>CI3N!4xr`4XQ{keGw z?s*zMx3NCT`Oo=ip_xcLu>Ovnj9qAjr(C8&D#!ZYr*cN z%|k}l5l#Rm3-v5*48ObD2~Gr4cpnCYhX?vb-ie`dXd_%ZSp9c#n)K1WPc>?6tBUVd zb81^-W~^3(qt++dhg1BiesmG+x@v_-@F<{!1PPOc#v(6w*4D>462A?5aE3|fXg~0a z^U&^LgA8(@y^v|H=O!=4$N;OoiPycq#+vCKqaVpR5!>JNbT$(O;wU|yK6(vyhXv7U)ZIFEBVtkdL((Wwg#iUK8k9Pc2Mx z?{%orWIMzdWXjG2(R<|?OpLFI3t-&l{MR$BAM>Wm?6~zs3EV zFOVk-wE4=MW#(z z+YjMIw%;$>k4SIO*v+6Z>lICICq?%;`zIap$_Wt?QJ_}?n`8J_YccSV?%Xq#T(<3u z!+l{TWD$2EU({?Wze#Jn4!r3d$=_Xro6@ECSDIZakFAJeKg^fCTifAG)HkUw;hn&Q zT2y6s;aQ>AqViqQ@}cH=PD##qVz*4B5#zk=wJWazGB@`?{vU=^MK}(nMbzxllQx`R z>u;(4#4OQ0E?VzCm%dnI!832xt@8>`9LE^H@0znphNV?`Qf-sXy literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..3e65b1ff5 --- /dev/null +++ b/Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.nib/classes.nib @@ -0,0 +1,12 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + { + ACTIONS = {relaunchLater = id; relaunchNow = id; }; + CLASS = SUAutomaticUpdateAlert; + LANGUAGE = ObjC; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.nib/info.nib b/Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.nib/info.nib new file mode 100755 index 000000000..082030262 --- /dev/null +++ b/Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.nib/info.nib @@ -0,0 +1,12 @@ + + + + + IBDocumentLocation + 136 94 356 240 0 0 1024 746 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..f165c1a8092076ef5e6b3be3b675545aad2e8bc6 GIT binary patch literal 6346 zcma)A33wD`(yr>B`|RoF5JVU`1SN!=T;a+=LP9bGCI^8)m`pm!$YdtWOcFwfejqm@ za(J*_m;fHA;PvZzAE=0^2wtloy6UrvuDXgKy2w^{PeOk2-{((1nZCaIs_Lz`>Z`A- z8-sypEGg+-K;VD}9q7RTMzB;2^+o*kfo3@}XDIzd1L07~&{()}&d_l6)v`YptrDCb z?+m$BuE~rK6aiQ7cn3^io}ZtUs12*}#e59+3R}PmHb{na7y}bw5@fCUS3b(>`_zTiH{$LTo(XXH$rm2+@|xiQ>WZXDKggK1AXBV=m-7bQWyZ2!9W-UZnzu< z!w?t>!{7=S4kO@7xC%x>0*r!07!65kjAm-_D)R-KWQtlpk2llrm!r`@bs!jswPuGy zA&O@>qD3@2=!-_>s5W}8$2&7n6Qw9e=XtyyUxTb(&-Zxa!<07{PpQag6I5ywbmfGZ zu_9l{S0_g*Xg+yKj0To@ytBjM7z?o**izQU!mO3u$d)k!+ssU?kp0d;np1Lgu67Y3 z$qtwR84GBtrYK2j4$bNEtV$5_v$Dhfu&>*LBQTi^m;zHN1o2dg?qEhuM;2svLN??; z2H{)O6!Q_FUO86k@zSp*nG2qKAP=TPJ`}(VD1;(rW`kH7o5TuP8Jo}iA3!n8g4y7O z64F!(Nl*@RpaSN?Jg6i9bL40&5F#JLAp(%FFZRXi%RSygU$q>p5(W^cf$A&@V<1%5 z&7m@_QjkFW4f*H|H%0t1V-t3+PlK0DHJrSCZHn4taM0b7ur~V){EK9??NM)vyco~OlcE^7!CF|RVzxOteOF`e#-g0e!tXt8RF0>uR@J$V<)^lEEMNlkE%O>Iwbw~a|laF0oAZ~qWh!x~r%>tH>B zv;nS%jda`qo9OpO*bG}J7GA%PvYO7Z)}TxP5+!1CD5e0P846IY$WeNm84T2gl#HVA zsG%YPcVDLnzB@b_wf4bLKZtl2-{X znw`)O_*Kg0`@dJK%Q6pd=$*YWj6eqYbzd?&^fQh=dtrm^ztak@oIx=-34v z&M?AbU{bBvEeL%4P`@^n~fHAO5}y90LAaZ z8*qp;y$Nr@+i)1(A(*{^r81qA=u@uOsstLGSq#92u`66AflMfD@&{^sc@ZC#i&0tO zV2y_CyYOBIyayR1tt<@h!3Xdm{0%-L1s}sPI1Zn{38GS$(dt=IqtH`v#M|ie%ZlC9 z&IH4CD*vuxR|*C;f{iTmwoS%;6#T3(S}mc9 zL~cM1)+oFtk23vAQNKX)Gw{nU_@xKQy9G#VoX4?1EGR3_E4r^PCf_;uoyd0{<{=XK zCb9`EgUFZuC*(uDMm{vDWuR|b!!|)0muKGHKRvuuvZ0ZGf)5mGq%JQF?}!K+IpS<_BhDP6tx2qbk-+Q=QTJ3T;d-=Iz8hjq}8CZB#eIF&_(d zVL=zeX?|_M5iFz>4WLJb%3JS?$Tj()Xv`P#%VsuRo4Ochb>b|Xtr&2L$6FeeBRO)d zuPGRd#;X`Le`=jjv!8CNgdy>)QBTpt9{r*(7;M#gMrxt{+v|6!J)2F|QDcVXI0q{z zqe@sQEBZ5r&5tu|p~^6indmiBrB_O-TFMoAC8s7QxKmU9E4|Q(K=nX)Lz_g*2c|m%KNIIixK-KOKscnjVNNo)bTnk{17F}w|L$2;&& zybE{W-PnPhxRcUp7uHi{*i9ATUc3+Q$30Ms58^|(S6!a9U6zNdiBkEy@6@djv0ZyNn>LPgLp`i4hm;#d-nT@N?;aCxmdZ=innSs+ zJW!`$byPJLvMN@~>X}t+Tta0!zmJSnsAzGD`&=IJK}b8wjS3`JhoSG(S~^jZJU#*tu4Yqly*oP z=t9UNpDGE-3aTDyw1pl-9=T~7J(%bMsf+)A%u zAUK3xf>kgHeFT@F7tDer^cF0FC>RAnaB7~>rhkV*ZbF&M@8MZt{F-RX&E$$ZxMG#^ z`B~a`h#YEa>8o8o`jV6Y$uNQ3odspIC$Ghg^a1P>{DHG^1IhSw`dC%P1-Wav)!a6& zgWJa)iX)2 z=|=0u>dJHrbphQXU4t&HTda%fnshC?+jS4=p3=RfJEVJ0cTD${?kC;Px-+`7x?gqY zbm#S`=k+>$Z@pVTSU*&Mg?@xSSwC4nRiCBL(dX)?>kIUS`g;BC`e*eY>3=jh48sh$ z29Kf4;4=gbF#|JfG;A_#Hf%9$Gi*29Y1m_U%J7WgIl~Kv1BPRUFAXOR=ZprU-Pq4K z*f`2K-k5DHFqRp^#wOz$C* zt~3>x7MQL!#Y`(qD^06SYfbA-*PCuIZ8hC$+HShv^swnk(~G88O$ST|O>de$Go3Vj zZ#r$ZnkDlfbAow-d7^o;d8#?foMWD0o@18H4dzyJo4MV*+PuNM!`xxsY2IzV*Zj2k zfcXvco96e;C(Qpc|86l_M9V-+vL(YZ$1>MaX<1-dXsNc;Se9F^v#heLv8=VMw_I=8 zWqH+dz;e)X$nuuuu;qy5bIVtjla_BS-&_7|?QI=y&9UZMr&|lGg;tNX*xFzXTNhiS z)|j=$+G=gHZnM5_{n+}Q^_)$#xos)7>9zt}q0M6}w#~Mc*eY!EZ1ZhZwi;WTZKdr- z+ZNk4+a0#uwmr5NZ3k^fZJ*k{ww~uWnc*gOH5)=3f~Do2tNv^gww)#m%-KB zb(t&8HOZCZs&v)4R=PI2wzzh=9&kPGdd79sb>tC*)TtBEfWCTX*@Rk}&KMcOXiCfy<3CEYD` zO1q?cr2C{j(u2}o>0#+n>2c`^>95k$(zDX@(u>l|(ks$y(qZWx>8Nx}Ixd}%zLLI{ azL8EzXQ|DkKTi29q?~7I=dRygrvCtr&v?85 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.strings b/Frameworks/Sparkle/zh_CN.lproj/SUAutomaticUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..1a6e154d6ce8bba01e5104f5228c7a0c5e019706 GIT binary patch literal 926 zcmezOpFy8Ni$Q_Gk0F>LoFS7Tk0FI2pP?KmqQRgEB&~qhhM@!~Q^JtLkP776f#vdn zA}K(gDOi;j&=f8PB_LE_umxfe%Ni)cg=D%DLn+XV5}@gMU=tj{{CtL7hD5OW$v`>> z2rGfI5I5ujdHF!m6re~V*kuY}7ZwB6L)0n&%_soMgG@+eCEy$I-MesT+uh#UNnF z<^aRL6d3Nwz))9U@PWog5snbYrvp87%uqrHpH8?>s(1q=1A8Z)P2CXB5TZ|(5B$J6 e0DF4DbOS^+y30}X1uk81R~K&x*N8DhcQpVh2BNb7 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0071ac077 --- /dev/null +++ b/Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {description = NSTextField; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..2b25ad033 --- /dev/null +++ b/Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 425 40 356 240 0 0 1280 832 + IBFramework Version + 446.1 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..0d56dd12cae32325b6dd750255c05f48f7a7e3db GIT binary patch literal 10489 zcma)C349aP)<5^&q}kJHlBQYOWDo>dZA;k-A}wXLl%-`~YT8cQKxk@`f(YnE5I1nc zeL-jeS!5R!p8^jN*;F=3?zd{5$Q)p;60YyNvh#Nau+0ZLqtoeql+zjXLHa0tf<8%~rq9tA=|WmdU#BbSTDpO5 zq?_o!={CBX?xB0>hx8-*F+D&J(j)XU`VBonPttGc8G4rfNPnik(ev~#222AhnU*Cm zD?PyynIN|_CriVxKIUi5*v+gX>&*JG;Y=bwk&UdJRj^7HWaHTc7Ge`w6}yYY*gUq5 zt!Hnr4QwNOlfA_@vA5a3*gJ5Ny~{SUEo>|MH`~VEW82yLYzO;*R!i6B4{*uV}BNCqdQfD7E<0WYLN8u-8uA~b=UpeZzio1rq2HHY9xE0bBAP!VPIV=#Wkr0~hg2J5AQYjh@mIOn=*p!~(swxC+IHJO~XDASj zN>R1fKJdExRs1L+5#JFa>=^g!On4MlVT*QsmdLeDzr33<>J89SgR7C=rG zO0l5@h4@z;*&B*hLLcZ0{h&YG0r@Zh3Sb}%g26BZ3b}#%c^0qYQ~CXTJ>S6J|?t}o8AV>40Xe?M2h@ps(qbQ6)fmr46g2Mbj zi4-apQjyESl3bK)u&SZ~RKryJhy&s+xc9qA}E-`nrbOBDJV@wQWP%YTD_`d&XnO= zlX`~&6;YIXPbn0_-g%KgMbVUM6cP3+3o0DsCcNy1Bx2?s?%-y_A(({Zlp`UNQIDp; zJ=nRhrbJ#O${*suU+2%M+@1zKmcVql7w!WNGvI!1;Z~l=1)juhT!)&GQ(YaB#6fwz z#p*ybCY6K(kuouc1QZJy1=5Hju~$`TpgLL;LNJwygTm2RVQC~-9TO*Iw9CAHj87R; z)US7MaZ*;h^y@o#;tTfcS#*74GIA&wl4Mv$2Pve;thh>LL7y9pnL0HytBsi1C2M*c zacW0=?3guu`Vp7|bKx;~9G*ZfJqb_2JiMNUXYlW{@Ekmk!YC{apq}GzY)VK%4k9LE zQdLamd`?wxB5pW}tvR7!MU|{yC?7>ui0p>vOaXYZp1aX~{tY$?00-ekTrd+}f|ubH zR4YV+f+j^XQ@D#ean61dQSFO`B%B@DA1qZc+pjcSrE1YasI7%s=!)8hYbknJKaJX9 z5iG8Q#fZYLNSHF2Op)658Z2E5OJNx-hZR@bhaof&ck&h^;Sj=2{(yrUfLbg#C&>ml zTMYb@q@l`ZMD{h`)z#L(+B#SZ>tte4dN)uowL5Z!dnk3oPzp3aSWnP zhJ-TUAe_eeop1)uDl-qS49288(%W@Z|8)U@@zyGBKg01_q^E0RqRzp8RHAr0-d0`% z0UV#cfuZ$FT#%Q@O^5pV{)9`5;1c{LgIY18@`&C+DO4sy8+VjbDjW8zIR6{2EQTwM zaNaNgSB*nC7L0`?`TNL*r$gvOM&K4l6Gk*d3+cQA5Alhd9#d?pMD)Y}<-`b;#Dv|( z6Em?8D_#OgA~p;m9ng+ANeZ+>#>%E1{fweZgCbJ76p^Yhaw!&UL!*+6s@~zqWHhMx z7^ja^Y`-jnk$n(r)rvGa@s4VgD zOMK5g+ISL@PBL(!Owu0r-2v}TxbJ!Rw+qQe5Jwdd$29^?rpy2o5qgGjD3miX7Uf-$ zuAX>z!z*u~AmoSu@|_#M)z!Pnt9QaKxkr$E+%a;$2gy-3k&EQFB)v#)C?rgVRjtnEil>jOp?&L%wfhn@zkbl)~Bgv>G zWE2@q#;9`^3oe{BZ%S2QVz5+YT5cc`m6t$cATJn>Nb2{0a8`a%XBp^7O6)c)=F{sLxQE1qO52lA|5@b939-i`P*b? z8^Q4Fs&gN8b;e@Bi(45wBtJSl7^^Ijb@v}pKuX-KT~AgMHK@SRVmzU}zE3>T!Rc?% zrf#CBci#1F$y2Ac&1fU0D}JROU(*kgX~^g4u!r17_^5tms06|CpcEOV<^<>%#`EC^ zp*y)ByUiqzla~+@?IvJ0vVzPa58(YE-tzS*nM3B1S-g~&;Vt1UU*)`lSMt&o(7m8Bl3hu$;7~sf3e{8utD+5kJ?iH?sXR~
  • BSr1Y1KN3qacZOjRU!jt0> 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/zh_CN.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..da7a2e7e28d7167da697605b5b5872da1fa8f0cb GIT binary patch literal 1440 zcmcgsze~eF82#pof}>l=6oVjEv>1PY4x&(_Hcb8#vmz56crefQq?-u3&3rb#D-OtNT=+SJ11QynWBt@7BX8kMo? zQ3YcaPZwWLu&aZ8Rg7gs3V!Q+^e{HD|8K8?8V#(o3J%s4)M3?IbcR?Vm!Hw50MR63 z1Md<)t%ceS;$fp$0Rj!IJfJpcf$|)ejy~l`9Xc8nXqNG+=9@is{a(5^N5U)n?(p{J z(fxEDfM^l8auO9c6MF3R=`pzDvJA011)3MSBg>4LNU+;b`~vE)qx%l@XTH*?#ODq? z)WnQ=)sNg{q_!Ri3-X@%TSjSac2!4KT2Ab3J~O_rWE=%!3~F6eihuNj9^B9@+UZ zquxjO6uy{xuyHyyfYCvu0sG%#uCjpIg^xPWBH*fI-wb(<$Yd_TLv~usA@t3!{(Jok Dk=p*R literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/zh_CN.lproj/Sparkle.strings b/Frameworks/Sparkle/zh_CN.lproj/Sparkle.strings new file mode 100755 index 0000000000000000000000000000000000000000..9f7b3901ee37b2fa9bd7afab6a45eb921282b350 GIT binary patch literal 5536 zcmd5=&ubiI82;>`LehxWdg&xsyOt)KC=^7*mRL-v&Srm+nAcqynvRB(Ns@6GJYc0&^h6U#C?GvDv;`JVTA z-*^7$sGvHj3}vbk{xkSr#LrSiRmJ;~Dx;*X@+yn6EK1U98UL)$p|pr63vI?wb`m2E zs1bD>Z{w<cJgbKhje^q8`V{13s+uj9wf6=T%Boa8K(U z74gK~Re(YYdnurlyHBBv_XcWND(wv*V4*Inv8ie#Yv^mCo(R39v8xh2dB*vT1GAj#*QkBgxI=Z!qc+0*|WOL zwb!z?%p%%SA4UDBe<@rXp`taBI*>xW1-muWv{p!-NL8KEZKaiHKp7IWWCz*u1GRqnwb<&7SN>l8@#Rme zhhxv>tY|25)kh0Di(QKS_glW>YslQa==rd#3u5{8CVFah?orHpeA9!y?nX4RU)grq zLFT*AN3=-u&5oaYpz2bC87q*5C0L28-&CEfR&&QHdOfRaX=7+PqZOOJSnQLQM$YGO zu^)XRdq~vL^?LMf8(*yqnxo;rD(x#rTerp!wfE3 zBPvmd8mu(Cy(5V^#D=L5jsooim&|9@>FCp|pND=*maMJ25Ss=pmA;y%Es+xSj4JCO z*puWYIbB09@6kdsejyVNY+PS^#vJug`zEm_M&k6gT`h|Ku(;-%$C%WyN=C;K zj<@$>M!X~rcJm9?dol$2a*6dX{}S1p{~~wO_lWH&tf>K{oH*36ZSTs*VAGy>h3Dr) zle&g={$wBLbcS}j?(DKQst9rOd2Q1`O-@qsO(z45XwJErV3&RLgfE_s-RIf0D-#ahDlh^}A)>oKuOfiM6kh z--Vvoqb^MC9^ii}AIsPmbB86HV-#3mf_i7W;aX zn%RHrD*EbO#sfS17Rei#HAcbDcz|B$jT_Mm<|w^%`n-4|A0zbyP_MYWu!BBYYXbUH iQzvw6V&G{>BP;QnoQ%gtLP`0qGCN@h + + + + IBDocumentLocation + 188 142 356 240 0 0 1280 1002 + IBFramework Version + 443.0 + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/zh_TW.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/zh_TW.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..b619eb4ab4539674743cea9361ae86faa9c1ca4f GIT binary patch literal 6380 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 lNd&SRd?L zWaLQ69ty)oaD*!y;di+P91nVn973XqR*x1(GEf^x&fp_qTwZ}9Iuk3L zi*`I;E7A;LX>V2PTeK+l_ hdSs6JzaCp&TJyd9KC6hX*P*|^wq2$g3f}U)z5(D}tcU;r literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.nib/classes.nib b/Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.nib/classes.nib new file mode 100755 index 000000000..0ac32ad75 --- /dev/null +++ b/Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.nib/classes.nib @@ -0,0 +1,21 @@ +{ + IBClasses = ( + {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; }, + {CLASS = NSObject; LANGUAGE = ObjC; }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlert; + LANGUAGE = ObjC; + OUTLETS = {delegate = id; description = id; releaseNotesView = WebView; }; + SUPERCLASS = NSWindowController; + }, + { + ACTIONS = {installUpdate = id; remindMeLater = id; skipThisVersion = id; }; + CLASS = SUUpdateAlertController; + LANGUAGE = ObjC; + OUTLETS = {releaseNotesView = id; }; + SUPERCLASS = NSWindowController; + } + ); + IBVersion = 1; +} \ No newline at end of file diff --git a/Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.nib/info.nib b/Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.nib/info.nib new file mode 100755 index 000000000..83a4377b3 --- /dev/null +++ b/Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.nib/info.nib @@ -0,0 +1,16 @@ + + + + + IBDocumentLocation + 62 61 356 240 0 0 1280 832 + IBFramework Version + 443.0 + IBOpenObjects + + 5 + + IBSystem Version + 8I127 + + diff --git a/Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.nib/keyedobjects.nib b/Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.nib/keyedobjects.nib new file mode 100755 index 0000000000000000000000000000000000000000..9be94287a6b35dcddd1dda04137e023c11270056 GIT binary patch literal 10742 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 literal 0 HcmV?d00001 diff --git a/Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.strings b/Frameworks/Sparkle/zh_TW.lproj/SUUpdateAlert.strings new file mode 100755 index 0000000000000000000000000000000000000000..c14506f58f3c6027bdd859f4ed3862af54c61eba GIT binary patch literal 1630 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 E3ljf5aR2}S literal 0 HcmV?d00001