commit: | 68e7589accf9ac5193b2cfcf856370453577bb37 |
author: | mrmekon |
committer: | mrmekon |
date: | Thu Nov 10 13:30:52 2011 -0500 |
parents: | 08984b34652d7ad1338e7bdd0929e640b66d45aa |
diff --git a/simplepgp.xcodeproj/project.pbxproj b/simplepgp.xcodeproj/project.pbxproj line changes: +8/-0 index b389761..569a6e1 --- a/simplepgp.xcodeproj/project.pbxproj +++ b/simplepgp.xcodeproj/project.pbxproj
@@ -11,6 +11,8 @@ 69269F2614620D0F00F69705 /* packet_test.h in Headers */ = {isa = PBXBuildFile; fileRef = 69269F2214620D0F00F69705 /* packet_test.h */; }; 69269F2714620D0F00F69705 /* packet.c in Sources */ = {isa = PBXBuildFile; fileRef = 69269F2314620D0F00F69705 /* packet.c */; }; 69269F2814620D0F00F69705 /* packet.h in Headers */ = {isa = PBXBuildFile; fileRef = 69269F2414620D0F00F69705 /* packet.h */; }; + 6926A662146B38F200F69705 /* keychain.c in Sources */ = {isa = PBXBuildFile; fileRef = 6926A660146B38F200F69705 /* keychain.c */; }; + 6926A663146B38F200F69705 /* keychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 6926A661146B38F200F69705 /* keychain.h */; }; 69868BC31460F343004C5D9B /* libgcrypt.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 69868BC21460F343004C5D9B /* libgcrypt.a */; }; 69868BC51460F34A004C5D9B /* libgpg-error.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 69868BC41460F34A004C5D9B /* libgpg-error.a */; }; 69868BC71460F37E004C5D9B /* gpg-error.h in Headers */ = {isa = PBXBuildFile; fileRef = 69868BC61460F37E004C5D9B /* gpg-error.h */; };
@@ -25,6 +27,8 @@ 69269F2214620D0F00F69705 /* packet_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = packet_test.h; path = src/packet_test.h; sourceTree = "<group>"; }; 69269F2314620D0F00F69705 /* packet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = packet.c; path = src/packet.c; sourceTree = "<group>"; }; 69269F2414620D0F00F69705 /* packet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = packet.h; path = src/packet.h; sourceTree = "<group>"; }; + 6926A660146B38F200F69705 /* keychain.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = keychain.c; path = src/keychain.c; sourceTree = "<group>"; }; + 6926A661146B38F200F69705 /* keychain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = keychain.h; path = src/keychain.h; sourceTree = "<group>"; }; 69868BC21460F343004C5D9B /* libgcrypt.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgcrypt.a; sourceTree = "<group>"; }; 69868BC41460F34A004C5D9B /* libgpg-error.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libgpg-error.a"; sourceTree = "<group>"; }; 69868BC61460F37E004C5D9B /* gpg-error.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "gpg-error.h"; sourceTree = "<group>"; };
@@ -81,6 +85,8 @@ 08FB77AEFE84172EC02AAC07 /* Classes */ = { isa = PBXGroup; children = ( + 6926A660146B38F200F69705 /* keychain.c */, + 6926A661146B38F200F69705 /* keychain.h */, 69269F2114620D0F00F69705 /* packet_test.c */, 69269F2214620D0F00F69705 /* packet_test.h */, 69269F2314620D0F00F69705 /* packet.c */,
@@ -113,6 +119,7 @@ 69868BCB1460F386004C5D9B /* gcrypt.h in Headers */, 69269F2614620D0F00F69705 /* packet_test.h in Headers */, 69269F2814620D0F00F69705 /* packet.h in Headers */, + 6926A663146B38F200F69705 /* keychain.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; };
@@ -168,6 +175,7 @@ files = ( 69269F2514620D0F00F69705 /* packet_test.c in Sources */, 69269F2714620D0F00F69705 /* packet.c in Sources */, + 6926A662146B38F200F69705 /* keychain.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; };
diff --git a/simplepgp.xcodeproj/trevor.mode1v3 b/simplepgp.xcodeproj/trevor.mode1v3 line changes: +40/-37 index a5ca541..3be65d5 --- a/simplepgp.xcodeproj/trevor.mode1v3 +++ b/simplepgp.xcodeproj/trevor.mode1v3
@@ -274,13 +274,13 @@ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> <array> <array> - <integer>4</integer> + <integer>6</integer> <integer>1</integer> <integer>0</integer> </array> </array> <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> - <string>{{0, 0}, {186, 696}}</string> + <string>{{0, 0}, {186, 751}}</string> </dict> <key>PBXTopSmartGroupGIDs</key> <array/>
@@ -292,14 +292,14 @@ <key>GeometryConfiguration</key> <dict> <key>Frame</key> - <string>{{0, 0}, {203, 714}}</string> + <string>{{0, 0}, {203, 769}}</string> <key>GroupTreeTableConfiguration</key> <array> <string>MainColumn</string> <real>186</real> </array> <key>RubberWindowFrame</key> - <string>-1193 552 1095 755 -1680 385 1680 1050 </string> + <string>-1349 580 1174 810 -1680 385 1680 1050 </string> </dict> <key>Module</key> <string>PBXSmartGroupTreeModule</string>
@@ -329,7 +329,7 @@ <key>_historyCapacity</key> <integer>0</integer> <key>bookmark</key> - <string>6926A2CD1463613E00F69705</string> + <string>6926A9A7146C4F6200F69705</string> <key>history</key> <array> <string>69868BD11460F42D004C5D9B</string>
@@ -337,10 +337,12 @@ <string>69868C931460F7C3004C5D9B</string> <string>69269F5214620FC500F69705</string> <string>69269F5314620FC500F69705</string> - <string>69269FBE14623A5A00F69705</string> <string>6926A15B146350B600F69705</string> - <string>6926A1C81463585300F69705</string> - <string>6926A29114635F5E00F69705</string> + <string>6926A6D0146B44A300F69705</string> + <string>6926A6E1146B44E000F69705</string> + <string>6926A6E2146B44E000F69705</string> + <string>6926A97D146C463400F69705</string> + <string>6926A98E146C48EB00F69705</string> </array> </dict> <key>SplitCount</key>
@@ -352,14 +354,14 @@ <key>GeometryConfiguration</key> <dict> <key>Frame</key> - <string>{{0, 0}, {887, 623}}</string> + <string>{{0, 0}, {966, 675}}</string> <key>RubberWindowFrame</key> - <string>-1193 552 1095 755 -1680 385 1680 1050 </string> + <string>-1349 580 1174 810 -1680 385 1680 1050 </string> </dict> <key>Module</key> <string>PBXNavigatorGroup</string> <key>Proportion</key> - <string>623pt</string> + <string>675pt</string> </dict> <dict> <key>ContentConfiguration</key>
@@ -372,18 +374,18 @@ <key>GeometryConfiguration</key> <dict> <key>Frame</key> - <string>{{0, 628}, {887, 86}}</string> + <string>{{0, 680}, {966, 89}}</string> <key>RubberWindowFrame</key> - <string>-1193 552 1095 755 -1680 385 1680 1050 </string> + <string>-1349 580 1174 810 -1680 385 1680 1050 </string> </dict> <key>Module</key> <string>XCDetailModule</string> <key>Proportion</key> - <string>86pt</string> + <string>89pt</string> </dict> </array> <key>Proportion</key> - <string>887pt</string> + <string>966pt</string> </dict> </array> <key>Name</key>
@@ -398,9 +400,9 @@ </array> <key>TableOfContents</key> <array> - <string>69269CC41461D38300F69705</string> + <string>6926A4FE1465E68800F69705</string> <string>1CE0B1FE06471DED0097A5F4</string> - <string>69269CC51461D38300F69705</string> + <string>6926A4FF1465E68800F69705</string> <string>1CE0B20306471E060097A5F4</string> <string>1CE0B20506471E060097A5F4</string> </array>
@@ -539,12 +541,11 @@ <key>WindowOrderList</key> <array> <string>1CD10A99069EF8BA00B06720</string> - <string>69269F5714620FC500F69705</string> <string>69868B2D1460E71D004C5D9B</string> <string>/Users/trevor/Documents/Cocoa Projects/libsimplepgp/simplepgp.xcodeproj</string> </array> <key>WindowString</key> - <string>-1193 552 1095 755 -1680 385 1680 1050 </string> + <string>-1349 580 1174 810 -1680 385 1680 1050 </string> <key>WindowToolsV3</key> <array> <dict>
@@ -565,23 +566,25 @@ <key>PBXProjectModuleGUID</key> <string>1CD0528F0623707200166675</string> <key>PBXProjectModuleLabel</key> - <string><No Editor></string> + <string>packet.c</string> <key>StatusBarVisibility</key> <true/> </dict> <key>GeometryConfiguration</key> <dict> <key>Frame</key> - <string>{{0, 0}, {500, 0}}</string> + <string>{{0, 0}, {500, 136}}</string> <key>RubberWindowFrame</key> <string>57 313 500 500 0 0 1440 878 </string> </dict> <key>Module</key> <string>PBXNavigatorGroup</string> <key>Proportion</key> - <string>0pt</string> + <string>136pt</string> </dict> <dict> + <key>BecomeActive</key> + <true/> <key>ContentConfiguration</key> <dict> <key>PBXProjectModuleGUID</key>
@@ -596,14 +599,14 @@ <key>GeometryConfiguration</key> <dict> <key>Frame</key> - <string>{{0, 5}, {500, 454}}</string> + <string>{{0, 141}, {500, 318}}</string> <key>RubberWindowFrame</key> <string>57 313 500 500 0 0 1440 878 </string> </dict> <key>Module</key> <string>PBXBuildResultsModule</string> <key>Proportion</key> - <string>454pt</string> + <string>318pt</string> </dict> </array> <key>Proportion</key>
@@ -621,7 +624,7 @@ <key>TableOfContents</key> <array> <string>69868B2D1460E71D004C5D9B</string> - <string>69269CC71461D38300F69705</string> + <string>6926A5001465E68800F69705</string> <string>1CD0528F0623707200166675</string> <string>XCMainBuildResultsModuleGUID</string> </array>
@@ -634,7 +637,7 @@ <key>WindowToolGUID</key> <string>69868B2D1460E71D004C5D9B</string> <key>WindowToolIsVisible</key> - <false/> + <true/> </dict> <dict> <key>FirstTimeWindowDisplayed</key>
@@ -665,8 +668,8 @@ <string>yes</string> <key>sizes</key> <array> - <string>{{0, 0}, {316, 194}}</string> - <string>{{316, 0}, {378, 194}}</string> + <string>{{0, 0}, {316, 198}}</string> + <string>{{316, 0}, {378, 198}}</string> </array> </dict> <key>VerticalSplitView</key>
@@ -681,8 +684,8 @@ <string>yes</string> <key>sizes</key> <array> - <string>{{0, 0}, {694, 194}}</string> - <string>{{0, 194}, {694, 187}}</string> + <string>{{0, 0}, {694, 198}}</string> + <string>{{0, 198}, {694, 183}}</string> </array> </dict> </dict>
@@ -715,7 +718,7 @@ <real>148</real> </array> <key>Frame</key> - <string>{{316, 0}, {378, 194}}</string> + <string>{{316, 0}, {378, 198}}</string> <key>RubberWindowFrame</key> <string>-1633 963 694 422 -1680 385 1680 1050 </string> </dict>
@@ -743,13 +746,13 @@ <key>TableOfContents</key> <array> <string>1CD10A99069EF8BA00B06720</string> - <string>69269F8D1462131300F69705</string> + <string>6926A52E1469DCC900F69705</string> <string>1C162984064C10D400B95A72</string> - <string>69269F8E1462131300F69705</string> - <string>69269F8F1462131300F69705</string> - <string>69269F901462131300F69705</string> - <string>69269F911462131300F69705</string> - <string>69269F921462131300F69705</string> + <string>6926A52F1469DCC900F69705</string> + <string>6926A5301469DCC900F69705</string> + <string>6926A5311469DCC900F69705</string> + <string>6926A5321469DCC900F69705</string> + <string>6926A5331469DCC900F69705</string> </array> <key>ToolbarConfiguration</key> <string>xcode.toolbar.config.debugV3</string>
diff --git a/simplepgp.xcodeproj/trevor.pbxuser b/simplepgp.xcodeproj/trevor.pbxuser line changes: +1255/-2911 index 60bcfa4..14531be --- a/simplepgp.xcodeproj/trevor.pbxuser +++ b/simplepgp.xcodeproj/trevor.pbxuser
@@ -8,8 +8,7 @@ ); breakpoints = ( 69868C9D14618450004C5D9B /* packet.c:9 */, - 69868EE41461AA6F004C5D9B /* packet.c:207 */, - 69269F4E14620FC200F69705 /* packet.c:179 */, + 69269F4E14620FC200F69705 /* packet.c:220 */, ); codeSenseManager = 69868AD51460E35F004C5D9B /* Code sense */; perUserDictionary = {
@@ -18,7 +17,7 @@ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; PBXFileTableDataSourceColumnWidthsKey = ( 20, - 648, + 727, 20, 48, 43,
@@ -57,3589 +56,2079 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 341952203; - PBXWorkspaceStateSaveDate = 341952203; + PBXPerProjectTemplateStateSaveDate = 342222463; + PBXWorkspaceStateSaveDate = 342222463; }; perUserProjectItems = { - 69269CC11461D38300F69705 /* PBXTextBookmark */ = 69269CC11461D38300F69705 /* PBXTextBookmark */; - 69269CC21461D38300F69705 /* PBXTextBookmark */ = 69269CC21461D38300F69705 /* PBXTextBookmark */; - 69269CC31461D38300F69705 /* PBXTextBookmark */ = 69269CC31461D38300F69705 /* PBXTextBookmark */; - 69269CC61461D38300F69705 /* PBXTextBookmark */ = 69269CC61461D38300F69705 /* PBXTextBookmark */; - 69269CD41461D42F00F69705 /* PBXTextBookmark */ = 69269CD41461D42F00F69705 /* PBXTextBookmark */; - 69269CD51461D42F00F69705 /* PBXTextBookmark */ = 69269CD51461D42F00F69705 /* PBXTextBookmark */; - 69269CD61461D42F00F69705 /* PBXTextBookmark */ = 69269CD61461D42F00F69705 /* PBXTextBookmark */; - 69269CD71461D42F00F69705 /* PBXTextBookmark */ = 69269CD71461D42F00F69705 /* PBXTextBookmark */; - 69269CD81461D44700F69705 /* PBXTextBookmark */ = 69269CD81461D44700F69705 /* PBXTextBookmark */; - 69269CD91461D44700F69705 /* PBXTextBookmark */ = 69269CD91461D44700F69705 /* PBXTextBookmark */; - 69269CDA1461D44700F69705 /* PBXTextBookmark */ = 69269CDA1461D44700F69705 /* PBXTextBookmark */; - 69269CDB1461D44700F69705 /* PBXTextBookmark */ = 69269CDB1461D44700F69705 /* PBXTextBookmark */; - 69269CE21461D4A800F69705 /* PBXTextBookmark */ = 69269CE21461D4A800F69705 /* PBXTextBookmark */; - 69269CE31461D4A800F69705 /* PBXTextBookmark */ = 69269CE31461D4A800F69705 /* PBXTextBookmark */; - 69269CE41461D51000F69705 /* PBXTextBookmark */ = 69269CE41461D51000F69705 /* PBXTextBookmark */; - 69269CE51461D51000F69705 /* PBXTextBookmark */ = 69269CE51461D51000F69705 /* PBXTextBookmark */; - 69269CEE1461D80400F69705 /* PBXTextBookmark */ = 69269CEE1461D80400F69705 /* PBXTextBookmark */; - 69269CEF1461D80400F69705 /* PBXTextBookmark */ = 69269CEF1461D80400F69705 /* PBXTextBookmark */; - 69269CF01461D80400F69705 /* PBXTextBookmark */ = 69269CF01461D80400F69705 /* PBXTextBookmark */; - 69269CF11461D80400F69705 /* PBXTextBookmark */ = 69269CF11461D80400F69705 /* PBXTextBookmark */; - 69269CF41461D82F00F69705 /* PBXTextBookmark */ = 69269CF41461D82F00F69705 /* PBXTextBookmark */; - 69269CF51461D82F00F69705 /* PBXTextBookmark */ = 69269CF51461D82F00F69705 /* PBXTextBookmark */; - 69269D241461D93A00F69705 /* PBXTextBookmark */ = 69269D241461D93A00F69705 /* PBXTextBookmark */; - 69269D251461D93A00F69705 /* XCBuildMessageTextBookmark */ = 69269D251461D93A00F69705 /* XCBuildMessageTextBookmark */; - 69269D261461D93A00F69705 /* PBXTextBookmark */ = 69269D261461D93A00F69705 /* PBXTextBookmark */; - 69269D271461D93A00F69705 /* PBXTextBookmark */ = 69269D271461D93A00F69705 /* PBXTextBookmark */; - 69269D2E1461D96400F69705 /* PBXTextBookmark */ = 69269D2E1461D96400F69705 /* PBXTextBookmark */; - 69269D2F1461D96400F69705 /* PBXTextBookmark */ = 69269D2F1461D96400F69705 /* PBXTextBookmark */; - 69269D341461D98A00F69705 /* PBXTextBookmark */ = 69269D341461D98A00F69705 /* PBXTextBookmark */; - 69269D351461D98A00F69705 /* PBXTextBookmark */ = 69269D351461D98A00F69705 /* PBXTextBookmark */; - 69269D361461D98A00F69705 /* PBXTextBookmark */ = 69269D361461D98A00F69705 /* PBXTextBookmark */; - 69269D371461D98A00F69705 /* PBXTextBookmark */ = 69269D371461D98A00F69705 /* PBXTextBookmark */; - 69269D3B1461DAFF00F69705 /* PBXTextBookmark */ = 69269D3B1461DAFF00F69705 /* PBXTextBookmark */; - 69269D3C1461DAFF00F69705 /* PBXTextBookmark */ = 69269D3C1461DAFF00F69705 /* PBXTextBookmark */; - 69269D3D1461DAFF00F69705 /* PBXTextBookmark */ = 69269D3D1461DAFF00F69705 /* PBXTextBookmark */; - 69269D3E1461DAFF00F69705 /* PBXTextBookmark */ = 69269D3E1461DAFF00F69705 /* PBXTextBookmark */; - 69269D451461DD8F00F69705 /* PBXTextBookmark */ = 69269D451461DD8F00F69705 /* PBXTextBookmark */; - 69269D461461DD8F00F69705 /* PBXTextBookmark */ = 69269D461461DD8F00F69705 /* PBXTextBookmark */; - 69269D471461E4B400F69705 /* PBXTextBookmark */ = 69269D471461E4B400F69705 /* PBXTextBookmark */; - 69269D481461E4B400F69705 /* PBXTextBookmark */ = 69269D481461E4B400F69705 /* PBXTextBookmark */; - 69269D551461E6FF00F69705 /* PBXTextBookmark */ = 69269D551461E6FF00F69705 /* PBXTextBookmark */; - 69269D561461E6FF00F69705 /* PBXTextBookmark */ = 69269D561461E6FF00F69705 /* PBXTextBookmark */; - 69269D571461E6FF00F69705 /* PBXTextBookmark */ = 69269D571461E6FF00F69705 /* PBXTextBookmark */; - 69269D581461E6FF00F69705 /* PBXTextBookmark */ = 69269D581461E6FF00F69705 /* PBXTextBookmark */; - 69269D631461E91100F69705 /* PBXTextBookmark */ = 69269D631461E91100F69705 /* PBXTextBookmark */; - 69269D641461E91100F69705 /* PBXTextBookmark */ = 69269D641461E91100F69705 /* PBXTextBookmark */; - 69269D651461E91100F69705 /* PBXTextBookmark */ = 69269D651461E91100F69705 /* PBXTextBookmark */; - 69269D661461E91100F69705 /* PBXTextBookmark */ = 69269D661461E91100F69705 /* PBXTextBookmark */; - 69269D6B1461E94700F69705 /* PBXTextBookmark */ = 69269D6B1461E94700F69705 /* PBXTextBookmark */; - 69269D6C1461E94700F69705 /* PBXTextBookmark */ = 69269D6C1461E94700F69705 /* PBXTextBookmark */; - 69269D7B1461EA4000F69705 /* PBXTextBookmark */ = 69269D7B1461EA4000F69705 /* PBXTextBookmark */; - 69269D7C1461EA4000F69705 /* PBXTextBookmark */ = 69269D7C1461EA4000F69705 /* PBXTextBookmark */; - 69269D811461EA6600F69705 /* PBXTextBookmark */ = 69269D811461EA6600F69705 /* PBXTextBookmark */; - 69269D821461EA6600F69705 /* PBXTextBookmark */ = 69269D821461EA6600F69705 /* PBXTextBookmark */; - 69269D891461EAB300F69705 /* PBXTextBookmark */ = 69269D891461EAB300F69705 /* PBXTextBookmark */; - 69269D8A1461EAB300F69705 /* PBXTextBookmark */ = 69269D8A1461EAB300F69705 /* PBXTextBookmark */; - 69269D931461EB5B00F69705 /* PBXTextBookmark */ = 69269D931461EB5B00F69705 /* PBXTextBookmark */; - 69269D941461EB5B00F69705 /* PBXTextBookmark */ = 69269D941461EB5B00F69705 /* PBXTextBookmark */; - 69269D9F1461EC0100F69705 /* PBXTextBookmark */ = 69269D9F1461EC0100F69705 /* PBXTextBookmark */; - 69269DA01461EC0100F69705 /* PBXTextBookmark */ = 69269DA01461EC0100F69705 /* PBXTextBookmark */; - 69269DA61461EC7400F69705 /* PBXTextBookmark */ = 69269DA61461EC7400F69705 /* PBXTextBookmark */; - 69269DA71461EC7400F69705 /* PBXTextBookmark */ = 69269DA71461EC7400F69705 /* PBXTextBookmark */; - 69269DA81461EC7400F69705 /* PBXTextBookmark */ = 69269DA81461EC7400F69705 /* PBXTextBookmark */; - 69269DA91461EC7400F69705 /* PBXTextBookmark */ = 69269DA91461EC7400F69705 /* PBXTextBookmark */; - 69269DB71461ED4F00F69705 /* PBXTextBookmark */ = 69269DB71461ED4F00F69705 /* PBXTextBookmark */; - 69269DB81461ED4F00F69705 /* XCBuildMessageTextBookmark */ = 69269DB81461ED4F00F69705 /* XCBuildMessageTextBookmark */; - 69269DB91461ED4F00F69705 /* PBXTextBookmark */ = 69269DB91461ED4F00F69705 /* PBXTextBookmark */; - 69269DBC1461ED5100F69705 /* PBXTextBookmark */ = 69269DBC1461ED5100F69705 /* PBXTextBookmark */; - 69269DBD1461ED5100F69705 /* PBXTextBookmark */ = 69269DBD1461ED5100F69705 /* PBXTextBookmark */; - 69269DBE1461ED5100F69705 /* PBXTextBookmark */ = 69269DBE1461ED5100F69705 /* PBXTextBookmark */; - 69269DBF1461ED5100F69705 /* PBXTextBookmark */ = 69269DBF1461ED5100F69705 /* PBXTextBookmark */; - 69269DC61461ED9F00F69705 /* PBXTextBookmark */ = 69269DC61461ED9F00F69705 /* PBXTextBookmark */; - 69269DC71461ED9F00F69705 /* PBXTextBookmark */ = 69269DC71461ED9F00F69705 /* PBXTextBookmark */; - 69269DC81461ED9F00F69705 /* PBXTextBookmark */ = 69269DC81461ED9F00F69705 /* PBXTextBookmark */; - 69269DC91461ED9F00F69705 /* PBXTextBookmark */ = 69269DC91461ED9F00F69705 /* PBXTextBookmark */; - 69269DD01461EDB700F69705 /* PBXTextBookmark */ = 69269DD01461EDB700F69705 /* PBXTextBookmark */; - 69269DD11461EDB700F69705 /* PBXTextBookmark */ = 69269DD11461EDB700F69705 /* PBXTextBookmark */; - 69269DD61461EF0700F69705 /* PBXTextBookmark */ = 69269DD61461EF0700F69705 /* PBXTextBookmark */; - 69269DD71461EF0700F69705 /* PBXTextBookmark */ = 69269DD71461EF0700F69705 /* PBXTextBookmark */; - 69269DD81461EF0700F69705 /* PBXTextBookmark */ = 69269DD81461EF0700F69705 /* PBXTextBookmark */; - 69269DD91461EF0700F69705 /* PBXTextBookmark */ = 69269DD91461EF0700F69705 /* PBXTextBookmark */; - 69269DE11461EF2500F69705 /* PBXTextBookmark */ = 69269DE11461EF2500F69705 /* PBXTextBookmark */; - 69269DE21461EF2500F69705 /* PBXTextBookmark */ = 69269DE21461EF2500F69705 /* PBXTextBookmark */; - 69269DEB1461EF8E00F69705 /* PBXTextBookmark */ = 69269DEB1461EF8E00F69705 /* PBXTextBookmark */; - 69269DEC1461EF8E00F69705 /* PBXTextBookmark */ = 69269DEC1461EF8E00F69705 /* PBXTextBookmark */; - 69269DED1461EF8E00F69705 /* PBXTextBookmark */ = 69269DED1461EF8E00F69705 /* PBXTextBookmark */; - 69269DEE1461EF8E00F69705 /* PBXTextBookmark */ = 69269DEE1461EF8E00F69705 /* PBXTextBookmark */; - 69269DF21461F1ED00F69705 /* PBXTextBookmark */ = 69269DF21461F1ED00F69705 /* PBXTextBookmark */; - 69269DF31461F1ED00F69705 /* PBXTextBookmark */ = 69269DF31461F1ED00F69705 /* PBXTextBookmark */; - 69269DF41461F1ED00F69705 /* PBXTextBookmark */ = 69269DF41461F1ED00F69705 /* PBXTextBookmark */; - 69269DFE1461F2F200F69705 /* PBXTextBookmark */ = 69269DFE1461F2F200F69705 /* PBXTextBookmark */; - 69269DFF1461F2F200F69705 /* PBXTextBookmark */ = 69269DFF1461F2F200F69705 /* PBXTextBookmark */; - 69269E011461F31100F69705 /* PBXTextBookmark */ = 69269E011461F31100F69705 /* PBXTextBookmark */; - 69269E021461F31100F69705 /* PBXTextBookmark */ = 69269E021461F31100F69705 /* PBXTextBookmark */; - 69269E041461F51500F69705 /* PBXTextBookmark */ = 69269E041461F51500F69705 /* PBXTextBookmark */; - 69269E051461F51500F69705 /* PBXTextBookmark */ = 69269E051461F51500F69705 /* PBXTextBookmark */; - 69269E131461F7C500F69705 /* PBXTextBookmark */ = 69269E131461F7C500F69705 /* PBXTextBookmark */; - 69269E141461F7C500F69705 /* PBXTextBookmark */ = 69269E141461F7C500F69705 /* PBXTextBookmark */; - 69269E151461F7C500F69705 /* PBXTextBookmark */ = 69269E151461F7C500F69705 /* PBXTextBookmark */; - 69269E161461F7C500F69705 /* PBXTextBookmark */ = 69269E161461F7C500F69705 /* PBXTextBookmark */; - 69269E201461F84900F69705 /* PBXTextBookmark */ = 69269E201461F84900F69705 /* PBXTextBookmark */; - 69269E211461F84900F69705 /* PBXTextBookmark */ = 69269E211461F84900F69705 /* PBXTextBookmark */; - 69269E221461F84900F69705 /* PBXTextBookmark */ = 69269E221461F84900F69705 /* PBXTextBookmark */; - 69269E231461F84900F69705 /* PBXTextBookmark */ = 69269E231461F84900F69705 /* PBXTextBookmark */; - 69269E2E1461F87A00F69705 /* PBXTextBookmark */ = 69269E2E1461F87A00F69705 /* PBXTextBookmark */; - 69269E2F1461F87A00F69705 /* PBXTextBookmark */ = 69269E2F1461F87A00F69705 /* PBXTextBookmark */; - 69269E361461FA1000F69705 /* PBXTextBookmark */ = 69269E361461FA1000F69705 /* PBXTextBookmark */; - 69269E371461FA1000F69705 /* PBXTextBookmark */ = 69269E371461FA1000F69705 /* PBXTextBookmark */; - 69269E381461FA1000F69705 /* PBXTextBookmark */ = 69269E381461FA1000F69705 /* PBXTextBookmark */; - 69269E391461FA1000F69705 /* PBXTextBookmark */ = 69269E391461FA1000F69705 /* PBXTextBookmark */; - 69269E4D1461FC6300F69705 /* PBXTextBookmark */ = 69269E4D1461FC6300F69705 /* PBXTextBookmark */; - 69269E4E1461FC6300F69705 /* PBXTextBookmark */ = 69269E4E1461FC6300F69705 /* PBXTextBookmark */; - 69269E4F1461FC6300F69705 /* PBXTextBookmark */ = 69269E4F1461FC6300F69705 /* PBXTextBookmark */; - 69269E501461FC6300F69705 /* PBXTextBookmark */ = 69269E501461FC6300F69705 /* PBXTextBookmark */; - 69269E591461FF5A00F69705 /* PBXTextBookmark */ = 69269E591461FF5A00F69705 /* PBXTextBookmark */; - 69269E5A1461FF5A00F69705 /* PBXTextBookmark */ = 69269E5A1461FF5A00F69705 /* PBXTextBookmark */; - 69269E5D1461FFB900F69705 /* PBXTextBookmark */ = 69269E5D1461FFB900F69705 /* PBXTextBookmark */; - 69269E5E1461FFB900F69705 /* PBXTextBookmark */ = 69269E5E1461FFB900F69705 /* PBXTextBookmark */; - 69269E641461FFEF00F69705 /* PBXTextBookmark */ = 69269E641461FFEF00F69705 /* PBXTextBookmark */; - 69269E651461FFEF00F69705 /* PBXTextBookmark */ = 69269E651461FFEF00F69705 /* PBXTextBookmark */; - 69269E681462003D00F69705 /* PBXTextBookmark */ = 69269E681462003D00F69705 /* PBXTextBookmark */; - 69269E691462003D00F69705 /* PBXTextBookmark */ = 69269E691462003D00F69705 /* PBXTextBookmark */; - 69269E7B1462011400F69705 /* PBXTextBookmark */ = 69269E7B1462011400F69705 /* PBXTextBookmark */; - 69269E7C1462011400F69705 /* PBXTextBookmark */ = 69269E7C1462011400F69705 /* PBXTextBookmark */; - 69269E7D1462011400F69705 /* PBXTextBookmark */ = 69269E7D1462011400F69705 /* PBXTextBookmark */; - 69269E7E1462011400F69705 /* PBXTextBookmark */ = 69269E7E1462011400F69705 /* PBXTextBookmark */; - 69269E871462087600F69705 /* PBXTextBookmark */ = 69269E871462087600F69705 /* PBXTextBookmark */; - 69269E881462087600F69705 /* PBXTextBookmark */ = 69269E881462087600F69705 /* PBXTextBookmark */; - 69269E91146208B300F69705 /* PBXTextBookmark */ = 69269E91146208B300F69705 /* PBXTextBookmark */; - 69269E92146208B300F69705 /* PBXTextBookmark */ = 69269E92146208B300F69705 /* PBXTextBookmark */; - 69269E97146208CF00F69705 /* PBXTextBookmark */ = 69269E97146208CF00F69705 /* PBXTextBookmark */; - 69269E98146208CF00F69705 /* PBXTextBookmark */ = 69269E98146208CF00F69705 /* PBXTextBookmark */; - 69269E9F146208D800F69705 /* PBXTextBookmark */ = 69269E9F146208D800F69705 /* PBXTextBookmark */; - 69269EA0146208D800F69705 /* PBXTextBookmark */ = 69269EA0146208D800F69705 /* PBXTextBookmark */; - 69269EA71462091A00F69705 /* PBXTextBookmark */ = 69269EA71462091A00F69705 /* PBXTextBookmark */; - 69269EA81462091A00F69705 /* PBXTextBookmark */ = 69269EA81462091A00F69705 /* PBXTextBookmark */; - 69269EAF1462092900F69705 /* PBXTextBookmark */ = 69269EAF1462092900F69705 /* PBXTextBookmark */; - 69269EB01462092900F69705 /* PBXTextBookmark */ = 69269EB01462092900F69705 /* PBXTextBookmark */; - 69269EB91462096500F69705 /* PBXTextBookmark */ = 69269EB91462096500F69705 /* PBXTextBookmark */; - 69269EBA1462096500F69705 /* PBXTextBookmark */ = 69269EBA1462096500F69705 /* PBXTextBookmark */; - 69269EC1146209C300F69705 /* PBXTextBookmark */ = 69269EC1146209C300F69705 /* PBXTextBookmark */; - 69269EC2146209C300F69705 /* PBXTextBookmark */ = 69269EC2146209C300F69705 /* PBXTextBookmark */; - 69269EC714620A5300F69705 /* PBXTextBookmark */ = 69269EC714620A5300F69705 /* PBXTextBookmark */; - 69269EC814620A5300F69705 /* PBXTextBookmark */ = 69269EC814620A5300F69705 /* PBXTextBookmark */; - 69269ED014620AFE00F69705 /* PBXTextBookmark */ = 69269ED014620AFE00F69705 /* PBXTextBookmark */; - 69269ED114620AFE00F69705 /* PBXTextBookmark */ = 69269ED114620AFE00F69705 /* PBXTextBookmark */; - 69269ED214620AFE00F69705 /* PBXTextBookmark */ = 69269ED214620AFE00F69705 /* PBXTextBookmark */; - 69269ED314620AFE00F69705 /* PBXTextBookmark */ = 69269ED314620AFE00F69705 /* PBXTextBookmark */; - 69269ED414620AFE00F69705 /* PBXTextBookmark */ = 69269ED414620AFE00F69705 /* PBXTextBookmark */; - 69269EDB14620B2900F69705 /* PBXTextBookmark */ = 69269EDB14620B2900F69705 /* PBXTextBookmark */; - 69269EDC14620B2900F69705 /* PBXTextBookmark */ = 69269EDC14620B2900F69705 /* PBXTextBookmark */; - 69269EDD14620B2900F69705 /* PBXTextBookmark */ = 69269EDD14620B2900F69705 /* PBXTextBookmark */; - 69269EDE14620B2900F69705 /* PBXTextBookmark */ = 69269EDE14620B2900F69705 /* PBXTextBookmark */; - 69269EE514620B6100F69705 /* PBXTextBookmark */ = 69269EE514620B6100F69705 /* PBXTextBookmark */; - 69269EE614620B6100F69705 /* PBXTextBookmark */ = 69269EE614620B6100F69705 /* PBXTextBookmark */; - 69269EEF14620B9E00F69705 /* PBXTextBookmark */ = 69269EEF14620B9E00F69705 /* PBXTextBookmark */; - 69269EF014620B9E00F69705 /* PBXTextBookmark */ = 69269EF014620B9E00F69705 /* PBXTextBookmark */; - 69269EF514620BAB00F69705 /* PBXTextBookmark */ = 69269EF514620BAB00F69705 /* PBXTextBookmark */; - 69269EF614620BAB00F69705 /* PBXTextBookmark */ = 69269EF614620BAB00F69705 /* PBXTextBookmark */; - 69269EFD14620BB600F69705 /* PBXTextBookmark */ = 69269EFD14620BB600F69705 /* PBXTextBookmark */; - 69269EFE14620BB600F69705 /* PBXTextBookmark */ = 69269EFE14620BB600F69705 /* PBXTextBookmark */; - 69269F0314620BC100F69705 /* PBXTextBookmark */ = 69269F0314620BC100F69705 /* PBXTextBookmark */; - 69269F0414620BC100F69705 /* PBXTextBookmark */ = 69269F0414620BC100F69705 /* PBXTextBookmark */; - 69269F0C14620C1B00F69705 /* PBXTextBookmark */ = 69269F0C14620C1B00F69705 /* PBXTextBookmark */; - 69269F0D14620C1B00F69705 /* PBXTextBookmark */ = 69269F0D14620C1B00F69705 /* PBXTextBookmark */; - 69269F1014620C5700F69705 /* PBXTextBookmark */ = 69269F1014620C5700F69705 /* PBXTextBookmark */; - 69269F1114620C5700F69705 /* PBXTextBookmark */ = 69269F1114620C5700F69705 /* PBXTextBookmark */; - 69269F1714620C6800F69705 /* PBXTextBookmark */ = 69269F1714620C6800F69705 /* PBXTextBookmark */; - 69269F1814620C6800F69705 /* PBXTextBookmark */ = 69269F1814620C6800F69705 /* PBXTextBookmark */; - 69269F1D14620C8900F69705 /* PBXTextBookmark */ = 69269F1D14620C8900F69705 /* PBXTextBookmark */; - 69269F1E14620C8900F69705 /* PBXTextBookmark */ = 69269F1E14620C8900F69705 /* PBXTextBookmark */; - 69269F5214620FC500F69705 /* PBXTextBookmark */ = 69269F5214620FC500F69705 /* PBXTextBookmark */; - 69269F5314620FC500F69705 /* PBXTextBookmark */ = 69269F5314620FC500F69705 /* PBXTextBookmark */; - 69269F5414620FC500F69705 /* PBXTextBookmark */ = 69269F5414620FC500F69705 /* PBXTextBookmark */; - 69269F5514620FC500F69705 /* PBXTextBookmark */ = 69269F5514620FC500F69705 /* PBXTextBookmark */; - 69269F5F14620FFB00F69705 /* PBXTextBookmark */ = 69269F5F14620FFB00F69705 /* PBXTextBookmark */; - 69269F6A146210A800F69705 /* PBXTextBookmark */ = 69269F6A146210A800F69705 /* PBXTextBookmark */; - 69269F6B146210A800F69705 /* PBXTextBookmark */ = 69269F6B146210A800F69705 /* PBXTextBookmark */; - 69269F7B1462110A00F69705 /* PBXTextBookmark */ = 69269F7B1462110A00F69705 /* PBXTextBookmark */; - 69269F8A1462131300F69705 /* PBXTextBookmark */ = 69269F8A1462131300F69705 /* PBXTextBookmark */; - 69269F8B1462131300F69705 /* PBXTextBookmark */ = 69269F8B1462131300F69705 /* PBXTextBookmark */; - 69269F8C1462131300F69705 /* PBXTextBookmark */ = 69269F8C1462131300F69705 /* PBXTextBookmark */; - 69269F991462133E00F69705 /* PBXTextBookmark */ = 69269F991462133E00F69705 /* PBXTextBookmark */; - 69269FA01462137A00F69705 /* PBXTextBookmark */ = 69269FA01462137A00F69705 /* PBXTextBookmark */; - 69269FA71462140200F69705 /* PBXTextBookmark */ = 69269FA71462140200F69705 /* PBXTextBookmark */; - 69269FAE1462141200F69705 /* PBXTextBookmark */ = 69269FAE1462141200F69705 /* PBXTextBookmark */; - 69269FB1146237EA00F69705 /* PBXTextBookmark */ = 69269FB1146237EA00F69705 /* PBXTextBookmark */; - 69269FB2146237EA00F69705 /* PBXTextBookmark */ = 69269FB2146237EA00F69705 /* PBXTextBookmark */; - 69269FB3146237EA00F69705 /* PBXTextBookmark */ = 69269FB3146237EA00F69705 /* PBXTextBookmark */; - 69269FBD14623A5A00F69705 /* PBXTextBookmark */ = 69269FBD14623A5A00F69705 /* PBXTextBookmark */; - 69269FBE14623A5A00F69705 /* PBXTextBookmark */ = 69269FBE14623A5A00F69705 /* PBXTextBookmark */; - 69269FBF14623A5A00F69705 /* PBXTextBookmark */ = 69269FBF14623A5A00F69705 /* PBXTextBookmark */; - 69269FC014623A5A00F69705 /* PBXTextBookmark */ = 69269FC014623A5A00F69705 /* PBXTextBookmark */; - 69269FC414623C6700F69705 /* PBXTextBookmark */ = 69269FC414623C6700F69705 /* PBXTextBookmark */; - 69269FC514623C6700F69705 /* PBXTextBookmark */ = 69269FC514623C6700F69705 /* PBXTextBookmark */; - 69269FC614623C6700F69705 /* PBXTextBookmark */ = 69269FC614623C6700F69705 /* PBXTextBookmark */; - 69269FCA14623E3800F69705 /* PBXTextBookmark */ = 69269FCA14623E3800F69705 /* PBXTextBookmark */; - 69269FD014623EB800F69705 /* PBXTextBookmark */ = 69269FD014623EB800F69705 /* PBXTextBookmark */; - 69269FD214623F6800F69705 /* PBXTextBookmark */ = 69269FD214623F6800F69705 /* PBXTextBookmark */; - 69269FD814623F8800F69705 /* PBXTextBookmark */ = 69269FD814623F8800F69705 /* PBXTextBookmark */; - 69269FE61462402B00F69705 /* PBXTextBookmark */ = 69269FE61462402B00F69705 /* PBXTextBookmark */; - 69269FE71462402B00F69705 /* PBXTextBookmark */ = 69269FE71462402B00F69705 /* PBXTextBookmark */; - 69269FEB1462413F00F69705 /* PBXTextBookmark */ = 69269FEB1462413F00F69705 /* PBXTextBookmark */; - 69269FF21462414C00F69705 /* PBXTextBookmark */ = 69269FF21462414C00F69705 /* PBXTextBookmark */; - 69269FF91462423A00F69705 /* PBXTextBookmark */ = 69269FF91462423A00F69705 /* PBXTextBookmark */; - 6926A0001462426D00F69705 /* PBXTextBookmark */ = 6926A0001462426D00F69705 /* PBXTextBookmark */; - 6926A007146242ED00F69705 /* PBXTextBookmark */ = 6926A007146242ED00F69705 /* PBXTextBookmark */; - 6926A00E146243CA00F69705 /* PBXTextBookmark */ = 6926A00E146243CA00F69705 /* PBXTextBookmark */; - 6926A0151462445400F69705 /* PBXTextBookmark */ = 6926A0151462445400F69705 /* PBXTextBookmark */; - 6926A01C1462449200F69705 /* PBXTextBookmark */ = 6926A01C1462449200F69705 /* PBXTextBookmark */; - 6926A0231462454F00F69705 /* PBXTextBookmark */ = 6926A0231462454F00F69705 /* PBXTextBookmark */; - 6926A02A1462457A00F69705 /* PBXTextBookmark */ = 6926A02A1462457A00F69705 /* PBXTextBookmark */; - 6926A033146245AE00F69705 /* PBXTextBookmark */ = 6926A033146245AE00F69705 /* PBXTextBookmark */; - 6926A03A1462D95600F69705 /* PBXTextBookmark */ = 6926A03A1462D95600F69705 /* PBXTextBookmark */; - 6926A0411462D98D00F69705 /* PBXTextBookmark */ = 6926A0411462D98D00F69705 /* PBXTextBookmark */; - 6926A0461462D9B900F69705 /* PBXTextBookmark */ = 6926A0461462D9B900F69705 /* PBXTextBookmark */; - 6926A04A1462DAB900F69705 /* PBXTextBookmark */ = 6926A04A1462DAB900F69705 /* PBXTextBookmark */; - 6926A0501462DAE200F69705 /* PBXTextBookmark */ = 6926A0501462DAE200F69705 /* PBXTextBookmark */; - 6926A0571462DC7E00F69705 /* PBXTextBookmark */ = 6926A0571462DC7E00F69705 /* PBXTextBookmark */; - 6926A0641462DCB200F69705 /* PBXTextBookmark */ = 6926A0641462DCB200F69705 /* PBXTextBookmark */; - 6926A06B1462DCD300F69705 /* PBXTextBookmark */ = 6926A06B1462DCD300F69705 /* PBXTextBookmark */; - 6926A0721462DEE000F69705 /* PBXTextBookmark */ = 6926A0721462DEE000F69705 /* PBXTextBookmark */; - 6926A0791462DF3A00F69705 /* PBXTextBookmark */ = 6926A0791462DF3A00F69705 /* PBXTextBookmark */; - 6926A0801462DF6000F69705 /* PBXTextBookmark */ = 6926A0801462DF6000F69705 /* PBXTextBookmark */; - 6926A0871462DF7800F69705 /* PBXTextBookmark */ = 6926A0871462DF7800F69705 /* PBXTextBookmark */; - 6926A0901462DFB200F69705 /* PBXTextBookmark */ = 6926A0901462DFB200F69705 /* PBXTextBookmark */; - 6926A09D1462E09C00F69705 /* PBXTextBookmark */ = 6926A09D1462E09C00F69705 /* PBXTextBookmark */; - 6926A09E1462E09C00F69705 /* PBXTextBookmark */ = 6926A09E1462E09C00F69705 /* PBXTextBookmark */; - 6926A09F1462E09C00F69705 /* PBXTextBookmark */ = 6926A09F1462E09C00F69705 /* PBXTextBookmark */; - 6926A0B01462E1BE00F69705 /* PBXTextBookmark */ = 6926A0B01462E1BE00F69705 /* PBXTextBookmark */; - 6926A0B11462E1BE00F69705 /* PBXTextBookmark */ = 6926A0B11462E1BE00F69705 /* PBXTextBookmark */; - 6926A0B21462E1BE00F69705 /* PBXTextBookmark */ = 6926A0B21462E1BE00F69705 /* PBXTextBookmark */; - 6926A0BB1462E1D900F69705 /* PBXTextBookmark */ = 6926A0BB1462E1D900F69705 /* PBXTextBookmark */; - 6926A0C21462E20500F69705 /* PBXTextBookmark */ = 6926A0C21462E20500F69705 /* PBXTextBookmark */; - 6926A0C71462E29800F69705 /* PBXTextBookmark */ = 6926A0C71462E29800F69705 /* PBXTextBookmark */; - 6926A0CD1462EF4000F69705 /* PBXTextBookmark */ = 6926A0CD1462EF4000F69705 /* PBXTextBookmark */; - 6926A0DC1462EFBF00F69705 /* PBXTextBookmark */ = 6926A0DC1462EFBF00F69705 /* PBXTextBookmark */; - 6926A0DF146340CA00F69705 /* PBXTextBookmark */ = 6926A0DF146340CA00F69705 /* PBXTextBookmark */; - 6926A0E0146340CA00F69705 /* PBXTextBookmark */ = 6926A0E0146340CA00F69705 /* PBXTextBookmark */; - 6926A0E1146340CA00F69705 /* PBXTextBookmark */ = 6926A0E1146340CA00F69705 /* PBXTextBookmark */; - 6926A0EE1463428800F69705 /* PBXTextBookmark */ = 6926A0EE1463428800F69705 /* PBXTextBookmark */; - 6926A0EF1463428800F69705 /* PBXTextBookmark */ = 6926A0EF1463428800F69705 /* PBXTextBookmark */; - 6926A0F01463428800F69705 /* PBXTextBookmark */ = 6926A0F01463428800F69705 /* PBXTextBookmark */; - 6926A0FE1463434000F69705 /* PBXTextBookmark */ = 6926A0FE1463434000F69705 /* PBXTextBookmark */; - 6926A0FF1463434000F69705 /* PBXTextBookmark */ = 6926A0FF1463434000F69705 /* PBXTextBookmark */; - 6926A1001463434000F69705 /* PBXTextBookmark */ = 6926A1001463434000F69705 /* PBXTextBookmark */; - 6926A109146348FB00F69705 /* PBXTextBookmark */ = 6926A109146348FB00F69705 /* PBXTextBookmark */; - 6926A10A146348FB00F69705 /* PBXTextBookmark */ = 6926A10A146348FB00F69705 /* PBXTextBookmark */; - 6926A10B146348FB00F69705 /* PBXTextBookmark */ = 6926A10B146348FB00F69705 /* PBXTextBookmark */; - 6926A11B14634A1600F69705 /* PBXTextBookmark */ = 6926A11B14634A1600F69705 /* PBXTextBookmark */; - 6926A11C14634A1600F69705 /* PBXTextBookmark */ = 6926A11C14634A1600F69705 /* PBXTextBookmark */; - 6926A11D14634A1600F69705 /* PBXTextBookmark */ = 6926A11D14634A1600F69705 /* PBXTextBookmark */; - 6926A12614634ACB00F69705 /* PBXTextBookmark */ = 6926A12614634ACB00F69705 /* PBXTextBookmark */; - 6926A13014634B6900F69705 /* PBXTextBookmark */ = 6926A13014634B6900F69705 /* PBXTextBookmark */; - 6926A13114634B6900F69705 /* PBXTextBookmark */ = 6926A13114634B6900F69705 /* PBXTextBookmark */; - 6926A13214634B6900F69705 /* PBXTextBookmark */ = 6926A13214634B6900F69705 /* PBXTextBookmark */; - 6926A13914634C0A00F69705 /* PBXTextBookmark */ = 6926A13914634C0A00F69705 /* PBXTextBookmark */; - 6926A13E14634C5000F69705 /* PBXTextBookmark */ = 6926A13E14634C5000F69705 /* PBXTextBookmark */; - 6926A14414634C9E00F69705 /* PBXTextBookmark */ = 6926A14414634C9E00F69705 /* PBXTextBookmark */; - 6926A14914634FF400F69705 /* PBXTextBookmark */ = 6926A14914634FF400F69705 /* PBXTextBookmark */; - 6926A14A14634FF400F69705 /* PBXTextBookmark */ = 6926A14A14634FF400F69705 /* PBXTextBookmark */; - 6926A14B14634FF400F69705 /* PBXTextBookmark */ = 6926A14B14634FF400F69705 /* PBXTextBookmark */; - 6926A14F1463503900F69705 /* PBXTextBookmark */ = 6926A14F1463503900F69705 /* PBXTextBookmark */; - 6926A1551463508400F69705 /* PBXTextBookmark */ = 6926A1551463508400F69705 /* PBXTextBookmark */; - 6926A1561463508400F69705 /* PBXTextBookmark */ = 6926A1561463508400F69705 /* PBXTextBookmark */; - 6926A1571463508400F69705 /* PBXTextBookmark */ = 6926A1571463508400F69705 /* PBXTextBookmark */; - 6926A15B146350B600F69705 /* PBXTextBookmark */ = 6926A15B146350B600F69705 /* PBXTextBookmark */; - 6926A15C146350B600F69705 /* PBXTextBookmark */ = 6926A15C146350B600F69705 /* PBXTextBookmark */; - 6926A15D146350B600F69705 /* PBXTextBookmark */ = 6926A15D146350B600F69705 /* PBXTextBookmark */; - 6926A15E146350B600F69705 /* PBXTextBookmark */ = 6926A15E146350B600F69705 /* PBXTextBookmark */; - 6926A160146350E300F69705 /* PBXTextBookmark */ = 6926A160146350E300F69705 /* PBXTextBookmark */; - 6926A1621463511900F69705 /* PBXTextBookmark */ = 6926A1621463511900F69705 /* PBXTextBookmark */; - 6926A1661463513900F69705 /* PBXTextBookmark */ = 6926A1661463513900F69705 /* PBXTextBookmark */; - 6926A16A1463517900F69705 /* PBXTextBookmark */ = 6926A16A1463517900F69705 /* PBXTextBookmark */; - 6926A1701463518E00F69705 /* PBXTextBookmark */ = 6926A1701463518E00F69705 /* PBXTextBookmark */; - 6926A1771463520200F69705 /* PBXTextBookmark */ = 6926A1771463520200F69705 /* PBXTextBookmark */; - 6926A17C1463521400F69705 /* PBXTextBookmark */ = 6926A17C1463521400F69705 /* PBXTextBookmark */; - 6926A1831463522C00F69705 /* PBXTextBookmark */ = 6926A1831463522C00F69705 /* PBXTextBookmark */; - 6926A18A1463560A00F69705 /* PBXTextBookmark */ = 6926A18A1463560A00F69705 /* PBXTextBookmark */; - 6926A18B1463560A00F69705 /* PBXTextBookmark */ = 6926A18B1463560A00F69705 /* PBXTextBookmark */; - 6926A18C1463560A00F69705 /* PBXTextBookmark */ = 6926A18C1463560A00F69705 /* PBXTextBookmark */; - 6926A1951463569500F69705 /* PBXTextBookmark */ = 6926A1951463569500F69705 /* PBXTextBookmark */; - 6926A19C1463574C00F69705 /* PBXTextBookmark */ = 6926A19C1463574C00F69705 /* PBXTextBookmark */; - 6926A19D1463574C00F69705 /* PBXTextBookmark */ = 6926A19D1463574C00F69705 /* PBXTextBookmark */; - 6926A19E1463574C00F69705 /* PBXTextBookmark */ = 6926A19E1463574C00F69705 /* PBXTextBookmark */; - 6926A1A51463576100F69705 /* PBXTextBookmark */ = 6926A1A51463576100F69705 /* PBXTextBookmark */; - 6926A1AC1463578B00F69705 /* PBXTextBookmark */ = 6926A1AC1463578B00F69705 /* PBXTextBookmark */; - 6926A1B3146357A900F69705 /* PBXTextBookmark */ = 6926A1B3146357A900F69705 /* PBXTextBookmark */; - 6926A1C81463585300F69705 /* PBXTextBookmark */ = 6926A1C81463585300F69705 /* PBXTextBookmark */; - 6926A1C91463585300F69705 /* PBXTextBookmark */ = 6926A1C91463585300F69705 /* PBXTextBookmark */; - 6926A1CA1463585300F69705 /* PBXTextBookmark */ = 6926A1CA1463585300F69705 /* PBXTextBookmark */; - 6926A1D0146358C100F69705 /* PBXTextBookmark */ = 6926A1D0146358C100F69705 /* PBXTextBookmark */; - 6926A1D1146358C100F69705 /* PBXTextBookmark */ = 6926A1D1146358C100F69705 /* PBXTextBookmark */; - 6926A1D71463595400F69705 /* PBXTextBookmark */ = 6926A1D71463595400F69705 /* PBXTextBookmark */; - 6926A1E1146359AE00F69705 /* PBXTextBookmark */ = 6926A1E1146359AE00F69705 /* PBXTextBookmark */; - 6926A1E6146359BE00F69705 /* PBXTextBookmark */ = 6926A1E6146359BE00F69705 /* PBXTextBookmark */; - 6926A1F314635B3B00F69705 /* PBXTextBookmark */ = 6926A1F314635B3B00F69705 /* PBXTextBookmark */; - 6926A1FA14635B4E00F69705 /* PBXTextBookmark */ = 6926A1FA14635B4E00F69705 /* PBXTextBookmark */; - 6926A20A14635B7E00F69705 /* PBXTextBookmark */ = 6926A20A14635B7E00F69705 /* PBXTextBookmark */; - 6926A21B14635B9D00F69705 /* PBXTextBookmark */ = 6926A21B14635B9D00F69705 /* PBXTextBookmark */; - 6926A22E14635BE700F69705 /* PBXTextBookmark */ = 6926A22E14635BE700F69705 /* PBXTextBookmark */; - 6926A23E14635C4500F69705 /* PBXTextBookmark */ = 6926A23E14635C4500F69705 /* PBXTextBookmark */; - 6926A24B14635C6E00F69705 /* PBXTextBookmark */ = 6926A24B14635C6E00F69705 /* PBXTextBookmark */; - 6926A25C14635CF500F69705 /* PBXTextBookmark */ = 6926A25C14635CF500F69705 /* PBXTextBookmark */; - 6926A26714635D4A00F69705 /* PBXTextBookmark */ = 6926A26714635D4A00F69705 /* PBXTextBookmark */; - 6926A26D14635D8200F69705 /* PBXTextBookmark */ = 6926A26D14635D8200F69705 /* PBXTextBookmark */; - 6926A27314635DEA00F69705 /* PBXTextBookmark */ = 6926A27314635DEA00F69705 /* PBXTextBookmark */; - 6926A28114635EEC00F69705 /* PBXTextBookmark */ = 6926A28114635EEC00F69705 /* PBXTextBookmark */; - 6926A28A14635EF900F69705 /* PBXTextBookmark */ = 6926A28A14635EF900F69705 /* PBXTextBookmark */; - 6926A28B14635EF900F69705 /* PBXTextBookmark */ = 6926A28B14635EF900F69705 /* PBXTextBookmark */; - 6926A29114635F5E00F69705 /* PBXTextBookmark */ = 6926A29114635F5E00F69705 /* PBXTextBookmark */; - 6926A29214635F5E00F69705 /* PBXTextBookmark */ = 6926A29214635F5E00F69705 /* PBXTextBookmark */; - 6926A29914635FBD00F69705 /* PBXTextBookmark */ = 6926A29914635FBD00F69705 /* PBXTextBookmark */; - 6926A2A214635FF000F69705 /* PBXTextBookmark */ = 6926A2A214635FF000F69705 /* PBXTextBookmark */; - 6926A2AB1463601300F69705 /* PBXTextBookmark */ = 6926A2AB1463601300F69705 /* PBXTextBookmark */; - 6926A2B21463603600F69705 /* PBXTextBookmark */ = 6926A2B21463603600F69705 /* PBXTextBookmark */; - 6926A2B91463605A00F69705 /* PBXTextBookmark */ = 6926A2B91463605A00F69705 /* PBXTextBookmark */; - 6926A2BC1463607D00F69705 /* PBXTextBookmark */ = 6926A2BC1463607D00F69705 /* PBXTextBookmark */; - 6926A2C4146360ED00F69705 /* PBXTextBookmark */ = 6926A2C4146360ED00F69705 /* PBXTextBookmark */; - 6926A2CD1463613E00F69705 /* PBXTextBookmark */ = 6926A2CD1463613E00F69705 /* PBXTextBookmark */; + 69269F5214620FC500F69705 = 69269F5214620FC500F69705 /* PBXTextBookmark */; + 69269F5314620FC500F69705 = 69269F5314620FC500F69705 /* PBXTextBookmark */; + 6926A15B146350B600F69705 = 6926A15B146350B600F69705 /* PBXTextBookmark */; + 6926A2F4146376F100F69705 = 6926A2F4146376F100F69705 /* PBXTextBookmark */; + 6926A484146471E800F69705 = 6926A484146471E800F69705 /* PBXTextBookmark */; + 6926A485146471E800F69705 = 6926A485146471E800F69705 /* PBXTextBookmark */; + 6926A4E21465DFEA00F69705 = 6926A4E21465DFEA00F69705 /* PBXTextBookmark */; + 6926A4FD1465E68800F69705 /* PBXTextBookmark */ = 6926A4FD1465E68800F69705 /* PBXTextBookmark */; + 6926A5051469D77400F69705 /* PBXTextBookmark */ = 6926A5051469D77400F69705 /* PBXTextBookmark */; + 6926A5101469DAF400F69705 /* PBXTextBookmark */ = 6926A5101469DAF400F69705 /* PBXTextBookmark */; + 6926A5161469DB5600F69705 /* PBXTextBookmark */ = 6926A5161469DB5600F69705 /* PBXTextBookmark */; + 6926A51D1469DB9700F69705 /* PBXTextBookmark */ = 6926A51D1469DB9700F69705 /* PBXTextBookmark */; + 6926A52C1469DCC900F69705 /* PBXTextBookmark */ = 6926A52C1469DCC900F69705 /* PBXTextBookmark */; + 6926A52D1469DCC900F69705 /* PBXTextBookmark */ = 6926A52D1469DCC900F69705 /* PBXTextBookmark */; + 6926A53C1469DD0300F69705 /* PBXTextBookmark */ = 6926A53C1469DD0300F69705 /* PBXTextBookmark */; + 6926A5451469DFAA00F69705 /* PBXTextBookmark */ = 6926A5451469DFAA00F69705 /* PBXTextBookmark */; + 6926A5521469E07800F69705 /* PBXTextBookmark */ = 6926A5521469E07800F69705 /* PBXTextBookmark */; + 6926A58B1469E66900F69705 /* PBXTextBookmark */ = 6926A58B1469E66900F69705 /* PBXTextBookmark */; + 6926A58C1469E66900F69705 /* PBXTextBookmark */ = 6926A58C1469E66900F69705 /* PBXTextBookmark */; + 6926A58D1469E66900F69705 /* PBXTextBookmark */ = 6926A58D1469E66900F69705 /* PBXTextBookmark */; + 6926A58E1469E66900F69705 /* PBXTextBookmark */ = 6926A58E1469E66900F69705 /* PBXTextBookmark */; + 6926A5A11469EA0B00F69705 /* PBXTextBookmark */ = 6926A5A11469EA0B00F69705 /* PBXTextBookmark */; + 6926A5A21469EA0B00F69705 /* PBXTextBookmark */ = 6926A5A21469EA0B00F69705 /* PBXTextBookmark */; + 6926A5A31469EA0B00F69705 /* PBXTextBookmark */ = 6926A5A31469EA0B00F69705 /* PBXTextBookmark */; + 6926A5AD1469EA3A00F69705 /* PBXTextBookmark */ = 6926A5AD1469EA3A00F69705 /* PBXTextBookmark */; + 6926A5B11469EB4E00F69705 /* PBXTextBookmark */ = 6926A5B11469EB4E00F69705 /* PBXTextBookmark */; + 6926A5B21469EB4E00F69705 /* PBXTextBookmark */ = 6926A5B21469EB4E00F69705 /* PBXTextBookmark */; + 6926A5B31469EB4E00F69705 /* PBXTextBookmark */ = 6926A5B31469EB4E00F69705 /* PBXTextBookmark */; + 6926A5B51469EC5000F69705 /* PBXTextBookmark */ = 6926A5B51469EC5000F69705 /* PBXTextBookmark */; + 6926A5C51469EE2F00F69705 /* PBXTextBookmark */ = 6926A5C51469EE2F00F69705 /* PBXTextBookmark */; + 6926A5C61469EE2F00F69705 /* PBXTextBookmark */ = 6926A5C61469EE2F00F69705 /* PBXTextBookmark */; + 6926A5C71469EE2F00F69705 /* PBXTextBookmark */ = 6926A5C71469EE2F00F69705 /* PBXTextBookmark */; + 6926A5CB1469EE8F00F69705 /* PBXTextBookmark */ = 6926A5CB1469EE8F00F69705 /* PBXTextBookmark */; + 6926A5E41469EF5D00F69705 /* PBXTextBookmark */ = 6926A5E41469EF5D00F69705 /* PBXTextBookmark */; + 6926A5ED1469EF8C00F69705 /* PBXTextBookmark */ = 6926A5ED1469EF8C00F69705 /* PBXTextBookmark */; + 6926A5F51469F04600F69705 /* PBXTextBookmark */ = 6926A5F51469F04600F69705 /* PBXTextBookmark */; + 6926A6061469F14800F69705 /* PBXTextBookmark */ = 6926A6061469F14800F69705 /* PBXTextBookmark */; + 6926A6071469F14800F69705 /* PBXTextBookmark */ = 6926A6071469F14800F69705 /* PBXTextBookmark */; + 6926A6081469F14800F69705 /* PBXTextBookmark */ = 6926A6081469F14800F69705 /* PBXTextBookmark */; + 6926A6241469F85000F69705 /* PBXTextBookmark */ = 6926A6241469F85000F69705 /* PBXTextBookmark */; + 6926A6251469F85000F69705 /* PBXTextBookmark */ = 6926A6251469F85000F69705 /* PBXTextBookmark */; + 6926A6261469F85000F69705 /* PBXTextBookmark */ = 6926A6261469F85000F69705 /* PBXTextBookmark */; + 6926A6281469F8EC00F69705 /* PBXTextBookmark */ = 6926A6281469F8EC00F69705 /* PBXTextBookmark */; + 6926A6291469F8EC00F69705 /* PBXTextBookmark */ = 6926A6291469F8EC00F69705 /* PBXTextBookmark */; + 6926A62A1469F8EC00F69705 /* PBXTextBookmark */ = 6926A62A1469F8EC00F69705 /* PBXTextBookmark */; + 6926A6341469FA5100F69705 /* PBXTextBookmark */ = 6926A6341469FA5100F69705 /* PBXTextBookmark */; + 6926A6351469FA5100F69705 /* PBXTextBookmark */ = 6926A6351469FA5100F69705 /* PBXTextBookmark */; + 6926A6361469FA5100F69705 /* PBXTextBookmark */ = 6926A6361469FA5100F69705 /* PBXTextBookmark */; + 6926A671146B39B700F69705 /* PBXTextBookmark */ = 6926A671146B39B700F69705 /* PBXTextBookmark */; + 6926A672146B39B700F69705 /* PBXTextBookmark */ = 6926A672146B39B700F69705 /* PBXTextBookmark */; + 6926A673146B39B700F69705 /* PBXTextBookmark */ = 6926A673146B39B700F69705 /* PBXTextBookmark */; + 6926A674146B39B700F69705 /* PBXTextBookmark */ = 6926A674146B39B700F69705 /* PBXTextBookmark */; + 6926A675146B39B700F69705 /* PBXTextBookmark */ = 6926A675146B39B700F69705 /* PBXTextBookmark */; + 6926A68E146B3A7F00F69705 /* PBXTextBookmark */ = 6926A68E146B3A7F00F69705 /* PBXTextBookmark */; + 6926A68F146B3A7F00F69705 /* PBXTextBookmark */ = 6926A68F146B3A7F00F69705 /* PBXTextBookmark */; + 6926A690146B3A7F00F69705 /* PBXTextBookmark */ = 6926A690146B3A7F00F69705 /* PBXTextBookmark */; + 6926A691146B3A7F00F69705 /* PBXTextBookmark */ = 6926A691146B3A7F00F69705 /* PBXTextBookmark */; + 6926A692146B3A7F00F69705 /* PBXTextBookmark */ = 6926A692146B3A7F00F69705 /* PBXTextBookmark */; + 6926A69F146B3AC100F69705 /* PBXTextBookmark */ = 6926A69F146B3AC100F69705 /* PBXTextBookmark */; + 6926A6A0146B3AC100F69705 /* PBXTextBookmark */ = 6926A6A0146B3AC100F69705 /* PBXTextBookmark */; + 6926A6A1146B3AC100F69705 /* PBXTextBookmark */ = 6926A6A1146B3AC100F69705 /* PBXTextBookmark */; + 6926A6A2146B3AC100F69705 /* PBXTextBookmark */ = 6926A6A2146B3AC100F69705 /* PBXTextBookmark */; + 6926A6D0146B44A300F69705 /* PBXTextBookmark */ = 6926A6D0146B44A300F69705 /* PBXTextBookmark */; + 6926A6D1146B44A300F69705 /* PBXTextBookmark */ = 6926A6D1146B44A300F69705 /* PBXTextBookmark */; + 6926A6D2146B44A300F69705 /* PBXTextBookmark */ = 6926A6D2146B44A300F69705 /* PBXTextBookmark */; + 6926A6D3146B44A300F69705 /* PBXTextBookmark */ = 6926A6D3146B44A300F69705 /* PBXTextBookmark */; + 6926A6D4146B44A300F69705 /* PBXTextBookmark */ = 6926A6D4146B44A300F69705 /* PBXTextBookmark */; + 6926A6E1146B44E000F69705 /* PBXTextBookmark */ = 6926A6E1146B44E000F69705 /* PBXTextBookmark */; + 6926A6E2146B44E000F69705 /* PBXTextBookmark */ = 6926A6E2146B44E000F69705 /* PBXTextBookmark */; + 6926A6E3146B44E000F69705 /* PBXTextBookmark */ = 6926A6E3146B44E000F69705 /* PBXTextBookmark */; + 6926A6E4146B44E000F69705 /* PBXTextBookmark */ = 6926A6E4146B44E000F69705 /* PBXTextBookmark */; + 6926A6EB146B44FD00F69705 /* PBXTextBookmark */ = 6926A6EB146B44FD00F69705 /* PBXTextBookmark */; + 6926A6F5146B453900F69705 /* PBXTextBookmark */ = 6926A6F5146B453900F69705 /* PBXTextBookmark */; + 6926A710146B467100F69705 /* PBXTextBookmark */ = 6926A710146B467100F69705 /* PBXTextBookmark */; + 6926A71B146B478A00F69705 /* PBXTextBookmark */ = 6926A71B146B478A00F69705 /* PBXTextBookmark */; + 6926A722146B47C800F69705 /* PBXTextBookmark */ = 6926A722146B47C800F69705 /* PBXTextBookmark */; + 6926A723146B47C800F69705 /* PBXTextBookmark */ = 6926A723146B47C800F69705 /* PBXTextBookmark */; + 6926A72D146B483200F69705 /* PBXTextBookmark */ = 6926A72D146B483200F69705 /* PBXTextBookmark */; + 6926A72E146B483200F69705 /* PBXTextBookmark */ = 6926A72E146B483200F69705 /* PBXTextBookmark */; + 6926A72F146B483200F69705 /* PBXTextBookmark */ = 6926A72F146B483200F69705 /* PBXTextBookmark */; + 6926A73E146B486200F69705 /* PBXTextBookmark */ = 6926A73E146B486200F69705 /* PBXTextBookmark */; + 6926A742146B48A400F69705 /* PBXTextBookmark */ = 6926A742146B48A400F69705 /* PBXTextBookmark */; + 6926A748146B520D00F69705 /* PBXTextBookmark */ = 6926A748146B520D00F69705 /* PBXTextBookmark */; + 6926A749146B520D00F69705 /* PBXTextBookmark */ = 6926A749146B520D00F69705 /* PBXTextBookmark */; + 6926A74A146B520D00F69705 /* PBXTextBookmark */ = 6926A74A146B520D00F69705 /* PBXTextBookmark */; + 6926A750146B525300F69705 /* PBXTextBookmark */ = 6926A750146B525300F69705 /* PBXTextBookmark */; + 6926A758146B534600F69705 /* PBXTextBookmark */ = 6926A758146B534600F69705 /* PBXTextBookmark */; + 6926A759146B534600F69705 /* PBXTextBookmark */ = 6926A759146B534600F69705 /* PBXTextBookmark */; + 6926A75A146B534600F69705 /* PBXTextBookmark */ = 6926A75A146B534600F69705 /* PBXTextBookmark */; + 6926A75E146B535D00F69705 /* PBXTextBookmark */ = 6926A75E146B535D00F69705 /* PBXTextBookmark */; + 6926A762146B539C00F69705 /* PBXTextBookmark */ = 6926A762146B539C00F69705 /* PBXTextBookmark */; + 6926A777146B542600F69705 /* PBXTextBookmark */ = 6926A777146B542600F69705 /* PBXTextBookmark */; + 6926A778146B542600F69705 /* PBXTextBookmark */ = 6926A778146B542600F69705 /* PBXTextBookmark */; + 6926A782146B545000F69705 /* PBXTextBookmark */ = 6926A782146B545000F69705 /* PBXTextBookmark */; + 6926A78D146B54BF00F69705 /* PBXTextBookmark */ = 6926A78D146B54BF00F69705 /* PBXTextBookmark */; + 6926A7B8146B575800F69705 /* PBXTextBookmark */ = 6926A7B8146B575800F69705 /* PBXTextBookmark */; + 6926A7B9146B575800F69705 /* PBXTextBookmark */ = 6926A7B9146B575800F69705 /* PBXTextBookmark */; + 6926A7BA146B575800F69705 /* PBXTextBookmark */ = 6926A7BA146B575800F69705 /* PBXTextBookmark */; + 6926A7C4146B577900F69705 /* PBXTextBookmark */ = 6926A7C4146B577900F69705 /* PBXTextBookmark */; + 6926A7D0146B57EC00F69705 /* PBXTextBookmark */ = 6926A7D0146B57EC00F69705 /* PBXTextBookmark */; + 6926A7D4146B590C00F69705 /* PBXTextBookmark */ = 6926A7D4146B590C00F69705 /* PBXTextBookmark */; + 6926A7D8146B596C00F69705 /* PBXTextBookmark */ = 6926A7D8146B596C00F69705 /* PBXTextBookmark */; + 6926A7E0146B59BC00F69705 /* XCBuildMessageTextBookmark */ = 6926A7E0146B59BC00F69705 /* XCBuildMessageTextBookmark */; + 6926A7E1146B59BC00F69705 /* PBXTextBookmark */ = 6926A7E1146B59BC00F69705 /* PBXTextBookmark */; + 6926A7E3146B59E400F69705 /* PBXTextBookmark */ = 6926A7E3146B59E400F69705 /* PBXTextBookmark */; + 6926A7E5146B5A9100F69705 /* PBXTextBookmark */ = 6926A7E5146B5A9100F69705 /* PBXTextBookmark */; + 6926A7E6146B5A9100F69705 /* PBXTextBookmark */ = 6926A7E6146B5A9100F69705 /* PBXTextBookmark */; + 6926A7E7146B5A9100F69705 /* PBXTextBookmark */ = 6926A7E7146B5A9100F69705 /* PBXTextBookmark */; + 6926A7E9146B5AE900F69705 /* PBXTextBookmark */ = 6926A7E9146B5AE900F69705 /* PBXTextBookmark */; + 6926A7EB146B5B4D00F69705 /* PBXTextBookmark */ = 6926A7EB146B5B4D00F69705 /* PBXTextBookmark */; + 6926A7F1146B5B7800F69705 /* PBXTextBookmark */ = 6926A7F1146B5B7800F69705 /* PBXTextBookmark */; + 6926A7F2146B5B7800F69705 /* PBXTextBookmark */ = 6926A7F2146B5B7800F69705 /* PBXTextBookmark */; + 6926A7F3146B5B7800F69705 /* PBXTextBookmark */ = 6926A7F3146B5B7800F69705 /* PBXTextBookmark */; + 6926A7F5146B5B8900F69705 /* PBXTextBookmark */ = 6926A7F5146B5B8900F69705 /* PBXTextBookmark */; + 6926A7F7146B5BB700F69705 /* PBXTextBookmark */ = 6926A7F7146B5BB700F69705 /* PBXTextBookmark */; + 6926A7F8146B5BB700F69705 /* PBXTextBookmark */ = 6926A7F8146B5BB700F69705 /* PBXTextBookmark */; + 6926A7F9146B5BB700F69705 /* PBXTextBookmark */ = 6926A7F9146B5BB700F69705 /* PBXTextBookmark */; + 6926A7FD146B5C8100F69705 /* PBXTextBookmark */ = 6926A7FD146B5C8100F69705 /* PBXTextBookmark */; + 6926A80A146B5D0400F69705 /* PBXTextBookmark */ = 6926A80A146B5D0400F69705 /* PBXTextBookmark */; + 6926A80B146B5D0400F69705 /* PBXTextBookmark */ = 6926A80B146B5D0400F69705 /* PBXTextBookmark */; + 6926A817146B5D9F00F69705 /* PBXTextBookmark */ = 6926A817146B5D9F00F69705 /* PBXTextBookmark */; + 6926A823146B5DC800F69705 /* PBXTextBookmark */ = 6926A823146B5DC800F69705 /* PBXTextBookmark */; + 6926A824146B5DC800F69705 /* PBXTextBookmark */ = 6926A824146B5DC800F69705 /* PBXTextBookmark */; + 6926A826146B5DF500F69705 /* PBXTextBookmark */ = 6926A826146B5DF500F69705 /* PBXTextBookmark */; + 6926A82D146B5E0200F69705 /* PBXTextBookmark */ = 6926A82D146B5E0200F69705 /* PBXTextBookmark */; + 6926A83C146B78C100F69705 /* PBXTextBookmark */ = 6926A83C146B78C100F69705 /* PBXTextBookmark */; + 6926A845146B791200F69705 /* PBXTextBookmark */ = 6926A845146B791200F69705 /* PBXTextBookmark */; + 6926A849146B7AD600F69705 /* PBXTextBookmark */ = 6926A849146B7AD600F69705 /* PBXTextBookmark */; + 6926A84B146B7AE200F69705 /* PBXTextBookmark */ = 6926A84B146B7AE200F69705 /* PBXTextBookmark */; + 6926A853146B7B1D00F69705 /* PBXTextBookmark */ = 6926A853146B7B1D00F69705 /* PBXTextBookmark */; + 6926A855146B7B2500F69705 /* PBXTextBookmark */ = 6926A855146B7B2500F69705 /* PBXTextBookmark */; + 6926A857146B7CF400F69705 /* PBXTextBookmark */ = 6926A857146B7CF400F69705 /* PBXTextBookmark */; + 6926A86D146B7F1B00F69705 /* PBXTextBookmark */ = 6926A86D146B7F1B00F69705 /* PBXTextBookmark */; + 6926A86E146B7F1B00F69705 /* PBXTextBookmark */ = 6926A86E146B7F1B00F69705 /* PBXTextBookmark */; + 6926A86F146B7F1B00F69705 /* PBXTextBookmark */ = 6926A86F146B7F1B00F69705 /* PBXTextBookmark */; + 6926A880146B7F8A00F69705 /* PBXTextBookmark */ = 6926A880146B7F8A00F69705 /* PBXTextBookmark */; + 6926A881146B7F8A00F69705 /* PBXTextBookmark */ = 6926A881146B7F8A00F69705 /* PBXTextBookmark */; + 6926A888146B7FF800F69705 /* PBXTextBookmark */ = 6926A888146B7FF800F69705 /* PBXTextBookmark */; + 6926A88F146B801E00F69705 /* PBXTextBookmark */ = 6926A88F146B801E00F69705 /* PBXTextBookmark */; + 6926A890146B801E00F69705 /* PBXTextBookmark */ = 6926A890146B801E00F69705 /* PBXTextBookmark */; + 6926A898146B8A2900F69705 /* PBXTextBookmark */ = 6926A898146B8A2900F69705 /* PBXTextBookmark */; + 6926A899146B8A2900F69705 /* PBXTextBookmark */ = 6926A899146B8A2900F69705 /* PBXTextBookmark */; + 6926A89A146B8A2900F69705 /* PBXTextBookmark */ = 6926A89A146B8A2900F69705 /* PBXTextBookmark */; + 6926A8A2146B8AE400F69705 /* PBXTextBookmark */ = 6926A8A2146B8AE400F69705 /* PBXTextBookmark */; + 6926A8A4146C242E00F69705 /* PBXTextBookmark */ = 6926A8A4146C242E00F69705 /* PBXTextBookmark */; + 6926A8B0146C250500F69705 /* PBXTextBookmark */ = 6926A8B0146C250500F69705 /* PBXTextBookmark */; + 6926A8B1146C250500F69705 /* PBXTextBookmark */ = 6926A8B1146C250500F69705 /* PBXTextBookmark */; + 6926A8B2146C250500F69705 /* PBXTextBookmark */ = 6926A8B2146C250500F69705 /* PBXTextBookmark */; + 6926A8BA146C266700F69705 /* PBXTextBookmark */ = 6926A8BA146C266700F69705 /* PBXTextBookmark */; + 6926A8C2146C2B5500F69705 /* PBXTextBookmark */ = 6926A8C2146C2B5500F69705 /* PBXTextBookmark */; + 6926A8C3146C2B5500F69705 /* PBXTextBookmark */ = 6926A8C3146C2B5500F69705 /* PBXTextBookmark */; + 6926A8C4146C2B5500F69705 /* PBXTextBookmark */ = 6926A8C4146C2B5500F69705 /* PBXTextBookmark */; + 6926A8C8146C323400F69705 /* PBXTextBookmark */ = 6926A8C8146C323400F69705 /* PBXTextBookmark */; + 6926A8C9146C323400F69705 /* PBXTextBookmark */ = 6926A8C9146C323400F69705 /* PBXTextBookmark */; + 6926A8CA146C323400F69705 /* PBXTextBookmark */ = 6926A8CA146C323400F69705 /* PBXTextBookmark */; + 6926A8DB146C34B200F69705 /* PBXTextBookmark */ = 6926A8DB146C34B200F69705 /* PBXTextBookmark */; + 6926A8DC146C34B200F69705 /* PBXTextBookmark */ = 6926A8DC146C34B200F69705 /* PBXTextBookmark */; + 6926A8E7146C354B00F69705 /* PBXTextBookmark */ = 6926A8E7146C354B00F69705 /* PBXTextBookmark */; + 6926A8F2146C355F00F69705 /* PBXTextBookmark */ = 6926A8F2146C355F00F69705 /* PBXTextBookmark */; + 6926A8F3146C355F00F69705 /* PBXTextBookmark */ = 6926A8F3146C355F00F69705 /* PBXTextBookmark */; + 6926A8FA146C35DD00F69705 /* PBXTextBookmark */ = 6926A8FA146C35DD00F69705 /* PBXTextBookmark */; + 6926A90F146C372400F69705 /* PBXTextBookmark */ = 6926A90F146C372400F69705 /* PBXTextBookmark */; + 6926A910146C372400F69705 /* PBXTextBookmark */ = 6926A910146C372400F69705 /* PBXTextBookmark */; + 6926A91B146C386D00F69705 /* PBXTextBookmark */ = 6926A91B146C386D00F69705 /* PBXTextBookmark */; + 6926A926146C388D00F69705 /* PBXTextBookmark */ = 6926A926146C388D00F69705 /* PBXTextBookmark */; + 6926A927146C388D00F69705 /* PBXTextBookmark */ = 6926A927146C388D00F69705 /* PBXTextBookmark */; + 6926A93B146C3AC000F69705 /* PBXTextBookmark */ = 6926A93B146C3AC000F69705 /* PBXTextBookmark */; + 6926A93C146C3AC000F69705 /* PBXTextBookmark */ = 6926A93C146C3AC000F69705 /* PBXTextBookmark */; + 6926A946146C3B5700F69705 /* PBXTextBookmark */ = 6926A946146C3B5700F69705 /* PBXTextBookmark */; + 6926A94D146C3B6300F69705 /* PBXTextBookmark */ = 6926A94D146C3B6300F69705 /* PBXTextBookmark */; + 6926A94E146C3B6300F69705 /* PBXTextBookmark */ = 6926A94E146C3B6300F69705 /* PBXTextBookmark */; + 6926A957146C3BDA00F69705 /* PBXTextBookmark */ = 6926A957146C3BDA00F69705 /* PBXTextBookmark */; + 6926A963146C3C2B00F69705 /* PBXTextBookmark */ = 6926A963146C3C2B00F69705 /* PBXTextBookmark */; + 6926A97D146C463400F69705 /* PBXTextBookmark */ = 6926A97D146C463400F69705 /* PBXTextBookmark */; + 6926A97E146C463400F69705 /* PBXTextBookmark */ = 6926A97E146C463400F69705 /* PBXTextBookmark */; + 6926A97F146C463400F69705 /* PBXTextBookmark */ = 6926A97F146C463400F69705 /* PBXTextBookmark */; + 6926A985146C477500F69705 /* PBXTextBookmark */ = 6926A985146C477500F69705 /* PBXTextBookmark */; + 6926A98E146C48EB00F69705 /* PBXTextBookmark */ = 6926A98E146C48EB00F69705 /* PBXTextBookmark */; + 6926A98F146C48EB00F69705 /* PBXTextBookmark */ = 6926A98F146C48EB00F69705 /* PBXTextBookmark */; + 6926A999146C4E9600F69705 /* PBXTextBookmark */ = 6926A999146C4E9600F69705 /* PBXTextBookmark */; + 6926A9A4146C4F3F00F69705 /* PBXTextBookmark */ = 6926A9A4146C4F3F00F69705 /* PBXTextBookmark */; + 6926A9A7146C4F6200F69705 /* PBXTextBookmark */ = 6926A9A7146C4F6200F69705 /* PBXTextBookmark */; 69868BD11460F42D004C5D9B = 69868BD11460F42D004C5D9B /* PBXTextBookmark */; 69868BD91460F468004C5D9B = 69868BD91460F468004C5D9B /* PBXTextBookmark */; 69868C931460F7C3004C5D9B = 69868C931460F7C3004C5D9B /* PBXTextBookmark */; - 69868D8314618DD7004C5D9B = 69868D8314618DD7004C5D9B /* PBXTextBookmark */; - 69868E791461A1AF004C5D9B = 69868E791461A1AF004C5D9B /* PBXTextBookmark */; - 69868E7B1461A1AF004C5D9B = 69868E7B1461A1AF004C5D9B /* PBXTextBookmark */; - 69868EA21461A401004C5D9B = 69868EA21461A401004C5D9B /* PBXBookmark */; - 69868EF31461AB26004C5D9B = 69868EF31461AB26004C5D9B /* PBXTextBookmark */; - 69868EF41461AB26004C5D9B = 69868EF41461AB26004C5D9B /* PBXTextBookmark */; - 69868F561461BBC2004C5D9B = 69868F561461BBC2004C5D9B /* PBXTextBookmark */; - 69868F571461BBC2004C5D9B = 69868F571461BBC2004C5D9B /* PBXTextBookmark */; }; sourceControlManager = 69868AD41460E35F004C5D9B /* Source Control */; userBuildSettings = { }; }; - 69269CC11461D38300F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 67"; - rLen = 0; - rLoc = 1423; - rType = 0; - vrLen = 1134; - vrLoc = 182; - }; - 69269CC21461D38300F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 84"; - rLen = 0; - rLoc = 3966; - rType = 0; - vrLen = 1105; - vrLoc = 1017; - }; - 69269CC31461D38300F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 49"; - rLen = 0; - rLoc = 1177; - rType = 0; - vrLen = 1199; - vrLoc = 0; - }; - 69269CC61461D38300F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 52"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 961; - vrLoc = 721; - }; - 69269CD41461D42F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 76"; - rLen = 0; - rLoc = 1702; - rType = 0; - vrLen = 1074; - vrLoc = 619; - }; - 69269CD51461D42F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 88"; - rLen = 0; - rLoc = 2937; - rType = 0; - vrLen = 1317; - vrLoc = 897; - }; - 69269CD61461D42F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 89"; - rLen = 0; - rLoc = 2937; - rType = 0; - vrLen = 1224; - vrLoc = 1075; - }; - 69269CD71461D42F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 52"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 934; - vrLoc = 721; - }; - 69269CD81461D44700F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 94"; - rLen = 0; - rLoc = 2937; - rType = 0; - vrLen = 1224; - vrLoc = 1075; - }; - 69269CD91461D44700F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 76"; - rLen = 0; - rLoc = 1702; - rType = 0; - vrLen = 1074; - vrLoc = 619; - }; - 69269CDA1461D44700F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 74"; - rLen = 0; - rLoc = 1552; - rType = 0; - vrLen = 1081; - vrLoc = 657; - }; - 69269CDB1461D44700F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 52"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 937; - vrLoc = 721; - }; - 69269CE21461D4A800F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 84"; - rLen = 0; - rLoc = 1899; - rType = 0; - vrLen = 1089; - vrLoc = 657; - }; - 69269CE31461D4A800F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 52"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 912; - vrLoc = 721; - }; - 69269CE41461D51000F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 92"; - rLen = 0; - rLoc = 1982; - rType = 0; - vrLen = 1239; - vrLoc = 804; - }; - 69269CE51461D51000F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 52"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 1009; - vrLoc = 721; - }; - 69269CEE1461D80400F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 69"; - rLen = 15; - rLoc = 1440; - rType = 0; - vrLen = 1175; - vrLoc = 746; - }; - 69269CEF1461D80400F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 254"; - rLen = 0; - rLoc = 8948; - rType = 0; - vrLen = 1811; - vrLoc = 4961; - }; - 69269CF01461D80400F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 254"; - rLen = 0; - rLoc = 8938; - rType = 0; - vrLen = 1908; - vrLoc = 4961; - }; - 69269CF11461D80400F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 52"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 1009; - vrLoc = 721; - }; - 69269CF41461D82F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 242"; - rLen = 0; - rLoc = 8447; - rType = 0; - vrLen = 1865; - vrLoc = 5105; - }; - 69269CF51461D82F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 52"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 1009; - vrLoc = 721; - }; - 69269D241461D93A00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 19"; - rLen = 17; - rLoc = 397; - rType = 0; - vrLen = 1118; - vrLoc = 0; - }; - 69269D251461D93A00F69705 /* XCBuildMessageTextBookmark */ = { - isa = PBXTextBookmark; - comments = "Invalid operands to binary - (have 'uint32_t' and 'uint32_t *')"; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - fallbackIsa = XCBuildMessageTextBookmark; - rLen = 1; - rLoc = 296; - rType = 1; - }; - 69269D261461D93A00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 252"; - rLen = 0; - rLoc = 8756; - rType = 0; - vrLen = 1835; - vrLoc = 5145; - }; - 69269D271461D93A00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 52"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 1009; - vrLoc = 721; - }; - 69269D2E1461D96400F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 252"; - rLen = 0; - rLoc = 8756; - rType = 0; - vrLen = 1837; - vrLoc = 5145; - }; - 69269D2F1461D96400F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 52"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 1009; - vrLoc = 721; - }; - 69269D341461D98A00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 75"; - rLen = 19; - rLoc = 1523; - rType = 0; - vrLen = 1186; - vrLoc = 1156; - }; - 69269D351461D98A00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 88"; - rLen = 0; - rLoc = 2937; - rType = 0; - vrLen = 1166; - vrLoc = 1395; - }; - 69269D361461D98A00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 91"; - rLen = 0; - rLoc = 2937; - rType = 0; - vrLen = 1166; - vrLoc = 1395; - }; - 69269D371461D98A00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 52"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 1009; - vrLoc = 721; - }; - 69269D3B1461DAFF00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 18"; - rLen = 10; - rLoc = 344; - rType = 0; - vrLen = 1101; - vrLoc = 143; - }; - 69269D3C1461DAFF00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 267"; - rLen = 0; - rLoc = 15763; - rType = 0; - vrLen = 1787; - vrLoc = 5358; - }; - 69269D3D1461DAFF00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 266"; - rLen = 0; - rLoc = 15758; - rType = 0; - vrLen = 1701; - vrLoc = 5435; - }; - 69269D3E1461DAFF00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 54"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 975; - vrLoc = 721; - }; - 69269D451461DD8F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 280"; - rLen = 0; - rLoc = 16286; - rType = 0; - vrLen = 1564; - vrLoc = 6084; - }; - 69269D461461DD8F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 54"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 975; - vrLoc = 721; - }; - 69269D471461E4B400F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 288"; - rLen = 0; - rLoc = 16520; - rType = 0; - vrLen = 1607; - vrLoc = 6154; - }; - 69269D481461E4B400F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 54"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 975; - vrLoc = 721; - }; - 69269D551461E6FF00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 50"; - rLen = 0; - rLoc = 978; - rType = 0; - vrLen = 1148; - vrLoc = 203; - }; - 69269D561461E6FF00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 266"; - rLen = 0; - rLoc = 9228; - rType = 0; - vrLen = 1675; - vrLoc = 6168; - }; - 69269D571461E6FF00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 266"; - rLen = 0; - rLoc = 9228; - rType = 0; - vrLen = 1629; - vrLoc = 6117; - }; - 69269D581461E6FF00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 54"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 976; - vrLoc = 721; - }; - 69269D631461E91100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 40"; - rLen = 0; - rLoc = 777; - rType = 0; - vrLen = 1165; - vrLoc = 203; - }; - 69269D641461E91100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 292"; - rLen = 0; - rLoc = 16124; - rType = 0; - vrLen = 1651; - vrLoc = 6574; - }; - 69269D651461E91100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 272"; - rLen = 0; - rLoc = 9228; - rType = 0; - vrLen = 1722; - vrLoc = 6263; - }; - 69269D661461E91100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 960; - vrLoc = 721; - }; - 69269D6B1461E94700F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 271"; - rLen = 0; - rLoc = 9228; - rType = 0; - vrLen = 1611; - vrLoc = 6666; - }; - 69269D6C1461E94700F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 960; - vrLoc = 721; - }; - 69269D7B1461EA4000F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 272"; - rLen = 0; - rLoc = 9228; - rType = 0; - vrLen = 1611; - vrLoc = 6666; - }; - 69269D7C1461EA4000F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 960; - vrLoc = 721; - }; - 69269D811461EA6600F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 274"; - rLen = 0; - rLoc = 9228; - rType = 0; - vrLen = 1624; - vrLoc = 6666; - }; - 69269D821461EA6600F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 960; - vrLoc = 721; - }; - 69269D891461EAB300F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 298"; - rLen = 0; - rLoc = 16250; - rType = 0; - vrLen = 1523; - vrLoc = 6768; - }; - 69269D8A1461EAB300F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 960; - vrLoc = 721; - }; - 69269D931461EB5B00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 298"; - rLen = 0; - rLoc = 16250; - rType = 0; - vrLen = 1519; - vrLoc = 6768; - }; - 69269D941461EB5B00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 960; - vrLoc = 721; - }; - 69269D9F1461EC0100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 298"; - rLen = 0; - rLoc = 16250; - rType = 0; - vrLen = 1523; - vrLoc = 6768; - }; - 69269DA01461EC0100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 960; - vrLoc = 721; - }; - 69269DA61461EC7400F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 102"; - rLen = 0; - rLoc = 2116; - rType = 0; - vrLen = 1230; - vrLoc = 1353; - }; - 69269DA71461EC7400F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 130"; - rLen = 4; - rLoc = 4442; - rType = 0; - vrLen = 1108; - vrLoc = 2300; - }; - 69269DA81461EC7400F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 119"; - rLen = 0; - rLoc = 4332; - rType = 0; - vrLen = 1108; - vrLoc = 2300; - }; - 69269DA91461EC7400F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 960; - vrLoc = 721; - }; - 69269DB71461ED4F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 256"; - rLen = 0; - rLoc = 8666; - rType = 0; - vrLen = 278; - vrLoc = 6278; - }; - 69269DB81461ED4F00F69705 /* XCBuildMessageTextBookmark */ = { - isa = PBXTextBookmark; - comments = "Pointer targets in passing argument 1 of 'spgp_decode_message' differ in signedness"; - fRef = 69868DE614619580004C5D9B /* packet_test.c */; - fallbackIsa = XCBuildMessageTextBookmark; - rLen = 1; - rLoc = 38; - rType = 1; - }; - 69269DB91461ED4F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868DE614619580004C5D9B /* packet_test.c */; - name = "packet_test.c: 39"; - rLen = 0; - rLoc = 1064; - rType = 0; - vrLen = 204; - vrLoc = 928; - }; - 69269DBC1461ED5100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 102"; - rLen = 0; - rLoc = 2116; - rType = 0; - vrLen = 1090; - vrLoc = 591; - }; - 69269DBD1461ED5100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 119"; - rLen = 0; - rLoc = 4332; - rType = 0; - vrLen = 1121; - vrLoc = 1779; - }; - 69269DBE1461ED5100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868DE614619580004C5D9B /* packet_test.c */; - name = "packet_test.c: 30"; - rLen = 0; - rLoc = 837; - rType = 0; - vrLen = 1390; - vrLoc = 3; - }; - 69269DBF1461ED5100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 960; - vrLoc = 721; - }; - 69269DC61461ED9F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868DE614619580004C5D9B /* packet_test.c */; - name = "packet_test.c: 30"; - rLen = 0; - rLoc = 837; - rType = 0; - vrLen = 1390; - vrLoc = 3; - }; - 69269DC71461ED9F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 119"; - rLen = 0; - rLoc = 4332; - rType = 0; - vrLen = 1117; - vrLoc = 1783; - }; - 69269DC81461ED9F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 271"; - rLen = 0; - rLoc = 9228; - rType = 0; - vrLen = 1560; - vrLoc = 5913; - }; - 69269DC91461ED9F00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 960; - vrLoc = 721; - }; - 69269DD01461EDB700F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 299"; - rLen = 0; - rLoc = 16250; - rType = 0; - vrLen = 1450; - vrLoc = 6833; - }; - 69269DD11461EDB700F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 960; - vrLoc = 721; - }; - 69269DD61461EF0700F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 102"; - rLen = 0; - rLoc = 2116; - rType = 0; - vrLen = 1098; - vrLoc = 313; - }; - 69269DD71461EF0700F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 276"; - rLen = 0; - rLoc = 13991; - rType = 0; - vrLen = 1457; - vrLoc = 6408; - }; - 69269DD81461EF0700F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 265"; - rLen = 0; - rLoc = 9173; - rType = 0; - vrLen = 1606; - vrLoc = 6636; - }; - 69269DD91461EF0700F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 960; - vrLoc = 721; - }; - 69269DE11461EF2500F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 55"; - rLen = 0; - rLoc = 2067; - rType = 0; - vrLen = 1447; - vrLoc = 134; - }; - 69269DE21461EF2500F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 960; - vrLoc = 721; - }; - 69269DEB1461EF8E00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 52"; - rLen = 0; - rLoc = 1006; - rType = 0; - vrLen = 1031; - vrLoc = 417; - }; - 69269DEC1461EF8E00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 271"; - rLen = 0; - rLoc = 9274; - rType = 0; - vrLen = 1748; - vrLoc = 6537; - }; - 69269DED1461EF8E00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 280"; - rLen = 0; - rLoc = 13813; - rType = 0; - vrLen = 1662; - vrLoc = 7003; - }; - 69269DEE1461EF8E00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 56"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 965; - vrLoc = 721; - }; - 69269DF21461F1ED00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 277"; - rLen = 0; - rLoc = 10871; - rType = 0; - vrLen = 1762; - vrLoc = 6299; - }; - 69269DF31461F1ED00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 56"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 965; - vrLoc = 721; - }; - 69269DF41461F1ED00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 56"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 966; - vrLoc = 720; - }; - 69269DFE1461F2F200F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 291"; - rLen = 0; - rLoc = 10871; - rType = 0; - vrLen = 1820; - vrLoc = 6540; - }; - 69269DFF1461F2F200F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 56"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 966; - vrLoc = 720; - }; - 69269E011461F31100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 294"; - rLen = 0; - rLoc = 10811; - rType = 0; - vrLen = 1774; - vrLoc = 6540; - }; - 69269E021461F31100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 56"; - rLen = 0; - rLoc = 1102; - rType = 0; - vrLen = 966; - vrLoc = 720; - }; - 69269E041461F51500F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 310"; - rLen = 0; - rLoc = 10805; - rType = 0; - vrLen = 1844; - vrLoc = 6901; - }; - 69269E051461F51500F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 966; - vrLoc = 720; - }; - 69269E131461F7C500F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 59"; - rLen = 7; - rLoc = 1161; - rType = 0; - vrLen = 1031; - vrLoc = 416; - }; - 69269E141461F7C500F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 309"; - rLen = 0; - rLoc = 10560; - rType = 0; - vrLen = 1657; - vrLoc = 7109; - }; - 69269E151461F7C500F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 321"; - rLen = 0; - rLoc = 10728; - rType = 0; - vrLen = 1597; - vrLoc = 7919; - }; - 69269E161461F7C500F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 966; - vrLoc = 720; - }; - 69269E201461F84900F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 60"; - rLen = 0; - rLoc = 1194; - rType = 0; - vrLen = 1040; - vrLoc = 416; - }; - 69269E211461F84900F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 328"; - rLen = 0; - rLoc = 10871; - rType = 0; - vrLen = 1718; - vrLoc = 8459; - }; - 69269E221461F84900F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 329"; - rLen = 0; - rLoc = 10827; - rType = 0; - vrLen = 1807; - vrLoc = 8290; - }; - 69269E231461F84900F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 990; - vrLoc = 720; - }; - 69269E2E1461F87A00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 329"; - rLen = 0; - rLoc = 10827; - rType = 0; - vrLen = 1807; - vrLoc = 8290; - }; - 69269E2F1461F87A00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 990; - vrLoc = 720; - }; - 69269E361461FA1000F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 65"; - rLen = 0; - rLoc = 1313; - rType = 0; - vrLen = 1040; - vrLoc = 416; - }; - 69269E371461FA1000F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 415"; - rLen = 0; - rLoc = 15400; - rType = 0; - vrLen = 1365; - vrLoc = 11092; - }; - 69269E381461FA1000F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 338"; - rLen = 0; - rLoc = 11024; - rType = 0; - vrLen = 1670; - vrLoc = 8821; - }; - 69269E391461FA1000F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 990; - vrLoc = 720; - }; - 69269E4D1461FC6300F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 62"; - rLen = 0; - rLoc = 1226; - rType = 0; - vrLen = 1041; - vrLoc = 416; - }; - 69269E4E1461FC6300F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 339"; - rLen = 0; - rLoc = 11097; - rType = 0; - vrLen = 1680; - vrLoc = 8880; - }; - 69269E4F1461FC6300F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 349"; - rLen = 0; - rLoc = 11676; - rType = 0; - vrLen = 1982; - vrLoc = 8708; - }; - 69269E501461FC6300F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 997; - vrLoc = 720; - }; - 69269E591461FF5A00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 438"; - rLen = 0; - rLoc = 15586; - rType = 0; - vrLen = 1603; - vrLoc = 11267; - }; - 69269E5A1461FF5A00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 997; - vrLoc = 720; - }; - 69269E5D1461FFB900F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 343"; - rLen = 0; - rLoc = 11152; - rType = 0; - vrLen = 1904; - vrLoc = 8908; - }; - 69269E5E1461FFB900F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 997; - vrLoc = 720; + 69269F2114620D0F00F69705 /* packet_test.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1030, 780}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 1356}"; + }; }; - 69269E641461FFEF00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 314"; - rLen = 0; - rLoc = 10194; - rType = 0; - vrLen = 1747; - vrLoc = 8032; + 69269F2214620D0F00F69705 /* packet_test.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {905, 618}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 291}"; + }; }; - 69269E651461FFEF00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 997; - vrLoc = 720; + 69269F2314620D0F00F69705 /* packet.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {905, 19435}}"; + sepNavSelRange = "{281, 0}"; + sepNavVisRange = "{0, 975}"; + sepNavWindowFrame = "{{139, 11}, {1136, 746}}"; + }; }; - 69269E681462003D00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 394"; - rLen = 0; - rLoc = 12881; - rType = 0; - vrLen = 1674; - vrLoc = 10824; + 69269F2414620D0F00F69705 /* packet.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {905, 2392}}"; + sepNavSelRange = "{1259, 0}"; + sepNavVisRange = "{823, 887}"; + }; }; - 69269E691462003D00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 997; - vrLoc = 720; + 69269F4E14620FC200F69705 /* packet.c:220 */ = { + isa = PBXFileBreakpoint; + actions = ( + ); + breakpointStyle = 0; + continueAfterActions = 0; + countType = 0; + delayBeforeContinue = 0; + fileReference = 69269F2314620D0F00F69705 /* packet.c */; + functionName = "spgp_decode_message()"; + hitCount = 0; + ignoreCount = 0; + lineNumber = 220; + location = duckdog; + modificationTime = 342642496.061145; + originalNumberOfMultipleMatches = 1; + state = 2; }; - 69269E7B1462011400F69705 /* PBXTextBookmark */ = { + 69269F5214620FC500F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 62"; + fRef = AA747D9E0F9514B9006C5449 /* simplepgp_Prefix.pch */; + name = "simplepgp_Prefix.pch: 1"; rLen = 0; - rLoc = 1226; + rLoc = 0; rType = 0; - vrLen = 1041; - vrLoc = 416; + vrLen = 188; + vrLoc = 0; }; - 69269E7C1462011400F69705 /* PBXTextBookmark */ = { + 69269F5314620FC500F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 402"; + fRef = 69269F2114620D0F00F69705 /* packet_test.c */; + name = "packet_test.c: 1"; rLen = 0; - rLoc = 13135; + rLoc = 0; rType = 0; - vrLen = 1618; - vrLoc = 10854; + vrLen = 1356; + vrLoc = 0; }; - 69269E7D1462011400F69705 /* PBXTextBookmark */ = { + 6926A15B146350B600F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 352"; + fRef = 69868BC91460F386004C5D9B /* gcrypt.h */; + name = "gcrypt.h: 75"; rLen = 0; - rLoc = 11245; - rType = 0; - vrLen = 1970; - vrLoc = 9097; - }; - 69269E7E1462011400F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + rLoc = 2337; rType = 0; - vrLen = 997; - vrLoc = 720; + vrLen = 1486; + vrLoc = 41191; }; - 69269E871462087600F69705 /* PBXTextBookmark */ = { + 6926A2F4146376F100F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 122"; + fRef = 69269F2214620D0F00F69705 /* packet_test.h */; + name = "packet_test.h: 1"; rLen = 0; - rLoc = 3953; - rType = 0; - vrLen = 1279; - vrLoc = 2272; - }; - 69269E881462087600F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + rLoc = 0; rType = 0; - vrLen = 997; - vrLoc = 720; + vrLen = 291; + vrLoc = 0; }; - 69269E91146208B300F69705 /* PBXTextBookmark */ = { + 6926A484146471E800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 118"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 76"; rLen = 0; - rLoc = 3039; - rType = 0; - vrLen = 1351; - vrLoc = 2272; - }; - 69269E92146208B300F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + rLoc = 2176; rType = 0; - vrLen = 997; - vrLoc = 720; + vrLen = 902; + vrLoc = 1034; }; - 69269E97146208CF00F69705 /* PBXTextBookmark */ = { + 6926A485146471E800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 124"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 816"; rLen = 0; - rLoc = 3934; - rType = 0; - vrLen = 1247; - vrLoc = 3743; - }; - 69269E98146208CF00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + rLoc = 25823; rType = 0; - vrLen = 997; - vrLoc = 720; + vrLen = 1446; + vrLoc = 24434; }; - 69269E9F146208D800F69705 /* PBXTextBookmark */ = { + 6926A4E21465DFEA00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 124"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 820"; rLen = 0; - rLoc = 3934; - rType = 0; - vrLen = 1247; - vrLoc = 3743; - }; - 69269EA0146208D800F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + rLoc = 25991; rType = 0; - vrLen = 997; - vrLoc = 720; + vrLen = 1479; + vrLoc = 24016; }; - 69269EA71462091A00F69705 /* PBXTextBookmark */ = { + 6926A4FD1465E68800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 125"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 791"; rLen = 0; - rLoc = 3930; - rType = 0; - vrLen = 1357; - vrLoc = 2452; - }; - 69269EA81462091A00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + rLoc = 24990; rType = 0; - vrLen = 997; - vrLoc = 720; + vrLen = 1529; + vrLoc = 27306; }; - 69269EAF1462092900F69705 /* PBXTextBookmark */ = { + 6926A5051469D77400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 127"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 179"; rLen = 0; - rLoc = 3967; + rLoc = 6694; rType = 0; - vrLen = 1370; - vrLoc = 2452; + vrLen = 1966; + vrLoc = 4084; }; - 69269EB01462092900F69705 /* PBXTextBookmark */ = { + 6926A5101469DAF400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 960"; + rLen = 0; + rLoc = 42074; rType = 0; - vrLen = 997; - vrLoc = 720; + vrLen = 1655; + vrLoc = 28491; }; - 69269EB91462096500F69705 /* PBXTextBookmark */ = { + 6926A5161469DB5600F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 110"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 975"; rLen = 0; - rLoc = 3034; + rLoc = 42546; rType = 0; - vrLen = 1302; - vrLoc = 2403; + vrLen = 1799; + vrLoc = 28668; }; - 69269EBA1462096500F69705 /* PBXTextBookmark */ = { + 6926A51D1469DB9700F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 974"; + rLen = 0; + rLoc = 42492; rType = 0; - vrLen = 997; - vrLoc = 720; + vrLen = 1802; + vrLoc = 28668; }; - 69269EC1146209C300F69705 /* PBXTextBookmark */ = { + 6926A52C1469DCC900F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 221"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 672"; rLen = 0; - rLoc = 6514; + rLoc = 20758; rType = 0; - vrLen = 2108; - vrLoc = 4755; + vrLen = 2232; + vrLoc = 19150; }; - 69269EC2146209C300F69705 /* PBXTextBookmark */ = { + 6926A52D1469DCC900F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 672"; + rLen = 0; + rLoc = 20758; rType = 0; - vrLen = 997; - vrLoc = 720; + vrLen = 2232; + vrLoc = 19150; }; - 69269EC714620A5300F69705 /* PBXTextBookmark */ = { + 6926A53C1469DD0300F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 127"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 671"; rLen = 0; - rLoc = 3807; + rLoc = 20716; rType = 0; - vrLen = 1456; - vrLoc = 2557; + vrLen = 2244; + vrLoc = 19150; }; - 69269EC814620A5300F69705 /* PBXTextBookmark */ = { + 6926A5451469DFAA00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 729"; + rLen = 0; + rLoc = 22679; rType = 0; - vrLen = 997; - vrLoc = 720; + vrLen = 2063; + vrLoc = 21499; }; - 69269ED014620AFE00F69705 /* PBXTextBookmark */ = { + 6926A5521469E07800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 173"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 251"; rLen = 0; - rLoc = 4833; + rLoc = 8822; rType = 0; - vrLen = 1279; - vrLoc = 3803; + vrLen = 1791; + vrLoc = 6607; }; - 69269ED114620AFE00F69705 /* PBXTextBookmark */ = { + 6926A58B1469E66900F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868DE514619580004C5D9B /* packet_test.h */; - name = "packet_test.h: 17"; + fRef = 69269F2214620D0F00F69705 /* packet_test.h */; + name = "packet_test.h: 1"; rLen = 0; - rLoc = 260; + rLoc = 0; rType = 0; vrLen = 291; vrLoc = 0; }; - 69269ED214620AFE00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 74"; - rLen = 12; - rLoc = 1425; - rType = 0; - vrLen = 1169; - vrLoc = 1059; - }; - 69269ED314620AFE00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 75"; - rLen = 0; - rLoc = 1456; - rType = 0; - vrLen = 1167; - vrLoc = 1059; - }; - 69269ED414620AFE00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 991; - vrLoc = 720; - }; - 69269EDB14620B2900F69705 /* PBXTextBookmark */ = { + 6926A58C1469E66900F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 75"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 144"; rLen = 0; - rLoc = 1456; + rLoc = 3885; rType = 0; - vrLen = 1167; - vrLoc = 1059; + vrLen = 1408; + vrLoc = 1952; }; - 69269EDC14620B2900F69705 /* PBXTextBookmark */ = { + 6926A58D1469E66900F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 173"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 233"; rLen = 0; - rLoc = 4833; + rLoc = 8111; rType = 0; - vrLen = 1279; - vrLoc = 3803; + vrLen = 1575; + vrLoc = 6539; }; - 69269EDD14620B2900F69705 /* PBXTextBookmark */ = { + 6926A58E1469E66900F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 118"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 233"; rLen = 0; - rLoc = 3559; + rLoc = 8111; rType = 0; - vrLen = 1473; - vrLoc = 2521; + vrLen = 1575; + vrLoc = 6539; }; - 69269EDE14620B2900F69705 /* PBXTextBookmark */ = { + 6926A5A11469EA0B00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 991; - vrLoc = 720; - }; - 69269EE514620B6100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 120"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 147"; rLen = 0; - rLoc = 3559; - rType = 0; - vrLen = 1470; - vrLoc = 2518; - }; - 69269EE614620B6100F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + rLoc = 3994; rType = 0; - vrLen = 991; - vrLoc = 720; + vrLen = 1402; + vrLoc = 1936; }; - 69269EEF14620B9E00F69705 /* PBXTextBookmark */ = { + 6926A5A21469EA0B00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 120"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 325"; rLen = 0; - rLoc = 3559; - rType = 0; - vrLen = 1464; - vrLoc = 2518; - }; - 69269EF014620B9E00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + rLoc = 11218; rType = 0; - vrLen = 991; - vrLoc = 720; + vrLen = 1425; + vrLoc = 8435; }; - 69269EF514620BAB00F69705 /* PBXTextBookmark */ = { + 6926A5A31469EA0B00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 120"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 243"; rLen = 0; - rLoc = 3559; - rType = 0; - vrLen = 1464; - vrLoc = 2518; - }; - 69269EF614620BAB00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + rLoc = 8970; rType = 0; - vrLen = 991; - vrLoc = 720; + vrLen = 1663; + vrLoc = 6777; }; - 69269EFD14620BB600F69705 /* PBXTextBookmark */ = { + 6926A5AD1469EA3A00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 120"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 226"; rLen = 0; - rLoc = 3559; - rType = 0; - vrLen = 1464; - vrLoc = 2518; - }; - 69269EFE14620BB600F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + rLoc = 8322; rType = 0; - vrLen = 991; - vrLoc = 720; + vrLen = 1673; + vrLoc = 6472; }; - 69269F0314620BC100F69705 /* PBXTextBookmark */ = { + 6926A5B11469EB4E00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 120"; - rLen = 0; - rLoc = 3559; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 96"; + rLen = 16; + rLoc = 2521; rType = 0; - vrLen = 1460; - vrLoc = 2518; + vrLen = 1315; + vrLoc = 1627; }; - 69269F0414620BC100F69705 /* PBXTextBookmark */ = { + 6926A5B21469EB4E00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 181"; + rLen = 1; + rLoc = 6929; rType = 0; - vrLen = 991; - vrLoc = 720; + vrLen = 1900; + vrLoc = 4533; }; - 69269F0C14620C1B00F69705 /* PBXTextBookmark */ = { + 6926A5B31469EB4E00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 120"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 959"; rLen = 0; - rLoc = 3447; - rType = 0; - vrLen = 1599; - vrLoc = 2518; - }; - 69269F0D14620C1B00F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + rLoc = 35988; rType = 0; - vrLen = 991; - vrLoc = 720; + vrLen = 1765; + vrLoc = 29422; }; - 69269F1014620C5700F69705 /* PBXTextBookmark */ = { + 6926A5B51469EC5000F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 490"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 969"; rLen = 0; - rLoc = 14774; + rLoc = 36470; rType = 0; - vrLen = 1527; - vrLoc = 13576; + vrLen = 1684; + vrLoc = 29422; }; - 69269F1114620C5700F69705 /* PBXTextBookmark */ = { + 6926A5C51469EE2F00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; + fRef = 69269F2414620D0F00F69705 /* packet.h */; name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 991; - vrLoc = 720; - }; - 69269F1714620C6800F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 490"; rLen = 0; - rLoc = 14773; - rType = 0; - vrLen = 1527; - vrLoc = 13576; - }; - 69269F1814620C6800F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; + rLoc = 1438; rType = 0; - vrLen = 991; - vrLoc = 720; + vrLen = 1225; + vrLoc = 539; }; - 69269F1D14620C8900F69705 /* PBXTextBookmark */ = { + 6926A5C61469EE2F00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 490"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 977"; rLen = 0; - rLoc = 14773; + rLoc = 36772; rType = 0; - vrLen = 1527; - vrLoc = 13576; - }; - 69269F1E14620C8900F69705 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 55"; - rLen = 7; - rLoc = 1069; - rType = 0; - vrLen = 991; - vrLoc = 720; - }; - 69269F2114620D0F00F69705 /* packet_test.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1030, 780}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 1356}"; - }; - }; - 69269F2214620D0F00F69705 /* packet_test.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 591}}"; - sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 291}"; - }; - }; - 69269F2314620D0F00F69705 /* packet.c */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 10283}}"; - sepNavSelRange = "{13453, 0}"; - sepNavVisRange = "{13421, 1351}"; - }; - }; - 69269F2414620D0F00F69705 /* packet.h */ = { - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {826, 1911}}"; - sepNavSelRange = "{1291, 0}"; - sepNavVisRange = "{834, 852}"; - }; - }; - 69269F4E14620FC200F69705 /* packet.c:179 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = 69269F2314620D0F00F69705 /* packet.c */; - functionName = "spgp_decode_message()"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 179; - location = duckdog; - modificationTime = 342057198.551; - originalNumberOfMultipleMatches = 1; - state = 2; + vrLen = 1601; + vrLoc = 29516; }; - 69269F5214620FC500F69705 /* PBXTextBookmark */ = { + 6926A5C71469EE2F00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = AA747D9E0F9514B9006C5449 /* simplepgp_Prefix.pch */; - name = "simplepgp_Prefix.pch: 1"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 977"; rLen = 0; - rLoc = 0; + rLoc = 36772; rType = 0; - vrLen = 188; - vrLoc = 0; + vrLen = 1598; + vrLoc = 29516; }; - 69269F5314620FC500F69705 /* PBXTextBookmark */ = { + 6926A5CB1469EE8F00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2114620D0F00F69705 /* packet_test.c */; - name = "packet_test.c: 1"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 959"; rLen = 0; - rLoc = 0; + rLoc = 35949; rType = 0; - vrLen = 1356; - vrLoc = 0; + vrLen = 1633; + vrLoc = 29516; }; - 69269F5414620FC500F69705 /* PBXTextBookmark */ = { + 6926A5E41469EF5D00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 168"; + name = "packet.c: 974"; rLen = 0; - rLoc = 5341; + rLoc = 36438; rType = 0; - vrLen = 1715; - vrLoc = 3704; + vrLen = 1643; + vrLoc = 29261; }; - 69269F5514620FC500F69705 /* PBXTextBookmark */ = { + 6926A5ED1469EF8C00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 168"; + name = "packet.c: 984"; rLen = 0; - rLoc = 5341; + rLoc = 36748; rType = 0; - vrLen = 1715; - vrLoc = 3704; + vrLen = 1637; + vrLoc = 29261; }; - 69269F5F14620FFB00F69705 /* PBXTextBookmark */ = { + 6926A5F51469F04600F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 168"; + name = "packet.c: 993"; rLen = 0; - rLoc = 5341; + rLoc = 37498; rType = 0; - vrLen = 1715; - vrLoc = 3704; + vrLen = 1784; + vrLoc = 30278; }; - 69269F6A146210A800F69705 /* PBXTextBookmark */ = { + 6926A6061469F14800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 171"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 55"; rLen = 0; - rLoc = 5427; + rLoc = 1438; rType = 0; - vrLen = 1762; - vrLoc = 3553; + vrLen = 1429; + vrLoc = 1284; }; - 69269F6B146210A800F69705 /* PBXTextBookmark */ = { + 6926A6071469F14800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 171"; + name = "packet.c: 993"; rLen = 0; - rLoc = 5427; + rLoc = 37498; rType = 0; - vrLen = 1762; - vrLoc = 3553; + vrLen = 1784; + vrLoc = 30278; }; - 69269F7B1462110A00F69705 /* PBXTextBookmark */ = { + 6926A6081469F14800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 168"; + name = "packet.c: 993"; rLen = 0; - rLoc = 5341; + rLoc = 37498; rType = 0; - vrLen = 1766; - vrLoc = 3553; + vrLen = 1847; + vrLoc = 30172; }; - 69269F8A1462131300F69705 /* PBXTextBookmark */ = { + 6926A6241469F85000F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 59"; - rLen = 7; - rLoc = 1533; + name = "packet.h: 55"; + rLen = 0; + rLoc = 1438; rType = 0; - vrLen = 1144; - vrLoc = 313; + vrLen = 1357; + vrLoc = 1744; }; - 69269F8B1462131300F69705 /* PBXTextBookmark */ = { + 6926A6251469F85000F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 209"; + name = "packet.c: 990"; rLen = 0; - rLoc = 6593; + rLoc = 36863; rType = 0; - vrLen = 1536; - vrLoc = 4539; + vrLen = 1796; + vrLoc = 29921; }; - 69269F8C1462131300F69705 /* PBXTextBookmark */ = { + 6926A6261469F85000F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 197"; + name = "packet.c: 1025"; rLen = 0; - rLoc = 6123; + rLoc = 40480; rType = 0; - vrLen = 1317; - vrLoc = 5272; + vrLen = 1708; + vrLoc = 30610; }; - 69269F991462133E00F69705 /* PBXTextBookmark */ = { + 6926A6281469F8EC00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 200"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 55"; rLen = 0; - rLoc = 6263; + rLoc = 1438; rType = 0; - vrLen = 1337; - vrLoc = 5272; + vrLen = 1318; + vrLoc = 1099; }; - 69269FA01462137A00F69705 /* PBXTextBookmark */ = { + 6926A6291469F8EC00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 235"; + name = "packet.c: 1025"; rLen = 0; - rLoc = 7330; + rLoc = 40456; rType = 0; - vrLen = 1333; - vrLoc = 5302; + vrLen = 1740; + vrLoc = 30610; }; - 69269FA71462140200F69705 /* PBXTextBookmark */ = { + 6926A62A1469F8EC00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 211"; + name = "packet.c: 1002"; rLen = 0; - rLoc = 6553; + rLoc = 37173; rType = 0; - vrLen = 1370; - vrLoc = 5279; + vrLen = 1864; + vrLoc = 29944; }; - 69269FAE1462141200F69705 /* PBXTextBookmark */ = { + 6926A6341469FA5100F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 167"; - rLen = 0; - rLoc = 5341; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 154"; + rLen = 56; + rLoc = 3695; rType = 0; - vrLen = 1805; - vrLoc = 4194; + vrLen = 1515; + vrLoc = 2213; }; - 69269FB1146237EA00F69705 /* PBXTextBookmark */ = { + 6926A6351469FA5100F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 48"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 1001"; rLen = 0; - rLoc = 1033; + rLoc = 37172; rType = 0; - vrLen = 849; - vrLoc = 781; + vrLen = 1801; + vrLoc = 30007; }; - 69269FB2146237EA00F69705 /* PBXTextBookmark */ = { + 6926A6361469FA5100F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 379"; + name = "packet.c: 249"; rLen = 0; - rLoc = 11978; + rLoc = 8771; rType = 0; - vrLen = 1458; - vrLoc = 10100; + vrLen = 1363; + vrLoc = 6644; + }; + 6926A660146B38F200F69705 /* keychain.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {905, 1300}}"; + sepNavSelRange = "{1871, 0}"; + sepNavVisRange = "{1048, 1035}"; + }; + }; + 6926A661146B38F200F69705 /* keychain.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {905, 618}}"; + sepNavSelRange = "{330, 0}"; + sepNavVisRange = "{0, 659}"; + }; }; - 69269FB3146237EA00F69705 /* PBXTextBookmark */ = { + 6926A671146B39B700F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 382"; + name = "packet.c: 50"; rLen = 0; - rLoc = 12423; + rLoc = 921; rType = 0; - vrLen = 1447; - vrLoc = 10529; + vrLen = 1332; + vrLoc = 30243; }; - 69269FBD14623A5A00F69705 /* PBXTextBookmark */ = { + 6926A672146B39B700F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 51"; + name = "packet.h: 153"; rLen = 0; - rLoc = 1048; + rLoc = 3648; rType = 0; - vrLen = 872; - vrLoc = 870; + vrLen = 1139; + vrLoc = 2589; }; - 69269FBE14623A5A00F69705 /* PBXTextBookmark */ = { + 6926A673146B39B700F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2214620D0F00F69705 /* packet_test.h */; - name = "packet_test.h: 1"; + fRef = 6926A660146B38F200F69705 /* keychain.c */; + name = "keychain.c: 37"; rLen = 0; - rLoc = 0; + rLoc = 742; rType = 0; - vrLen = 291; + vrLen = 1008; vrLoc = 0; }; - 69269FBF14623A5A00F69705 /* PBXTextBookmark */ = { + 6926A674146B39B700F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 369"; - rLen = 0; - rLoc = 11571; + fRef = 6926A661146B38F200F69705 /* keychain.h */; + name = "keychain.h: 17"; + rLen = 18; + rLoc = 233; rType = 0; - vrLen = 1552; - vrLoc = 10245; + vrLen = 621; + vrLoc = 0; }; - 69269FC014623A5A00F69705 /* PBXTextBookmark */ = { + 6926A675146B39B700F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 390"; - rLen = 0; - rLoc = 11978; + fRef = 6926A661146B38F200F69705 /* keychain.h */; + name = "keychain.h: 17"; + rLen = 18; + rLoc = 233; rType = 0; - vrLen = 1554; - vrLoc = 10245; + vrLen = 621; + vrLoc = 0; }; - 69269FC414623C6700F69705 /* PBXTextBookmark */ = { + 6926A68E146B3A7F00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 51"; + fRef = 6926A661146B38F200F69705 /* keychain.h */; + name = "keychain.h: 16"; rLen = 0; - rLoc = 1048; + rLoc = 224; rType = 0; - vrLen = 1003; - vrLoc = 162; + vrLen = 621; + vrLoc = 0; }; - 69269FC514623C6700F69705 /* PBXTextBookmark */ = { + 6926A68F146B3A7F00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 376"; - rLen = 0; - rLoc = 12038; + name = "packet.c: 49"; + rLen = 25; + rLoc = 1001; rType = 0; - vrLen = 1419; - vrLoc = 10245; + vrLen = 1196; + vrLoc = 262; }; - 69269FC614623C6700F69705 /* PBXTextBookmark */ = { + 6926A690146B3A7F00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 383"; + fRef = 6926A660146B38F200F69705 /* keychain.c */; + name = "keychain.c: 9"; rLen = 0; - rLoc = 12331; + rLoc = 140; rType = 0; - vrLen = 1448; - vrLoc = 10536; + vrLen = 1020; + vrLoc = 35; }; - 69269FCA14623E3800F69705 /* PBXTextBookmark */ = { + 6926A691146B3A7F00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 156"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 20"; rLen = 0; - rLoc = 4732; + rLoc = 423; rType = 0; - vrLen = 1441; - vrLoc = 10487; + vrLen = 1201; + vrLoc = 0; }; - 69269FD014623EB800F69705 /* PBXTextBookmark */ = { + 6926A692146B3A7F00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 389"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 12"; rLen = 0; - rLoc = 12331; + rLoc = 180; rType = 0; - vrLen = 1430; - vrLoc = 10361; + vrLen = 1217; + vrLoc = 0; }; - 69269FD214623F6800F69705 /* PBXTextBookmark */ = { + 6926A69F146B3AC100F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 389"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 12"; rLen = 0; - rLoc = 12331; + rLoc = 180; rType = 0; - vrLen = 1431; - vrLoc = 10361; + vrLen = 1217; + vrLoc = 0; }; - 69269FD814623F8800F69705 /* PBXTextBookmark */ = { + 6926A6A0146B3AC100F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 389"; + fRef = 6926A661146B38F200F69705 /* keychain.h */; + name = "keychain.h: 16"; rLen = 0; - rLoc = 12331; + rLoc = 224; rType = 0; - vrLen = 1431; - vrLoc = 10361; + vrLen = 621; + vrLoc = 0; }; - 69269FE61462402B00F69705 /* PBXTextBookmark */ = { + 6926A6A1146B3AC100F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 389"; + fRef = 6926A660146B38F200F69705 /* keychain.c */; + name = "keychain.c: 9"; rLen = 0; - rLoc = 12331; + rLoc = 140; rType = 0; - vrLen = 1658; - vrLoc = 14213; + vrLen = 989; + vrLoc = 164; }; - 69269FE71462402B00F69705 /* PBXTextBookmark */ = { + 6926A6A2146B3AC100F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 389"; + fRef = 6926A660146B38F200F69705 /* keychain.c */; + name = "keychain.c: 9"; rLen = 0; - rLoc = 12331; + rLoc = 140; rType = 0; - vrLen = 1658; - vrLoc = 14213; + vrLen = 989; + vrLoc = 164; }; - 69269FEB1462413F00F69705 /* PBXTextBookmark */ = { + 6926A6D0146B44A300F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 500"; + fRef = 6926A661146B38F200F69705 /* keychain.h */; + name = "keychain.h: 19"; rLen = 0; - rLoc = 18748; + rLoc = 330; rType = 0; - vrLen = 1664; - vrLoc = 14213; + vrLen = 659; + vrLoc = 0; }; - 69269FF21462414C00F69705 /* PBXTextBookmark */ = { + 6926A6D1146B44A300F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 500"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 108"; rLen = 0; - rLoc = 18748; + rLoc = 2487; rType = 0; - vrLen = 1664; - vrLoc = 14213; + vrLen = 1088; + vrLoc = 2043; }; - 69269FF91462423A00F69705 /* PBXTextBookmark */ = { + 6926A6D2146B44A300F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 500"; + name = "packet.c: 90"; rLen = 0; - rLoc = 18748; + rLoc = 3177; rType = 0; - vrLen = 1377; - vrLoc = 10784; + vrLen = 1411; + vrLoc = 30330; }; - 6926A0001462426D00F69705 /* PBXTextBookmark */ = { + 6926A6D3146B44A300F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 377"; - rLen = 0; - rLoc = 11607; + fRef = 6926A660146B38F200F69705 /* keychain.c */; + name = "keychain.c: 41"; + rLen = 36; + rLoc = 779; rType = 0; - vrLen = 1425; - vrLoc = 10784; + vrLen = 1036; + vrLoc = 1048; }; - 6926A007146242ED00F69705 /* PBXTextBookmark */ = { + 6926A6D4146B44A300F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 158"; + fRef = 6926A660146B38F200F69705 /* keychain.c */; + name = "keychain.c: 88"; rLen = 0; - rLoc = 4732; + rLoc = 1871; rType = 0; - vrLen = 1595; - vrLoc = 3882; + vrLen = 1069; + vrLoc = 1014; }; - 6926A00E146243CA00F69705 /* PBXTextBookmark */ = { + 6926A6E1146B44E000F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 386"; + fRef = 6926A660146B38F200F69705 /* keychain.c */; + name = "keychain.c: 88"; rLen = 0; - rLoc = 12331; + rLoc = 1871; rType = 0; - vrLen = 1542; - vrLoc = 10812; + vrLen = 1035; + vrLoc = 1048; }; - 6926A0151462445400F69705 /* PBXTextBookmark */ = { + 6926A6E2146B44E000F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 385"; + fRef = 69269F2214620D0F00F69705 /* packet_test.h */; + name = "packet_test.h: 1"; rLen = 0; - rLoc = 12290; + rLoc = 0; rType = 0; - vrLen = 1588; - vrLoc = 10812; + vrLen = 291; + vrLoc = 0; }; - 6926A01C1462449200F69705 /* PBXTextBookmark */ = { + 6926A6E3146B44E000F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 385"; + name = "packet.c: 90"; rLen = 0; - rLoc = 12290; + rLoc = 3177; rType = 0; - vrLen = 1590; - vrLoc = 10812; + vrLen = 1432; + vrLoc = 31262; }; - 6926A0231462454F00F69705 /* PBXTextBookmark */ = { + 6926A6E4146B44E000F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 385"; + name = "packet.c: 90"; rLen = 0; - rLoc = 12290; + rLoc = 3177; rType = 0; - vrLen = 1591; - vrLoc = 10812; + vrLen = 1432; + vrLoc = 31262; }; - 6926A02A1462457A00F69705 /* PBXTextBookmark */ = { + 6926A6EB146B44FD00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 385"; + name = "packet.c: 1045"; rLen = 0; - rLoc = 12290; + rLoc = 40337; rType = 0; - vrLen = 1591; - vrLoc = 10812; + vrLen = 1444; + vrLoc = 31262; }; - 6926A033146245AE00F69705 /* PBXTextBookmark */ = { + 6926A6F5146B453900F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 380"; + name = "packet.c: 1045"; rLen = 0; - rLoc = 12055; + rLoc = 40337; rType = 0; - vrLen = 1542; - vrLoc = 10812; + vrLen = 1444; + vrLoc = 31262; }; - 6926A03A1462D95600F69705 /* PBXTextBookmark */ = { + 6926A710146B467100F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 387"; + name = "packet.c: 1045"; rLen = 0; - rLoc = 12331; + rLoc = 40337; rType = 0; - vrLen = 1543; - vrLoc = 10812; + vrLen = 1444; + vrLoc = 31262; }; - 6926A0411462D98D00F69705 /* PBXTextBookmark */ = { + 6926A71B146B478A00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 387"; + name = "packet.c: 1045"; rLen = 0; - rLoc = 12331; + rLoc = 40337; rType = 0; - vrLen = 1542; - vrLoc = 10812; + vrLen = 1453; + vrLoc = 31262; }; - 6926A0461462D9B900F69705 /* PBXTextBookmark */ = { + 6926A722146B47C800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 385"; + name = "packet.c: 1045"; rLen = 0; - rLoc = 12331; + rLoc = 40337; rType = 0; - vrLen = 1578; - vrLoc = 10812; + vrLen = 1453; + vrLoc = 31262; }; - 6926A04A1462DAB900F69705 /* PBXTextBookmark */ = { + 6926A723146B47C800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 386"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 108"; rLen = 0; - rLoc = 12331; + rLoc = 2487; rType = 0; - vrLen = 1542; - vrLoc = 10812; + vrLen = 1217; + vrLoc = 0; }; - 6926A0501462DAE200F69705 /* PBXTextBookmark */ = { + 6926A72D146B483200F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 15"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 21"; rLen = 0; - rLoc = 259; + rLoc = 423; rType = 0; - vrLen = 1433; - vrLoc = 10541; + vrLen = 1217; + vrLoc = 0; }; - 6926A0571462DC7E00F69705 /* PBXTextBookmark */ = { + 6926A72E146B483200F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 379"; + name = "packet.c: 1046"; rLen = 0; - rLoc = 11571; + rLoc = 40337; rType = 0; - vrLen = 1398; - vrLoc = 10541; + vrLen = 1450; + vrLoc = 31285; }; - 6926A0641462DCB200F69705 /* PBXTextBookmark */ = { + 6926A72F146B483200F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 390"; + name = "packet.c: 1043"; rLen = 0; - rLoc = 12331; + rLoc = 40260; rType = 0; - vrLen = 1408; - vrLoc = 10541; + vrLen = 1450; + vrLoc = 31285; }; - 6926A06B1462DCD300F69705 /* PBXTextBookmark */ = { + 6926A73E146B486200F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 387"; + name = "packet.c: 1043"; rLen = 0; - rLoc = 12177; + rLoc = 40260; rType = 0; - vrLen = 1395; - vrLoc = 10541; + vrLen = 1450; + vrLoc = 31285; }; - 6926A0721462DEE000F69705 /* PBXTextBookmark */ = { + 6926A742146B48A400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 387"; + name = "packet.c: 1048"; rLen = 0; - rLoc = 12177; + rLoc = 40229; rType = 0; - vrLen = 1400; - vrLoc = 10541; + vrLen = 1333; + vrLoc = 31285; }; - 6926A0791462DF3A00F69705 /* PBXTextBookmark */ = { + 6926A748146B520D00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 388"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 67"; rLen = 0; - rLoc = 12290; + rLoc = 1598; rType = 0; - vrLen = 1398; - vrLoc = 10541; + vrLen = 895; + vrLoc = 993; }; - 6926A0801462DF6000F69705 /* PBXTextBookmark */ = { + 6926A749146B520D00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 388"; - rLen = 0; - rLoc = 12290; + name = "packet.c: 1226"; + rLen = 74; + rLoc = 44889; rType = 0; - vrLen = 1412; - vrLoc = 10541; + vrLen = 1307; + vrLoc = 36795; }; - 6926A0871462DF7800F69705 /* PBXTextBookmark */ = { + 6926A74A146B520D00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 388"; + name = "packet.c: 1034"; rLen = 0; - rLoc = 12290; + rLoc = 38225; rType = 0; - vrLen = 1412; - vrLoc = 10541; + vrLen = 1205; + vrLoc = 30973; }; - 6926A0901462DFB200F69705 /* PBXTextBookmark */ = { + 6926A750146B525300F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 388"; + name = "packet.c: 1032"; rLen = 0; - rLoc = 12290; + rLoc = 38037; rType = 0; - vrLen = 1442; - vrLoc = 10541; + vrLen = 1408; + vrLoc = 30775; }; - 6926A09D1462E09C00F69705 /* PBXTextBookmark */ = { + 6926A758146B534600F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 48"; + name = "packet.h: 67"; rLen = 0; - rLoc = 1047; + rLoc = 1598; rType = 0; - vrLen = 1047; - vrLoc = 204; + vrLen = 895; + vrLoc = 993; }; - 6926A09E1462E09C00F69705 /* PBXTextBookmark */ = { + 6926A759146B534600F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 388"; + name = "packet.c: 1032"; rLen = 0; - rLoc = 12290; + rLoc = 37656; rType = 0; - vrLen = 1442; - vrLoc = 10541; + vrLen = 1492; + vrLoc = 31248; }; - 6926A09F1462E09C00F69705 /* PBXTextBookmark */ = { + 6926A75A146B534600F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 394"; + name = "packet.c: 1045"; rLen = 0; - rLoc = 12290; + rLoc = 38132; rType = 0; - vrLen = 1443; - vrLoc = 10541; + vrLen = 1462; + vrLoc = 31147; }; - 6926A0B01462E1BE00F69705 /* PBXTextBookmark */ = { + 6926A75E146B535D00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 48"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 1048"; rLen = 0; - rLoc = 1047; + rLoc = 38354; rType = 0; - vrLen = 985; - vrLoc = 264; + vrLen = 1462; + vrLoc = 31147; }; - 6926A0B11462E1BE00F69705 /* PBXTextBookmark */ = { + 6926A762146B539C00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 233"; + name = "packet.c: 1049"; rLen = 0; - rLoc = 7040; + rLoc = 38298; rType = 0; - vrLen = 1202; - vrLoc = 5740; + vrLen = 1394; + vrLoc = 31415; }; - 6926A0B21462E1BE00F69705 /* PBXTextBookmark */ = { + 6926A777146B542600F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 408"; + name = "packet.c: 1049"; rLen = 0; - rLoc = 12331; + rLoc = 38298; rType = 0; - vrLen = 1545; - vrLoc = 11119; + vrLen = 1394; + vrLoc = 31415; }; - 6926A0BB1462E1D900F69705 /* PBXTextBookmark */ = { + 6926A778146B542600F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 408"; + name = "packet.c: 1029"; rLen = 0; - rLoc = 12414; + rLoc = 37523; rType = 0; - vrLen = 1553; - vrLoc = 11119; + vrLen = 1498; + vrLoc = 30842; }; - 6926A0C21462E20500F69705 /* PBXTextBookmark */ = { + 6926A782146B545000F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 520"; + name = "packet.c: 1032"; rLen = 0; - rLoc = 18748; + rLoc = 37600; rType = 0; - vrLen = 1557; - vrLoc = 14733; + vrLen = 1502; + vrLoc = 30842; }; - 6926A0C71462E29800F69705 /* PBXTextBookmark */ = { + 6926A78D146B54BF00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 498"; + name = "packet.c: 1032"; rLen = 0; - rLoc = 17841; + rLoc = 37600; rType = 0; - vrLen = 1552; - vrLoc = 14619; + vrLen = 1508; + vrLoc = 30842; }; - 6926A0CD1462EF4000F69705 /* PBXTextBookmark */ = { + 6926A7B8146B575800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 402"; - rLen = 0; - rLoc = 12110; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 51"; + rLen = 15; + rLoc = 1271; rType = 0; - vrLen = 1394; - vrLoc = 11116; + vrLen = 955; + vrLoc = 1025; }; - 6926A0DC1462EFBF00F69705 /* PBXTextBookmark */ = { + 6926A7B9146B575800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 421"; - rLen = 0; - rLoc = 14924; + name = "packet.c: 970"; + rLen = 119; + rLoc = 35586; rType = 0; - vrLen = 1533; - vrLoc = 11555; + vrLen = 1389; + vrLoc = 31415; }; - 6926A0DF146340CA00F69705 /* PBXTextBookmark */ = { + 6926A7BA146B575800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 421"; + name = "packet.c: 1250"; rLen = 0; - rLoc = 14924; + rLoc = 45172; rType = 0; - vrLen = 1481; - vrLoc = 11607; + vrLen = 1185; + vrLoc = 37615; }; - 6926A0E0146340CA00F69705 /* PBXTextBookmark */ = { + 6926A7C4146B577900F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 68"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 1250"; rLen = 0; - rLoc = 1587; + rLoc = 45172; rType = 0; - vrLen = 787; - vrLoc = 785; + vrLen = 1185; + vrLoc = 37619; }; - 6926A0E1146340CA00F69705 /* PBXTextBookmark */ = { + 6926A7D0146B57EC00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 19"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 1039"; rLen = 0; - rLoc = 415; + rLoc = 37884; rType = 0; - vrLen = 934; - vrLoc = 36; + vrLen = 1356; + vrLoc = 31419; }; - 6926A0EE1463428800F69705 /* PBXTextBookmark */ = { + 6926A7D4146B590C00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 37"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 1064"; rLen = 0; - rLoc = 855; + rLoc = 38736; rType = 0; - vrLen = 740; - vrLoc = 865; + vrLen = 1461; + vrLoc = 31857; }; - 6926A0EF1463428800F69705 /* PBXTextBookmark */ = { + 6926A7D8146B596C00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 421"; + name = "packet.c: 1062"; rLen = 0; - rLoc = 14924; + rLoc = 38596; rType = 0; - vrLen = 1449; - vrLoc = 11882; + vrLen = 1476; + vrLoc = 31764; }; - 6926A0F01463428800F69705 /* PBXTextBookmark */ = { + 6926A7E0146B59BC00F69705 /* XCBuildMessageTextBookmark */ = { isa = PBXTextBookmark; + comments = "Passing argument 4 of 'gcry_mpi_print' from incompatible pointer type"; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 431"; - rLen = 0; - rLoc = 15308; - rType = 0; - vrLen = 1453; - vrLoc = 12198; + fallbackIsa = XCBuildMessageTextBookmark; + rLen = 1; + rLoc = 1231; + rType = 1; }; - 6926A0FE1463434000F69705 /* PBXTextBookmark */ = { + 6926A7E1146B59BC00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 37"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 978"; rLen = 0; - rLoc = 855; + rLoc = 35920; rType = 0; - vrLen = 764; - vrLoc = 865; + vrLen = 1540; + vrLoc = 31881; }; - 6926A0FF1463434000F69705 /* PBXTextBookmark */ = { + 6926A7E3146B59E400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 209"; + name = "packet.c: 1064"; rLen = 0; - rLoc = 6296; + rLoc = 38736; + rType = 0; + vrLen = 1532; + vrLoc = 31881; + }; + 6926A7E5146B5A9100F69705 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 108"; + rLen = 14; + rLoc = 2440; rType = 0; - vrLen = 1189; - vrLoc = 5552; + vrLen = 1072; + vrLoc = 2099; }; - 6926A1001463434000F69705 /* PBXTextBookmark */ = { + 6926A7E6146B5A9100F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 217"; + name = "packet.c: 1065"; rLen = 0; - rLoc = 6545; + rLoc = 38723; rType = 0; - vrLen = 1196; - vrLoc = 5552; + vrLen = 1532; + vrLoc = 31881; }; - 6926A109146348FB00F69705 /* PBXTextBookmark */ = { + 6926A7E7146B5A9100F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 66"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 1069"; rLen = 0; - rLoc = 1355; + rLoc = 39012; rType = 0; - vrLen = 927; - vrLoc = 161; + vrLen = 1453; + vrLoc = 31881; }; - 6926A10A146348FB00F69705 /* PBXTextBookmark */ = { + 6926A7E9146B5AE900F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 420"; + name = "packet.c: 1071"; rLen = 0; - rLoc = 14610; + rLoc = 39048; rType = 0; - vrLen = 1439; - vrLoc = 11208; + vrLen = 1532; + vrLoc = 31881; }; - 6926A10B146348FB00F69705 /* PBXTextBookmark */ = { + 6926A7EB146B5B4D00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 682"; - rLen = 162; - rLoc = 22669; + name = "packet.c: 1069"; + rLen = 0; + rLoc = 38887; rType = 0; - vrLen = 1147; - vrLoc = 20107; + vrLen = 1612; + vrLoc = 31913; }; - 6926A11B14634A1600F69705 /* PBXTextBookmark */ = { + 6926A7F1146B5B7800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 66"; + name = "packet.h: 67"; rLen = 0; - rLoc = 1355; + rLoc = 1559; rType = 0; - vrLen = 804; - vrLoc = 739; + vrLen = 959; + vrLoc = 1262; }; - 6926A11C14634A1600F69705 /* PBXTextBookmark */ = { + 6926A7F2146B5B7800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 427"; + name = "packet.c: 1067"; rLen = 0; - rLoc = 13333; + rLoc = 38778; rType = 0; - vrLen = 1251; - vrLoc = 11759; + vrLen = 1555; + vrLoc = 31987; }; - 6926A11D14634A1600F69705 /* PBXTextBookmark */ = { + 6926A7F3146B5B7800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 550"; + name = "packet.c: 1067"; rLen = 0; - rLoc = 18710; + rLoc = 38778; rType = 0; - vrLen = 1460; - vrLoc = 16196; + vrLen = 1555; + vrLoc = 31987; }; - 6926A12614634ACB00F69705 /* PBXTextBookmark */ = { + 6926A7F5146B5B8900F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 429"; + name = "packet.c: 1073"; rLen = 0; - rLoc = 13028; + rLoc = 39054; rType = 0; - vrLen = 1246; - vrLoc = 11884; + vrLen = 1560; + vrLoc = 31987; }; - 6926A13014634B6900F69705 /* PBXTextBookmark */ = { + 6926A7F7146B5BB700F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 66"; + name = "packet.h: 68"; rLen = 0; - rLoc = 1355; + rLoc = 1559; rType = 0; - vrLen = 942; - vrLoc = 1407; + vrLen = 945; + vrLoc = 1262; }; - 6926A13114634B6900F69705 /* PBXTextBookmark */ = { + 6926A7F8146B5BB700F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 462"; + name = "packet.c: 1073"; rLen = 0; - rLoc = 15254; + rLoc = 39054; rType = 0; vrLen = 1560; - vrLoc = 8486; + vrLoc = 31987; }; - 6926A13214634B6900F69705 /* PBXTextBookmark */ = { + 6926A7F9146B5BB700F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 429"; + name = "packet.c: 1075"; rLen = 0; - rLoc = 13015; + rLoc = 39128; rType = 0; - vrLen = 1235; - vrLoc = 12111; + vrLen = 1486; + vrLoc = 31987; }; - 6926A13914634C0A00F69705 /* PBXTextBookmark */ = { + 6926A7FD146B5C8100F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 435"; + name = "packet.c: 1086"; rLen = 0; - rLoc = 13155; + rLoc = 39488; rType = 0; - vrLen = 1218; - vrLoc = 12111; + vrLen = 1581; + vrLoc = 32939; }; - 6926A13E14634C5000F69705 /* PBXTextBookmark */ = { + 6926A80A146B5D0400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 441"; + name = "packet.c: 1088"; rLen = 0; - rLoc = 13375; + rLoc = 39488; rType = 0; - vrLen = 1228; - vrLoc = 12474; + vrLen = 1636; + vrLoc = 32363; }; - 6926A14414634C9E00F69705 /* PBXTextBookmark */ = { + 6926A80B146B5D0400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 567"; + name = "packet.c: 1088"; rLen = 0; - rLoc = 18665; + rLoc = 39488; rType = 0; - vrLen = 1522; - vrLoc = 16617; + vrLen = 1637; + vrLoc = 32362; }; - 6926A14914634FF400F69705 /* PBXTextBookmark */ = { + 6926A817146B5D9F00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 62"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 1089"; rLen = 0; - rLoc = 1266; + rLoc = 39488; rType = 0; - vrLen = 862; - vrLoc = 804; + vrLen = 1647; + vrLoc = 32362; }; - 6926A14A14634FF400F69705 /* PBXTextBookmark */ = { + 6926A823146B5DC800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 450"; + name = "packet.c: 1090"; rLen = 0; - rLoc = 13902; + rLoc = 39542; rType = 0; - vrLen = 1106; - vrLoc = 12333; + vrLen = 1651; + vrLoc = 32366; }; - 6926A14B14634FF400F69705 /* PBXTextBookmark */ = { + 6926A824146B5DC800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 450"; + name = "packet.c: 1090"; rLen = 0; - rLoc = 13902; + rLoc = 39542; rType = 0; - vrLen = 1153; - vrLoc = 12472; + vrLen = 1651; + vrLoc = 32366; }; - 6926A14F1463503900F69705 /* PBXTextBookmark */ = { + 6926A826146B5DF500F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 451"; + name = "packet.c: 1090"; rLen = 0; - rLoc = 14107; + rLoc = 39542; rType = 0; - vrLen = 1180; - vrLoc = 12474; + vrLen = 1658; + vrLoc = 32366; }; - 6926A1551463508400F69705 /* PBXTextBookmark */ = { + 6926A82D146B5E0200F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 90"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 1090"; rLen = 0; - rLoc = 1842; + rLoc = 39542; rType = 0; - vrLen = 927; - vrLoc = 1499; + vrLen = 1658; + vrLoc = 32366; }; - 6926A1561463508400F69705 /* PBXTextBookmark */ = { + 6926A83C146B78C100F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 426"; + name = "packet.c: 1090"; rLen = 0; - rLoc = 12730; + rLoc = 39542; rType = 0; - vrLen = 1174; - vrLoc = 12474; + vrLen = 1543; + vrLoc = 32544; }; - 6926A1571463508400F69705 /* PBXTextBookmark */ = { + 6926A845146B791200F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 455"; + name = "packet.c: 1096"; rLen = 0; - rLoc = 14594; + rLoc = 39695; rType = 0; - vrLen = 1106; - vrLoc = 12474; + vrLen = 1484; + vrLoc = 32775; }; - 6926A15B146350B600F69705 /* PBXTextBookmark */ = { + 6926A849146B7AD600F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69868BC91460F386004C5D9B /* gcrypt.h */; - name = "gcrypt.h: 75"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 438"; rLen = 0; - rLoc = 2337; + rLoc = 13566; rType = 0; - vrLen = 1486; - vrLoc = 41191; + vrLen = 1856; + vrLoc = 11348; }; - 6926A15C146350B600F69705 /* PBXTextBookmark */ = { + 6926A84B146B7AE200F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 90"; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 438"; rLen = 0; - rLoc = 1842; + rLoc = 13566; rType = 0; - vrLen = 927; - vrLoc = 1499; + vrLen = 1886; + vrLoc = 11348; }; - 6926A15D146350B600F69705 /* PBXTextBookmark */ = { + 6926A853146B7B1D00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 11"; + name = "packet.c: 438"; rLen = 0; - rLoc = 172; + rLoc = 13566; rType = 0; - vrLen = 877; - vrLoc = 0; + vrLen = 1864; + vrLoc = 11538; }; - 6926A15E146350B600F69705 /* PBXTextBookmark */ = { + 6926A855146B7B2500F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 453"; + name = "packet.c: 438"; rLen = 0; - rLoc = 13902; + rLoc = 13566; rType = 0; - vrLen = 1102; - vrLoc = 12474; + vrLen = 1858; + vrLoc = 11538; }; - 6926A160146350E300F69705 /* PBXTextBookmark */ = { + 6926A857146B7CF400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 455"; + name = "packet.c: 470"; rLen = 0; - rLoc = 14149; + rLoc = 14676; rType = 0; - vrLen = 1048; - vrLoc = 12474; + vrLen = 1250; + vrLoc = 13332; }; - 6926A1621463511900F69705 /* PBXTextBookmark */ = { + 6926A86D146B7F1B00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 460"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 38"; rLen = 0; - rLoc = 14450; + rLoc = 1013; rType = 0; - vrLen = 1059; - vrLoc = 12538; + vrLen = 1096; + vrLoc = 485; }; - 6926A1661463513900F69705 /* PBXTextBookmark */ = { + 6926A86E146B7F1B00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 461"; + name = "packet.c: 444"; rLen = 0; - rLoc = 14433; + rLoc = 13566; rType = 0; - vrLen = 1220; - vrLoc = 13027; + vrLen = 1464; + vrLoc = 12557; }; - 6926A16A1463517900F69705 /* PBXTextBookmark */ = { + 6926A86F146B7F1B00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 458"; + name = "packet.c: 68"; rLen = 0; - rLoc = 14382; + rLoc = 1532; rType = 0; - vrLen = 1093; - vrLoc = 12627; + vrLen = 1528; + vrLoc = 12678; }; - 6926A1701463518E00F69705 /* PBXTextBookmark */ = { + 6926A880146B7F8A00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 423"; + name = "packet.c: 68"; rLen = 0; - rLoc = 12666; + rLoc = 1532; rType = 0; - vrLen = 1165; - vrLoc = 12475; + vrLen = 1528; + vrLoc = 12678; }; - 6926A1771463520200F69705 /* PBXTextBookmark */ = { + 6926A881146B7F8A00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 452"; + name = "packet.c: 68"; rLen = 0; - rLoc = 13418; + rLoc = 1532; rType = 0; - vrLen = 1105; - vrLoc = 12627; + vrLen = 1529; + vrLoc = 12678; }; - 6926A17C1463521400F69705 /* PBXTextBookmark */ = { + 6926A888146B7FF800F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 455"; + name = "packet.c: 68"; rLen = 0; - rLoc = 13418; + rLoc = 1532; rType = 0; - vrLen = 1114; - vrLoc = 12627; + vrLen = 1530; + vrLoc = 12679; }; - 6926A1831463522C00F69705 /* PBXTextBookmark */ = { + 6926A88F146B801E00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 455"; + name = "packet.c: 68"; rLen = 0; - rLoc = 13418; + rLoc = 1532; rType = 0; - vrLen = 1115; - vrLoc = 12627; + vrLen = 1530; + vrLoc = 12679; }; - 6926A18A1463560A00F69705 /* PBXTextBookmark */ = { + 6926A890146B801E00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 90"; + name = "packet.h: 38"; rLen = 0; - rLoc = 1842; + rLoc = 1013; rType = 0; - vrLen = 902; - vrLoc = 711; + vrLen = 1093; + vrLoc = 485; }; - 6926A18B1463560A00F69705 /* PBXTextBookmark */ = { + 6926A898146B8A2900F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 431"; - rLen = 0; - rLoc = 12842; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 127"; + rLen = 25; + rLoc = 2827; rType = 0; - vrLen = 1102; - vrLoc = 12608; + vrLen = 1088; + vrLoc = 2155; }; - 6926A18C1463560A00F69705 /* PBXTextBookmark */ = { + 6926A899146B8A2900F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 472"; - rLen = 0; - rLoc = 13972; + name = "packet.c: 139"; + rLen = 54; + rLoc = 4878; rType = 0; - vrLen = 1064; - vrLoc = 13301; + vrLen = 1692; + vrLoc = 5114; }; - 6926A1951463569500F69705 /* PBXTextBookmark */ = { + 6926A89A146B8A2900F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 469"; + name = "packet.c: 1012"; rLen = 0; - rLoc = 14066; + rLoc = 35229; rType = 0; - vrLen = 1073; - vrLoc = 12919; + vrLen = 1382; + vrLoc = 30008; }; - 6926A19C1463574C00F69705 /* PBXTextBookmark */ = { + 6926A8A2146B8AE400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 56"; - rLen = 12; - rLoc = 1145; + fRef = 69269F2314620D0F00F69705 /* packet.c */; + name = "packet.c: 1007"; + rLen = 0; + rLoc = 32016; rType = 0; - vrLen = 874; - vrLoc = 739; + vrLen = 1403; + vrLoc = 30374; }; - 6926A19D1463574C00F69705 /* PBXTextBookmark */ = { + 6926A8A4146C242E00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 469"; + name = "packet.c: 1017"; rLen = 0; - rLoc = 14066; + rLoc = 32413; rType = 0; - vrLen = 1153; - vrLoc = 12636; + vrLen = 1491; + vrLoc = 30915; }; - 6926A19E1463574C00F69705 /* PBXTextBookmark */ = { + 6926A8B0146C250500F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 465"; - rLen = 0; - rLoc = 13854; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 108"; + rLen = 18; + rLoc = 2364; rType = 0; - vrLen = 1342; - vrLoc = 12868; + vrLen = 1072; + vrLoc = 2171; }; - 6926A1A51463576100F69705 /* PBXTextBookmark */ = { + 6926A8B1146C250500F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 467"; + name = "packet.c: 1017"; rLen = 0; - rLoc = 13902; + rLoc = 32445; rType = 0; - vrLen = 1273; - vrLoc = 12868; + vrLen = 1495; + vrLoc = 30915; }; - 6926A1AC1463578B00F69705 /* PBXTextBookmark */ = { + 6926A8B2146C250500F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 466"; + name = "packet.c: 1012"; rLen = 0; - rLoc = 13896; + rLoc = 32193; rType = 0; - vrLen = 1185; - vrLoc = 12957; + vrLen = 1481; + vrLoc = 30905; }; - 6926A1B3146357A900F69705 /* PBXTextBookmark */ = { + 6926A8BA146C266700F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 459"; + name = "packet.c: 1040"; rLen = 0; - rLoc = 13580; + rLoc = 32959; rType = 0; - vrLen = 1192; - vrLoc = 12957; + vrLen = 1427; + vrLoc = 30905; }; - 6926A1C81463585300F69705 /* PBXTextBookmark */ = { + 6926A8C2146C2B5500F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2414620D0F00F69705 /* packet.h */; - name = "packet.h: 63"; + name = "packet.h: 50"; rLen = 0; - rLoc = 1291; + rLoc = 1259; rType = 0; - vrLen = 852; - vrLoc = 834; + vrLen = 1066; + vrLoc = 534; }; - 6926A1C91463585300F69705 /* PBXTextBookmark */ = { + 6926A8C3146C2B5500F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 459"; + name = "packet.c: 1045"; rLen = 0; - rLoc = 13580; + rLoc = 35229; rType = 0; - vrLen = 1155; - vrLoc = 13024; + vrLen = 1420; + vrLoc = 30908; }; - 6926A1CA1463585300F69705 /* PBXTextBookmark */ = { + 6926A8C4146C2B5500F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 463"; + name = "packet.c: 1050"; + rLen = 119; + rLoc = 35586; + rType = 0; + vrLen = 1509; + vrLoc = 31655; + }; + 6926A8C8146C323400F69705 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 50"; rLen = 0; - rLoc = 13752; + rLoc = 1259; rType = 0; - vrLen = 1155; - vrLoc = 13024; + vrLen = 906; + vrLoc = 823; }; - 6926A1D0146358C100F69705 /* PBXTextBookmark */ = { + 6926A8C9146C323400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 769"; + name = "packet.c: 1058"; rLen = 0; - rLoc = 23073; + rLoc = 35420; rType = 0; - vrLen = 1069; - vrLoc = 22396; + vrLen = 1317; + vrLoc = 32232; }; - 6926A1D1146358C100F69705 /* PBXTextBookmark */ = { + 6926A8CA146C323400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 769"; + name = "packet.c: 1062"; rLen = 0; - rLoc = 23073; + rLoc = 35567; rType = 0; - vrLen = 1099; - vrLoc = 22366; + vrLen = 1285; + vrLoc = 32232; }; - 6926A1D71463595400F69705 /* PBXTextBookmark */ = { + 6926A8DB146C34B200F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 775"; + name = "packet.c: 1030"; rLen = 0; - rLoc = 23292; + rLoc = 32595; rType = 0; - vrLen = 1068; - vrLoc = 22357; + vrLen = 1417; + vrLoc = 31218; }; - 6926A1E1146359AE00F69705 /* PBXTextBookmark */ = { + 6926A8DC146C34B200F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 775"; + name = "packet.c: 1030"; rLen = 0; - rLoc = 23292; + rLoc = 32595; rType = 0; - vrLen = 1068; - vrLoc = 22357; + vrLen = 1417; + vrLoc = 31218; }; - 6926A1E6146359BE00F69705 /* PBXTextBookmark */ = { + 6926A8E7146C354B00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 775"; + name = "packet.c: 1032"; rLen = 0; - rLoc = 23292; + rLoc = 32595; rType = 0; - vrLen = 1068; - vrLoc = 22357; + vrLen = 1392; + vrLoc = 31253; }; - 6926A1F314635B3B00F69705 /* PBXTextBookmark */ = { + 6926A8F2146C355F00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 489"; + name = "packet.c: 1032"; rLen = 0; - rLoc = 14594; + rLoc = 32595; rType = 0; - vrLen = 1124; - vrLoc = 13260; + vrLen = 1392; + vrLoc = 31253; }; - 6926A1FA14635B4E00F69705 /* PBXTextBookmark */ = { + 6926A8F3146C355F00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 489"; + name = "packet.c: 1032"; rLen = 0; - rLoc = 14594; + rLoc = 32595; rType = 0; - vrLen = 1124; - vrLoc = 13260; + vrLen = 1451; + vrLoc = 31194; }; - 6926A20A14635B7E00F69705 /* PBXTextBookmark */ = { + 6926A8FA146C35DD00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 460"; + name = "packet.c: 436"; rLen = 0; - rLoc = 13546; + rLoc = 13783; rType = 0; - vrLen = 1124; - vrLoc = 13260; + vrLen = 1818; + vrLoc = 11735; }; - 6926A21B14635B9D00F69705 /* PBXTextBookmark */ = { + 6926A90F146C372400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 468"; + name = "packet.c: 436"; rLen = 0; - rLoc = 13902; + rLoc = 13783; rType = 0; - vrLen = 1124; - vrLoc = 13260; + vrLen = 1451; + vrLoc = 12773; }; - 6926A22E14635BE700F69705 /* PBXTextBookmark */ = { + 6926A910146C372400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 469"; + name = "packet.c: 437"; rLen = 0; - rLoc = 13964; + rLoc = 13789; rType = 0; - vrLen = 1242; - vrLoc = 12919; + vrLen = 1519; + vrLoc = 12550; }; - 6926A23E14635C4500F69705 /* PBXTextBookmark */ = { + 6926A91B146C386D00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 782"; + name = "packet.c: 437"; rLen = 0; - rLoc = 23440; + rLoc = 13789; rType = 0; - vrLen = 1072; - vrLoc = 22386; + vrLen = 1523; + vrLoc = 12550; }; - 6926A24B14635C6E00F69705 /* PBXTextBookmark */ = { + 6926A926146C388D00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 470"; + name = "packet.c: 437"; rLen = 0; - rLoc = 13964; + rLoc = 13789; rType = 0; - vrLen = 1108; - vrLoc = 13491; + vrLen = 1519; + vrLoc = 12550; }; - 6926A25C14635CF500F69705 /* PBXTextBookmark */ = { + 6926A927146C388D00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 462"; + name = "packet.c: 437"; rLen = 0; - rLoc = 13699; + rLoc = 13789; rType = 0; - vrLen = 1167; - vrLoc = 13436; + vrLen = 1519; + vrLoc = 12550; }; - 6926A26714635D4A00F69705 /* PBXTextBookmark */ = { + 6926A93B146C3AC000F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 459"; + name = "packet.c: 1074"; rLen = 0; - rLoc = 13565; + rLoc = 34389; rType = 0; - vrLen = 1084; - vrLoc = 13292; + vrLen = 1529; + vrLoc = 31834; }; - 6926A26D14635D8200F69705 /* PBXTextBookmark */ = { + 6926A93C146C3AC000F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 482"; + name = "packet.c: 1074"; rLen = 0; - rLoc = 14424; + rLoc = 34389; rType = 0; - vrLen = 1084; - vrLoc = 13292; + vrLen = 1529; + vrLoc = 31834; }; - 6926A27314635DEA00F69705 /* PBXTextBookmark */ = { + 6926A946146C3B5700F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 471"; + name = "packet.c: 1074"; rLen = 0; - rLoc = 13991; + rLoc = 34388; rType = 0; - vrLen = 1084; - vrLoc = 13292; + vrLen = 1635; + vrLoc = 31881; }; - 6926A28114635EEC00F69705 /* PBXTextBookmark */ = { + 6926A94D146C3B6300F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 507"; + name = "packet.c: 1074"; rLen = 0; - rLoc = 14404; + rLoc = 34388; rType = 0; - vrLen = 1058; - vrLoc = 14071; + vrLen = 1635; + vrLoc = 31881; }; - 6926A28A14635EF900F69705 /* PBXTextBookmark */ = { + 6926A94E146C3B6300F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 507"; + name = "packet.c: 1074"; rLen = 0; - rLoc = 14404; + rLoc = 34388; rType = 0; - vrLen = 1122; - vrLoc = 13911; + vrLen = 1634; + vrLoc = 31881; }; - 6926A28B14635EF900F69705 /* PBXTextBookmark */ = { + 6926A957146C3BDA00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 507"; + name = "packet.c: 454"; rLen = 0; - rLoc = 14404; + rLoc = 14226; rType = 0; - vrLen = 1122; - vrLoc = 13911; + vrLen = 1502; + vrLoc = 12734; }; - 6926A29114635F5E00F69705 /* PBXTextBookmark */ = { + 6926A963146C3C2B00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 494"; + name = "packet.c: 1076"; rLen = 0; - rLoc = 14093; + rLoc = 34088; rType = 0; - vrLen = 1540; - vrLoc = 15275; + vrLen = 1580; + vrLoc = 32022; }; - 6926A29214635F5E00F69705 /* PBXTextBookmark */ = { + 6926A97D146C463400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; - fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 494"; + fRef = 69269F2414620D0F00F69705 /* packet.h */; + name = "packet.h: 50"; rLen = 0; - rLoc = 14093; + rLoc = 1259; rType = 0; - vrLen = 1540; - vrLoc = 15275; + vrLen = 887; + vrLoc = 823; }; - 6926A29914635FBD00F69705 /* PBXTextBookmark */ = { + 6926A97E146C463400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 486"; + name = "packet.c: 1090"; rLen = 0; - rLoc = 13854; + rLoc = 34623; rType = 0; - vrLen = 1333; - vrLoc = 13359; + vrLen = 1776; + vrLoc = 32146; }; - 6926A2A214635FF000F69705 /* PBXTextBookmark */ = { + 6926A97F146C463400F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 511"; + name = "packet.c: 177"; rLen = 0; - rLoc = 14382; + rLoc = 5588; rType = 0; - vrLen = 1003; - vrLoc = 14064; + vrLen = 1558; + vrLoc = 5039; }; - 6926A2AB1463601300F69705 /* PBXTextBookmark */ = { + 6926A985146C477500F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 426"; + name = "packet.c: 210"; rLen = 0; - rLoc = 12687; + rLoc = 6999; rType = 0; - vrLen = 1196; - vrLoc = 13710; + vrLen = 1859; + vrLoc = 5449; }; - 6926A2B21463603600F69705 /* PBXTextBookmark */ = { + 6926A98E146C48EB00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 485"; - rLen = 0; - rLoc = 14557; + name = "packet.c: 1020"; + rLen = 210; + rLoc = 31713; rType = 0; - vrLen = 1183; - vrLoc = 13591; + vrLen = 1580; + vrLoc = 33567; }; - 6926A2B91463605A00F69705 /* PBXTextBookmark */ = { + 6926A98F146C48EB00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 481"; - rLen = 0; - rLoc = 14397; + name = "packet.c: 1020"; + rLen = 210; + rLoc = 31713; rType = 0; - vrLen = 1194; - vrLoc = 13591; + vrLen = 1580; + vrLoc = 33567; }; - 6926A2BC1463607D00F69705 /* PBXTextBookmark */ = { + 6926A999146C4E9600F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 478"; + name = "packet.c: 1119"; rLen = 0; - rLoc = 14382; + rLoc = 35010; rType = 0; - vrLen = 1292; - vrLoc = 13301; + vrLen = 1634; + vrLoc = 33895; }; - 6926A2C4146360ED00F69705 /* PBXTextBookmark */ = { + 6926A9A4146C4F3F00F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 479"; + name = "packet.c: 1070"; rLen = 0; - rLoc = 14183; + rLoc = 33275; rType = 0; - vrLen = 1285; - vrLoc = 13495; + vrLen = 1725; + vrLoc = 32525; }; - 6926A2CD1463613E00F69705 /* PBXTextBookmark */ = { + 6926A9A7146C4F6200F69705 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 69269F2314620D0F00F69705 /* packet.c */; - name = "packet.c: 456"; + name = "packet.c: 16"; rLen = 0; - rLoc = 13453; + rLoc = 281; rType = 0; - vrLen = 1351; - vrLoc = 13421; + vrLen = 975; + vrLoc = 0; }; 69868AD41460E35F004C5D9B /* Source Control */ = { isa = PBXSourceControlManager;
@@ -3655,33 +2144,6 @@ isa = PBXCodeSenseManager; indexTemplatePath = ""; }; - 69868AD61460E372004C5D9B /* packet.h */ = { - isa = PBXFileReference; - fileEncoding = 4; - lastKnownFileType = sourcecode.c.h; - name = packet.h; - path = "/Users/trevor/Documents/Cocoa Projects/libsimplepgp/packet.h"; - sourceTree = "<absolute>"; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1077, 1716}}"; - sepNavSelRange = "{1069, 7}"; - sepNavVisRange = "{720, 991}"; - sepNavWindowFrame = "{{38, 106}, {1136, 746}}"; - }; - }; - 69868AD71460E372004C5D9B /* packet.c */ = { - isa = PBXFileReference; - fileEncoding = 4; - lastKnownFileType = sourcecode.c.c; - name = packet.c; - path = "/Users/trevor/Documents/Cocoa Projects/libsimplepgp/packet.c"; - sourceTree = "<absolute>"; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1030, 7189}}"; - sepNavSelRange = "{14773, 0}"; - sepNavVisRange = "{13576, 1527}"; - }; - }; 69868BC61460F37E004C5D9B /* gpg-error.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {565, 8723}}";
@@ -3748,133 +2210,15 @@ continueAfterActions = 0; countType = 0; delayBeforeContinue = 0; - fileReference = 69868AD71460E372004C5D9B /* packet.c */; + fileReference = 69269F2314620D0F00F69705 /* packet.c */; hitCount = 0; ignoreCount = 0; lineNumber = 9; location = duckdog; - modificationTime = 342057198.549462; + modificationTime = 342642496.060493; originalNumberOfMultipleMatches = 1; state = 2; }; - 69868D8314618DD7004C5D9B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = AA747D9E0F9514B9006C5449 /* simplepgp_Prefix.pch */; - name = "simplepgp_Prefix.pch: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 188; - vrLoc = 0; - }; - 69868DE514619580004C5D9B /* packet_test.h */ = { - isa = PBXFileReference; - fileEncoding = 4; - lastKnownFileType = sourcecode.c.h; - name = packet_test.h; - path = "/Users/trevor/Documents/Cocoa Projects/libsimplepgp/packet_test.h"; - sourceTree = "<absolute>"; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {1030, 722}}"; - sepNavSelRange = "{260, 0}"; - sepNavVisRange = "{0, 291}"; - sepNavWindowFrame = "{{15, 127}, {1136, 746}}"; - }; - }; - 69868DE614619580004C5D9B /* packet_test.c */ = { - isa = PBXFileReference; - fileEncoding = 4; - lastKnownFileType = sourcecode.c.c; - name = packet_test.c; - path = "/Users/trevor/Documents/Cocoa Projects/libsimplepgp/packet_test.c"; - sourceTree = "<absolute>"; - uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {558, 780}}"; - sepNavSelRange = "{1064, 0}"; - sepNavVisRange = "{928, 204}"; - }; - }; - 69868E791461A1AF004C5D9B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 67"; - rLen = 0; - rLoc = 1423; - rType = 0; - vrLen = 1091; - vrLoc = 591; - }; - 69868E7B1461A1AF004C5D9B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868DE514619580004C5D9B /* packet_test.h */; - name = "packet_test.h: 17"; - rLen = 0; - rLoc = 260; - rType = 0; - vrLen = 291; - vrLoc = 0; - }; - 69868EA21461A401004C5D9B /* PBXBookmark */ = { - isa = PBXBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - }; - 69868EE41461AA6F004C5D9B /* packet.c:207 */ = { - isa = PBXFileBreakpoint; - actions = ( - ); - breakpointStyle = 0; - continueAfterActions = 0; - countType = 0; - delayBeforeContinue = 0; - fileReference = 69868AD71460E372004C5D9B /* packet.c */; - functionName = "parse_header()"; - hitCount = 0; - ignoreCount = 0; - lineNumber = 207; - modificationTime = 342057198.550455; - originalNumberOfMultipleMatches = 0; - state = 2; - }; - 69868EF31461AB26004C5D9B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868DE614619580004C5D9B /* packet_test.c */; - name = "packet_test.c: 54"; - rLen = 0; - rLoc = 1285; - rType = 0; - vrLen = 1353; - vrLoc = 0; - }; - 69868EF41461AB26004C5D9B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 190"; - rLen = 0; - rLoc = 7179; - rType = 0; - vrLen = 2103; - vrLoc = 3136; - }; - 69868F561461BBC2004C5D9B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD71460E372004C5D9B /* packet.c */; - name = "packet.c: 195"; - rLen = 0; - rLoc = 7384; - rType = 0; - vrLen = 1021; - vrLoc = 1093; - }; - 69868F571461BBC2004C5D9B /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 69868AD61460E372004C5D9B /* packet.h */; - name = "packet.h: 67"; - rLen = 0; - rLoc = 1423; - rType = 0; - vrLen = 961; - vrLoc = 721; - }; AA747D9E0F9514B9006C5449 /* simplepgp_Prefix.pch */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {1030, 722}}";
diff --git a/src/keychain.c b/src/keychain.c line changes: +99/-0 index 0000000..c48d044 --- /dev/null +++ b/src/keychain.c
@@ -0,0 +1,99 @@ +/* + * keychain.c + * simplepgp + * + * Created by Trevor Bentley on 11/8/11. + * Copyright 2011 Trevor Bentley. All rights reserved. + * + */ + +#include "keychain.h" + +#define SPGP_KEYCHAIN_DEFAULT_SIZE 5 + +static pthread_mutex_t keychain_mtx; +static spgp_packet_t **keychain; +static uint32_t kc_count; +static uint32_t kc_used; + +static uint32_t iter_idx; + +uint8_t spgp_keychain_init(void) { + if (pthread_mutex_init(&keychain_mtx, NULL)) return -1; + + keychain = malloc(sizeof(spgp_packet_t*) * SPGP_KEYCHAIN_DEFAULT_SIZE); + if (NULL == keychain) return -1; + kc_count = SPGP_KEYCHAIN_DEFAULT_SIZE; + kc_used = 0; + + return 0; +} + +uint8_t spgp_keychain_free(void) { + kc_count = 0; + kc_used = 0; + free(keychain); + keychain = NULL; + pthread_mutex_destroy(&keychain_mtx); + return 0; +} + +uint8_t spgp_keychain_is_valid(void) { + if (keychain) return 1; + return 0; +} + +uint8_t spgp_keychain_add_packet(spgp_packet_t *pkt) { + if (NULL == pkt) return -1; + + pthread_mutex_lock(&keychain_mtx); + + if (kc_used == kc_count) { + // Need to allocate more space + return -1; // for now, unsupported + } + + keychain[kc_used] = pkt; + kc_used++; + + // Potential feature: + // If we wanted to be really fuckin' fancy, we could use 'secure memory' + // to store secret keys. Use mlock() to get a page that will never be + // swapped to disk, and clear it when we exit. + + LOG_PRINT("Added packet to keychain."); + + pthread_mutex_unlock(&keychain_mtx); + + return 0; +} + +uint8_t spgp_keychain_del_packet(spgp_packet_t *pkt) { + pthread_mutex_lock(&keychain_mtx); + pthread_mutex_unlock(&keychain_mtx); + + return -1; +} + +uint8_t spgp_keychain_iter_start(void) { + pthread_mutex_lock(&keychain_mtx); + iter_idx = 0; + return 0; +} +uint8_t spgp_keychain_iter_end(void) { + pthread_mutex_unlock(&keychain_mtx); + return 0; +} +spgp_packet_t *spgp_keychain_iter_next(void) { + if (iter_idx < kc_used) + return keychain[iter_idx++]; + return NULL; +} + +spgp_packet_t *spgp_keychain_secret_key_with_id(uint8_t *keyid) { + pthread_mutex_lock(&keychain_mtx); + + pthread_mutex_unlock(&keychain_mtx); + + return NULL; +}
diff --git a/src/keychain.h b/src/keychain.h line changes: +31/-0 index 0000000..e8bc3fd --- /dev/null +++ b/src/keychain.h
@@ -0,0 +1,31 @@ +/* + * keychain.h + * simplepgp + * + * Created by Trevor Bentley on 11/8/11. + * Copyright 2011 Trevor Bentley. All rights reserved. + * + */ + +#ifndef _KEYCHAIN_H + +#include <stdint.h> +#include <pthread.h> +#include "packet.h" + + +uint8_t spgp_keychain_init(void); +uint8_t spgp_keychain_free(void); +uint8_t spgp_keychain_is_valid(void); + +uint8_t spgp_keychain_add_packet(spgp_packet_t *pkt); +uint8_t spgp_keychain_del_packet(spgp_packet_t *pkt); + +uint8_t spgp_keychain_iter_start(void); +uint8_t spgp_keychain_iter_end(void); +spgp_packet_t *spgp_keychain_iter_next(void); + +spgp_packet_t *spgp_keychain_secret_key_with_id(uint8_t *keyid); + +#define _KEYCHAIN_H +#endif
diff --git a/src/packet.c b/src/packet.c line changes: +786/-103 index 5995b20..8dd9316 --- a/src/packet.c +++ b/src/packet.c
@@ -13,6 +13,8 @@ #include "gcrypt.h" #include <wchar.h> #include <locale.h> +#include "keychain.h" +#include <string.h> /**********************************************************************
@@ -35,12 +37,6 @@ } \ } while(0) -#define LOG_PRINT(fmt, ...) do {\ - if (debug_log_enabled) {\ - fprintf(stderr, "SPGP [%s():%d]: " fmt, \ - __FUNCTION__, __LINE__, ## __VA_ARGS__);\ - } } while(0) - /********************************************************************** **
@@ -48,14 +44,13 @@ ** ***********************************************************************/ - static uint32_t _spgp_err; static jmp_buf exception; #ifdef DEBUG_LOG_ENABLED -static uint8_t debug_log_enabled = 1; +uint8_t debug_log_enabled = 1; #else -static uint8_t debug_log_enabled = 0; +uint8_t debug_log_enabled = 0; #endif
@@ -68,14 +63,44 @@ static uint8_t debug_log_enabled = 0; static uint8_t spgp_parse_header(uint8_t *msg, uint32_t *idx, uint32_t length, spgp_packet_t *pkt); +static uint32_t spgp_new_header_length(uint8_t *header, + uint8_t *header_len, + uint8_t *is_partial); + static uint8_t spgp_parse_user_id(uint8_t *msg, uint32_t *idx, uint32_t length, spgp_packet_t *pkt); static uint8_t spgp_generate_fingerprint(spgp_packet_t *pkt); - + +static uint8_t spgp_verify_decrypted_data(uint8_t *data, uint32_t length); + +static uint8_t spgp_generate_cipher_key(spgp_packet_t *pkt, + uint8_t *passphrase, uint32_t length); + +static uint8_t spgp_parse_public_key(uint8_t *msg, uint32_t *idx, + uint32_t length, spgp_packet_t *pkt); + static uint8_t spgp_parse_secret_key(uint8_t *msg, uint32_t *idx, uint32_t length, spgp_packet_t *pkt); - + +static spgp_packet_t *spgp_next_secret_key_packet(spgp_packet_t *msg); + +static uint8_t spgp_decrypt_secret_key(spgp_packet_t *pkt, + uint8_t *passphrase, uint32_t length); + +static uint8_t spgp_parse_encrypted_packet(uint8_t *msg, + uint32_t *idx, + uint32_t length, + spgp_packet_t *pkt); + +static spgp_packet_t *spgp_find_session_packet(spgp_packet_t *chain); + +static uint8_t spgp_parse_session_packet(uint8_t *msg, uint32_t *idx, + uint32_t length, spgp_packet_t *pkt); + +static spgp_packet_t *spgp_secret_key_matching_id(spgp_packet_t *chain, + uint8_t *keyid); + static uint32_t spgp_mpi_length(uint8_t *mpi); static spgp_mpi_t *spgp_read_mpi(uint8_t *msg, uint32_t *idx,
@@ -84,7 +109,7 @@ static spgp_mpi_t *spgp_read_mpi(uint8_t *msg, uint32_t *idx, static uint8_t spgp_read_all_public_mpis(uint8_t *msg, uint32_t *idx, uint32_t length, - spgp_secret_pkt_t *secret); + spgp_public_pkt_t *pub); static uint8_t spgp_read_all_secret_mpis(uint8_t *msg, uint32_t *idx,
@@ -101,6 +126,8 @@ static uint8_t spgp_read_iv(uint8_t *msg, uint32_t length, spgp_secret_pkt_t *secret); +static uint8_t spgp_pgp_to_gcrypt_symmetric_algo(uint8_t pgpalgo); + static uint8_t spgp_iv_length_for_symmetric_algo(uint8_t algo); static uint8_t spgp_salt_length_for_hash_algo(uint8_t algo);
@@ -115,12 +142,6 @@ static uint8_t spgp_salt_length_for_hash_algo(uint8_t algo); ***********************************************************************/ #pragma mark External Function Definitions -uint8_t spgp_debug_log_enabled(void) { - return debug_log_enabled; -} -void spgp_debug_log_set(uint8_t enable) { - debug_log_enabled = enable; -} spgp_packet_t *spgp_decode_message(uint8_t *message, uint32_t length) { spgp_packet_t *head = NULL;
@@ -152,6 +173,16 @@ spgp_packet_t *spgp_decode_message(uint8_t *message, uint32_t length) { // Loop to decode every packet in message while (idx < length-1) { + + // Skip NULL bytes. This is because 'partial packets' are a thing. We + // should theoretically always be on a valid packet boundary when we get + // to this point. However, if we are in the middle of processing a + // 'partial packet' we might be looking at a sub-header here instead of + // the start of a new packet. In the data packet decryption process, we + // replace the sub-header with zeroes so we can detect it here and skip + // over it. + while (message[idx] == 0) idx++; + // Every packet starts with a header spgp_parse_header(message, &idx, length, pkt); if (!pkt->header) RAISE(FORMAT_UNSUPPORTED);
@@ -161,12 +192,22 @@ spgp_packet_t *spgp_decode_message(uint8_t *message, uint32_t length) { case PKT_TYPE_USER_ID: spgp_parse_user_id(message, &idx, length, pkt); break; + case PKT_TYPE_PUBLIC_KEY: + case PKT_TYPE_PUBLIC_SUBKEY: + spgp_parse_public_key(message, &idx, length, pkt); + break; case PKT_TYPE_SECRET_KEY: case PKT_TYPE_SECRET_SUBKEY: spgp_parse_secret_key(message, &idx, length, pkt); break; + case PKT_TYPE_SESSION: + spgp_parse_session_packet(message, &idx, length, pkt); + break; + case PKT_TYPE_SYM_ENC_INT_DATA: + spgp_parse_encrypted_packet(message, &idx, length, pkt); + break; default: - LOG_PRINT("WARNING: Unsupported packet type %d\n", pkt->header->type); + LOG_PRINT("WARNING: Unsupported packet type %u\n", pkt->header->type); // Increment to next packet. We add the contentLength, but subtract // one parse_header() left us on the first byte of content. if (idx + pkt->header->contentLength - 1 < length)
@@ -181,6 +222,7 @@ spgp_packet_t *spgp_decode_message(uint8_t *message, uint32_t length) { pkt->next = malloc(sizeof(*pkt->next)); if (NULL == pkt->next) RAISE(OUT_OF_MEMORY); memset(pkt->next, 0, sizeof(*pkt->next)); + pkt->next->prev = pkt; // make backwards pointer pkt = pkt->next; // Packet parser increments to it's own last byte. Need one more to get
@@ -193,6 +235,49 @@ spgp_packet_t *spgp_decode_message(uint8_t *message, uint32_t length) { return head; } +uint8_t spgp_decrypt_all_secret_keys(spgp_packet_t *msg, + uint8_t *passphrase, uint32_t length) { + spgp_packet_t *cur = msg; + uint8_t err = 0; + + if (setjmp(exception)) { + LOG_PRINT("Exception (0x%x)\n",_spgp_err); + goto end; + } + + if (NULL == msg || NULL == passphrase || length == 0) RAISE(INVALID_ARGS); + + while ((cur = spgp_next_secret_key_packet(cur)) != NULL) { + LOG_PRINT("Decrypting secret key\n"); + spgp_decrypt_secret_key(cur, passphrase, length); + cur = cur->next; + } + + end: + return err; +} + + +uint8_t spgp_load_keychain_with_keys(spgp_packet_t *msg) { + spgp_packet_t *cur = msg; + uint8_t err = 0; + + if (setjmp(exception)) { + LOG_PRINT("Exception (0x%x)\n",_spgp_err); + goto end; + } + + if (NULL == msg) RAISE(INVALID_ARGS); + while ((cur = spgp_next_secret_key_packet(cur)) != NULL) { + LOG_PRINT("Adding key to keychain.\n"); + cur = cur->next; + } + + end: + return err; +} + + void spgp_free_packet(spgp_packet_t **pkt) { spgp_mpi_t *curMpi, *nextMpi;
@@ -201,7 +286,7 @@ void spgp_free_packet(spgp_packet_t **pkt) { if (*pkt == NULL) return; - LOG_PRINT("Freeing packet: %p\n", pkt); + //LOG_PRINT("Freeing packet: %p\n", pkt); // Recursively call on the next packet before freeing parent. if ((*pkt)->next) spgp_free_packet(&((*pkt)->next));
@@ -214,6 +299,7 @@ void spgp_free_packet(spgp_packet_t **pkt) { curMpi = (*pkt)->c.secret->pub.mpiHead; while (curMpi->next) { nextMpi = curMpi->next; + if (curMpi->data) free(curMpi->data); free(curMpi); curMpi = nextMpi; }
@@ -278,19 +364,12 @@ const char *spgp_err_str(uint32_t err) { } } -void tsb_test(void) { - gcry_cipher_hd_t cipher_hd; - gcry_error_t err; - - printf("This is a test library.\n"); - err = gcry_cipher_open (&cipher_hd, - 2, - GCRY_CIPHER_MODE_CFB, - (GCRY_CIPHER_SECURE | GCRY_CIPHER_ENABLE_SYNC)); - printf("open result: %d\n", err); - +uint8_t spgp_debug_log_enabled(void) { + return debug_log_enabled; +} +void spgp_debug_log_set(uint8_t enable) { + debug_log_enabled = enable; } -
@@ -360,25 +439,12 @@ static uint8_t spgp_parse_header(uint8_t *msg, uint32_t *idx, // In new packets, the length is encoded over a variable number of bytes, // with the range of the first byte determining total number of bytes. else { // This is new style packet. - uint8_t len[4]; - len[0] = msg[*idx]; SAFE_IDX_INCREMENT(*idx, length); - if (len[0] <= 191) { // 1-byte length - pkt->header->headerLength = 2; - pkt->header->contentLength = len[0]; - } - else if (len[0] > 191 && len[0] <= 223) { // 2-byte length - pkt->header->headerLength = 3; - len[1] = msg[*idx]; SAFE_IDX_INCREMENT(*idx, length); - pkt->header->contentLength = - ((len[0]-192)<<8) | (len[1] + 192); - } - else { // 4-byte length - pkt->header->headerLength = 5; - len[2] = msg[*idx]; SAFE_IDX_INCREMENT(*idx, length); - len[3] = msg[*idx]; SAFE_IDX_INCREMENT(*idx, length); - pkt->header->contentLength = - (len[0]<<24) | (len[1]<<16) | (len[2]<<8) | len[3]; - } + pkt->header->contentLength = + spgp_new_header_length(msg+*idx, + &(pkt->header->headerLength), + &(pkt->header->isPartial)); + *idx += pkt->header->headerLength - 2; + SAFE_IDX_INCREMENT(*idx, length); } LOG_PRINT("LENGTH: %u\n", pkt->header->contentLength);
@@ -386,6 +452,45 @@ static uint8_t spgp_parse_header(uint8_t *msg, uint32_t *idx, return 0; } +static uint32_t spgp_new_header_length(uint8_t *header, + uint8_t *header_len, + uint8_t *is_partial) { + uint32_t content; + uint8_t len[4]; + uint8_t i = 0; + + if (NULL == header || NULL == header_len) RAISE(INVALID_ARGS); + + *is_partial = 0; // default to known length + + len[0] = header[i]; + if (len[0] <= 191) { // 1-byte length + *header_len = 2; + content = len[0]; + } + else if (len[0] > 191 && len[0] <= 223) { // 2-byte length + *header_len = 3; + len[1] = header[i+1]; + content = ((len[0]-192)<<8) | (len[1] + 192); + } + else if (len[0] == 255) { // 5-byte length + *header_len = 5; + len[0] = header[i+1]; + len[1] = header[i+2]; + len[2] = header[i+3]; + len[3] = header[i+4]; + content = (len[0]<<24) | (len[1]<<16) | (len[2]<<8) | len[3]; + } + else { + // indeterminate length + LOG_PRINT("Partial length header!\n"); + *header_len = 2; + *is_partial = 1; + content = 1 << (len[0] & 0x1F); + } + return content; +} + static uint8_t spgp_parse_user_id(uint8_t *msg, uint32_t *idx, uint32_t length, spgp_packet_t *pkt) { spgp_userid_pkt_t *userid;
@@ -454,7 +559,7 @@ static uint8_t spgp_generate_fingerprint(spgp_packet_t *pkt) { } // Give data to hash to gcrypt - if (gcry_md_open (&md, GCRY_MD_SHA1, 0) > 0) RAISE(GCRY_ERROR); + if (gcry_md_open (&md, GCRY_MD_SHA1, 0) != 0) RAISE(GCRY_ERROR); gcry_md_putc(md, 0x99 ); gcry_md_putc(md, packetSize >> 8); gcry_md_putc(md, packetSize);
@@ -494,24 +599,184 @@ static uint8_t spgp_generate_fingerprint(spgp_packet_t *pkt) { return 0; } -static uint8_t spgp_parse_secret_key(uint8_t *msg, uint32_t *idx, +static uint8_t spgp_verify_decrypted_data(uint8_t *data, uint32_t length) { + gcry_md_hd_t md; + uint32_t hashlen = length - 20; // SHA1 hash is 20 bytes + uint8_t *hashResult; + int result; + + if (gcry_md_open (&md, GCRY_MD_SHA1, 0) != 0) RAISE(GCRY_ERROR); + gcry_md_write(md, data, hashlen); + gcry_md_final(md); + hashResult = gcry_md_read(md, 0); + if (NULL == hashResult) RAISE(GCRY_ERROR); + result = memcmp(data+hashlen, hashResult, 20); + gcry_md_close(md); + return result; +} + +/** + * Generate cipher key to decrypt secret key packet + * + * The secret portion of a secret key packet can be encrypted with a + * symmetric cipher. This function generates the 'key' that is used as + * the input to the symmetric cipher. This key is generated by hashing + * a randomly generated salt, included in the packet, and the user's + * passphrase (which must be provided). + * + * OpenPGP's standard allows multiple ways of generating the key by varying + * the hash algorithm. + * + * @param pkt A secret key or secret subkey packet + * @param passphrase User's passphrase to decrypt with + * @param length Length (in bytes) of user's passphrase + * + * @return 0 on success. Raises exception on error. + * + */ +static uint8_t spgp_generate_cipher_key(spgp_packet_t *pkt, + uint8_t *passphrase, uint32_t length) { + spgp_secret_pkt_t *secret; + spgp_public_pkt_t *pub; + gcry_md_hd_t md; + uint32_t i; + uint32_t keyBytesRemaining;// Bytes left to generate for key + uint32_t hashLen; // How long the hash is (algo-dependent) + uint32_t hashIters; // How many hash results to combine into key + uint32_t hashBytes; // Total number of bytes to hash each time + uint32_t bufLen; // Length of salt+passphrase + uint32_t curHashCount; // How many times we have performed full hash + uint32_t hashCopies; // How many integer copies of hashBuf per round + uint32_t hashExtraBytes; // How many extra bytes to hash for last round + uint8_t *hashBuf; // Store concatenated salt+passphrase + uint8_t *hashResult; // Store result of actual hash algorithm + + if (NULL == pkt || NULL == passphrase) RAISE(INVALID_ARGS); + + secret = pkt->c.secret; + pub = pkt->c.pub; + + if (pkt->header->type != PKT_TYPE_SECRET_KEY && + pkt->header->type != PKT_TYPE_SECRET_SUBKEY) + RAISE(INVALID_ARGS); + + // Determine how many bytes we need to produce for this cipher + // Only supporting 3DES for this + switch(secret->s2kEncryption) { + case SYM_ALGO_3DES: secret->keyLength = 24; break; + case SYM_ALGO_CAST5: secret->keyLength = 16; break; + default: RAISE(FORMAT_UNSUPPORTED); + } + + + // Initialize hash algorithm, determine how many bytes produces per round + switch (secret->s2kHashAlgo) { + case HASH_ALGO_SHA1: + if (gcry_md_open (&md, GCRY_MD_SHA1, 0) != 0) RAISE(GCRY_ERROR); + hashLen = 20; + break; + default: + RAISE(FORMAT_UNSUPPORTED); + break; + } + + // Determine how many times we have to hash to generate a large enough key + // Ex: 3DES needs 24 bytes, SHA1 makes 20 bytes, so need to SHA1 hashes. + hashIters = (secret->keyLength/hashLen) + (secret->keyLength%hashLen>0)?1:0; + + // What hashing mode to use. + // Currently only supporting salted+iterated + switch (secret->s2kSpecifier) { + case S2K_TYPE_ITERATED: + break; + default: + RAISE(FORMAT_UNSUPPORTED); + break; + } + + // Allocate space for the key + secret->key = malloc(secret->keyLength); + if (NULL == secret->key) RAISE(OUT_OF_MEMORY); + + // Allocate a buffer to store the salt and passphrase combined + // Since this buffer is local only, no exceptions can be raised after + // this point or memory will be leaked. + bufLen = secret->s2kSaltLength + length; + hashBuf = malloc(bufLen); + if (NULL == hashBuf) RAISE(OUT_OF_MEMORY); + + // Concatenate salt and passphrase into hashBuf + memcpy(hashBuf, secret->s2kSalt, secret->s2kSaltLength); + memcpy(hashBuf + secret->s2kSaltLength, passphrase, length); + + // Magic formula from RFC 4880. This is number of bytes to hash over. + hashBytes = (16 + (secret->s2kCount & 15)) << ((secret->s2kCount >> 4) + 6); + + // Figure out how many times to iterate over hashBuf to get hashBytes, + // and how many extra bytes are needed at the end if not an even multiple. + hashCopies = hashBytes / (bufLen); + hashExtraBytes = hashBytes % (bufLen); + + keyBytesRemaining = secret->keyLength; + + // Loop until we have enough hash bytes to make the key + curHashCount = 0; + while (curHashCount <= hashIters && keyBytesRemaining) { + for (i = 0; i < curHashCount; i++) { + // pad front with 1 NUL byte per round (none on first round) + gcry_md_putc(md, '\0'); + } + // Copy the salt+passphrase combo into hash buffer as many times as fits + for (i = 0; i < hashCopies; i++) { + gcry_md_write(md, hashBuf, bufLen); + } + // Copy any leftover bytes into hash buffer to reach |hashBytes| + if (hashExtraBytes) { + gcry_md_write(md, hashBuf, hashExtraBytes); + } + // Perform the hash and append to the key + gcry_md_final(md); + hashResult = gcry_md_read(md, 0); + + if (keyBytesRemaining < hashLen) { + memcpy(secret->key+(curHashCount*hashLen), + hashResult, + keyBytesRemaining); + keyBytesRemaining = 0; + } + else { + memcpy(secret->key+(curHashCount*hashLen), + hashResult, + hashLen); + keyBytesRemaining -= hashLen; + } + // Reset hash algorithm for next round + gcry_md_reset(md); + curHashCount++; + } + + gcry_md_close(md); + free(hashBuf); + return 0; +} + +static uint8_t spgp_parse_public_key(uint8_t *msg, uint32_t *idx, uint32_t length, spgp_packet_t *pkt) { - spgp_secret_pkt_t *secret; spgp_public_pkt_t *pub; - uint32_t startIdx = *idx; - LOG_PRINT("Parsing secret key.\n"); + LOG_PRINT("Parsing public key.\n"); // Make sure we have enough bytes remaining for parsing if (length - *idx < pkt->header->contentLength) RAISE(BUFFER_OVERFLOW); - // Allocate secret key in packet - pkt->c.secret = malloc(sizeof(*(pkt->c.secret))); - if (NULL == pkt->c.secret) RAISE(OUT_OF_MEMORY); - memset(pkt->c.secret, 0, sizeof(*(pkt->c.secret))); + // Allocate public key if it doesn't already exist. It might exist if + // this packet is a secret key. + if (!(pkt->c.pub)) { + pkt->c.pub = malloc(sizeof(*(pkt->c.pub))); + if (NULL == pkt->c.pub) RAISE(OUT_OF_MEMORY); + memset(pkt->c.pub, 0, sizeof(*(pkt->c.pub))); + } - // Convenient pointers to secret key, and public portion - secret = pkt->c.secret; pub = pkt->c.pub; pub->version = msg[*idx];
@@ -533,9 +798,36 @@ static uint8_t spgp_parse_secret_key(uint8_t *msg, uint32_t *idx, // Read variable number of MPIs (depends on asymmetric algorithm), each // of which are variable size. - spgp_read_all_public_mpis(msg, idx, length, secret); + spgp_read_all_public_mpis(msg, idx, length, pkt->c.pub); LOG_PRINT("Read %u MPIs\n", pub->mpiCount); + return 0; +} + +static uint8_t spgp_parse_secret_key(uint8_t *msg, uint32_t *idx, + uint32_t length, spgp_packet_t *pkt) { + spgp_secret_pkt_t *secret; + spgp_public_pkt_t *pub; + uint32_t startIdx = *idx; + + LOG_PRINT("Parsing secret key.\n"); + + // Make sure we have enough bytes remaining for parsing + if (length - *idx < pkt->header->contentLength) RAISE(BUFFER_OVERFLOW); + + // Allocate secret key in packet + pkt->c.secret = malloc(sizeof(*(pkt->c.secret))); + if (NULL == pkt->c.secret) RAISE(OUT_OF_MEMORY); + memset(pkt->c.secret, 0, sizeof(*(pkt->c.secret))); + + secret = pkt->c.secret; + pub = pkt->c.pub; + + // Parse the public key section that starts it + spgp_parse_public_key(msg, idx, length, pkt); + // idx ends on last byte of public key. One more to start secret key. + SAFE_IDX_INCREMENT(*idx, length); + // S2K Type byte tells how to (or if to) decrypt secret exponent secret->s2kType = msg[*idx]; SAFE_IDX_INCREMENT(*idx, length);
@@ -600,24 +892,411 @@ static uint8_t spgp_parse_secret_key(uint8_t *msg, uint32_t *idx, spgp_read_iv(msg, idx, length, secret); LOG_PRINT("IV length: %u\n", secret->ivLength); + // Figure out how much is left, and make sure it's available uint32_t packetOffset = *idx - startIdx; uint32_t remaining = pkt->header->contentLength - packetOffset; if (packetOffset >= pkt->header->contentLength) RAISE(BUFFER_OVERFLOW); + + // Allocate buffer and copy data secret->encryptedData = malloc(remaining); if (NULL == secret->encryptedData) RAISE(OUT_OF_MEMORY); memcpy(secret->encryptedData, msg+*idx, remaining); + secret->encryptedDataLength = remaining; + *idx += remaining-1; LOG_PRINT("Stored %u encrypted bytes.\n", remaining); // This is the end of the data, so we do NOT do a final idx increment } // Create and store fingerprint for this packet - if (pkt->header->type == PKT_TYPE_SECRET_KEY) - spgp_generate_fingerprint(pkt); + spgp_generate_fingerprint(pkt); return 0; } +static spgp_packet_t *spgp_next_secret_key_packet(spgp_packet_t *msg) { + spgp_packet_t *cur = msg; + while (cur) { + if (cur->header->type == PKT_TYPE_SECRET_KEY || + cur->header->type == PKT_TYPE_SECRET_SUBKEY) + return cur; + cur = cur->next; + } + return NULL; +} + +static uint8_t spgp_decrypt_secret_key(spgp_packet_t *pkt, + uint8_t *passphrase, uint32_t length) { + gcry_cipher_hd_t hd; + spgp_secret_pkt_t *secret; + spgp_public_pkt_t *pub; + spgp_mpi_t *curMpi; + uint32_t idx; + uint32_t secretMpiCount; + uint8_t *secdata; + uint8_t i; + uint8_t err = 0; + + if (NULL == pkt || NULL == passphrase || length == 0) RAISE(INVALID_ARGS); + + secret = pkt->c.secret; + pub = pkt->c.pub; + + if (pkt->header->type != PKT_TYPE_SECRET_KEY && + pkt->header->type != PKT_TYPE_SECRET_SUBKEY) + RAISE(INVALID_ARGS); + + if (secret->isDecrypted) return err; // already decrypted! + + spgp_generate_cipher_key(pkt, passphrase, length); + + switch (secret->s2kEncryption) { + case SYM_ALGO_3DES: + case SYM_ALGO_CAST5: + if (gcry_cipher_open(&hd, + spgp_pgp_to_gcrypt_symmetric_algo(secret->s2kEncryption), + GCRY_CIPHER_MODE_CFB, + GCRY_CIPHER_SECURE | GCRY_CIPHER_ENABLE_SYNC) != 0) + RAISE(GCRY_ERROR); + break; + default: + RAISE(FORMAT_UNSUPPORTED); + } + + if (NULL == secret->key || NULL == secret->iv) RAISE(INCOMPLETE_PACKET); + + if (gcry_cipher_setkey(hd, secret->key, secret->keyLength) != 0) + RAISE(GCRY_ERROR); + if (gcry_cipher_setiv(hd, secret->iv, secret->ivLength) != 0) + RAISE(GCRY_ERROR); + + // Allocate secret data memory. Must free it before raising any exceptions! + secdata = malloc(secret->encryptedDataLength); + if (NULL == secdata) RAISE(OUT_OF_MEMORY); + if (gcry_cipher_decrypt(hd, + secdata, + secret->encryptedDataLength, + secret->encryptedData, + secret->encryptedDataLength) != 0) { + free(secdata); + RAISE(GCRY_ERROR); + } + + // Verify checksum + if (spgp_verify_decrypted_data(secdata, secret->encryptedDataLength) != 0) + RAISE(DECRYPT_FAILED); + + // Decode and store the secret MPIs (algo-specific): + switch(pub->asymAlgo) { + case ASYM_ALGO_DSA: + case ASYM_ALGO_ELGAMAL: + secretMpiCount = 1; + break; + default: + RAISE(FORMAT_UNSUPPORTED); + } + + // Get to the last valid MPI + if (NULL == pub->mpiHead) RAISE(INCOMPLETE_PACKET); + curMpi = pub->mpiHead; + while (curMpi->next) curMpi = curMpi->next; + + idx = 0; + for (i = 0; i < secretMpiCount; i++) { + curMpi->next = spgp_read_mpi(secdata, &idx, secret->encryptedDataLength); + if (NULL == curMpi->next) RAISE(GENERIC_ERROR); + curMpi = curMpi->next; + pub->mpiCount++; + } + secret->isDecrypted = 1; + + gcry_cipher_close(hd); + free(secdata); + + end: + return err; +} + +static uint8_t spgp_parse_encrypted_packet(uint8_t *msg, + uint32_t *idx, + uint32_t length, + spgp_packet_t *pkt) { + spgp_packet_t *session_pkt; + spgp_session_pkt_t *session; + gcry_cipher_hd_t cipher_hd; + gcry_error_t err; + int version; + unsigned long blksize; + uint32_t encbytes; + uint32_t startidx; + uint32_t i; + uint8_t headerlen; + uint8_t is_done; + uint8_t is_partial; + + if (NULL == msg || NULL == idx || length == 0 || NULL == pkt) + RAISE(INVALID_ARGS); + + version = msg[*idx]; + SAFE_IDX_INCREMENT(*idx, length); + + // As of this writing, only version 1 exists + if (version != 1) RAISE(FORMAT_UNSUPPORTED); + + session_pkt = spgp_find_session_packet(pkt); + if (NULL == session_pkt) { + LOG_PRINT("No session key found!\n"); + RAISE(DECRYPT_FAILED); + } + session = session_pkt->c.session; + + startidx = *idx; + is_done = 0; + is_partial = pkt->header->isPartial; + + // Drop 1 from contentLength to account for version + encbytes = pkt->header->contentLength - 1; + + // Since data packets can have partial length, we loop and decrypt + // here until the whole blasted thing is decrypted. + while (!is_done) { + err = gcry_cipher_open (&cipher_hd, + spgp_pgp_to_gcrypt_symmetric_algo(session->symAlgo), + GCRY_CIPHER_MODE_CFB, + (GCRY_CIPHER_SECURE | GCRY_CIPHER_ENABLE_SYNC | + GCRY_CIPHER_ENABLE_SYNC)); + + blksize = spgp_iv_length_for_symmetric_algo(session->symAlgo); + + err |= gcry_cipher_setkey(cipher_hd, session->key, session->keylen); + err |= gcry_cipher_setiv(cipher_hd, 0, blksize); + err |= gcry_cipher_decrypt(cipher_hd, + msg+*idx, + encbytes, + NULL, + 0); + if (err) RAISE(GCRY_ERROR); + + *idx += encbytes - 1; // increment to last byte of data + + // Check if we're done + if (!(is_partial)) { + is_done = 1; + continue; + } + + // We are processing a partial packet, so figure out next length + SAFE_IDX_INCREMENT(*idx, length); // inc to first byte of header + encbytes = spgp_new_header_length(msg+*idx, + &(headerlen), + &(is_partial)); + // Change the header bytes to zero so the packet parser knows to skip them + // later. + for (i = 0; i < headerlen; i++) { + msg[*idx + i] = 0x00; + } + // Move ahead to the next data byte + *idx += headerlen - 2; + SAFE_IDX_INCREMENT(*idx, length); // inc to first byte of data + } + + // Validate decryption with PGP's MDC doo-hickey. + if (memcmp(msg+startidx+blksize-2, msg+startidx+blksize, 2) != 0) { + LOG_PRINT("Decrypted data block fails validation!\n"); + RAISE(DECRYPT_FAILED); + } + + // At this point, msg has been decrypted in place and now contains + // a bunch of packets. Since it was decoded in place, and since we're + // already in the middle of a packet decode loop, we can just teleport + // idx back to the beginning of the data and exit. + // + // Packet data starts blocksize+2 bytes above decrypted data. One block + // of random data, and 2 extra bytes of verification. + // + // Subtract 1 because startidx is the first byte of the decrypted packet, + // but the packet parser loop expects us to end on the last byte of the + // previous packet. + *idx = startidx + blksize + 2 - 1; + + return 0; +} + +static spgp_packet_t *spgp_find_session_packet(spgp_packet_t *chain) { + spgp_packet_t *cur; + + if (NULL == chain) RAISE(INVALID_ARGS); + + cur = chain; + + while (cur) { + if (cur->header->type == PKT_TYPE_SESSION && + cur->c.session->key != NULL) + return cur; + cur = cur->prev; + } + + return NULL; +} + +static uint8_t spgp_parse_session_packet(uint8_t *msg, uint32_t *idx, + uint32_t length, spgp_packet_t *pkt) { + spgp_session_pkt_t *session; + spgp_packet_t *key, *chain; + gcry_sexp_t sexp_key, sexp_data, sexp_result; + gcry_mpi_t mpis[10], mpi_result; + spgp_mpi_t *cur; + uint32_t checksum, sum; + int i; + unsigned long frame_len; + uint8_t *frame; + + LOG_PRINT("Parsing session packet.\n"); + + if (NULL == msg || NULL == idx || length == 0 || NULL == pkt) + RAISE(INVALID_ARGS); + + // Make sure we have enough bytes remaining for parsing + if (length - *idx < pkt->header->contentLength) RAISE(BUFFER_OVERFLOW); + + // Allocate a session packet + pkt->c.session = malloc(sizeof(*(pkt->c.session))); + if (NULL == pkt->c.session) RAISE(OUT_OF_MEMORY); + memset(pkt->c.session, 0, sizeof(*(pkt->c.session))); + + session = pkt->c.session; + + session->version = msg[*idx]; + SAFE_IDX_INCREMENT(*idx, length); + LOG_PRINT("Version: %u\n", session->version); + + memcpy(session->keyid, msg+*idx, 8); + *idx += 7; + SAFE_IDX_INCREMENT(*idx, length); + LOG_PRINT("Session for key ID: "); + for (i = 0; i < 8; i++) printf("%.2X",session->keyid[i]); + printf("\n"); + + session->algo = msg[*idx]; + SAFE_IDX_INCREMENT(*idx, length); + + // Read first MPI. RSA only has one + session->mpi1 = spgp_read_mpi(msg, idx, length); + // Elgamal has a second MPI + if (session->algo == ASYM_ALGO_ELGAMAL) { + SAFE_IDX_INCREMENT(*idx, length); + session->mpi2 = spgp_read_mpi(msg, idx, length); + } + + // DONE READING FROM STREAM AT THIS POINT + // BELOW HERE -- DECRYPT SESSION KEY + + if (!spgp_keychain_is_valid()) RAISE(KEYCHAIN_ERROR); + spgp_keychain_iter_start(); + while ((chain = spgp_keychain_iter_next()) != NULL) { + if ((key = spgp_secret_key_matching_id(chain, session->keyid)) != NULL) { + LOG_PRINT("Found a matching key in keychain.\n"); + break; + } + } + spgp_keychain_iter_end(); + + if (!key) return -1; + + + for (cur=key->c.pub->mpiHead,i = 0; cur != NULL; cur = cur->next,i++) { + gcry_mpi_scan (&(mpis[i]), GCRYMPI_FMT_PGP, cur->data, cur->count+2, NULL); + } + gcry_mpi_scan (&(mpis[i++]), GCRYMPI_FMT_PGP, + session->mpi1->data, session->mpi1->count+2, NULL); + if (session->mpi2) { + gcry_mpi_scan (&(mpis[i++]), GCRYMPI_FMT_PGP, + session->mpi2->data, session->mpi2->count+2, NULL); + } + + + switch (session->algo) { + case ASYM_ALGO_ELGAMAL: + gcry_sexp_build(&sexp_key, NULL, + "(private-key(elg(p%m)(g%m)(y%m)(x%m)))", + mpis[0], mpis[1], mpis[2], mpis[3]); + gcry_sexp_build (&sexp_data, NULL, + "(enc-val(elg(a%m)(b%m)))", mpis[4], mpis[5]); + gcry_pk_decrypt (&sexp_result, sexp_data, sexp_key); + mpi_result = gcry_sexp_nth_mpi (sexp_result, 0, GCRYMPI_FMT_STD); + break; + default: + RAISE(FORMAT_UNSUPPORTED); + } + + gcry_mpi_print(GCRYMPI_FMT_PGP, NULL, 0, &frame_len, mpi_result); + frame = malloc(frame_len); + if (NULL == frame) RAISE(OUT_OF_MEMORY); + gcry_mpi_print(GCRYMPI_FMT_PGP, frame, frame_len, NULL, mpi_result); + + i = 2; // skip first two bytes, they're the length of the mpi + if (frame[i++] != 2) RAISE(DECRYPT_FAILED); + + while (frame[i++] != 0 && i < frame_len) ; // Find the next 0 in frame + + // Algorithm is first byte after the 0 + session->symAlgo = frame[i]; + + // Key length is determined from current index. Drop 3 bytes: 1 for + // algorithm, and 2 for the checksum at the end. + session->keylen = frame_len - i - 3; + i++; + + // Actual session key is the remaining bytes, except for the last two + session->key = malloc(session->keylen); + if (NULL == session->key) RAISE(OUT_OF_MEMORY); + if (i+session->keylen >= frame_len) RAISE(DECRYPT_FAILED); + memcpy(session->key, frame+i, session->keylen); + + // Checksum is last two bytes in buffer + checksum = frame[frame_len-2]<<8 | frame[frame_len-1]; + + // Verify checksum + sum = 0; + for (i = 0; i < session->keylen; i++) { + sum = sum + (session->key[i] & 0xFF); + } + if (sum % 65536 != checksum) { + LOG_PRINT("Session key checksum failed!\n"); + RAISE(DECRYPT_FAILED); + } + LOG_PRINT("Decrypted session key.\n"); + return 0; +} + +/** + * Find a specific secret key in a chain of packets. + * + * Finds a secret key in the given chain of packets, |chain|, with a key ID + * matching |keyid|. KeyID is the last 8 octets of the 64-octet key + * fingerprint. + * + * @param chain Chain of packets containing at least one secret key + * @param keyid 8-octet key ID + * @return Packet containing matching secret key, or NULL if not found + * + */ +static spgp_packet_t *spgp_secret_key_matching_id(spgp_packet_t *chain, + uint8_t *keyid) { + spgp_packet_t *cur = NULL; + + if (NULL == chain || NULL == keyid) RAISE(INVALID_ARGS); + + cur = chain; + while ((cur = spgp_next_secret_key_packet(cur)) != NULL) { + if (memcmp((void*)((cur->c.pub->fingerprint)+12),keyid,8) == 0) + return cur; + cur = cur->next; + } + + return NULL; +} + static uint8_t spgp_read_salt(uint8_t *msg, uint32_t *idx, uint32_t length,
@@ -668,10 +1347,28 @@ static uint8_t spgp_read_iv(uint8_t *msg, return 0; } +static uint8_t spgp_pgp_to_gcrypt_symmetric_algo(uint8_t pgpalgo) { + switch (pgpalgo) { + case 1: return GCRY_CIPHER_IDEA; + case 2: return GCRY_CIPHER_3DES; + case 3: return GCRY_CIPHER_CAST5; + case 4: return GCRY_CIPHER_BLOWFISH; + case 7: return GCRY_CIPHER_AES128; + case 8: return GCRY_CIPHER_AES192; + case 9: return GCRY_CIPHER_AES256; + case 10:return GCRY_CIPHER_TWOFISH; + default: return 0xFF; + } +} + static uint8_t spgp_iv_length_for_symmetric_algo(uint8_t algo) { - if (algo == SYM_ALGO_3DES) return 8; - else RAISE(FORMAT_UNSUPPORTED); // not implemented - return 0; + size_t ivlen = 0; + if (gcry_cipher_algo_info(spgp_pgp_to_gcrypt_symmetric_algo(algo), + GCRYCTL_GET_BLKLEN, + NULL, + &ivlen) != 0) + RAISE(FORMAT_UNSUPPORTED); + return ivlen; } static uint8_t spgp_salt_length_for_hash_algo(uint8_t algo) {
@@ -683,47 +1380,36 @@ static uint8_t spgp_salt_length_for_hash_algo(uint8_t algo) { static uint8_t spgp_read_all_public_mpis(uint8_t *msg, uint32_t *idx, uint32_t length, - spgp_secret_pkt_t *secret) { + spgp_public_pkt_t *pub) { spgp_mpi_t *curMpi, *newMpi; - spgp_public_pkt_t *pub = (spgp_public_pkt_t*)secret; uint32_t i; + uint8_t mpiCount; - if (NULL == msg || NULL == idx || 0 == length || NULL == secret) + if (NULL == msg || NULL == idx || 0 == length || NULL == pub) RAISE(INVALID_ARGS); + switch (pub->asymAlgo) { + case ASYM_ALGO_DSA: mpiCount = 4; break; + case ASYM_ALGO_ELGAMAL: mpiCount = 3; break; + default: RAISE(FORMAT_UNSUPPORTED); + } + // Read all the MPIs - if (pub->asymAlgo == ASYM_ALGO_DSA) { - // DSA public MPIs: prime p, order q, generator g, value y - for (i = 0; i < 4; i++) { - newMpi = spgp_read_mpi(msg, idx, length); - if (i == 0) { - pub->mpiHead = newMpi; - curMpi = pub->mpiHead; - } - else { - curMpi->next = newMpi; - curMpi = curMpi->next; - } + for (i = 0; i < mpiCount; i++) { + // spgp_read_mpi() doesn't increment past the end of the MPI, so if this + // isn't the first pass we need to increment once more + if (i) SAFE_IDX_INCREMENT(*idx, length); + newMpi = spgp_read_mpi(msg, idx, length); + if (i == 0) { + pub->mpiHead = newMpi; + curMpi = pub->mpiHead; } - pub->mpiCount = 4; - } - else if (pub->asymAlgo == ASYM_ALGO_ELGAMAL) { - for (i = 0; i < 3; i++) { - newMpi = spgp_read_mpi(msg, idx, length); - if (i == 0) { - pub->mpiHead = newMpi; - curMpi = pub->mpiHead; - } - else { - curMpi->next = newMpi; - curMpi = curMpi->next; - } + else { + curMpi->next = newMpi; + curMpi = curMpi->next; } - pub->mpiCount = 3; - } - else { - RAISE(FORMAT_UNSUPPORTED); } + pub->mpiCount = mpiCount; return pub->mpiCount; }
@@ -747,8 +1433,6 @@ static uint8_t spgp_read_all_secret_mpis(uint8_t *msg, // DSA secte MPIs: exponent x curMpi->next = spgp_read_mpi(msg, idx, length); pub->mpiCount++; - *idx += length - 1; - // This is the end of the data, so we do NOT do a final increment. } else { RAISE(FORMAT_UNSUPPORTED);
@@ -788,7 +1472,6 @@ static spgp_mpi_t *spgp_read_mpi(uint8_t *msg, uint32_t *idx, // Copy data from input buffer to mpi buffer memcpy(mpi->data, msg+*idx, mpi->count + 2); *idx += mpi->count + 1; - SAFE_IDX_INCREMENT(*idx, length); return mpi; }
diff --git a/src/packet.h b/src/packet.h line changes: +44/-13 index cb10355..5734781 --- a/src/packet.h +++ b/src/packet.h
@@ -9,34 +9,45 @@ #ifndef _PACKET_H +#include <stdio.h> #include <stdint.h> #include "gcrypt.h" +#define LOG_PRINT(fmt, ...) do {\ + if (debug_log_enabled) {\ + fprintf(stderr, "SPGP [%s():%d]: " fmt, \ + __FUNCTION__, __LINE__, ## __VA_ARGS__);\ + } } while(0) +extern uint8_t debug_log_enabled; typedef struct spgp_packet_header_struct spgp_pkt_header_t; typedef struct spgp_packet_struct spgp_packet_t; typedef struct spgp_mpi_struct spgp_mpi_t; -typedef struct spgp_public_packet_struct spgp_public_pkt_t; -typedef struct spgp_secret_packet_struct spgp_secret_pkt_t; -typedef struct spgp_userid_packet_struct spgp_userid_pkt_t; +typedef struct spgp_public_packet_struct spgp_public_pkt_t; +typedef struct spgp_secret_packet_struct spgp_secret_pkt_t; +typedef struct spgp_userid_packet_struct spgp_userid_pkt_t; +typedef struct spgp_session_packet_struct spgp_session_pkt_t; struct spgp_packet_header_struct { spgp_packet_t *parent; + uint32_t contentLength; uint8_t rawTagByte; uint8_t isNewFormat; uint8_t type; uint8_t headerLength; - uint32_t contentLength; + uint8_t isPartial; }; struct spgp_packet_struct { spgp_pkt_header_t *header; union { - spgp_public_pkt_t *pub; - spgp_secret_pkt_t *secret; - spgp_userid_pkt_t *userid; + spgp_public_pkt_t *pub; + spgp_secret_pkt_t *secret; + spgp_userid_pkt_t *userid; + spgp_session_pkt_t *session; } c; - spgp_packet_t *next; + spgp_packet_t *next; + spgp_packet_t *prev; }; struct spgp_mpi_struct {
@@ -44,12 +55,23 @@ struct spgp_mpi_struct { uint32_t bits; uint32_t count; spgp_mpi_t *next; -}; +}; struct spgp_userid_packet_struct { uint8_t *data; }; +struct spgp_session_packet_struct { + uint8_t keyid[8]; + uint8_t version; + uint8_t algo; + uint8_t symAlgo; + uint32_t keylen; + char *key; + spgp_mpi_t *mpi1; + spgp_mpi_t *mpi2; +}; + struct spgp_public_packet_struct { // This is public key stuff uint8_t version;
@@ -73,11 +95,12 @@ struct spgp_secret_packet_struct { uint8_t s2kSaltLength; uint8_t s2kCount; uint8_t *encryptedData; + uint32_t encryptedDataLength; uint8_t *key; uint32_t keyLength; uint8_t *iv; uint8_t ivLength; -}; +} __attribute__((packed)); typedef enum { GENERIC_ERROR = 0x100,
@@ -86,16 +109,23 @@ typedef enum { FORMAT_UNSUPPORTED, INVALID_ARGS, BUFFER_OVERFLOW, + INCOMPLETE_PACKET, + DECRYPT_FAILED, GCRY_ERROR, + KEYCHAIN_ERROR, } spgp_error_t; typedef enum { + PKT_TYPE_SESSION = 1, PKT_TYPE_SIGNATURE = 2, PKT_TYPE_SECRET_KEY = 5, PKT_TYPE_PUBLIC_KEY = 6, PKT_TYPE_SECRET_SUBKEY = 7, + PKT_TYPE_COMPRESSED_DATA = 8, + PKT_TYPE_LITERAL_DATA = 11, PKT_TYPE_USER_ID = 13, PKT_TYPE_PUBLIC_SUBKEY = 14, + PKT_TYPE_SYM_ENC_INT_DATA = 18, } spgp_pkt_type_t; typedef enum {
@@ -129,20 +159,21 @@ typedef enum { } spgp_hash_algo_t; typedef enum { - S2K_TYPE_SIMPLE = 1, + S2K_TYPE_SIMPLE = 0, S2K_TYPE_SALTED, S2K_TYPE_RESERVED, S2K_TYPE_ITERATED, } spgp_s2k_type_t; spgp_packet_t *spgp_decode_message(uint8_t *message, uint32_t length); +uint8_t spgp_load_keychain_with_keys(spgp_packet_t *msg); +uint8_t spgp_decrypt_all_secret_keys(spgp_packet_t *msg, + uint8_t *passphrase, uint32_t length); void spgp_free_packet(spgp_packet_t **pkt); uint32_t spgp_err(void); const char *spgp_err_str(uint32_t err); -void tsb_test(void); - uint8_t spgp_debug_log_enabled(void); void spgp_debug_log_set(uint8_t enable);