ERPM?AppleApple_partition_map?PM@°disk imageApple_HFS°@3goonPMðApple_FreeH+10.0½ÏÞh½Ð@ê½Ð@Ø v1•†Î‡ç»j²€€€€ ÿÿÀÿÿÿÿÿü €€øøx€Ïðøøxÿ Project Data»¹5½Ð@â½Ð@êõõíTEXTR*chyFx Resources¼_-p½Ð@â½Ð@êõõírsrcRSED‡ z  XSync Floater»Áä…½Ð@â½Ð@êõõíFLFMNTP1T|k{XSync.øÿ»¹,ͽÐ@â½Ð@êõõíPRJTNTP1~À“Ù’0HFS+ Private Data½Ð@ؽÐ@ؽÐ@ؽÐ@Ø@PW¼W¼HFS+ Private Data.Trashes 501½Ð@Ú½Ð@Ú½Ð@Ú½Ð@ÚõõAÀ@501Inet Constants Inet ErrorsNIE Public API nSync.pkg Project Data Resources XSync FloaterXSync.øÿ Desktop DB Desktop DF<¶~ ú à Ä ®’€T.輘nJôÆ®H&ê`R8&ÿ ,newtClient0.3.3-src ½Ð@ؽÐ@â½Ð@âõõAÀnewtClient0.3.3-src.Trashes½Ð@Ú½Ð@Ú½Ð@Ú½Ð@ÚõõBÛ@ Desktop DB½Ð@â½Ð@ê½Ð@ê½Ð@âõõ¤BTFLDMGR@• Desktop DF½Ð@â½Ð@è½Ð@è½Ð@âõõ¤DTFLDMGR@”"Inet Constants®Ñ`”®Ñ`”½Ð@â½Ð@êõõíTEXTNTP1@weFd Inet Errors®ÒiÓ®ÒiÓ½Ð@â½Ð@êõõíTEXTNTP1YwhFg"NIE Public API°Dº°Dº½Ð@â½Ð@êõõíTEXTNTP1QÚ,jJi nSync.pkg½Ð@â½Ð@êõõípkg pkgX5-®` m lÞIJ–€dP<Ì”,newtClient0.3.3-src Project Datad@¯¯‘Newton ToolkitxtAHHð@ÿÜÿîôR(ü9Yu•ž*Really Old ComputerMac HD 2¢ÊM £¯¯‘SORTâ€nPJST"PRNT.SLCT:STR F'X`ÿÿX`'£XÜ¿ôÿÿX¤Window SettingsSelection SettingsDefConst( 'kTCPConnectOptions, func(remoteAddr, remotePort) begin [ { label: "itrs", // set the TCP remote socket type: 'option, opCode: opSetRequired, result: nil, form: 'template, data: { arglist: [ remoteAddr, remotePort, ], // remote port number typelist: [ 'struct, ['array, 'byte, 4], 'short, ], }, }, ] end); µµ‘o -60058 by -1 do print (InetGetInet ConstantsITEXTNTP1TEXTNTP1®Ð®ŠwFarray to a "w.x.y.z" string begin if IsArray(address) and Length(address) = 4 then NumberStr(address[0]) & "."Newton Toolkit 1.6.3xHHØ(ÿáÿâùFG(üHHØ(d'h,³8µµ‘_GØKHnSTR "PRNT.PJST:SLCTF¿ôÿÿ_;ÿÿ_:ü'•_6¨'©_7`Window SettingsSelection Settings// Copyright (c) 1994-1996 Apple Computer, Inc. All rights reserved. // Transport service type constants constant kTCP := 1; constant kUDP := 2; // Utility functions for Internet applications DefConst( 'kNumToHostAddr, func(address) // Convert a 4 byte array to a "w.x.y.z" string begin if IsArray(address) and Length(address) = 4 then NumberStr(address[0]) & "." & NumberStr(address[1]) & "." & NumberStr(address[2]) & "." & NumberStr(address[3]) else ""; end ); DefConst( 'kHostAddrToNum, func(addressStr) // Convert a "w.x.y.z" string to a 4 byte address array begin local result := [0, 0, 0, 0]; if IsString(addressStr) then begin local token, closure := StrTokenize(TrimString(Clone(addressStr)), $.); for i:=0 to 3 do if token := call closure with () then if token := StringToNumber(token) then result[i] := Min(Max(RintToL(NearbyInt(token)), 0), 255); end; result; end ); DefConst( 'kIsIPAddr, func(addressStr) // Return True if addressStr is an IP address string of the form "w.x.y.z" (as opposed to a domain name string) begin IsString(addressStr) and // return True if addressStr is a string StrLen(StringFilter(addressStr, "0123456789.", 'rejectAll)) = 0 // and contains only chars 0-9 and period and StrReplace(Clone(addressStr), ".", ".", nil) = 3 // and contains three periods and StrExactCompare( addressStr, // and converting it to and from array format gives the same address string call kNumToHostAddr with (call kHostAddrToNum with (addressStr))) = 0; end ); DefConst( 'kGetEndpointConfigOptions, func(linkID, protocol) // protocol: 1 = TCP, 2 = UDP begin [ { label: "inet", type: 'service, opCode: opSetRequired, result: nil, }, { label: "ilid", // set the link id type: 'option, opCode: opSetRequired, result: nil, form: 'template, data: { arglist: [ linkID, ], typelist: [ 'struct, 'ulong, ], }, }, { label: "itsv", // set the transport protocol (TCP or UDP) type: 'option, opCode: opSetRequired, result: nil, form: 'template, data: { arglist: [ protocol, ], typelist: [ 'struct, 'ulong, ], }, }, ]; end ); DefConst( 'kUDPReceiveOptions, [ { label: "iuds", // get the UDP destination socket type: 'option, opCode: opGetCurrent, result: nil, form: 'template, data: { arglist: [ [0, 0, 0, 0], // IP address 0, ], // destination port number typelist: [ 'struct, ['array, 'byte, 4], 'short, ], }, }, { label: "iuss", // get the UDP source socket type: 'option, opCode: opGetCurrent, result: nil, form: 'template, data: { arglist: [ [0, 0, 0, 0], // IP address 0, ], // destination port number typelist: [ 'struct, ['array, 'byte, 4], 'short, ], }, }, ] ); DefConst( 'kINetBindOptions, func(localPort, useDefaultPort) [ { label: "ilpt", // set the local port type: 'option, opCode: opSetRequired, result: nil, form: 'template, data: { arglist: [ localPort, // local port number useDefaultPort, ], // use default port typelist: [ 'struct, 'short, 'boolean, ], }, }, ] ); DefConst( 'kTCPConnectOptions, func(remoteAddr, remotePort) begin [ { label: "itrs", // set the TCP remote socket type: 'option, opCode: opSetRequired, result: nil, form: 'template, data: { arglist: [ remoteAddr, remotePort, ], // remote port number typelist: [ 'struct, ['array, 'byte, 4], 'short, ], }, }, ] ); DefConst( 'kTCPListenOptions, [ { label: "itrs", // get the TCP remote socket type: 'option, opCode: opGetCurrent, result: nil, form: 'template, data: { arglist: [ [0, 0, 0, 0], // IP address 0, ], // destination port number typelist: [ 'struct, ['array, 'byte, 4], 'short, ], }, }, ] ); DefConst( 'kGetIPAddressesOptions, [ { label: "iprf", type: 'option, opCode: opGetCurrent, result: nil, form: 'template, data: { arglist: [ [0, 0, 0, 0], [0, 0, 0, 0], ], typelist: [ 'struct, ['array, 'byte, 4], ['array, 'byte, 4], ], }, } ] ); DefConst( 'kUDPPutBytesOptions, func(addr, port) [ { label: "iuds", // set the UDP destination socket type: 'option, opCode: opSetRequired, result: nil, form: 'template, data: { arglist: [ addr, port, ], // remote port number typelist: [ 'struct, ['array, 'byte, 4], 'short, ], }, } ] ); µµ‘\€Cê,?å20•¶°®ÍÞۮ̘Ӭ Inet ErrorsTEXTNTP1TEXTNTP1®Ð¢ÀwF•·…¡Ð\€•¶°£°ŒAp0@£ŽPNewton Toolkit 1.6.3xHHØ(ÿáÿâùFG(üHHØ(d'h,ãÞwµµ‘ì.(3ÈnSTR "PRNT.PJST:SLCTF¿ôÿÿì'¤ÿÿì'¨'•ì'È'©ì' Window SettingsSelection Settings// Copyright (c) 1994-1996 Apple Computer, Inc. All rights reserved. DefConst( 'kGetInetErrorStr, func(error) // Returns a string for a given error begin // This routine is NIE 1.0 compatable, though NIE 1.1 English error strings are now used local errStr; // NIE 1.1 and later if GetGlobalFn('InetGetErrorString) then errStr := InetGetErrorString(error); // NIE 1.0 compatibility else if not errStr := TableLookup( '[ -60501, "No link setup is defined", -60504, "Internet Link disconnected", -60505, "Internet connection failed", -60057, "Connection failure. The connection to the network may have dropped. Try reconnecting to the network.", -60015, "Problem connecting. Can't establish a link. PPP Negotiation failed.", -60797, "The host name you requested wasn't located -- it could be invalid or may not exist. Check/adjust the host name and try again.", -60814, "No response from your current DNS server. The server could be broken. Check your connection and DNS server settings.", 0, nil, // 0-nil pair signals the end of the lookup table ], error) then if not errStr := TableLookup(ROM_ErrorTable, error) then errStr := "Internet Error " & NumberStr(error); errStr; end ); DefConst( 'kGetExceptionError, func(exception) // Return the error number extracted from an exception frame begin // NIE 1.1 and later if GetGlobalFn('InetGetExceptionError) then InetGetExceptionError(exception) // NIE 1.0 compatibility else if IsNumber(exception) then exception else if IsFrame(exception) then if HasSlot(exception, 'error) then exception.error else if IsNumber(exception.data) then exception.data else if IsFrame(exception.data) and HasSlot(exception.data, 'errorCode) then exception.data.errorCode else -1 // unknown exception else -1; // invalid exception parameter data type end ); ¹¹‘0.ÿòR@?0.ÿôU@?¨“0.ÿòR@?0.ÿðR@NIE Public APIiTEXTNTP1TEXTNTP1°4Šƒ,J0.ÿôU@?¨‘p?r?¨›0.ÿöW@?0.ÿðT@?¨‘¨žOï Gm,J++g&Hnÿð0*T@?0T@?0*W@?0*U@?¨§`$Hnÿð0*R@?0R@?0*S@?0*S@?¨§Newton Toolkit 1.6.4b2c2xHHØ(ÿáÿâùFG(üHHØ(d'h,\v¹¹‘hç”ORnSTR "PRNT.PJST:SLCTF¿ôÿÿhçÈÿÿhè('™hçà'­hæÜWindow SettingsSelection Settings// NIE 2.0 public platform file API definitions // Copyright 1997 Apple Computer, Inc. // All rights reserved. // by Jim Schram if not knownGlobalFunctions.InetGrabLinkVerbose or not globalFnHelpStrings.InetGrabLinkVerbose then begin knownGlobalFunctions.DNSCancelRequests := 2; knownGlobalFunctions.DNSGetAddressFromName := 3; knownGlobalFunctions.DNSGetMailAddressFromName := 3; knownGlobalFunctions.DNSGetMailServerNameFromDomainName := 3; knownGlobalFunctions.DNSGetNameFromAddress := 3; knownGlobalFunctions.InetAddNewLinkEntry := 1; knownGlobalFunctions.InetAddNewLinkEntryInternal := 1; knownGlobalFunctions.InetCancelCurrentRequest := 1; knownGlobalFunctions.InetCancelLink := 3; knownGlobalFunctions.InetDisconnectLink := 3; knownGlobalFunctions.InetDisplayStatus := 3; knownGlobalFunctions.InetGetAllLinksStatus := 0; knownGlobalFunctions.InetGetDefaultLinkID := 0; knownGlobalFunctions.InetGetLinkEntry := 1; knownGlobalFunctions.InetGetLinkStatus := 1; knownGlobalFunctions.InetGrabLink := 3; knownGlobalFunctions.InetOpenConnectionSlip := 3; knownGlobalFunctions.InetReleaseLink := 3; knownGlobalFunctions.InetSetDefaultLinkID := 1; knownGlobalFunctions.InetGetExceptionError := 1; knownGlobalFunctions.InetGetErrorString := 1; knownGlobalFunctions.InetBuildStatusFrame := 6; knownGlobalFunctions.InetObjectToString := 1; knownGlobalFunctions.RegInetLinkStatusChange := 3; knownGlobalFunctions.UnRegInetLinkStatusChange := 1; knownGlobalFunctions.InetIPAddressToString := 1; knownGlobalFunctions.InetIPStringToAddress := 1; knownGlobalFunctions.InetIsSameIPAddress := 2; knownGlobalFunctions.InetIsSameIPAddressStr := 2; knownGlobalFunctions.InetIsValidIPAddress := 1; knownGlobalFunctions.InetIsValidIPAddressStr := 1; knownGlobalFunctions.InetIsZeroIPAddress := 1; knownGlobalFunctions.InetGetIPAddress := 1; knownGlobalFunctions.InetGrabLinkVerbose := 3; knownGlobalFunctions.InetReleaseLinkVerbose := 3; globalFnHelpStrings.DNSCancelRequests := ['globalFn, "(clientFrame, clientSymbol)", 'Run]; globalFnHelpStrings.DNSGetAddressFromName := ['globalFn, "(name, clientFrame, clientSymbol)", 'Run]; globalFnHelpStrings.DNSGetMailAddressFromName := ['globalFn, "(name, clientFrame, clientSymbol)", 'Run]; globalFnHelpStrings.DNSGetMailServerNameFromDomainName := ['globalFn, "(name, clientFrame, clientSymbol)", 'Run]; globalFnHelpStrings.DNSGetNameFromAddress := ['globalFn, "(address, clientFrame, clientSymbol)", 'Run]; globalFnHelpStrings.InetAddNewLinkEntry := ['globalFn, "(newLinkInfo) linkID or nil", 'Run]; globalFnHelpStrings.InetAddNewLinkEntryInternal := ['globalFn, "(newLinkInfo) linkID or nil", 'Run]; globalFnHelpStrings.InetCancelCurrentRequest := ['globalFn, "(linkID)", 'Run]; globalFnHelpStrings.InetCancelLink := ['globalFn, "(linkID, clientFrame, clientSymbol)", 'Run]; globalFnHelpStrings.InetDisconnectLink := ['globalFn, "(linkID, clientFrame, clientSymbol)", 'Run]; globalFnHelpStrings.InetDisplayStatus := ['globalFn, "(linkID, statusView, statusFrame) statusView", 'Run]; globalFnHelpStrings.InetGetAllLinksStatus := ['globalFn, "() linksStatusFrame", 'Run]; globalFnHelpStrings.InetGetDefaultLinkID := ['globalFn, "() linkID", 'Run]; globalFnHelpStrings.InetGetLinkEntry := ['globalFn, "(linkID) linkEntry", 'Run]; globalFnHelpStrings.InetGetLinkStatus := ['globalFn, "(linkID) statusSymbol", 'Run]; globalFnHelpStrings.InetGrabLink := ['globalFn, "(linkID, clientFrame, clientSymbol)", 'Run]; globalFnHelpStrings.InetOpenConnectionSlip := ['globalFn, "(linkID, clientFrame, clientSymbol) view or nil", 'Run]; globalFnHelpStrings.InetReleaseLink := ['globalFn, "(linkID, clientFrame, clientSymbol)", 'Run]; globalFnHelpStrings.InetSetDefaultLinkID := ['globalFn, "(linkID) linkID or nil", 'Run]; globalFnHelpStrings.InetGetExceptionError := ['globalFn, "(exception) number", 'Run]; globalFnHelpStrings.InetGetErrorString := ['globalFn, "(error) string", 'Run]; globalFnHelpStrings.InetBuildStatusFrame := ['globalFn, "(linkID, infoStatus, infoError, infoText1, infoText2, infoText3) statusFrame", 'Run]; globalFnHelpStrings.InetObjectToString := ['globalFn, "(obj) string", 'Run]; globalFnHelpStrings.RegInetLinkStatusChange := ['globalFn, "(uniqueSymbol, clientFrame, clientSymbol) uniqueSymbol", 'Run]; globalFnHelpStrings.UnRegInetLinkStatusChange := ['globalFn, "(uniqueSymbol)", 'Run]; globalFnHelpStrings.InetIPAddressToString := ['globalFn, "(address) string", 'Run]; globalFnHelpStrings.InetIPStringToAddress := ['globalFn, "(addressStr) address", 'Run]; globalFnHelpStrings.InetIsSameIPAddress := ['globalFn, "(address1, address2) true or nil", 'Run]; globalFnHelpStrings.InetIsSameIPAddressStr := ['globalFn, "(addressStr1, addressStr2) true or nil", 'Run]; globalFnHelpStrings.InetIsValidIPAddress := ['globalFn, "(address) true or nil", 'Run]; globalFnHelpStrings.InetIsValidIPAddressStr := ['globalFn, "(addressStr) true or nil", 'Run]; globalFnHelpStrings.InetIsZeroIPAddress := ['globalFn, "(address) true or nil", 'Run]; globalFnHelpStrings.InetGetIPAddress := ['globalFn, "(whichAddress) address", 'Run]; globalFnHelpStrings.InetGrabLinkVerbose := ['globalFn, "(linkID, clientFrame, clientSymbol)", 'Run]; globalFnHelpStrings.InetReleaseLinkVerbose := ['globalFn, "(linkID, clientFrame, clientSymbol)", 'Run]; end; get the list of soup names begin endpoint:SendSoupNames(); endpoint:MOutput(unicodeEOT); ÿÿpackage1xxxxTT,®`cp6,­4­4form€©2002 everchanging. All rights reserved.NewtSync:everchangingA Newton Toolkit applicationNewtonª ToolKit Package © 1992-1995, Apple Computer, Inc.ÿÿA=$Ca%AyÅ«y­ñ(A‰µÍå@URÁû™app@URÜm‡Ýtext¿¿¿@URŽ\7¡icon¿¿¿@URi€n-theForm@UR‘aŒinstallScript¿¿@URc¿«ËremoveScript¿¿¿@URWRÔNewtSyncSym@aNewtSync¿¿@URó_string¿C‘õ‘-A­ÅÝ@URi¤Ìmask¿¿¿@URO"bits¿¿¿@UR­w>³bounds¿œ@­ ` @’@€Ô@^2 ð 0à—(B$1x€ 2@Bq0 dð¤rÀÎz€p„¥ ¥Íª±«Y|A¹Ñí-Mm‰©Éí !Me½áý=Yy•­Í@UR ÌÁ'result¿@URP0ýnewNoteText$@UR€;ÏviewSetupDoneScript@URe >MergeFrames@UR)ãZûviewQuitScript¿@UR0!æ¾startNewNote¿¿¿@URC[ShviewFlags¿¿ @URFk¿kaddFeedToRaissa @URIÉéýmeetingTemplate!@URSäi³ReorientToScreen¿¿¿@UR[ºVviewBounds¿@URf"C›_proto¿*@URls&sappendStringToCurrentNote¿¿@URv{OipAddr¿@URˆ›u?appSymbol¿¿@UR‹.áviewJustify@UR‘åpowerOffScript¿$@UR­YŠöstepAllocateContext@UR¸‡ÊdeclareSelf@URļª"connectionType¿@URÌD‡6ConnectButton¿¿@URÑ9Á¨viewEffect¿@URÙ?hstepChildren¿¿¿@URé˜s–SyncMeeting@URë/ƒvversion @URë_ŽHsaveCurrentNote$@URñP[|ReleaseLinkCallback@aText¿¿ C )2 Õ a$A M e … ¡ ½@UR% ÔFclass¿¿@URƒ¦:Íinstructions¿¿¿@URÃÁ`literals¿¿¿@URç@ÝargFrame¿¿¿@UR[<;õnumArgsŠ@ e)q+'S( Â9¯w    „ *¯w8¯wofw‘w‘+w‘w‘+_}‚¯ww9¿¿tA … Õ• ù  - I a y ‘ ¥ Õ I Õ í  ý 5 QM m … ¡ ± É#@UR!õ÷AddPowerOffHandler¿@a0.3.3@URS´^áSetValue¿¿¿@UR޼ÀGetStores¿¿@UR‰fý/GetSoup@URltSoup¿¿@URazǸindex¿¿@UR÷¬šütag0@aNewtSync Settings C )2 õ @ e{"Æo{‘*_"¿¿¿A … ¥ ‘ -@UREp,©StrEqual¿¿¿ A i ¹@URDztype¿¿¿@URh´æ=IndexPath¿¿@URú½ÿstartKey¿¿¿@UR5!0validTest¿¿@URëû fQuery¿¿@URUÉ8"tcursor@URs$‚entry¿¿@UR=j†4tPrefs¿@URcAâjentryline¿¿@UR§8²ðconnType¿¿¿@UR4™WÏconnIP¿@aSerial¿¿@a¿¿A Q m@UR9Ž’AAdd C )2 ý9 :@ e|"ǧ_!$¦ Â¥{}~+o ""§¿¿A …I@URBñ"SetVariable C )2…‘@ e)q8'S( Â9­u  „ *¯ w  8¯wo_ww‘˜ww‘˜w)_€w‘w‘ƒ¯wu9P¿¿¿|A …•½ - I a y ‘ ¥Õ I Õ í   mM Qý=Q ¥m• É-&@URp”RemovePowerOffHandler¿¿@UR`¯?ÈCleanup C )2 õõA … ¥ ‘ -A! 5@UR.ZÌ pathExpr¿¿¿A! 5@URBËxEntryChangeA! 5A! 5A ‘ m Q C )2Ñá@ e©qA … ¡Ñ C )21@ e)ª|{‚"r:­u¿$A …Uyµù!$@aRaissa:40Hz#@URÏTó9GetUnionSoupAlways¿@UR°ÕiEmySoup¿AÍå@UR¥ˆòtitle¿¿@UR.¨Š›URL&@URÚ¸Ä@AddToDefaultStoreXmit¿¿@UR xmyEntry0CiII4A Mí¹Ùõ•-@UR,EòËNotesData¿¿@URt–€¥viewStationery¿@URy‹»mtgInvitees@URÒƒùmtgLocation@URòi¡ûmtgIconType@UR÷^ÜmmtgAlarm¿¿¿@URþæ¹meeting C )2‘@ e8A …¡@UR˜ô€¸SyncView¿¿¿CIÀ@Ð C )2ù@ ep{ŠÇ¨p¿¿A …Ñ%@UR´ÿÇArray¿¿ C )2]@ e"¿4A%ý¡¹¹£áM¤9•¤½ CÁ)u‘ûý$Aåí @UR¨ÿÍ¢labelCommands¿¿$@UR+ªu­preAllocatedContextA% …AY@aIrDA¿¿@aTCP/IP¿¿CI,„¼&@aConnect Via:¿¿ôC­]i…Í!!#e&5¥7m7‰<Å‹=É?mDeD±ˆ¡Œ±ŒÑŒåŽiŽùÙY‘}’1’©“¹•™q™½›1›E%1žUž¥¡}¡É#I¢u£-øA¥Åñ%Ea…¥Áå)íM½i… ¥Åå )Mm‰¥Åá9]©Íí 1Mm…¥Åá)Ee‰©Íé= @URçò¸myRemoteAddress)@URÔR®currentAllowedFieldsList¿¿¿@UR™‚NConnectedSpec¿¿@URIØ­ep¿ @UR"[}çCurrentNewEntry@UR*1ŠgConnected¿!@UR+,¬LConnectedSuccess¿¿¿@UR. }SendSoupNames¿¿@URC[Shnevermind¿¿"@URL\ŒŸbuttonClickScript¿¿ @URR›bSendRecordCount!@URWB”EprotoTCPProtocol¿¿¿$@URYÕ6çMBuildConfigOptions@UR_/èepConnected@URaø‘myLinkID¿¿¿ @URb(›ëmyOutputOptions@URgÖ]DeleteRecords¿¿@URgÖ]myStatusView¿¿¿!@URi°xÿGrabLinkCallback¿¿¿@URo#|ÒmyInputOptions¿$@URtHÂprotoSerialProtocol@UR|]¹CurrentCursor¿¿@UR}µm™SendObject¿@URÊFÚDoNothing¿¿@URƒ¦:ÍCurrentEntry¿¿¿@UR…=J­SendFrame¿¿@URŽŒBsnextRecordID¿¿¿@UR¡´SetSoupName@UR”ÊÎ6GetAddress¿$@UR™¢TëExecuteCustomScript#@URšmÜÛSendDeletedRecords¿%@UR¥Ñ­âGetInetConfigOptions¿¿¿!@UR©}—ConnectedFailure¿¿¿@URªIómySlipCallback¿@UR®rÑuSendSoupInfo¿¿¿!@URµ¬ïúConnectToOutside¿¿¿@UR¼9:LstartDate¿¿@URÀ.?SetStatusMsg¿¿¿@URÀbìÎMOutput @URÆûscurrentSoupName @URÆûsscriptToExecute@URÆSºDNSCallback!@URÇOLÄcurrentQuerySpec¿¿¿!@URÇOLÄSaveCurrentEntry¿¿¿@URÊ}l„ConnectOk¿¿@URÑ·‹ ConnectViaTCP¿¿"@URÖÜÐMOverrideNextQuery¿¿@URÚˆ¹nGetNextRecord¿¿$@URà÷PcurrentAddRecScript@URá’Í!SendArray¿¿%@URëϹcurrentSaveRecScript¿¿¿)@URîíìgetUnicodeStringFromData¿¿¿ @URðÒ’connectionIsTCP A%C]ÀõAµÑ@URÇ¢async¿¿@URë­L×reqTimeout¿!@URÌÂP—CompletionScript¿¿¿ C )21 @ e}o {8_ {8¿¿A …Ee@URýÍsConnectFailure¿@UR|ˆKConnectSuccess¿ C )2¥¹@ e'¨8A …M C )2í Y k@ eˆ©(«­ £sÇ$Á¤$¥}{_(qs{Â8'+©}³|¿" £qÇ$Á¤$¥}{_Vq{Âw 9'æw 9}³|¿>"u¿4A …% - © ¡ Å å!m@URÍÛ—soupArray¿¿@UR߬storeArray¿@URÀ.?storesString¿¿¿@URrÞGetSoupNames¿¿¿@UR¾NSetUnion¿¿¿ C )2!A!͉@ ep"Äoo"£"©r+v‘ * Äo3'¯ "  +_lv ‘ * Äoc' ;r+r8_l"¯ 8_|r+r8¿¿¿dA …Ei"1 ý"MY"a=Í"}"¥A"¹"Õ#1#I½ #I@aCancel¿¿A! 5@UR¦m+StrCompare¿'@UR–ÁóºInetOpenConnectionSlip¿A! 5@aNo IrDA\@aIrDA connections are not supported yet.@URTæÑNotify¿@aConnect C )2#…$=¸@ ep)ro"ªt9_«p)oCw)£p{ 9¯ w  8¯ w  8)t9_«)wŠÇ)w)£p"{ 99¯ )w )w )o‘w‘'`Ä_’"ožt9_«€¯ t9pA …á$­¥$Åm$Õ…y ÕM ¥$í% %)%Q%%y%‘%½%Ù%õ&$Å@UR\ÃåPrint¿¿@a0@URÂwÆIsFrame@URc¿«ËCountEntries¿¿¿@URTý°2NumberStr¿¿(@adirect search&@asoup name = ¿¿@URrQœ’GotoKey*@acurrent entry:¿¿@URß theEntry¿¿¿@URó5)ë_uniqueID¿¿@a1A0C&Eÿ'u'¥)m152}3…4554A &y&&¹&Ù&ù''9'U!@URÉd&ExceptionHandler¿¿¿@UR«à.ÓwaitforACK¿ @UR6³òwaitForFUNCTION @URr§dwaitForSoupName @URi°xÿwaitForSyncDate@UR˜¦Â)waitForScript¿¿@URµú®‰waitForUIDs@URZ"õvwaitForDelUIDs¿ C )2'•@ e"¿¿C'½()(A(A'Ù'ñ( @URZ¾r”form¿¿¿@URbvZztermination@URP0ýInputScript@UR¦ºébytes¿¿C(QüA(e@URPÓý°endSequence C )2(¡(Ý:@ e|{9§ +o,{9'F{9{8{‘{9_-"¿¿,A …) )!)9m)&¹)M@aACK?¿¿@URtfuÓStrPos¿@aACK@URÜ’¯SetInputSpec¿¿¿C'½())…)•C(Q„ C )2)µ,Z@ e|{9§ +o"{9{9'F{9 +o<{9'F{9 +oU{ 8'F{9 +o {9{ ‘{9{9'F{9 +o¦{‘{9{9'F{9 +o¿{8'F{9 +oØ{8'F{9 +oñ{8'F{9 +g  +_ 'o0{'˜{‘{9{9'F{9 +gH +_K'om{"˜{ ‘{9!{9'F{9" +o™#{9{$‘{9%{9'F{9& +o¾{'‘{9({9'F{9) +oÚ{*8{9'F{9+ +où,(-){9'F{9. +o{/8{9'F{90 +o1{18{9'F{92 +oL3{9{48_M"¿¿àA …,ñ)!-M-9m-] ù-}…-™-¹&Ù)M-ñ.&ù.A.ií.‰å.±‰.Õ//!'/A/]//q/A//Á'9/ý0'U/ý0A¥0i0% 0™é0¹©0Õ0í½"@aHEARTBEAT!¿¿"@aConnected.¿¿$@aHEARTBEATOK@aVERSION!¿¿@aSOUPS!¿¿@aSETSOUP!¿¿6@aSetting soup name...¿¿@aSOUPNAME¿¿.@aSETLASTSYNCDATE!¿¿&@aLASTSYNCDATE¿¿ @aSOUPINFO!&@aRECORDCOUNT!¿¿$@aNEXTRECORD!*@aEXECUTESCRIPT!¿¿@aSETSLOT!¿¿@URýÍsreturnResults¿¿@aSCRIPT¿¿@aES!@UR­õwaitForES¿¿2@aGETDELETEDRECORDS!¿¿<@aGetting deleted records@aUIDS¿¿*@aDELETERECORDS!¿¿&@aRERUNSCRIPT!¿¿@aTIME!@URC©÷Time¿¿¿@aSAVEREC!¿¿@aADDREC!@aBYE!¿¿H@aRemote computer disconnected.C'½()1M1]C(Q C )21}1ÑT@ e|{9§ )$Á+§{9ŠÇ{9{‘{9 { 9'F{ 98A …2 2!29%M&¹)M2Ym@UR¶HmStrLen¿@UR‚ª¨ Substr¿@aSyncing ¿¿$@aSOUPNAMESETC'½()2•2¥C(Q C )22Å3 B@ e|{9§{9 )$Á+§{)˜{‘{9'F{9¿¿0A …39m2 2!13e&¹)M,@aLASTSYNCDATESET@URFk¿kStringToNumber¿C'½()33­C(Q C )23Í4!S@ e|{9§ )$Á+§{‘{9{9§))o>){9'F{9¿0A …2 2!&¹)M94Q4qm@URù%÷SPrintObject¿¿¿@URá’Í!StrFilled¿¿C'½()4¥4µC(Q C )24Õ5 8@ e|{9§ )$Á+§{‘{9{9'F{9(A …2 2!&¹)M]mC'½()5M5]C(Q C )24Õ5}(A …2 2!&¹)M¥m C )25Å5í'@ e'"{|Š‹‚†‰¿0A …6656M%6i66™6±6ý@ailpt¿¿@URTæÑoption¿@URJã0|template¿¿¿@UR¿›}struct¿@UR6®1short¿¿@URnórbooleanA6É6á@UR·çæarglist@URNA[typeList¿¿¿(A7% i7=¹'Ù7U@URŒG^`label¿¿@UR+È)jopCode¿@URIÊdata¿¿¿CIìÈØü C )27©8±@ epoÎ)so¹)'€É"s9_*())w o‹ )w oˆ )'tÉ'"s :_g())'üÉ"s9_ˆ)_—w o—s 8)))s‰' +)"¯ "¨9'ŒÉ"+_í()w+¿ŒA …E9=$­9m9¡)M9¹9Ý=:M:I:‰:¥:Ý:õ;5;U;;Å%<@aCouldn't unbind endpoint¿¿@aUnbound.¿¿8@aDisposing endpoint...8@aDisposed of endpoint. C )2;å;õ@ e{8A …<@UR¥ïaŸDispose!@UR[lFÇAddDelayedAction¿¿¿2@aDone with cleanup.¿¿0@aReady to connect. @UR”}§InetReleaseLinkC<Ý<ù65=A7% i7U@aoflc¿¿C=-6 A=M=e==¥@UR-z»xonChar@UR~€õ‰xoffChar¿¿¿#@URmŒlòuseSoftFlowControl¿#@URC¢ýuseHardFlowControl¿ C )2=é>i€@ e{'–*¤q)§_h}))¦~"99¯w)o7w ~™_8"of 'HÉw  *_c'  ;_g"|0¥}g""LA …>µ…y3e>Ñ Õ%y>é$Õ%Ù9¡%? A?1#1@UR7©ÃÒStrTokenize@UR¥ˆòfloor¿¿@URSf RcurrentRecord¿¿(@URpœØõEntryRemoveFromSoupXmit<@aCouldn't delete record! C )2?@© @ e'¦{¨}o!pq"+' }t1;"®v_ |‘Äo'®"q"+w " ƒ¯  'ÜÉw  '"„'"p‰Š‚†'"$‰Š‚†‹w :¯_Ö()"¦' ; 8~ow!"#$+ˆ''È%&ƒw ':_"_ pq|+¿¿¿¬A …iÅAUAAy#1EAA¹AÕ9¡B%B=BUBu656M%6iB6±6ýB¥6±6ýB½BÙ9¹$­Bñ½¹C9 CuDM"@UR z•ZInetDisplayStatus¿¿!@URrnkGetInetErrorStr¿¿¿@URÆSºlinkStatus¿@URHÎW;Connected¿¿A AñB @URÅÕð¡_parent@URPV4Oencoding¿¿¿@ainet¿¿@URð¢‡Iservice A7% i7=¹@ailid¿¿@URjKöulong¿¿@aitsv¿¿@UR­)€$Instantiate@URazǸanErr¿¿H@aError instantiating endpoint.<@aBinding the endpoint... C )2C•CÅ .@ e}o' })‹Ç{;{8_!{8¿¿,A …ACñ% D9%#1½F@aError binding the endpoint (¿¿@a).¿¿@UR#‚õBind¿¿¿C<ÝD}65D•@aiflc¿¿C=-64CDåE=}­Åå…†U†õ‡±ˆA8A E&y&&¹&Ù&ù''9'U@URSf RconfigOptions¿¿lCE©H…tEuév]vµwmw‰w¥wÁwÝ»xÍyEyy¹yÕzmz‰zÝzù}Y}u}‘pA:‰FF9FUF}F•F­FÑFñG G) GUGuG‘G­GÑGé<H B½H%HEHa@UR;W¼_hackVersion¿¿¿@UR߬GetOptions¿(@UR\/ÂdisposeLeavingTEndpoint@UR&U%—Listen¿@UR)³P)output¿"@UR5G,runModemNavigator¿¿ @UR6³òhack_getOptions@URK`ùÝhack_listen@URN¿$ohack_output)@URTt…instantiateFromTEndpoint¿¿¿@URt–€¥ReadyForOutput¿@UR{ ”XSetOptions¿@UR–ß§wis120Lindy¿$@UR™¢Tëhack_readyForOutput@UR3:connect @UR ¬hžhack_setOptions@UR­)€$disposeGlue@URÂ*€hack_connect¿¿¿@URÉ43makeGlue¿¿¿!@URÒ5Tjhack_instantiate¿¿¿CH¡HñI,P A MHÁ ½HÙ@URçSƒcode¿¿¿@UR4™WÏoffset¿@URþ˜úòBinCFunction¿¿¿+4@HÁåð€ åð€Håð€påð€åð€åð€(åð€Xåð€ á À é-ØâL°âMÐåÍá  äMá  á  âã 0ë 3äÝé¨á À é-ØpâL°á Pá @á `âMÐâë ã ëÿÿÞåâë Gã0â0á  á á ëã0â ã 0ã å”ë ]ã0å”åÐ ã0   zâMÐâ0á  á  á ë wåååå€åë âÐåå@ë âã ë já é¨pá À é-ßðâL°á pá `á @á Pã €á ë ã0 á ë ë Ká €ã5 lá ë úá 0á å¶!Xë àêeå”åâã0  !A2ã €ã5 Zã02 A @   á ë /á á  å¶Xëÿÿ‡ê ã0 ã €ã5 Gã0 A á ë "åÅê@á á ë ã0å”å ë äá  ã ãPš4âMÐá  å”åë ½ëÿÿ`åá  á 0á á ëÿÿ©ã5…Pàˆ€åë ¥âÐâ‰áY :ÿÿêêã `ã0 ë Øãá ë Àã0 `â`ÿã6 å”åë ºá €ã5 å”åë ¸å”åëÿÿ9á  á ëÿÿ:å”åë Ùá é¯ðá À é-ÙðâL°á Pá @á pá `âMÐã €ã 0ëÿÿsåã0  ,êá á ëÑå”Tåà@ãQ³P ºÿÿöåâ€ë Ñá°€ á 0á  á á ëÿÿ[å–åã @ ë ³êã ã 0é-á 0â á å”ë žâÐã0å”Tå àAå¤Têë sé©ðá À é-ØâL°á @ã 0ëÿÿ;å´TàAãP³Q £ ³ é¨á À é-ØðâL°á `á Pá @âMÐãàpâë QëÿþÚåá  á ã 0ã  ë <á ã A ë }á aåë ã6 á ëƒã0 ã 0é-á 0á  á á ë=âÐêciromglueë 9á°p  á é¨ðá À é-ÙðâL°á @á `á PâMÐãàpâ1ë ëÿþ©åá  á ã 0ã  ë á ã A ë Lá åëëã8 âMÐâ ë ëÿþ•åá  á ã 0ã  ë÷á ã A ë 8á Aåë×á° á 0á  á á ëÿÿPá pâÐã7  á é©ðciromglueciprivateá À é-ØpâL°á @á PâMÐâ+ëáëÿþjåá  á ã 0ã  ëÌá ã A ë á aåë¬ã6  ¨pâMÐâëÌëÿþUåá  á ã 0ã  ë·á ã A ëøá Aåë—á°  á  á ëÿÿNé¨pciromglueciprivateá À é-ØðâL°á @á PâMÐãà`â0ë§ëÿþ0åá  á ã 0ã  ë’á ã A ëÓá qåërã7 âMÐâë“ëÿþåá  á ã 0ã  ë~á ã A ë¿á Aåë^á° á  á á ëá `âÐã6  á é¨ðciromglueciprivateá À é-ÙðâL°á @á `á PâMÐãàpâ1ëgëÿýðåá  á ã 0ã  ëRá ã A ë“á åë2ã8 âMÐâ ëSëÿýÜåá  á ã 0ã  ë>á ã A ëá Aåëá° á 0á  á á ëRá pâÐã7  á é©ðciromglueciprivateá À é-ØðâL°á @á PâMÐãà`â0ë'ëÿý°åá  á ã 0ã  ëá ã A ëSá qåëòã7 âMÐâëëÿýœåá  á ã 0ã  ëþá ã A ë?á AåëÞá° á  á á ëîá `âÐã6  á é¨ðciromglueciprivateá À é-ØpâL°á @á PâMÐâ+ëéëÿýråá  á ã 0ã  ëÔá ã A ëá aåë´ã6  ¨pâMÐâëÔëÿý]åá  á ã 0ã  ë¿á ã A ëá AåëŸá°  á  á ëÿý_é¨pciromglueciprivateá À é-ØâL°á @âMÐâë±ëÿý:åá  á ã 0ã  ëœá ã A ëÝá Aåë|ã4à !ã å”ëÆå”åã11ã ë±êciprivateã 0ã  ã ëeã0€Ë#|¦ ” ·ã0å´å‘ ã2 Nã0  á é¨á À é-ÙðâL°á `á @á Pã å-ë¬á°p «å”å埀€ã0#âMÐâëhëÿüñåá  á ã 0ã  ëSá âëååã0à“@ e á  âã á àá ðå åë*åë(âÐê ªûäconfigoptionsá  á ã á àá ðåâMÐ$á  ëzã åÍá  å—á ë6å(ã0âÐ$oá  á ã  ëðåã0hã åëBåã0bã 0ã  ã åëÿü°åã0Zã 0ã  é- ã åëéâÐåã0Mã åë<ã å-lâëXã01á  ëÿüŽâMÐâ'ëëÿüåá  ã ëÿüŠá @åëÙá ëÿü‡å­âMÐåxá  á ëÿüåå ååã ëâMÐâëîëÿüwåá  â á ëÄåëÀåë¾å ë¼âÐêarraymodemnavigateå`âëã0àpá  ëãá  ë¯ã å½lëöã 0ã  ã åëŸã åëôá ã ëåã0 åã1 ëêevt.exëŠã é©ðá À é-ÛðâL°á @á `á Pã pâMÐ á âSë©ëÿü2åá € âSë¤ëÿü-ååå™åëˆá âëRá ã  ëˆá €åëoåëmã8 € €åëhã8 3âMÐâ5ë‰ëÿüåá  á ã 0ã  ëtá âë6ååã0 âMÐâ,ëxëÿüåá  â ã 0ã  ëcá âë%ååã0 á  á âëÿþêá påë=åë;âÐåë8åë6âÐã7 ã é«ðusemodemnavigatoruserconfigurationmodemnavigatorá À é-Ø0âL°á°@á Pã ë†á°@ á ëÿûÆå„á é¨0á À é-ØpâL°âMÐã @á PâMë1ëÿûºååå•åëá âëÿÿßååã0 kâMÐâPâ>ë ëÿû©ååå•åëá â ëÿÿÎâPâ5ëëÿûååå•åëøá âëÿÿÂå åâEå å’ ã2 Aã0 A á ë6á `âëãë.á Pã6â…ëá @åŸXëå”ãÀ ÿ〠å„â…å„ã â„@ è„!âD@ âëÎâ„êdataaddresstypeaddressdataroutã6â…ëåá @å ëôå”ãÀ ÿ〠å„â…å„ã å„ å„åŸ\â„@è„!âD@âë­â„á 0ã  ë“åë™åë—åë•å ë“âÐåëåëŽá é¨psltká À é-ÛðâL°á Pá `á @á ëÓã0 uâMÐá pâë£ëÿû,ååå—åë‡á âëÿÿQâëšã0 _âMÐâ ë{á  ã 0ã  ëaå€åŸÀá8 á á ëÿÿNê%labelroutåŸÀá8 á  á á ë°êsiopåŸÀá8 á  á á ã 0êiflcåŸÀá8 á  á á ã 0ë êoflcåŸÀá8 á  á á ëšá `ê"mdo ã œâMÐá `â)ëYëÿúâååå–åë=åååë)ååã @ ë€á âMÐã pâëCëÿúÌåá  á ã 0ã  ë.á âëÿþðâë9ã0 âëëfâ€pêopcodedataååã p âá ëQã0ååã0 ë!á p⇠ë(á°` ã @åëïåëíåëëåëéá é«ðå–ãÀ ÿâ ÿá€âMÐá å†å†pâëëÿúŒååå™åëçåååëÓâMÐâ âëõëÿú~ååå™åëÍá åëÆã9 á á ë êBtypeserviceâMÐâ$âëÞëÿúgååå™åë¶á åë¯ã9 á á ëôê*optionâMÐâ(âëÉëÿúRååå™åë¡á åëšã9 á á ëÝêconfigâMÐâ,âë´ëÿú=ååå™åëŒá åë…ã9 á á ëÆâÐâÐâÐâ ë£ã0 â ë…↠á 0ã  ëkêVaddressá ëÔã @åëkåëiå(ëgå,ëeá é«ðå åã @ ëºå† ê>â á ëªã Pã0 ↀ å åëzá pã @ãPš0âMÐá ååëSëÿùöååã @ ëêá äÈåë:âÐâ„@áT:ÿÿéêå åã0 ëlãâ ëTã0 PâPÿã5 å”åëRå”åëÿùÓâ† á  ëÿùÔå”åësåëå ëâÐåëå ëá é«ðåëåë âÐã é«ðá À é-ßðâL°á pá `á @á Pã €á ëRã0 å”åë$á  ã ãPš"âMÐá  å”åëýëÿù åá  á 0á á ëÿÿàá €åëçã8âÐâ‰áY :ÿÿêê á  á á ëÿþPá°@ á  å•á ëúá €á ë9á é¯ðá À é-é-ÙðâL°å› ååã0 å›ã1ãàé©ðã pã `å› ã2    âPÿå‘PåëËëÌåå›â€ëÔá°@å›â€]ã ëÌá @ã5 rã4pâMÐá  ëá  ëÀá°@ á  ã ëá é©ðå› å’åã0"âMÐâë»ëÿùDåá  ã 0ã  å› ë¦á âëÿýhååã0 â0â é›ëÿÿyá @êconfigoptionsãà@“âDLeåëyåëwâÐêá 0 é›ëÿÿhá @ã42âMÐâá  ëÏá  ëqá @á  ë˜ã0 埀4å”â?ã0  ãÿ å”á0å›åŸë¬êatlksltká  ë‹á @á  ë€ã0ÿÿèâ‹âã  ë.á°@á  ã  ë­âã ë¨á é©ðë§âÐá  ã ë¡âÐã4å›å›åŸ0dåŸ dëSá @ã4âMÐå›á  á á  ëÿýá @âëKëÿøÔåâá  å› ëmåëåëâÐênewtendpciprivateâMÐâë6ëÿø¿åá  ã 0ã  å› ë!á âëÿüãååã0 ã @ ë\å›å¡XåëúåëøâÐêencodingã 0é-ã /ââ‚*ã å›ëâÐá @å›ã0 ã5å›åã ë0âMÐâëëÿøŒåâå›â€ã 0ã  ëíá á  ëÿü¯á  é›ë1åëÍåëËâÐá é©ðnextinputspecá À é-ßðâL°á Pá @á pá `ã  ã å’åã0 ã ëá  ëãá°€8á  ëËá°€4á 0 á  á á ëÿþžá°€-å–åã0 ã ëá ëÎá°€#á  ë¶á°€á 0 á  á á ëÿþ‰á°€ã å”ëÞá å”ëÉá°€ã 0ã  ã å”ëÿø8á°€ á  ã 0ã  é- á  å”ëqâÐá°€ âMÐêã å”ëÃâMÐâë–ëÿøåââ„ã 0ã  ëá á  ëÿüCá  á á ëÄåë`åë^ã:   Âã9   ¾á é¯ðnextinputspecá À é-ÙðâL°á `á @á Pã €å’åã0 ã ë£á €ëqá°p1á ëYá°p-á 0á  á á ëÿþ,á°p&ã å”ëá å”ëlá°pã 0ã  ã å”ëÿ÷Ûá°pã ã 0ã  é- á  å”ëJâÐá°p ã ã Àã 0ã  ã é-á 0 á  å”á ëÿ÷¸âÐ á°p âMÐêã å”ëXâMÐâë+ëÿ÷´åââ„ã 0ã  ëá á  ëÿûØá  á á ëYåëõåëóã8  Wá é©ðnextinputspecá À é-ØðâL°á Pá @á `âMÐá  ë@á  ëúá°pá 0 á  á á ëÿýÍá pã7á  ã 0ã å”ëá pã7”Ð 0   ,á  ã ë,á é¨ðã á ðá åŸâð¦yôá åŸâð©pá á åŸ â‚ð« 8á â ÿá 0á á åŸ0âƒð« $á á åŸ â‚ð« (á á åŸ â‚ð®ë¼á åŸâð¯¾Ìá á  á 0á á åŸ0âƒð« ã åŸâð©ç¸á ðã á ðá ðá åŸâð¦Š$á åŸâ𦊠á åŸâð©$”á á åŸ â‚ð«Tá â ÿá 0á á åŸ0âƒð«@á á åŸ â‚ð«Dá á åŸ â‚ð®ûÌá åŸâð¯¾Øá á  á 0á á åŸ0âƒð« 4ã á ðã åŸâð©÷Üá ðá ðá åŸâð¦yøá åŸâð¦yôá åŸâð©lá á åŸ â‚ð« ,á â ÿá 0á á åŸ0âƒð« á á åŸ â‚ð« á á åŸ â‚ð®ëœã  åìâ@ÈrâLÌcã<w  Ü@È< >€ 0   á ðá åŸâ𯮤á á  á 0á á åŸ0âƒð« ã åŸâð©ç´á À é-ØâL°ã  å°Üå° ã >†åã êâŽâã 0âƒ8á2ã1ã0 ë|ê á2á10  ëêâBÆâLÌaã< 10 ë½ë%ã0   ¨ã é¨á À é-ØâL°á @âMÐâëëÿö‘åá  á ã 0ã  ëóá ã A ë4á AåëÓá ë7ã é¨ciromglueá ðá ðá åŸâð¦yøá á ðTROMGlueé-@á ëÿÿ÷ëÿöiáâÐè½@ ðååÀâŒðåé-@âàåÀâŒð è½@ê¹ååÀâŒðååÀâŒðååÀâŒðååÀâŒðååÀâŒð ååÀâŒð$ååÀâŒð(ååÀâŒð,ååÀâŒð0ååÀâŒð4HSXXŒêÿþÇêÿÿºêÿÿºêâODá ðã á ðTJunior100GlueTROMGlueêÿÿòêÿÿ§êÿÿ§êÿÿ§êÿþ°êÿþ³êÿþ¶êÿþºêÿþÁêÿþÅêÿþÉêÿþÌêÿþÓHSXXŒêÿþÑêÿþÍêÿþÏêâODá ðã á ðTJunior110GlueTROMGlueêÿÿòêÿþºêÿþ¼êÿþ¼êÿþ¿êÿþÂêÿþÅêÿþÉêÿþÐêÿþÔêÿþØêÿþÛêÿþäHSXXŒêÿþÛêÿþÞêÿþÞêâODá ðã á ðTGerman110GlueTROMGlueêÿÿòêÿþËêÿþËêÿþËêÿþÎêÿþÑêÿþÔêÿþØêÿþßêÿþãêÿþ÷êÿþúêÿÿåð€l$%$ˆLP40 4 0%¸ åð€håð€”åð€Låð€Àåð€¼åð€Ìåð€ˆåð€ åð€üåð€„åð€èåð€(åð€ åð€Påð€ ,åð€ åð€åð€ 4åð€ @åð€¨åð€Håð€tåð€€åð€Påð€påð€ Låð€ håð€ xåð€|åð€ €åð€ìåð€Œåð€åð€Håð€ åð€˜åð€ ¼åð€œåð€¤åð€Àåð€ $åð€ôåð€øåð€üåð€åð€ 4åð€åð€ åð€`åð€,åð€ <åð€,åð€äåð€èåð€°åð€\åð€Äåð€ ¬åð€øåð€åð€åð€4åð€@$Ctit±tÍtíu!(A M e … ¡ ½t‘@UR|éå©DebuggerInfo¿¿¿@UR?ý(ÖCodeBlock¿¿@ e‘o {9_{I¿¿¿A …uFÑF9@UR¥#Ù¯ciROMGlue¿¿Cu=uµ Au]Añu}u@URñž _nextArgFrame¿¿@URU{y“_implementor¿¿¿@UR |]ÌoptionsCuÍAu]Añu}$Ctit±v v-vE@ e‘o8"˜H¿¿¿A …uH FUCuÍuµ$Ctit±tÍvv™A …uFñF}Cu=uµ$Ctit±vÙvùw@ e‘o{|:_{|J¿A …uG F• Cw1uµ$Au]Añu}7UwU@UR•ŒÅflags¿¿CH¡HñI <CH¡HñI(ÀCH¡HñIÐCH¡HñI0$Ctit±xx!x9 @ e8¦~o ~˜{|}K¿¿A …HEuG)(Cxauµ,Au]Añu}xx¡xµ@UR.¨Š›opt@UR}Éatep@UR:…glue¿¿¿$Ctit±tÍxñy A …uG­GUCy%uµ Au]Añu}7U$Ctit±tÍyiyA …uGéGuCu=uµCH¡HñI’@CH¡HñI@$Ctit±vÙyùzA …uH%GÑ Cz1uµ$Au]Añu}zUu@UR$@LVaddressCH¡HñI$Ð$Ctit±v z­zÅA …uH <CuÍuµCH¡HñI–à$Ctit±{{Õ|]µ@ e8¥}˜}g8_'o”"¦"§|o)|§_/{‘§"ǧ _j $§  ‘*oS'¦ ‘*of'§  o<""§ ~o‚Å_ƒ"o”({ ;}o¢{| :_¨{| J¿¿¿wt  " -_A'o^tq9 q9} 9 q9~~o""¦q9HA …Ém4QÙõ ¡‹ÙÅŽŽŽ5mŽIŽY@a{@UR­)€$theSlotName@a!@UR—-fstr=¿¿¿@UR«berLSearch@a = @a;@a} C )2މޥ@ e{ŠÇ){«s¿¿A …ŽÁ%$­…8@aSetting soup name to C )25@ e9r‘+¿¿¿$A …YMME±D@aGetting Internet Address...A! 5&@URÉ DNSGetAddressFromName¿¿ C )2ù@ e{)˜8ªr¿¿¿A …¥-E@URþæ¹Compile@URãõdñstr C )2y‘! §@ e"¤{'–*¥q)§ § "§ _l~))§" 99§)oJ ‘Ä_K"Åoj'¤ ~  ‹Ç§  _k"}0¦~g"|o   )$Á +§  w9"¿LA …>µ…y ¡3e>Ñ Õ%y$Õ%Ù‘m%2 2!m@a C )2‘‘íM@ e'"„'"{‰Š ‚ † '"|‰Š ‚ †‹¿¿¿DA …B%B=BUBu656M%6iB6±6ýB¥6±6ý C )2’Q’a@ e)A …’u$­2@aConnection failed.¿¿ C )2’É“8@ e{Äoq""+«qs+"+_+w   +theConfig¿¿&@aInstantiated¿¿B@aConnecting the endpoint...¿¿6@aConnecting to Mac...¿¿ C& C )2Qy'@ e9r*or*r"*¿,A …¥M¥åžžž5 ¡>@aSaving current record...¿¿@UR<žþDuniqueID¿¿¿@URùsµ®HasSlot@UR‰äÆRemoveSlot¿ @URDVæ*EntryChangeXmit C )2žuž‰@ ep+¿¿A …¹-  C )2žÅŸQŒ@ e|"Äo{Ç Ç _"ok9{ ‘«'"sŠ  '‹ ‹ ‚ †‰''@„w:_' ;8dA …œíMŸµŸÕŸù656Mó%6i 66±6ý )¡ GÑA¡-#1½ @UR½4ÍresultIPAddress!@UR~±[theRemoteAddress¿¿¿@aitrs¿¿@URZ¾r”byte¿¿¿ C )2 I m õ #@ e}o' {;{8_t8¿$A …A ‘#1½ab@aCouldn't connect to the specified address.¿¿CuÍ AµAñÑP@aCouldn't find the specified host. C )2¡¡µ@ e8'©8A …‰¥ C )2¡é¢)@ epopp)˜p9t8t8¨p_"¿¿¿(A …¥å¢=mM¢] @UR¯¼"ÆEntryUniqueID¿¿@UR' ­‡Next¿¿¿ C )2¢•¢íU@ e"¤q9 ¥{Ç$Á¦$§}_>{}§|o/'Æq9_3'¤9µ~¿"q9¿¿¿ A …£ mm£@a(@a) C )2£M£¡T@ e"¤{oE{Ǧ'¥~$Á§'§}_=|{}Â' *{}$ÀÂÀ)ŠÇ¤µ¿""|A …£¹£Í%@UR*¸<<¿@UR•äµCHRC£ýµ©Q3e>Ñ©ey©… Õ%y©ež©±©É©åª%ª%©…ž5©ªE¹ªa©e©…ùª…% mª¡.@aSyncing Dates...¿¿@UR˜+repeatType¿@URx^ôfn¿@aCalendar¿¿,@aRepeat Meetings@URËHôtmtgInfo@URžåMìmtgStopDate@URâÜrexceptions¿"@UR#¤Ï8InstanceNotesData¿¿@URªIóEntryMoveXmit¿¿@URÏðpWDeepClone¿¿!@UR²NÅhRepeatingMeeting¿¿¿@URÊFÚIsInteger¿¿@a/ C )2ªÑªé@ ep'(‘:¿A …Ñ«««9@UR®ÀGetRoot@URÓNšépaperroll¿¿@UR5”ê‘MakeTextNote¿¿¿ C )2'• C )2«™¬ t@ e ¤p‘¥})oI}"ǧ_<$¦~‘{‘Äo8' (;"_Do""§{ *oa{{9{"˜{ "™8A …¬E¬]¬u‰¬¬µ«#1­Ížå@URLz@\vars¿¿¿@URó_extras¿@URÍHƒIsArray(@aExtras Drawer@aThe application you just installed conflicts with another application. Please contact the application vendor for an updated version.¿¿!@URSäi³devInstallScript¿¿¿ C )2®®-@ e{*o{{9_"A …®Až @UR6³òdevRemoveScriptµµ‘oint.waitForFUNCTION); // the main dispatch loop end; end, }, // This is the generic dispatcher statNewton Toolkit 1.6.3xHPð€ÿÜÿìô”(üHPð€P € €'©&ʵµ‘ÿÒ¸)"nSTR "PRNT.PJST:SLCTF¿ôÿÿÿÇØÿÿÿÇ '•ÿÇ'©ÿÇWindow SettingsSelection SettingsCONSTANT kVersion := "0.3.3"; ÖÖ7ÒÒ ÿ ÿþHH  ™€ HHļîîÿÿÿÿÿÿþþþþþþããããããÈÈÈÈÈÈ­­­­­­’’’’’’vvvvvv[[[[[[@@@@@@ %%%%%%  @ ñññ üWwgu ü ýv!W0ý ýW!þ"!fý þsü32pþþ xS3Fx‡d32Gþ¸TF˜dF‰d3&P@)†‰0—C33¸{ýt3F7–“sü•3%Rt “@ú82!’• Vû‡2"4‘…Crýªd""$…DB(0þšd""%€uDDE–þ–B"6p uDEg«@ý9t26` eDEzrüˆCGP uUU”ú•X@*ˆ†Uxû ZŠ0K¦ˆeW`ý…«F*eTWuq–U3‡T5x24z ¨eSVe!5W›!#2J†UC!5Uhµ3"4UE©výUgšeT2$DDX¹vffgšs4C! #3Gš©š©tþ ýET!üññÿÖÖ7áD)€2PICT €ßÀiconZ)); endpoint:MOutput(unicodeEOT); end; }, waitForUIDs: { form:'bytes, termination: {Newton Toolkit 1.6.3xHHØ(ÿáÿâùFG(üHHØ(d'`x|K#lThis field is obsolete+9¢9¡ñ¤¦,9¢9¡ôÀÐ4”PðÀÍIœÿÇ„9¡ ôÀÿÕ…<9¢>®*9¢9¡@+*ÍIœ9¡æ9¡PôÀÍNü9*ÍL+À9¡æ9¢9¡€ÍNü9¢9¡ÍLÿ9¡ ôÀ9¢ÿÿ9¡ÐôÀ9¢&ÿ3à9¡ÐÿÇhàç,ÿÙ¤9¡ÐôÀÍODÿÿÿ9¤°ôÀÍAHÿà(>®ôÀ9¡æ@Þ>®ÿÙ¤9¤àZÿÒ¸(ÄZSTR PRNT&FMST2¿ôÿÿÿÿ'ÿÿ•ÿÇÔvalue__ntId__ntName __ntTemplate viewBounds viewEffectReorientToScreen declareSelf stepChildren viewFlagsviewQuitScript viewJustifypowerOffScriptReleaseLinkCallback SyncMeetingmeetingTemplate MergeFramesviewSetupDoneScript startNewNoteappendStringToCurrentNotesaveCurrentNote newNoteTextaddFeedToRaissa  __ntDatatype __ntFlagsÿÌ PROT@    RECT 0´Ð    __ntEffectÿ>p„ NUMB    >func() begin :SyncView(); end SCPT    'base EVAL    ARAY     text viewFont   ÿh @    ("NewtSync"     Z   *ROM_fontSystem14Bold (protoStaticText Title    __ntDeclare  labelCommands  .   ÿø @    (6["Serial","IrDA","TCP/IP"]     ! /Å    ("Connect Via:"protoLabelPickerConnectionType     :9ep gConnected SendSoupNamesbuttonClickScriptSendRecordCount CleanupmyLinkIDmyOutputOptions myStatusViewGrabLinkCallbackmyInputOptionsprotoSerialProtocol CurrentCursor CurrentEntry SendFrameExecuteCustomScriptmySlipCallback SendSoupInfoConnectToOutside startDate SetStatusMsgcurrentSoupNamescriptToExecutecurrentQuerySpec ConnectOk  GetNextRecord . SendArray SendObjectcurrentSaveRecScriptcurrentAddRecScriptCurrentNewEntrySaveCurrentEntrycurrentAllowedFieldsListGetInetConfigOptions DNSCallback ConnectedSpecConnectedFailureConnectedSuccessMBuildConfigOptionsOverrideNextQuery nevermind DoNothing GetAddress ConnectViaTCPmyRemoteAddressconnectionIsTCPprotoTCPProtocolMOutput epConnected SetSoupName nextRecordIDSendDeletedRecords DeleteRecordsgetUnicodeStringFromData   nil (     BOOL   ÿôfunc() begin soupArray := []; storeArray := GetStores(); storesString := ""; for i := 0 to (Length(storeArray) - 1) do begin soupArray := SetUnion(soupArray, storeArray[i]:GetSoupNames(), true); end; for i := 0 to (Length(soupArray) - 1) do begin ep:MOutput(soupArray[i]); // output a record separator ep:MOutput(unicodeRS); end; return storesString; end %    %ÿ„func() begin if gConnected = nil then begin local linkID := nil; myLinkID := nil; SetValue(ConnectButton, 'text, "Cancel"); if StrCompare(ConnectionType.entryline.text,"TCP/IP") = 0 then begin connectionIsTCP := true; InetOpenConnectionSlip(nil, self, 'mySlipCallback); end; else if StrCompare(ConnectionType.entryline.text,"IrDA") = 0 then begin :Notify(kNotifyAlert, "No IrDA", "IrDA connections are not supported yet."); SetValue(ConnectButton, 'text, "Connect"); ConnectButton:Cleanup(); end; else begin connectionIsTCP := nil; :ConnectToOutside(); end; end; else begin SetValue(ConnectButton, 'text, "Connect"); ConnectButton:Cleanup(); end; end   ÿ&func() begin Print(currentQuerySpec); if (nevermind) then begin nevermind := nil; ep:MOutput("0"); end; else if IsFrame(currentQuerySpec) then begin theSoup := GetUnionSoupAlways(currentSoupName); currentCursor := theSoup:Query(currentQuerySpec); currentEntry := currentCursor:Entry(); ep:MOutput(NumberStr(currentCursor:CountEntries())); end; else begin Print("direct search"); Print("soup name = " & currentSoupName); local theSoup := GetUnionSoupAlways(currentSoupName); currentEntry := theSoup:Query(nil):GotoKey(currentQuerySpec); Print("current entry:"); Print(currentEntry); if (IsFrame(currentEntry) and theEntry._uniqueID = 216) then begin ep:MOutput("1"); end else begin currentEntry := {}; ep:MOutput("0"); end; end; end %     r{¶   ÿ xfunc() begin if (gConnected) then begin //ep:MOutput("BYE!"); //ep:Abort(); //ep.nextInputSpec := nil; Print("Disconnecting..."); if ep then begin Print("Found an endpoint."); try ep:SetInputSpec (nil); onexception |evt.ex| do Print(CurrentException()); Print("unbinding..."); if connectionIsTCP then begin Print("Unbinding TCP connection..."); if epConnected then begin Print("Disconnecting endpoint..."); try ep:Disconnect(true, nil); onexception |evt.ex| do Print(CurrentException()); Print("Unbinding endpoint..."); try ep:Unbind(nil); onexception |evt.ex| do Print("Couldn't unbind endpoint"); end; end; else begin if epConnected then ep:Disconnect(); end; Print("Unbound."); Print("Disposing endpoint..."); Print("Disposed of endpoint."); AddDelayedAction(func(endpoint) endpoint:Dispose(), [ep], 1000); //ep:Dispose(); end; Print("Done with cleanup."); epConnected := nil; gConnected := nil; :SetStatusMsg("Ready to connect."); end; try InetReleaseLink (nil, self, 'ReleaseLinkCallback); onexception |evt.ex| do Print(CurrentException()); SetValue(ConnectButton, 'text, "Connect"); end %     (   ÿX{ label: kCMOOutputFlowControlParms, type: 'option, data: { xonChar: unicodeDC1, xoffChar: unicodeDC3, useSoftFlowControl: nil, useHardFlowControl: nil }, } (     (   ÿ ìfunc(linkID, stat, err) begin local doContinue := true; myLinkID := linkID; if err then begin InetDisplayStatus(myLinkID, myStatusView, nil); :Notify(kNotifyAlert, kAppName, call kGetInetErrorStr with (err)); gConnected := nil; end; else if stat.linkStatus = 'Connected then begin gConnected := true; InetDisplayStatus(nil, myStatusView, nil); ep := { _proto: protoTCPProtocol, _parent: self, encoding: nil, }; try anErr := ep:Instantiate(ep, [ {label: "inet", type: 'service, opCode: opSetRequired, result: nil}, {label: "ilid", type: 'option, opCode: opSetRequired, result: nil, form: 'template, data: {arglist: [myLinkID], typelist: ['struct, 'ulong]} }, {label: "itsv", type: 'option, opCode: opSetRequired, result: nil, form: 'template, data: {arglist: [1], typelist: ['struct, 'ulong]} }]); onexception |evt.ex| do begin Print(CurrentException()); doContinue := nil; :Notify(kNotifyAlert, kAppName, "Error instantiating endpoint."); :Cleanup(); end; if doContinue then begin SetValue(result, 'text, "Binding the endpoint..."); ep:Bind([], {async:true, reqTimeout:50, CompletionScript:func(endpoint, options, result) begin if result then begin endpoint:Notify(kNotifyAlert, kAppName, "Error binding the endpoint (" & NumberStr(result) & ")."); endpoint:Cleanup(); end; else endpoint:GetAddress(); end}); end; end; else begin InetDisplayStatus(myLinkID, myStatusView, stat); end; end %   ÿV{ label: kCMOInputFlowControlParms, type: 'option, data: { xonChar: unicodeDC1, xoffChar: unicodeDC3, useSoftFlowControl: nil, useHardFlowControl: nil }, } (   ÿMb// this is our special endpoint with the protocol built in. This works fine as long as you remember // that this entity is created in Read-only space. Stay tuned for a solution where this is created // in RAM (actually move this code so it executes during viewSetupDoneScript time and that's it) { _proto: protoEndpoint, // the basic serial endpoint with the serial port configuration configOptions: [ { label: kCMSMNPID, type: 'service, opCode: opSetRequired }, { label: kCMOSerialIOParms, type: 'option, opCode: opSetNegotiate, data: { bps: k19200bps, dataBits: k8DataBits, stopBits: k1StopBits, parity: kNoParity } }, { label: kCMOMNPAllocate, type: 'option, opCode: opSetRequired, data: kMNPDontAllocate }, { label: kCMOMNPCompression, type: 'option, opCode: opSetRequired, data: kMNPCompressionNone }, { label: kCMOMNPDataRate, type: 'option, opCode: opSetRequired, data: k19200bps }, ], // the rest here is just code for the state machine, all the state frames are stored inside the // the endpoint itself, it's just a handy place to put them, those could be stored anywhere. // We need to catch the last abort exception, later this should be more uniform, check // out what the exception was and ignore the abort one (the one causing the notify). exceptionHandler: func(exception) begin end, // this is just the initial handshaking part to make sure that both ends are alive waitforACK: { InputForm: 'string, endCharacter: $?, // ACK? expected InputScript: func(endpoint, s) begin if (StrPos(s, "ACK?", 0)) then begin // tell status if needed endpoint:MOutput("ACK"); // send response endpoint:MOutput(unicodeEOT); endPoint:ConnectOk(); endpoint:FlushOutput(); endpoint:SetInputSpec(endpoint.waitForFUNCTION); // the main dispatch loop end end, discardAfter: 200, }, // This is the generic dispatcher state, send something ending with ! and // the Newton will serve. waitForFUNCTION: { InputForm: 'string, endCharacter: $!, // expects a '!' as part of the command InputScript: func(endpoint, s) begin if(StrPos(s, "HEARTBEAT!", 0)) then //Simple "Heartbeat" for quick check that connection is still good... begin endpoint:SetStatusMsg("Connected."); endpoint:MOutput("HEARTBEATOK"); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if(StrPos(s,"VERSION!",0)) then // version check... for later, to make sure versions sync begin endpoint:MOutput(kVersion); // added end character -jaa 1.7d77 endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "SHIFTJIS!", 0)) then // switch to ShiftJIS encoding begin //endpoint.encoding := kShiftJISEncoding; endpoint:MOutput("ENCODINGCHANGED"); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "MACROMAN!", 0)) then // switch to MacRoman encoding begin //endpoint.encoding := kMacRomanEncoding; endpoint:MOutput("ENCODINGCHANGED"); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "SOUPS!", 0)) then // get the list of soup names begin endpoint:SendSoupNames(); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "SETSOUP!", 0)) then // set the current soup begin endpoint:SetStatusMsg("Setting soup name..."); endpoint:SetInputSpec(endpoint.waitForSoupName); endpoint:MOutput("SOUPNAME"); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "SETLASTSYNCDATE!", 0)) then // set the last sync date begin endpoint:SetInputSpec(endpoint.waitForSyncDate); endpoint:MOutput("LASTSYNCDATE"); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "SOUPINFO!", 0)) then // return the soup info frame begin endpoint:SendSoupInfo(); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "RECORDCOUNT!", 0)) then // return the record count begin endpoint:SendRecordCount(); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "NEXTRECORD!", 0)) then // get the next record begin //endpoint:SetStatusMsg("Sending next record..."); endpoint:GetNextRecord(); endpoint:MOutput(unicodeEOT); //endpoint:SetStatusMsg("Record sent."); endpoint:FlushOutput(); end; if (StrPos(s, "EXECUTESCRIPT!", 0)) or (StrPos(s, "SETSLOT!", 0)) then // execute the given script begin endpoint.returnResults := true; endpoint:SetInputSpec(endpoint.waitForScript); endpoint:MOutput("SCRIPT"); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "ES!", 0)) or (StrPos(s, "SETSLOT!", 0)) then // execute the given script begin endpoint.returnResults := nil; endpoint:SetInputSpec(endpoint.waitForES); endpoint:MOutput("SCRIPT"); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "GETDELETEDRECORDS!", 0)) then // find deleted records begin endpoint:SetStatusMsg("Getting deleted records"); endpoint:SetInputSpec(endpoint.waitForUIDs); endpoint:MOutput("UIDS"); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "DELETERECORDS!", 0)) then // delete specified records begin endpoint:SetInputSpec(endpoint.waitForDelUIDs); endpoint:MOutput("UIDS"); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "RERUNSCRIPT!", 0)) then // re-run the previously executed script begin endpoint:MOutput(endpoint:scriptToExecute()); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "TIME!", 0)) then // return the Newton's current time begin endpoint:MOutput(NumberStr(Time())); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "SAVEREC!", 0)) then // set the value of an entry slot begin endpoint:MOutput(endpoint:currentSaveRecScript()); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "ADDREC!", 0)) then begin endpoint:MOutput(endpoint:currentAddRecScript()); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; if (StrPos(s, "BYE!",0)) then // computer is going away begin endpoint:SetStatusMsg("Remote computer disconnected."); endpoint:MOutput("BYE"); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); endpoint:Cleanup(); end; end, }, waitForSoupName: { InputForm:'string, endCharacter:unicodeEOT, InputScript:func(endpoint, s) begin s := SubStr(s,0,strlen(s)-1); //strip off the 0x04 endpoint:SetSoupName(s); endpoint:SetStatusMsg("Syncing " & s); endpoint:SetInputSpec(endpoint.waitForFUNCTION); endpoint:MOutput("SOUPNAMESET"); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end }, waitForSyncDate: { InputForm:'string, endCharacter:unicodeEOT, InputScript:func(endpoint, s) begin endpoint:MOutput("LASTSYNCDATESET"); s := SubStr(s,0,strlen(s)-1); //strip off the 0x04 endpoint.startDate := StringToNumber(s); endpoint:SetInputSpec(endpoint.waitForFUNCTION); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end }, waitForScript: { InputForm:'string, endCharacter:unicodeEOT, InputScript:func(endpoint, s) begin s := SubStr(s,0,strlen(s)-1); //strip off the 0x04 endpoint:SetInputSpec(endpoint.waitForFUNCTION); local scriptResult := endpoint:ExecuteCustomScript(s); if (endpoint.returnResults and StrFilled(SPrintObject(scriptResult))) then endpoint:MOutput(SPrintObject(scriptResult)); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; }, waitForUIDs: { InputForm:'string, endCharacter:unicodeEOT, InputScript:func(endpoint, s) begin s := SubStr(s, 0, strlen(s)-1); // strip off the 0x04 endpoint:SetInputSpec(endpoint.waitForFUNCTION); endpoint:SendDeletedRecords(s); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; }, waitForDelUIDs: { InputForm:'string, endCharacter:unicodeEOT, InputScript:func(endpoint, s) begin s := SubStr(s, 0, strlen(s)-1); // strip off the 0x04 endpoint:SetInputSpec(endpoint.waitForFUNCTION); endpoint:DeleteRecords(s); endpoint:MOutput(unicodeEOT); endpoint:FlushOutput(); end; }; } (     (     TEXT   ÿ˜func(f) begin //Print("sending frame:"); //Print(f); // send the beginning bracket ep:MOutput("{"); // iterate through each slot and send it foreach slot,value in f do begin theSlotName := SPrintObject(slot); StrReplace(theSlotName, "!", "", nil); if (Length(currentAllowedFieldsList) = 0) or LSearch(currentAllowedFieldsList, theSlotName, 0, '|str=|, nil) then begin ep:MOutput(theSlotName); ep:MOutput(" = "); :SendObject(value); ep:MOutput(";"); // actually use a semicolon, not a comma end; end; // send the ending bracket ep:MOutput("}"); end %   ÿfunc(s) begin //:SetStatusMsg("Executing script..."); self.scriptToExecute := compile(s); str := self:scriptToExecute(); return str; end %   ÿTfunc(action) begin if action = 'connect then begin myStatusView := InetDisplayStatus(myLinkID, nil, nil); InetDisplayStatus(myLinkID, myStatusView, { statusText: "Opening link..." } ); InetGrabLink(nil, self, 'GrablinkCallback); end; else SetValue(ConnectButton, 'text, "Connect"); end %   ÿRfunc() begin unionSoup := GetUnionSoupAlways(currentSoupName); unionSoupContents := unionSoup:GetSoupList(); firstSoup := unionSoupContents[0]; indexArray := firstSoup:GetIndexes(); for i := 0 to (Length(indexArray)-1) do begin :SendFrame(indexArray[i]); ep:MOutput(unicodeRS); end; end %   ÿ Üfunc() begin SetValue(result,'text,"Waiting for connection..."); RefreshViews(); // " "BW 6/6/94 gRecCount := 1; gFormatArray := nil; // Set the Field and Record separators kFieldSeparator := Clone(unicodeHT); kRecordSeparator := Clone(unicodeCR); if connectionIsTCP = nil then begin // create an endpoint for our use, protoSerialProtocol is defined in this same frame ep := {_proto: Clone(protoSerialProtocol), _parent: self}; // JAA 6/24/99 assume a PC connection ep.configOptions := [ { label: kCMSAsyncSerial, type: 'service, opCode: opSetRequired }, { label: kCMOSerialIOParms, type: 'option, opCode: opSetNegotiate, data: { bps: k19200bps, dataBits: k8DataBits, stopBits: k1StopBits, parity: kNoParity } }, { label: kCMOInputFlowControlParms, type: 'option, opCode: opSetNegotiate, data: { xonChar: unicodeDC1, xoffChar: unicodeDC3, useSoftFlowControl: true, useHardFlowControl: nil } }, ]; SetValue(result,'text,"Instantiating the endpoint..."); // instantiate the endpoint anErr := ep:Instantiate(ep, nil); SetValue(result,'text,"Setting the endpoint options..."); ep:SetOptions([myInputOptions,myOutputOptions]); if anErr then begin :Notify(kNotifyAlert, "NewtSync", "Sorry, communications port is already in use!"); return; end else begin gConnected := true; anErr := ep:Connect(nil,nil); //For Mac Serial MNP, Connect will return if there is a timeout. end; end; SetValue(result,'text,"Setting the input spec..."); ep:SetInputSpec(ep.waitforACK); SetValue(result,'text,"Waiting for Mac..."); end; %    "   ffunc(msg) begin SetValue(result,'text,msg); end %   "" ˜     (   {} (   rfunc() begin SetValue(result,'text,"Connected."); end %   ÿˆ @   ÿ’func() begin if currentEntry then begin currentEntry.uniqueID := EntryUniqueID(currentEntry); :SendObject(currentEntry); currentCursor:Next(); currentEntry := currentCursor:Entry(); end; end %    ("Connect"   ÿ&func(theArray) begin local addComma := nil; ep:MOutput("("); for i := 0 to Length(theArray) - 1 do begin local value := theArray[i]; if addComma then ep:MOutput(Chr(44)); // comma else addComma := true; :SendObject(value); end; ep:MOutput(")"); end %   ÿ func(value) begin if PrimClassOf(value) = 'frame then begin :SendFrame(value); end; else if PrimClassOf(value) = 'array then begin :SendArray(value); end; else if ClassOf(value) = 'symbol then begin ep:MOutput(Chr(34)); ep:MOutput(SPrintObject(value)); ep:MOutput(Chr(34)); end; else if ClassOf(value) = 'string then begin ep:MOutput(Chr(34)); theValue := value; StrReplace(theValue, "\"", "\\\"", nil); ep:MOutput(theValue); ep:MOutput(Chr(34)); end; else if ClassOf(value) = 'int then begin ep:MOutput(Chr(34)); ep:MOutput(SPrintObject(NumberStr(value))); ep:MOutput(Chr(34)); end; else if ClassOf(value) = 'Boolean then begin ep:MOutput(Chr(34)); if value = 'true then begin ep:MOutput("TRUE"); end; else begin ep:MOutput("FALSE"); end; ep:MOutput(Chr(34)); end; else if PrimClassOf(value) = 'immediate then begin ep:MOutput(Chr(34)); ep:MOutput(SPrintObject(value)); ep:MOutput(Chr(34)); end; else if PrimClassOf(value) = 'string then begin ep:MOutput("{ class = "); ep:MOutput(Chr(34)); ep:MOutput(SPrintObject(ClassOf(value))); ep:MOutput(Chr(34)); ep:MOutput("; value = "); ep:MOutput(Chr(34)); theValue := SPrintObject(value); StrReplace(theValue, "\"", "\\\"", nil); ep:MOutput(theValue); ep:MOutput(Chr(34)); ep:MOutput(";}"); end; else begin ep:MOutput("{ class = "); ep:MOutput(Chr(34)); ep:MOutput(SPrintObject(ClassOf(value))); ep:MOutput(Chr(34)); ep:MOutput("; value = "); ep:MOutput(Chr(34)); theValue := SPrintObject(value); StrReplace(theValue, "\"", "\\\"", nil); ep:MOutput(theValue); ep:MOutput(Chr(34)); ep:MOutput(";}"); end; end %     (     (     (   ÿ$func() begin :SetStatusMsg("Saving current record..."); if (HasSlot(currentEntry, 'uniqueID)) then RemoveSlot(currentEntry, 'uniqueID); //EntryChangeXmit(currentEntry, kAppSymbol); EntryChangeXmit(currentEntry, nil); //:SetStatusMsg("Record saved."); return ""; end %   [] (   ÿžfunc(linkID, protocol) begin [ { label: "inet", type: 'service, opCode: opSetRequired, result: nil, }, { label: "ilid", // set the link id type: 'option, opCode: opSetRequired, result: nil, form: 'template, data: { arglist: [ linkID, ], typelist: [ 'struct, 'ulong, ], }, }, { label: "itsv", // set the transport protocol (TCP or UCP) type: 'option, opCode: opSetRequired, result: nil, form: 'template, data: { arglist: [ protocol, ], typelist: [ 'struct, 'ulong, ], }, }, ]; end %   ÿ°func() begin InetDisplayStatus(nil, myStatusView, nil); ep := {_proto: Clone(protoSerialProtocol), _parent: self}; theConfig := :GetInetConfigOptions('myLinkID, 1); ep.configOptions := theConfig; SetValue(result,'text,"Instantiating the endpoint..."); // instantiate the endpoint Print(theConfig); try anErr := ep:Instantiate(ep, :GetInetConfigOptions('myLinkID, 1)); onexception |evt.ex| do begin Print(CurrentException()); return; end; Print("Instantiated"); Print(anErr); SetValue(result, 'text, "Connecting the endpoint..."); //ep:Connect(call kTCPConnectOptions with (call kHostAddrToNum with ("192.168.1.100"), 15552),nil); SetValue(result, 'text, "Connecting to Mac..."); :ConnectToOutside(); end %   ÿ¬{ async: true, reqTimeout: 6000, completionScript: func(ep, options, result) begin if result then ep:ConnectFailure(); else ep:ConnectSuccess(); end, } %   ^func() begin Print("Connection failed."); end %   zfunc() begin epConnected := true; :ConnectToOutside(); end %   ÿÎfunc(localPort, useDefaultPort) begin [ { label: "ilpt", // set the local port type: 'option, opCode: opSetRequired, result: nil, form: 'template, data: { arglist: [ localPort, // local port number useDefaultPort, ], // use default port typelist: [ 'struct, 'short, 'boolean, ], }, }, ]; end %   †func() begin :DoNothing(); nevermind := true; :DoNothing(); end %       "func() begin end %   ÿ func() begin :SetStatusMsg("Getting Internet Address..."); DNSGetAddressFromName(ipAddr.entryline.text, self, 'ConnectViaTCP); end %   ÿ~func(dnsResultArray, dnsResultCode) begin if dnsResultCode = nil and Length(dnsResultArray) > 0 then begin :SetStatusMsg("Connecting to Mac..."); theRemoteAddress := dnsResultArray[0].resultIPAddress; ep:Connect([ {label: "itrs", type: 'option, opCode: opSetRequired, result: nil, form: 'template, data: {arglist: [theRemoteAddress, 15552], typelist: ['struct, ['array, 'byte, 4], 'short]} }], {async: true, reqTimeout: 2000, _parent: self, CompletionScript: func (ep, options, err) begin if err then begin ep:Notify(kNotifyAlert, kAppName, "Couldn't connect to the specified address."); ep:Cleanup(); end; else ConnectButton:ConnectedSuccess(); end}); end; else begin :Notify(kNotifyAlert, kAppName, "Couldn't find the specified host."); :Cleanup(); end; end %     (       ÿGÌ// this is our special endpoint with the protocol built in. This works fine as long as you remember // that this entity is created in Read-only space. Stay tuned for a solution where this is created // in RAM (actually move this code so it executes during viewSetupDoneScript time and that's it) { _proto: protoBasicEndpoint, // the basic serial endpoint with the serial port configuration // the rest here is just code for the state machine, all the state frames are stored inside the // the endpoint itself, it's just a handy place to put them, those could be stored anywhere. // We need to catch the last abort exception, later this should be more uniform, check // out what the exception was and ignore the abort one (the one causing the notify). exceptionHandler: func(exception) begin end, // vincent // I modified below codes to receive unicode string. // The default input spec(especially, 'form' slot) is 'string (it can be omitted). // The high byte of unicode string corresponding MacRoman is 0, // and if Newton client receives as string then the string length will be 0. // For example, "ACK?" is '41 43 4B 3F' as ASCII hex value is '00 41 00 43 00 4B 00 3F' as hex value. // If Newton server send "ACK?" string as unicode, then Newton receives NULL string because the first bytes are terminator. // Therefore, I changed input spec form to 'bytes, // and recevied data(bytes data) are converted to unicode string by getUnicodeStringFromData function. // this is just the initial handshaking part to make sure that both ends are alive waitforACK: { form:'bytes, termination: { endSequence:0x3f }, // ACK? expected InputScript: func(endpoint, s, term, opt) begin local u; u := endpoint:getUnicodeStringFromData(s); if (StrPos(u, "ACK?", 0)) then begin // tell status if needed endpoint:MOutput("ACK"); // send response endpoint:MOutput(unicodeEOT); endPoint:ConnectOk(); endpoint:SetInputSpec(endpoint.waitForFUNCTION); // the main dispatch loop end; end, }, // This is the generic dispatcher state, send something ending with ! and // the Newton will serve. waitForFUNCTION: { form:'bytes, termination: { endSequence:0x21 }, // ACK? expected InputScript: func(endpoint, s, term, opt) begin local u; u := endpoint:getUnicodeStringFromData(s); if(StrPos(u, "HEARTBEAT!", 0)) then //Simple "Heartbeat" for quick check that connection is still good... begin endpoint:SetStatusMsg("Connected."); endpoint:MOutput("HEARTBEATOK"); endpoint:MOutput(unicodeEOT); end; if(StrPos(u,"VERSION!",0)) then // version check... for later, to make sure versions sync begin endpoint:MOutput(kVersion); // added end character -jaa 1.7d77 endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "SOUPS!", 0)) then // get the list of soup names begin endpoint:SendSoupNames(); endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "SETSOUP!", 0)) then // set the current soup begin endpoint:SetStatusMsg("Setting soup name..."); endpoint:SetInputSpec(endpoint.waitForSoupName); endpoint:MOutput("SOUPNAME"); endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "SETLASTSYNCDATE!", 0)) then // set the last sync date begin endpoint:SetInputSpec(endpoint.waitForSyncDate); endpoint:MOutput("LASTSYNCDATE"); endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "SOUPINFO!", 0)) then // return the soup info frame begin endpoint:SendSoupInfo(); endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "RECORDCOUNT!", 0)) then // return the record count begin endpoint:SendRecordCount(); endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "NEXTRECORD!", 0)) then // get the next record begin //endpoint:SetStatusMsg("Sending next record..."); endpoint:GetNextRecord(); endpoint:MOutput(unicodeEOT); //endpoint:SetStatusMsg("Record sent."); end; if (StrPos(u, "EXECUTESCRIPT!", 0)) or (StrPos(u, "SETSLOT!", 0)) then // execute the given script begin endpoint.returnResults := true; endpoint:SetInputSpec(endpoint.waitForScript); endpoint:MOutput("SCRIPT"); endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "ES!", 0)) or (StrPos(u, "SETSLOT!", 0)) then // execute the given script begin endpoint.returnResults := nil; endpoint:SetInputSpec(endpoint.waitForES); endpoint:MOutput("SCRIPT"); endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "GETDELETEDRECORDS!", 0)) then // find deleted records begin endpoint:SetStatusMsg("Getting deleted records"); endpoint:SetInputSpec(endpoint.waitForUIDs); endpoint:MOutput("UIDS"); endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "DELETERECORDS!", 0)) then // delete specified records begin endpoint:SetInputSpec(endpoint.waitForDelUIDs); endpoint:MOutput("UIDS"); endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "RERUNSCRIPT!", 0)) then // re-run the previously executed script begin endpoint:MOutput(endpoint:scriptToExecute()); endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "TIME!", 0)) then // return the Newton's current time begin endpoint:MOutput(NumberStr(Time())); endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "SAVEREC!", 0)) then // set the value of an entry slot begin endpoint:MOutput(endpoint:currentSaveRecScript()); endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "ADDREC!", 0)) then begin endpoint:MOutput(endpoint:currentAddRecScript()); endpoint:MOutput(unicodeEOT); end; if (StrPos(u, "BYE!",0)) then // computer is going away begin endpoint:SetStatusMsg("Remote computer disconnected."); endpoint:Cleanup(); end; end, }, waitForSoupName: { form:'bytes, termination: { endSequence:4 }, // ACK? expected InputScript: func(endpoint, s, term, opt) begin local u; u := endpoint:getUnicodeStringFromData(s); u := SubStr(u,0,strlen(u)-1); //strip off the 0x04 endpoint:SetSoupName(u); endpoint:SetStatusMsg("Syncing " & u); endpoint:SetInputSpec(endpoint.waitForFUNCTION); endpoint:MOutput("SOUPNAMESET"); endpoint:MOutput(unicodeEOT); end }, waitForSyncDate: { form:'bytes, termination: { endSequence:4 }, // ACK? expected InputScript: func(endpoint, s, term, opt) begin local u; u := endpoint:getUnicodeStringFromData(s); endpoint:MOutput("LASTSYNCDATESET"); u := SubStr(u,0,strlen(u)-1); //strip off the 0x04 endpoint.startDate := StringToNumber(u); endpoint:SetInputSpec(endpoint.waitForFUNCTION); endpoint:MOutput(unicodeEOT); end }, waitForScript: { form:'bytes, termination: { endSequence:4 }, // ACK? expected InputScript: func(endpoint, s, term, opt) begin local u; u := endpoint:getUnicodeStringFromData(s); u := SubStr(u,0,strlen(u)-1); //strip off the 0x04 endpoint:SetInputSpec(endpoint.waitForFUNCTION); local scriptResult := endpoint:ExecuteCustomScript(u); if (StrFilled(SPrintObject(scriptResult))) then endpoint:MOutput(SPrintObject(scriptResult)); endpoint:MOutput(unicodeEOT); end; }, waitForUIDs: { form:'bytes, termination: { endSequence:4 }, // ACK? expected InputScript: func(endpoint, s, term, opt) begin local u; u := endpoint:getUnicodeStringFromData(s); u := SubStr(u, 0, strlen(u)-1); // strip off the 0x04 endpoint:SetInputSpec(endpoint.waitForFUNCTION); endpoint:SendDeletedRecords(u); endpoint:MOutput(unicodeEOT); end; }, waitForDelUIDs: { form:'bytes, termination: { endSequence:4 }, // ACK? expected InputScript: func(endpoint, s, term, opt) begin local u; u := endpoint:getUnicodeStringFromData(s); u := SubStr(u, 0, strlen(u)-1); // strip off the 0x04 endpoint:SetInputSpec(endpoint.waitForFUNCTION); endpoint:DeleteRecords(u); endpoint:MOutput(unicodeEOT); end; }; } (   ÿfunc(s) begin local os; os := nil; // 030506 Vincent if ClassOf(s) = 'string then os := { form:'binary, target:{ offset:0, length:StrLen(s) * 2 } }; if connectionIsTCP then begin if (s = unicodeEOT) then begin ep:Output(0, nil, nil); // 030506 Vincent ep:Output(s, nil, nil); end; else if ClassOf(s) = 'string then begin if StrCompare(s, "") <> 0 then begin ep:Output(s, nil, os); // 030506 Vincent end; end; else begin if (StrCompare(SPrintObject(s), "") <> 0) then begin ep:Output(0, nil, nil); // 030506 Vincent ep:Output(s, nil, nil); end; end; end; else ep:Output(s, nil); end %       œfunc(s) begin Print("Setting soup name to " & s); currentSoupName := s; end %    "   ÿ¦func(s) begin // Takes a string with a tab delimited list of cached record matches. // Returns a tag-delimited list of records that no longer exist on the Newton. local foundRecord := nil; local fn := StrTokenize(s, $\t); local currentUIDStr; local currentUID; local currentRecord; local theSoup := GetUnionSoupAlways(currentSoupName); local deletedRecordsString := ""; local recordStillExists := nil; while (currentUIDStr := call fn with ()) do begin currentUID := Floor(StringToNumber(currentUIDStr)); currentRecord := theSoup:Query(nil):GotoKey(currentUID); if not (IsFrame(currentRecord) and (currentRecord._uniqueID = currentUID)) then begin foundRecord := true; deletedRecordsString := deletedRecordsString & currentUIDStr & "\t"; end; end; if foundRecord then // strip off the last tab deletedRecordsString := SubStr(deletedRecordsString,0,strlen(deletedRecordsString)-1); ep:MOutput(deletedRecordsString); return nil; end %   ÿ*func(s) begin // Takes a string with a tab delimited list of record UIDs to delete. local fn := StrTokenize(s, $\t); local currentUIDStr; local currentUID; local theSoup := GetUnionSoupAlways(currentSoupName); while (currentUIDStr := call fn with ()) do begin currentUID := Floor(StringToNumber(currentUIDStr)); currentRecord := theSoup:Query(nil):GotoKey(currentUID); if (IsFrame(currentRecord) and (currentRecord._uniqueID := currentUID)) then begin try EntryRemoveFromSoupXmit(currentRecord, kAppSymbol); onexception |evt.ex| do :Notify(kNotifyAlert, "NewtSync", "Couldn't delete record!"); end; end; return nil; end %   ÿFfunc(data) // vincent begin local str; local count, len; str := nil; if data then begin len := Length(data); for count := 2 to len - 1 by 2 do begin str := str & CHR( (data[count] << 8) + data[count+1] ); end; end; // Print(str); return str; end %protoTextButtonConnectButton       ÿŒ @protoLargeClosebox    :  .    ÿh @    (("Ready to connect."     T hÅ 7result     :  label .   ÿô @     1 PÆ   "IP Address" (    § (protoLabelInputLineipAddr     :  .    ÿh @    ( §     r U 7version ÿ    "ÿ   ÿì// must return the value of inherited:?viewQuitScript(); func() begin RemovePowerOffHandler(self); ConnectButton:Cleanup(); tSoup := GetStores()[0]:GetSoup(ROM_SystemSoupName); tCursor := Query(tSoup, {type:'index, indexpath:'tag, startKey:"NewtSync Settings", validTest: func(entry) (entry <> nil) and StrEqual("NewtSync Settings", entry.tag)}); tPrefs := tCursor:Entry(); if tPrefs then begin tPrefs.connIP := ipAddr.entryline.text; tPrefs.connType := ConnectionType.entryline.text; EntryChange(tPrefs); end; else begin tPrefs := {tag:"NewtSync Settings", connIP:ipAddr.entryline.text, connType:ConnectionType.entryline.text}; tSoup:Add(tPrefs); end; inherited:?viewQuitScript(); // this method is defined internally end %   @ "   Bfunc(what) begin return nil; end %   Tfunc(linkID, statusFrame, err) begin end %   ÿ"dfunc() begin local theMeeting := ConnectButton.currentEntry; //Print(theMeeting); local theNewMeeting := nil; local ep := ConnectButton.ep; local soupNumber := 0; local cachedSoupNumber := 0; local cachedUID := 0; local uid := nil; local makeNewRecord := true; SetValue(result, 'text, "Syncing Dates..."); if IsFrame(theMeeting) then begin //Print("is a frame"); // look for a soup number if HasSlot(theMeeting, 'repeatType) then soupNumber := 1; //Print("soupNumber = " & NumberStr(soupNumber)); // figger out if we have to add a new record if HasSlot(theMeeting, '_uniqueID) then // cached match found begin //Print("existing record found"); // split up the UID fn := StrTokenize(theMeeting._uniqueID, $/); local cachedSoupNumberStr := call fn with (); cachedSoupNumber := Floor(StringToNumber(cachedSoupNumberStr)); //Print("cachedSoupNumber = " & cachedSoupNumber); cachedUID := call fn with (); //Print("cachedUID = " & cachedUID); // replace _uniqueID with the last path component theMeeting._uniqueID := cachedUID; uid := cachedUID; // get the cached record local theSoup := GetUnionSoupAlways("Calendar"); if cachedSoupNumber = 1 then begin //Print("Repeat Meetings soup"); theSoup := GetUnionSoupAlways("Repeat Meetings"); end; else //Print("Calendar soup"); //Print("trying to find the cached record"); theNewMeeting := theSoup:Query(nil):GotoKey(Floor(StringToNumber(uid))); //Print("test"); //Print(theNewMeeting); if (IsFrame(theNewMeeting) and (theNewMeeting._uniqueID = Floor(StringToNumber(uid)))) then begin //Print("found cached record"); makeNewRecord := nil; end; else begin //Print("Couldn't find cached record."); makeNewRecord := true; end; if makeNewRecord = nil then begin //Print("found record in soup."); :MergeFrames(theNewMeeting, theMeeting); // add slots from Mac meeting //Print(theNewMeeting); // see if cached record is in the wrong soup if cachedSoupNumber < soupNumber then begin //Print("Cached record is in the wrong soup."); theSoup := GetUnionSoupAlways("Calendar"); if HasSlot(theNewMeeting, 'repeatType) then RemoveSlot(theNewMeeting, 'repeatType); if HasSlot(theNewMeeting, 'mtgInfo) then RemoveSlot(theNewMeeting, 'mtgInfo); if HasSlot(theNewMeeting, 'mtgStopDate) then RemoveSlot(theNewMeeting, 'mtgStopDate); if HasSlot(theNewMeeting, 'exceptions) then RemoveSlot(theNewMeeting, 'exceptions); if HasSlot(theNewMeeting, 'InstanceNotesData) then RemoveSlot(theNewMeeting, 'InstanceNotesData); local theNewRecord := EntryMoveXmit(theNewMeeting, theSoup, kAppSymbol); uid := theNewRecord._uniqueID; end; else if cachedSoupNumber > soupNumber then begin theSoup := GetUnionSoupAlways("Repeat Meetings"); local theNewRecord := EntryMoveXmit(theNewMeeting, theSoup, kAppSymbol); uid := theNewRecord._uniqueID; end; else begin //Print("changing existing record"); EntryChangeXmit(theNewMeeting, kAppSymbol); end; end; end; else // need a new record begin //Print("need a new record"); theNewMeeting := DeepClone(meetingTemplate); // get the default meeting theNewMeeting.viewStationery := 'RepeatingMeeting; //Print("theNewMeeting = "); //Print(theNewMeeting); :MergeFrames(theNewMeeting, theMeeting); // add slots from Mac meeting //Print("after merge:"); //Print(theNewMeeting); theSoup := GetUnionSoupAlways("Calendar"); soupNumber := 0; if HasSlot(theNewMeeting, 'repeatType) then begin theSoup := GetUnionSoupAlways("Repeat Meetings"); soupNumber := 1; // add the necessary slots theNewMeeting.exceptions := nil; theNewMeeting.InstanceNotesData := nil; end; local theNewRecord := theSoup:AddToDefaultStoreXmit(theNewMeeting, kAppSymbol); uid := theNewRecord._uniqueID; end; end; else // not a frame //Print("not a frame!"); //Print("test"); //Print(uid); local test := uid; // output the new UID to cache if IsInteger(uid) then begin //Print("Should print UID."); //Print(NumberStr(soupNumber) & "/" & uid); ep:MOutput(NumberStr(soupNumber)); ep:MOutput("/"); ep:MOutput(NumberStr(uid)); end; //Print("done"); return nil; end %   ÿ@{ class:'meeting, NotesData:nil, viewBounds:nil, viewStationery:'meeting, mtgInvitees:nil, mtgLocation:nil, version:2, mtgIconType:nil, mtgAlarm:nil } (   òfunc(masterFrame,servantFrame) begin foreach slot,value in servantFrame do SetVariable(masterFrame, slot, value); end %   ÿÐfunc() begin AddPowerOffHandler(self); // set the version number in the UI SetValue(version, 'text, kVersion); tSoup := GetStores()[0]:GetSoup(ROM_SystemSoupName); tCursor := Query(tSoup, {type:'index, indexpath:'tag, startKey:"NewtSync Settings", validTest: func(entry) (entry <> nil) and StrEqual("NewtSync Settings", entry.tag)}); tPrefs := tCursor:Entry(); if tPrefs then begin SetValue(ConnectionType.entryline, 'text, tPrefs.connType); SetValue(ipAddr.entryline,'text, tPrefs.connIP); end; else begin tPrefs := { connType: "Serial", connIP: "", }; tSoup:Add(tPrefs); end; end %   Jfunc() begin newNoteText := ""; end %   zfunc( chunk ) begin newNoteText := newNoteText & chunk; end %   Žfunc() begin GetRoot().paperroll:MakeTextNote(newNoteText, true); end %    Text ˜   ÿJfunc( myURL, myTitle ) begin mySoup := GetUnionSoupAlways( "Raissa:40Hz" ); myEntry := mySoup:AddToDefaultStoreXmit( { title:myTitle, URL:myURL }, nil ); end %€ protoFloater Main[[~s internally"   RECTlefttoprightbottom`ÿÿÿÿÐÀ  Ð NUMB  jfunc() begin fprefs.internalStore := viewValue; end SCPNewton Toolkit 1.6.3xHPð€ÿÜÿìô”(üHPð€P € €'®NewtSyncZð`JÚ  õõõõõõõõõõiconõ:¶ :xXõõõõ6 Y. :¶  * Newton 2.1‚õõõõ'0ÆNewtSync:everchanging NewtSyncSymþÙ8þÙHøøôôé øôP1ÿâ ÿ)¬)©2002 everchanging. All rights reserved.Æ:x@  Resourcesnc.ðϺp269375õÐËÅØ  6Ò:x(@formXSync.ð1668269375ËÅØ  6Ò:x(ÿÖòÌ)":xàÿ)¬ :xà'0ϰ ÆõÐ)"ÅØ-‚3XÅØþÙH!ÝÀ¢ 1˜ÿþ(ÄNŽPRJTNTP15Û»¹,ÍÿÖè™ù¸Dn1aDnØEnglishPRNTÝ…Øÿ-‚:yPõÐ :yP!ÝÀ ƒj°PRNTþÙH!ÝÀ11aDn[[~ÿÒ¸(ÄnSTR "PRNT.PJPF:PJSTF¿ôÿÿÿÿ'ÿÿ•'GÿÈ(Window Settingsgêêuntitledc]f¤BD÷ Resourcesÿ¼_-prsrcRSED newtClient÷untitled:newtClient:Resources.AppleUSBMassStorageÿÿîîuntitledc]f¤BD÷NIE Public APIü°DºTEXTNTP1 newtClient÷"untitled:newtClient:NIE Public API.AppleUSBMassStorageÿÿîîuntitledc]f¤BD÷ HostAddrToNumù¹áäTEXTNTP1 newtClient÷!untitled:newtClient:HostAddrToNum.AppleUSBMassStorageÿÿììuntitledc]f¤BD÷ Project Dataþ»¹5TEXTR*ch newtClient÷ untitled:newtClient:Project Data.AppleUSBMassStorageÿÿîîuntitledc]f¤BD÷ XSync Floater»Áä…FLFMNTP1 newtClient÷!untitled:newtClient:XSync Floater.AppleUSBMassStorageÿÿ%ÿÀøøxÿ atcoatcoþ$H+10.0½ÏÞh½Ð@ê½Ð@Ø v1•†Î‡ç»j²€€€€