ERPM?AppleApple_partition_map?PM@disk imageApple_HFS@3noogPMApple_FreeH+10.0)*;\*;T' =B1^ʧ;;;=; ;:xd;4x 5 ComponentTool7$u$u*;V*;Vcބx5 DMPrefsTool8$$*;V*;Vcݜ05InstallerFileTools.sh9$N$N*;V*;Vc.5IOXperts Uninstaller:$N$N*;V*;Vc25IOXpertsUninstaller.sh;$N$N*;V*;Vc+<5IOXpertsUninstallerTools.sh<$N$N*;V*;VcO  5Launcher=$$*;V*;Vc&5LaunchInTerminal>$]$]*;V*;Vc5 MoveToTrash?$n$n*;V*;Vcm-,5UninstallerTools.sh@$N$N*;V*;VcD,5UninstallStarter.shA$N$N*;V*;Vc65AddGlobalLoginItem75 ComponentTool85 DMPrefsTool95InstallerFileTools.sh:5IOXperts Uninstaller;5IOXpertsUninstaller.sh<5IOXpertsUninstallerTools.sh=5Launcher>5LaunchInTerminal?5 MoveToTrash@5UninstallerTools.shA5UninstallStarter.shx 4 ^ * > \ :  hZ ^, J  ^ 8 "h>(  English.lproj*;V*;V*;V*;VcA(InstallationCheck*;V*;V*;V*;Vcm50InstallerFileTools.sh*;V*;V*;V*;VcTEXTunix Inventory.sh*;V*;V*;V*;Vc2IOXpertsUninstaller.sh*;V*;V*;V*;VcTEXTunix+<IOXpertsUninstallerTools.sh *;V*;V*;V*;VcTEXTunixO  <IOXWebcamX-1.1.2d20-Log.bom!*;V*;V*;V*;Vc$  D $ ` H n NT'IOXperts Webcam Driver 1.1.2d20 Logging  English.lprojBIOXWebcamX-1.1.2d20-Log.pax.gz,VolumeCheck.strings 5 ComponentTool.hBIOXWebcamX-1.1.2d20-Log.pax.gz"*;V*;V*;V*;Vc$J @IOXWebcamX-1.1.2d20-Log.sizes#*;V*;V*;V*;Vc$4Launcher$*;V*;V*;V*;Vc MoveToTrash%*;V*;V*;V*;Vcm- postflight&*;V*;V*;V*;Vcm preflight'*;V*;V*;V*;Vcmqt6fix(*;V*;V*;V*;VcmKD ReadMe.txt)*;V*;V*;V*;VcTEXTR*ch;),UninstallerTools.sh**;V*;V*;V*;VcTEXTunixD+2VideoInstallerTools.sh+*;V*;V*;V*;VcTEXTunixh&0 VolumeCheck-*;V*;V*;V*;VcmU English.lproj8InstallationCheck.strings*;V*;V*;V*;VcTEXTCWIE?>IOXWebcamX-1.1.2d20-Log.info*;V*;V*;V*;Vc$ X B JT'IOXperts Webcam Driver 1.1.2d20 Logging*;T*;V*;V'IOXperts Webcam Driver 1.1.2d20 Logging.Trashes*;V*;[*;[*;VcB@6IOXperts Uninstaller.app/*;V*;V*;V*;VcA<IOXWebcamX-1.1.2d20-Log.pkg*;V*;V*;V*;VcA0HFS+ Private Data*;T*;T*;T*;T@PWWHFS+ Private Data.TrashesIOXWebcamX-1.1.2d20-Log.pkgContents*;V*;V*;V*;VcAContentsPkgInfo.*;V*;V*;V*;Vc$ V Resources*;V*;V*;V*;VcA Resources*AddGlobalLoginItem,*;V*;V*;V*;Vc7  ComponentTool*;V*;V*;V*;Vcބ DMPrefsTool*;V*;V*;V*;Vcݜ lV<tRx<',VolumeCheck.strings*;V*;V*;V*;VcTEXTCWIEDInstallationCheck.stringsIOXWebcamX-1.1.2d20-Log.infoVolumeCheck.strings ComponentTool DMPrefsToolInstallationCheckInstallerFileTools.sh Inventory.shIOXpertsUninstaller.sh IOXpertsUninstallerTools.sh!IOXWebcamX-1.1.2d20-Log.bom"IOXWebcamX-1.1.2d20-Log.pax.gz#IOXWebcamX-1.1.2d20-Log.sizes$Launcher% MoveToTrash& postflight' preflight(qt6fix) ReadMe.txt*UninstallerTools.sh+VideoInstallerTools.sh,AddGlobalLoginItem- VolumeCheck.PkgInfo/IOXperts Uninstaller.app/Contents0*;V*;V*;V*;VcA0/Contents0 Info.plist1$N*;8*;V*;Vc%W0MacOS2*;V*;V*;V*;VcA0PkgInfo4$N$N*;V*;VcY0 Resources 5*;V*;V*;V*;VcA10 Info.plist20MacOS.2IOXperts Uninstaller3$N$N*;V*;VcX32IOXperts Uninstaller40PkgInfo50 Resources*5AddGlobalLoginItem6$f$f*;V*;VcZ X 0  |n^`(rPn&N&x4"16" = "Could not remove previous receipt - contact IOXperts"; Title IOXperts Webcam Driver Version 1.1.2d20 DefaultLocation / NeedsAuthorization YES Required NO Relocatable NO RequiresReboot YES UseUserMask NO OverwritePermissions NO InstallFat NO "16" = "This package must be installed on the current boot volume"; h\ ^ 8__PAGEZEROX__TEXT00__text__TEXT__picsymbol_stub__TEXT<,__symbol_stub__TEXT<,__cstring__TEXT<(,__textcoal_nt__TEXT?K/ __const__TEXT?/__constructor__TEXT?/__destructor__TEXT@0__DATA@0 __data__DATA@(0__dyld__DATA(@(0__const__DATA`@ `0__const_coal__DATA@0 __mod_init_func__DATA@0 __mod_term_func__DATA@0 __cfstring__DATA@ 0__bss__DATA@__common__DATA@`__IMPORTP@__pointers__IMPORTP@__jump_table__IMPORTP@8__LINKEDIT` P\ /usr/lib/dyld X"˹C/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon 4"˹C/usr/lib/libstdc++.6.dylib 45FC/usr/lib/libgcc_s.1.dylib 4"˹CX/usr/lib/libSystem.B.dylibP,[0 Pvv<럐UE$҉T$E D$E$1ÐUS$D$=@$8-@t^D$$3-@$-D$$%-]$-$,D$D$=@$,$[]ÐUVS u @tP=@uGظx=<D‰D$ED$ E D$D$|= $, [^]À=@t$t P9t $i,@@@t8u- P @] $, @Jt @@0=u@D$D$T= Pð$+@+USE @t E[][]ÐUVS E ED$ ED$D$4$u+Å~D$D$4$؁ [^]US]yt($=D+D$<$$ +1[]ÐUSEyt {u 1[]ÍD$\$$*uԉ$*1[]UWVS,@@@}$@uq=@u9=@u 1,[^_]D$ D$D$X%$@H D$ D$D$%$@" =@t뫸,[^_]EE@EE9EOU ޿=t FO)ȅt=t VO)ʅu @뙿= t VO)ʸ@Eˆ@]UtÃtuP@$@áP@@@ÐU1]U]UWVS|] u؁|[^_]ËEtE8tߍD$D$4$(D$t$$b(Åu$(fuUT$4$i(D$}|$4$a(ÅfED$D$ D$D$<$(f+I(UfBB$O(E@US]h@{u[]C$(CE[] (US]h@{tC$'C$'][]I'US]x@CTt$'t$'t$'t$'t E[]H'[]US]x@CTt$#'t$R't$@'t$.'t$&][]`&UWVSu] D$P\$F$%D$|$$&t [^_]D$/<$&t5X1щ $m&FT\$$%1[^_]ÉʐUWSExu[_]Ët$@D$$%ÅtΉ$%D$ D$|$$x%u$%떉|$ D$=D$>E $<%1} у;Mw1뼿뵐UWVS,]xu؃,[^_]Ët @D$$$ƅtЉ$$xD$ D$|$4$$u4$%%ǃtD$.<$$…tED$D$>B$$t1볋E䉃t1UWVSL}t$t$LJLJ$gnht$$aght$Eu 1L[^_]Í$?$$EU܉9Ut@EE]EED$$gnht#EątEt4]̉ADADA D ADE]̋Uĉ$#EM9MuWEuЋ]܍ED$$aght#ƅt<t.ADADA D ADE4$"EE9EuUWVS}E D$$ >WT<E‰D$E D$$$>|@>8>xDƉD$E D$$H>OyDމ\$E D$$X>.xyu [^_]ËE D$$|>$ !{E D$$?XD$E D$$ ?GXD$E D$$0?lD$E D$$D?ltD$E D$$T?OpD$E D$$h?1[^_]ÍxD$E D$$h> E D$$|?[^_]11ۉt$E D$$>D$D$$D$E D$$>D$D$D$D$E D$$>VD$D$D$D$E D$$>D D$E D$$>DD$E D$$>;UWVS,} EED$ut$E$pÅt=Et$tt$E؁,[^_]D$D$D$ D$D$ 4$#fuEP$3ED$D$4$fGD$ D$D$D$D$D$ ED$ED$E$f=wt fEU1XUWVSu} tF 1[^_]1ۋED$ED$F$ׄu 9^͸UWVSL}$gnht5fyEEEEEgidv$gnhtЉftr@XB\B`B dBh$@t/u<$ƅuXgidvL[^_]E$gnhtaЉf@XB\B`B dBh$qdƉD$$gnhtÅt7EԅtC;t?1ɋE؅t ;BEȋE܅t+;Bt&$1ۃ9u뼄t1@L[^_]þƉD$$gnhtÅt7EԅtC;t?1ɋE؅t ;BEȋE܅t+;Bt&$1ۃ9u뼄t1D$$#RTSÅ$KD$GX$U$\$D$$ RTSÅ$D$$ $$D$$ RTSÅtnD$X$$t_D$$iXOI…l$dvƇ{j@.@뫾@gfLJpD$$TveDÅz$fp$.$QUWVS,u ~D$PD$<$"FTFXƆXdžldžtƆxƆxƆyƆ{dždždžXdžX@@@ @ED$4$ÅutƆxFTtT|$P$t7D$$ct!Ɔx$t$4$ÅEh@fEfEEtUEh@}u.tt@t ؁,[^_]1ۉ؁,[^_]E$E$븍D$ED$E܉$7Åu4$UzD$D$4$>UWVSv2-'((8a60|+2K**N,),)6 `@M p@ @  @,  @AAA+ A>AXAsAA A$A(A,AS @X0Aujzi { . < I /P a m t {7=D29KS[ckr ?8 { ' " " ""n"p""G[^d "H{>#)"  7 0 @ @ _NXArgc_NXArgv___i686.get_pc_thunk.bx___progname__dyld_func_lookup__start_environdyld_stub_binding_helperstart___keymgr_dwarf2_register_sections__cthread_init_routine__mh_execute_header_atexit_catch_exception_raise_catch_exception_raise_state_catch_exception_raise_state_identity_clock_alarm_reply_do_mach_notify_dead_name_do_mach_notify_no_senders_do_mach_notify_port_deleted_do_mach_notify_send_once_do_seqnos_mach_notify_dead_name_do_seqnos_mach_notify_no_senders_do_seqnos_mach_notify_port_deleted_do_seqnos_mach_notify_send_once_errno_exit_mach_init_routine_main_receive_samples_FSGetCatalogInfo_FSPathMakeRef_FSRefMakePath__Z15OSTypeToCStringmPci_NumToString_memmove_sscanf_DebugWriteText__Z13DebugWritePtrPKvl11DebugAction__Z17StdDebugWriteProcPKvl11DebugAction_debugfile___sF_abort_ctime_fchmod_fclose_fflush_fileno_fopen_fprintf_setbuf_time_dprintf_vsnprintf_CFRelease__ZdlPv_CFDictionaryGetValue_CFRetain_CFStringGetCString_CFURLCreateFromFSRef__ZdaPv__Znam_kCFAllocatorDefault_sprintf_strcpy_HUnlock_memset__ZN19InstalledComponentsD0Ev__ZN19InstalledComponentsD1Ev__ZTV19InstalledComponents_gbIsIIDC_gbLogComponents_gbLogCustomized_installedComponents__ZN19InstalledComponents20ReleaseComponentInfoEv__ZN19InstalledComponents22GetInstalledComponentsEv__ZN19InstalledComponents7IterateEPFbP21IOXpertsComponentInfoPvS2_ES2_S2___ZN21IOXpertsComponentInfo3LogEPKc_putchar_puts__ZN15UseResourceFork4OpenEP5FSRefPKc__ZN15UseResourceForkD0Ev__ZN15UseResourceForkD1Ev__ZN19InstalledComponents16GetComponentInfoEPKcRPP21IOXpertsComponentInfoRi__ZN19InstalledComponents25GetComponentInfoFromFSRefEP5FSRefR21IOXpertsComponentInfo__ZN19InstalledComponents9GetFSRefsEPKcRP5FSRefRi__ZN21IOXpertsComponentInfo17ReadFromInfoPlistEv__ZN21IOXpertsComponentInfo18ReadFromCurResFileEv__ZN21IOXpertsComponentInfo18SaveFilenameAndRefEP5FSRef__ZN21IOXpertsComponentInfo24GetComponentResourcePathEPcm__ZN21IOXpertsComponentInfo25ReadComponentDescriptionsEv__ZN21IOXpertsComponentInfoD0Ev__ZN21IOXpertsComponentInfoD1Ev__ZTV15UseResourceFork__ZTV21IOXpertsComponentInfo_CFBundleCreate_CFBundleGetInfoDictionary_CloseResFile_CountResources_CurResFile_FSCloseIterator_FSGetCatalogInfoBulk_FSGetDataForkName_FSOpenIterator_FSOpenResourceFile_Get1IndResource_Get1Resource_GetResource_HLock_ReleaseResource_UseResFile__Znwm___CFConstantStringClassReference_p2cstrcpy_strcat_strrchrstart.sint:t1=r1;-2147483648;2147483647;char:t2=r2;0;127;/SourceCache/Csu/Csu-58//SourceCache/Csu/Csu-58/crt.cgcc2_compiled._start:F(0,1)argc:p(0,2)argv:p(0,3)envp:p(0,3)p:r(0,4)char:t(0,5)=r(0,5);0;127;:t(0,1)=(0,1)int:t(0,2)=r(0,2);-2147483648;2147483647;:t(0,3)=*(0,4):t(0,4)=*(0,5)q:r(0,3)term:(0,6):t(0,6)=*(0,7):t(0,7)=f(0,1)__call_mod_init_funcs_call_mod_init_funcs:f(0,1)p:(0,6)NXArgc:G(0,2)int:t(0,2)NXArgv:G(0,3)environ:G(0,3)__progname:G(0,4)dyld_lazy_symbol_binding_entry_pointdyld_func_lookup_pointer_hex_upper_gDebugWriteProc_gNewDebugFile_gDebugFilename__Z13OpenDebugFilev__GLOBAL__I_installedComponents__GLOBAL__D_installedComponents__Z23PrintComponentsCallbackP21IOXpertsComponentInfoPvS1___Z22ShowCustomizedCallbackP21IOXpertsComponentInfoPvS1___Z41__static_initialization_and_destruction_0ii_bundleIdentifierKey_executableKey1<8__PAGEZEROh__TEXT __text__TEXTk ~0[ __picsymbol_stub__TEXT<<$__symbol_stub__TEXT<<__picsymbolstub1__TEXT@@ __cstring__TEXT , __symbol_stub1__TEXTLL__const__TEXT\\__constructor__TEXT\\__destructor__TEXT\\__textcoal_nt__TEXT\p\@ __StaticInit__TEXT__eh_frame__TEXT| |h $__DATA __data__DATA__nl_symbol_ptr__DATA@H__la_symbol_ptr__DATAX__dyld__DATA$$__const__DATA@t@__mod_init_func__DATA __mod_term_func__DATA __gcc_except_tab__DATA__datacoal_nt__DATA8@ __bss__DATA__common__DATA@8__LINKEDIT`^ /usr/lib/dyld XCS/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon 4CSX/usr/lib/libSystem.B.dylib\T/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon0/usr/lib/libSystem.B.dylib @NB*0H@X0 0 `Р#Wx` $='s?`1 `Gf(! /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI|t/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Inktl/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServicesx/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScriptingx/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HTMLRendering.framework/Versions/A/HTMLRendering/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/NavigationServices.framework/Versions/A/NavigationServices/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CarbonSound.framework/Versions/A/CarbonSound/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolboxD x~x|8`8(Hyy|`x@^@x^@|^@8(@8`-Hy!}8`-@Hx!|N |B}=|9x}N |B}=|9x}N |B}=|9x}N |!|> x~x|8H8`-Hxq~@8@D^D/@Hx^DBBx@L^DBB|@4^DH>D^H ^H/(AHw^DB8DK|8`-@HwH/A4^H /A^H ~H| x}N!~HHw5!|N |B}=|9w}N |B}=|9w4}N |B}=|9v}N |B}=|9w}N |!|> xBHva<_B`@@/A^@T>+@H<_bHv<_bHuՀ!|N |B}=|9u}N |B}=|9u}N |B}=|9u}N |~y|HA!AH,@@,A4(A;,@8xH{8@|^HX8!Px|N |H|#xA|+x!a8AB9aE9!i9)|`t,@4,A,8BX@8'8@A@AFHta;A(A ,@4<8a8C8P88CAHUH ;PxHzxxxKxHzјa@xx8@K!x8!p}(N ,|#x|+x|#x|~x|3x@T<|I8dTT'>TG>Tg>T>T>T>T>T>||0;||CH}#X}cP}C@} L,lL 9B,;@,?9>TT'>,T 6} P; 9AsA ;xN p|HTA`!@|xpH%AH8`8!@|HN ?|_||x|#x|+x!,A<`,AHYsA<8H <8 =xx8HysAHyX8!P|N |h?a?!],A0~,A$<8|AHy-8?8$/A,A=@8Hx,~A,8Hx~Hx8Hx8a@Hxy8a@HP<`?98}cx$Hx/~AD8Hxq~HxY8HxA8aDHx)8aDHx?|ex~8Hx}H<<$<88}Hx]8]^H<8~,AHwh8!`N < , M }N |HA!\8\`dhl!pAtHAH8!@|HN |H|exA|#x8!8a@Hw|y@8a@x8K)AX8!Px|HN |HA!HI,8`@x<8d(H,8`@`<`<,A <<D8e(88H=8/A =@= 8@8i(8H8`aH8!@}hN ||x!C|,A(<8fHv<x8 H 8` Hv̀X8!P8`|N |!C|,A0,A$8c8@8Hvq,@ 8a@HvH8`8!@|N ;8@||?@? ?|{x!|#xX||x8`A y;;`HU|zAt;X~\^`dhHmH;@,@@d9xx8d@K5|xad.A8D X\`^dhHmeH;@/@hxKQ/|x@TX<vd`ig|@@=@ST8aCR#Hm |}y@ ;@H(Hl}8~X8HlxHlxHl= ST8a#R Hl|}y@ ;@H$Hl8a`HlxHlqxHl=ST8aR HlI|}yA8~XHlUxHl}H;@.@@p?De8cvTHlI|}yA$Hl-xpHkxHl1<@IO8`CXiHk|byAlHl H ;@.@ 8`~8!x} N |<@|~x8b!|#xK򽀾T,@ <`8 <x8fK򙀞x,A<8H =8=@x8jKi>|,A=`8H =8?x8K9x/A<@x8x8bK|,A<;8dxK~|@@;<x8ex;Kс8@8|@.Ki<|ex8d,xK8@8|gK=<@x|ex8b848a089(9@8Hf.w@8`|y@a4N}HNa0/AHfUA ~,AHq8X8!Px|| N ,|HܐA|#x|+x!8A88@8DD@Km8|}y&H@HDxH|}y&@0aDx9`H|@<:; 8p;U{:.,@8`H88P|}xTlptx|8cHfhTXXl=txx|X\`d.!HU*: P@|.|gBK|}y&@$aH9+!H@D}+Kx `Aa@,AH @!H,@x8HHс!H:x!8!|x}(N 88cH|&|#y|H|}x;A!A;.@LW:H-,}@ ;.@,|9`@ 8}Ud:9k|.BX8!Px|| N |Ha|}xA|#x!C,Al;|@D;`W:|.,A$}N!}.];A,A |CxH)888`h8!`a|N |;;x!xK5<@x8bAX8!Px|HKxa|#y|HA|~x|+x!|3x8`AT^;|@@W:dxx|e.xN!,8`@~;A8`h8!`a|N /|!AHZyX8!P|N |!K̀X8!P|N |!H)H/AH%H EX8!P|N |~y|B!@;xHZ|cy@p8`HZy|cy@08`H9q<_Bp<<p8BpCH;!|lx|iN!xHZQ|cyAH/AH%%H X8!P|N ||lx|i!N!HH;HY]|B8`!HY<_|cyAboboK||lx|i!N!K|B|}x!8`HYe|~xx8`HY/<_@o,H/AH$AH X8!Pxo,|N |B|}x!8`HX|~xx8`HY!/<_@nH/AH#H =X8!Pxn|N /|8!APTc~8/A@A/A H,/8A$/AH8H8HHW|xX8!P|N /|!ATcv/ A+ A<_U):8B`| .|| N t4`tHht|+x8@K݀A@H|+x8DKAD|lxH\EHE9HHE9H+ A<_U):8B`| .|| N t4`tHht|+x8@K݀A@H|+x8DKAD|lxH\EHE9HHE9H/L@;H/R@;;H@/PCx@L$x;xK=x|dx8xKQ;||x/@Cy@xx8!p!|N  @|aB!|lx|#x@|+x;@99>+A<_U):8BP| .|| N Xdt|`p||hPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP,8H 9H 9|tHܠ H 9HȀ 9HLlLTBUk }kxUJ@.}J[x9H }cx8@Kq|lxH}cx8DKD|lxHd8H}cx8HK=H|lxT:|[."H}cx8LKI8H}cx8HK8LK-H|lxT:};.LI|BH/W:A4Hl7@TH`L89AL@H|PT:|A" x||x|#x|3x|+x&x@f}j[x@@;T2/@@[T|| H/@Tx8@DH|/@ T9 T8D|B"H+/A <_T :8B| .|| N  \(Td4DDxxKx|dx8xKH;H ;[H[;|| H8DxK98@K1^D{||x>@TB8|B8})YHx8DK^D8||xTB8|BHpx8DHx8DK8HK^D9 ||xTB8|B"D^HT8|[.H$/A=x9xHp;@xdx8|H@uxH샻xcx8|xH@Y=xxHx8K18@K)@8@||x|[Hx8KHx8@K@||x|Htx8@Kـ^@8{HPx8DK8@K^D8TB8|BD>@T8|{.JHx8DKu8LK^D||x{TB8>LK<8xKI8|Kq8||xHx8|KUHX89`D9@Ub8|BB>D8 U":+8BU)8| x|I.D@Hhx8K||xHTx8DK8@K@;||x^D} I8TB8|B})ЀDT8};.HH=e@@{}j[x@Al!|N !||#x|{x8!8#xH> {88Ȑ8cH28||yAdx%x\P;xK8/Aex&x;@|";8KiyKyTc"@"A"B"C"D"E"F"G"H"I"J"K"LbMbNbObPbQbRbSbTbUbVbWbXbYbZb[b\b]b^b_b`babbbcbdbe"mblbfbgbhbibjbk<_;8BU|]x;m|.|~./A/AA H8;;@̀{[|`Ph8!`|c|AN |||x!|#xx8@K/\9 |x!`| T:@d/A<8`cxx}N!/|ixA,/9 @ /AH6x8@K Kt8!}#Kx|N |9`H3AaPT8 `a x8a@X\K8a 8@8H7u8a 8K/A/@/A8A x8`89 |Gx}N!/A/@T8a 8KEK8@! x8@88a I H6a x8 Ke/A9@H,8`K8`K8a@8 K|jx hH3|@&|AA||x!|#xC cx8@K|~yA.8`@H.8 @88`xxixLxIN!/8`@`AX/A<8`8 xx}N!/|~xA /8`@x8@KKHx8!aA|}p N |9`PH1qAaPT8\a8a@XK8a 8@8H5UAȀ /@|Cx8 KHa8 K/AH38 8a@K|jxH1|dx8`}N T:|D.N cN N |B=!@8@a 8a$9 a(a,a0a4a8aa ?aK@aKAaKBaKCaKDaKEaĘKFaȘKGa̘KHaИKIaԘKJaؘKKaܘKLa+Ma+Na+Oa+Pa+Qa+Ra+Sa+Ta+Ua+Va+Wa +Xa+Ya+Za+[a+\a +]a$+^a(+_a,+`a0+aa4+ba8+ca<+da@+eaD+faH+gaL+haP+iaT+jaX+ka\+l!`Im8!|N 8H8H 8H|B}H|APpA9kT~+A8p@9J><_*8|X08BH =?9)=8I\><|B88c5IX8!P|H X8!P8c|H+|9Д!@ l Ka; /Ax}N!X8!Px|K|B<_9cB5=?|}x!;<`C+`c+<_B5 <@GN)5,`BUCK0k4+8 HC8BCxKxHMKĽ|!H]c/A$;0|АxKIxH Ky|;Д!H^/@ BH8B^C8BCA X8!P~(|N |!Hy|kxc#/@$5)@LK8BK H45)@$8c0 X8!P|K@H#X8!P|N 8H8H 8H|B<_pB3H!8BCAK݀X8!P|N 8H 8H|B<_B2|#x!|~x8BCKasA xKuX8!P|N C"iN |B}H|+ A<_U):8B`| .|| N t4`tHht|+x8@K݀A@H|+x8DKAD|lxH\EHE9HHE9HKx i HH4 A 9i/| x@H }>Kx xX8!P|Cx|N /|8!APTcv/ A0A/A/H/0A/P@8HHHH|xX8!P|N ||}x!;  8`/z@H eHxH 8@|~8cKi8DK8@8cKU; |ex/RA/P@$e888HTc~K|exH/L8`8@ ;Kh8!`|N D8`@M @ 8`N 8`N |A|}x!|#xcx|+xTc^>Kq8||x}x8@Tc^>K}x8Tc^>8DKA@D8`@A@ 8`H8`x8!pA|N |A|zx!|+xD|#x|B P8bKQDxT}>xK8|dx8@xKY{|cP8cKDxT}>xK8|dx8DxK%A@D8`@A@ 8`H8`x8!pA|N |А|tx!|#x;e/xA;W<x8Bx@@:@@hW8~x<~x~N!/@LW:~x~x|.~N!/@,|^.~x|.YHLW:W8HW:~x~x|.~N!/@,|^.;|.\W<8Bx@A8/@+@:;;@W:|.;}".@;@:@@hW8~x<~x~N!/@LW:~x~x|.~N!/@,|^.~x|.YHLW:W8HW:~x~x|.~N!/@,|^.;|.\W<|x8Z@A8+Ax8!p|N |ܐ||x!|#x;@; ;`;#:H؀/A|@PW}>8BAP|Cx|ZxK)xT}>|{xxK|xxT^>/@ S`HA d x88@xKxK+ATb8~08bH8`A@|@9A;9@@\<^|^;HA/@8!#x|N |ܐ|}x!|#xx|+x;@T^>:W>cxK=|yxH^/AȀt A8|BP8BA(|Cx|ZxKxT{>||xcxKM|yx/@/@LHl$x88@cxKcxK+ATb8~08bH8`@|9A(x/AKTI:8B})ZK=^|^;HA/@8!|N |ܐ||x!|#xx|+x;@T^>:W>cxKU<|yxH^/A؀t A8|BP8BA(|Cx|ZxKxT{>|}xcxK|yx/@ >/!@ D@`Hp$x88@cxKi8|ex8DW>KUcxKY+ATb8~08bH8`!@} 9AAD| Px@A,<^|^;HA/@8`8!|N |ؐ|yx!|#x/AHU8`@A(/@t A :V@@|T~Wb:|B~|cP8cK%$xT}>||xxK8|dx8@xK)8|ex8DW>KA@@@ zxHD:x|@At@ApHPT^>/@hy 9CP@@0|RT ~U":|BBb @@ }*KxH|Z9 @@ |CxHP@AH W>$x~xK;`|yx@@W>|$xT~8HW:~x|B8K8|ex8LWC>KAH@@ xHL;~x|@Ad@AH@t@A@ /A(|x#xxKu|cy@(/@8`H #xxKI8!|N |B??*|}x!|#x/;A4@AxxKI||yAH/@<_8B*/A||[x|ZxxxK99*I||x/A,~X@A9"/|x@8@,^@/@H,AX^Xt T^>A||cP8cKT}>xxK8|dx8xKh8!`x|N |aB!|~x/A8`.H |{yA<?;)8?;)4[]~K ][dx8`.H y~;H -pA ~H 8 h8!`a|N |@&|BaA|{x!8`.|#xH !.|~x@8`8H ).|~xA0<_cxx(x<_>"(tKe|}y@|&TcxxH-|}xA<_=?B(x^)(t>x8`.H qh8!`xa|a}p N |@&|a̐AB!pC|zxT]/@xt@@A< /A@|xCxKU/@Z/H K1Z/|}xST@ZA T@AW:;xH /|bxa@Ax;H/aDAt@A4 /A4|xCx8@K̈́/@H Cx8@KA@:@/A@tt A<_H$T^>/@<_H <_/ACx~xHi4 E|AHmCx~xKt#|sx/AW :|@.:W:;|@;9;uH;.;;A$Cxex~x~N!/A/|\TB:|Bb@S|tHH~xCxKՀA@: "A@dZ 8!aa|}p N |@&|BܐA|yx!`8`-|#x|+xHa;|}yA<_;@p@}<<8 T8 \8`H|cy@4}<<8 h8 \8`H|cyAP``/A8/;@8`8H||x \|{x.A;@8@< x\$x\\`|K|~x@\= 9k$` K/A,<H@A9b/|x@8@\/Ah\Xt T^>A~|cP8cKT}>xxK 8|dx8xKH`/@L8`-H 8!xa|}p N |a̐;@!B%?|+x@|tx|#x|3x;{"|@pxx:`;;|+xH|Pv.~v.A$~x~x~N!/A;Z}@;~;;;A98@@T979V)}BSx}+Kx8B/A 8 9kH 9 9J9)BȐ8!a|N |B}=||&, px!Aaځڡ!Aaہۡ$9 |!Yn@ | N | 9`@~a9`P~a9``~a9`p~a9` a9`+a9`Ka9`ka9`a9`a9`a|B9`aΐ N a8 9@H$a}GSx \XTkPHB}a= | , $Al 9`|C~`9p~`9~`9~`9 `9+`9K`9k`9`9`9`9`px +Kkʋʫ +Kkˋ˫} |+:N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|t}N |B}h=k|X}N |B}h=k|<}N |B}h=k| }N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|T}N |B}h=k|8}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|}N |B}h=k|l}N |B}h=k|P}N |B}h=k|4}N |B}h=k|}N __dyld_mod_term_funcs__dyld_make_delayed_module_initializer_calls__dyld_image_count__dyld_get_image_name__dyld_get_image_header__dyld_NSLookupSymbolInImage__dyld_NSAddressOfSymbollibobjc__objcInitThe kernel support for the dynamic linker is not present to run this program. 0x0123456789ABCDEF/Library/Logs/IOXperts/IOXperts debug.log %.*s%sa/Library/Logs/IOXperts debug.logLog file opened %sCan't open %s for debug logging -------------------------------------IIDC-showcustomized-showallCFBundleExecutableCFBundleIdentifier%s%s.rsrc/Contents/Resources/%lx%s %sFilename='%s' truefalse%sBundle=%s %sComponent=%s %sBundleID='%s' %sComponentDescriptions %s ComponentDesc[%d] %s Type=%s %s SubType=%s %s Manufacturer=%s %s Flags=%lx %s Mask=%lx %sIOXperts Customized %s BundleNum=%ld %s Name='%s' %s UniqueID='%s' %s Type=%ld %s PurchaseType=%d %sComponent is Not Customized /Library/Components/__DATA__eh_frame__TEXT=`<}N =`@}N =`D}N =`H}N =`L}N =`P}N =`T}N =`X}N =`\}N =``}N =`d}N =`,}N =`h}N =`l}N =`p}N =`t}N =`x}N =`|}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N =`}N <|H8@A8!KՀAH8!@|HN <|H8@A|x8!KAX8!Px|HK8|`|!@0,@(= =`99I@8(8 8@`L|`@,/@$<<8f@8(8|#xKH8!@}N 88``Kd88``KTzPLR|A Y  4 PA~zPLR|A  $ PA~zPLR|A   $PA~$@8A~PhPA~(tA~P(tA~PzPLR|A  , pA~(P A~`(||| A~`DFA~ 0T A~zR|A ,$\pA~4HA~p ,tHpA~( A~(h $`A~( A~4\klF%&'()*+,-./01234567l<k@jDiHhLgPfTeXd\c`bdah  "$ij,FA~klF%&'()*+,-./01234567l<k@jDiHhLgPfTeXd\c`bdah  "$jizPR|AV $ h PA~$H`h PA~$pðh PA~lx`A~0`A~`F@ǘDFA~ 40`,FA~ zPR|A ( ΠPFA~$LX PA~zPR|A  ϬXPA~$D  PA~ lLDPA~zPR|A  x PA~zR|A  | A~P4<8 A~ p4tp A~ ,d `A~(P A~`,A~`F<8FA~ 4x4,A~ F8(( A~  sdqpvhzz@P`X0x 8Pp2$PԨ\ P@pͰPTؐL @`YX<Kd(H,@@PR`ZV#`^%`&@:D#(Ȑ7tR АιؐɊc`|t};@|I}2|~/,&H|ȐRɛɒ(aАQ"Ɇt`J*hK$t)` Pָp\{L{`}D}L||< 0$ Ơ$ L dl(0@HͰ͸X`\l% %8D ! HP! HP1'<@`xSt9bad_allocSt9exceptionSt13bad_exceptionHXdt$$St9type_infoSt8bad_castSt10bad_typeidN10__cxxabiv117__class_type_infoEN10__cxxabiv120__si_class_type_infoEN10__cxxabiv121__vmi_class_type_infoEppp8p4p0p,p(p$p ppDp@p<phpdp`p\pXpTpPpLpHplp|pxptppppppppppppppppppppppppppppppppppppp ppppp pp'dk '((#dkL($dkL(=dkL([<(j .kLDkLDkpDktDk|DkDkDkDkDkDkDkDkDkDkDkDkDlDl DlDl,Dl<DlLDlTDldD llDlDlDlDlDlDmDmDm Dm Dm@Dm@Dm`Dm`DmDmDmDmDm($kL(@(@(@(@ (Հ(()')6)E@)N8)YkL)Zm)[)j)y$tNm)zm.mD+mD.mD0mD1mD.nD.n()$+m),8)m)n()$hNn()n(.n(D?n(DCn,DDn<DCnTDHn`)$?n()@>)@@))* @A*n(*nd*$<Nnd*nd.ndDMndDQndDRnpDPnDMnDQnDRn*.$Mnd*G@L*Q@L*[@N*d*ond*pn*q$\Nn*rn.nDYnDcnDenDgnDioDkoDpo(Dqo4Dro@DsoLDtoXDwodDxolDzoD{oD|oDoDoDoDoDoDxoDpD|pD|p<D{p<D{p\Dcp\Dcp|*$Yn*@Z**@Z*݀\8*]<+^@+9_D+Y`H+un+v+++++ƀ+׀++, ,,+,<,L,\p|,]$Np|,^& y, -, ., /, 0,dp|,$,-( p3p|EkLVp-p-Aq-gT-r  - $--w|- -@.z@.?z.xz. \. l  \. H. Lt H . |P   " 4 F.   / > d `   8  PG To/ /)|/W(/nX///0<0@0~ 0 0 0 0 1) 1T 1^ 1 $1 P P    |2  2"2902G`2U2s8222282x22 X3 @3"383W3tx3 3 3 3 3 4 4 4, 4A 4^ 4h 4| <4 t4 4 4 4 X(.h=^ v0Xp0J[l ( D*5 h q Fs )W  \c  hS 4&Ls4JaxF$q,K LƠ9 ~  !4!4!K!b!yl!d!t!0!(! !8" $"00"Z<"" ""t"# #8d#LX#]H#o# #8#P @ p#$$-$D$[H$pP$ |5 p52p5B 5S ɨ$ʌ$ $ ,5]$5 T5 p|$ $ T%%.%CͰ##P%V%q%%%%%&&&&=͸&W&q`&X&h&56 6(61 6O H$|& &6YX6p6~6L666Ҩ6 677 Ԩ7<7Fd7Vל7q7{7|777P777 8 8$ 84 8T 8h 8| 8 8 8 8 8 9 9 X9- 9> 9] 9v T9 9 B& $'Ѹ'$'? 4'`'y''9TT4f$' v   xtvutD{|6|P|j\X L=Mq  7~ o$  0 >~ f}L }D }T  pusd  %KE ^x 1y M  4 < 8 (ryxyLok ~ }2| };@ | |I |t2 /, % R 3  C ɒ( O :DT 7t ` #( v Ɇt  af Qu ^ c` R Ɋ }     ɛ  {  \ P     @  ` K B J < _ K$ | P? X F dV R Y L] ,@e Zm u @} R` VN Y' ָW _  *h #`   ` & ι   t %` &@ Pl   1 " )`u & ( 9 H H " " ""n"p""G[^d"H (*8:>?AB[4=Ulo~"8 8 ; F g l  N``PP`PPnPsaogfhznkipj~lm{]vqtwxunyWPRTQY\[Z^XNKHJGFLIM_OUVS}rebc|dsaogfhznkip]vqtwxuyWPRTQY\[Z^XNKHJGFLIM_OUVSj~lm{_NXArgc_NXArgv___progname__dyld_func_lookup__dyld_init_check__start_environdyld_stub_binding_helperstart___darwin_gcc3_preregister_frame_info___keymgr_dwarf2_register_sections__cthread_init_routine__mh_execute_header_atexit_catch_exception_raise_catch_exception_raise_state_catch_exception_raise_state_identity_clock_alarm_reply_do_mach_notify_dead_name_do_mach_notify_no_senders_do_mach_notify_port_deleted_do_mach_notify_send_once_do_seqnos_mach_notify_dead_name_do_seqnos_mach_notify_no_senders_do_seqnos_mach_notify_port_deleted_do_seqnos_mach_notify_send_once_errno_exit_mach_init_routine_main_receive_samples___keymgr_global__dyld_register_func_for_add_image__dyld_register_func_for_remove_image__init_keymgr__keymgr_get_and_lock_processwide_ptr__keymgr_set_and_unlock_processwide_ptr_abort_calloc_free_FSGetCatalogInfo_FSPathMakeRef_FSRefMakePath_strlen__Z15OSTypeToCStringmPci__Z7HexDumpPKvPcim__Z8pcstrcpyPcPKhi_NumToString_memmove_sscanf_DebugWriteText__Z13DebugWritePtrPKvl11DebugAction__Z17StdDebugWriteProcPKvl11DebugAction_debugfile___sF_ctime_fchmod_fclose_fflush_fileno_fopen_fprintf_setbuf_strcmp_time_dprintf_vdprintf_vsnprintf_CFRelease__ZdlPv_pthread_mutex_lock_pthread_mutex_unlock_CFDictionaryGetValue_CFRetain_CFStringGetCString_CFURLCreateFromFSRef__ZdaPv__Znam_kCFAllocatorDefault_sprintf_strcpy_HUnlock_memset__ZN19InstalledComponentsD0Ev__ZN19InstalledComponentsD1Ev_gbIsIIDC_gbLogComponents_gbLogCustomized_installedComponents__ZN19InstalledComponents20ReleaseComponentInfoEv__ZN19InstalledComponents22GetInstalledComponentsEv__ZN19InstalledComponents7IterateEPFbP21IOXpertsComponentInfoPvS2_ES2_S2___ZN21IOXpertsComponentInfo3LogEPKc_memcmp_putchar_puts__ZN15UseResourceFork4OpenEP5FSRefPKc__ZN15UseResourceForkD0Ev__ZN15UseResourceForkD1Ev__ZN15UseResourceForkD4Ev__ZN19InstalledComponents16GetComponentInfoEPKcRPP21IOXpertsComponentInfoRi__ZN19InstalledComponents18AllocComponentInfoERPP21IOXpertsComponentInfoi__ZN19InstalledComponents20ReleaseComponentInfoERPP21IOXpertsComponentInfoRi__ZN19InstalledComponents25GetComponentInfoFromFSRefEP5FSRefR21IOXpertsComponentInfo__ZN19InstalledComponents9GetFSRefsEPKcRP5FSRefRi__ZN21IOXpertsComponentInfo17ReadFromInfoPlistEv__ZN21IOXpertsComponentInfo18ReadFromCurResFileEv__ZN21IOXpertsComponentInfo18SaveFilenameAndRefEP5FSRef__ZN21IOXpertsComponentInfo24GetComponentResourcePathEPcm__ZN21IOXpertsComponentInfo25ReadComponentDescriptionsEv__ZN21IOXpertsComponentInfo34GetFirstMatchingThngFromCurResFileERPPcR20ComponentDescription__ZN21IOXpertsComponentInfo9GetBundleEv__ZN21IOXpertsComponentInfoD0Ev__ZN21IOXpertsComponentInfoD1Ev__ZN21IOXpertsComponentInfoD4Ev__ZTV15UseResourceFork__ZTV21IOXpertsComponentInfo_CFBundleCreate_CFBundleGetInfoDictionary_CloseResFile_CountResources_CurResFile_FSCloseIterator_FSGetCatalogInfoBulk_FSGetDataForkName_FSOpenIterator_FSOpenResourceFile_Get1IndResource_Get1Resource_GetResource_HLock_ReleaseResource_UseResFile__Znwm___CFConstantStringClassReference_p2cstrcpy_strcat_strrchr__keymgr_get_per_thread_data__keymgr_set_per_thread_data__keymgr_unlock_processwide_ptr_pthread_once__cpu_has_altivec_malloc_memcpy_ZdlPv.eh__ZSt9terminatev___gxx_personality_v0_ZdaPv.eh_Znam.eh__ZTISt9bad_alloc__ZTISt9exception__ZTSSt9bad_alloc__ZTSSt9exception__Unwind_Resume__ZTVN10__cxxabiv117__class_type_infoE__ZTVN10__cxxabiv120__si_class_type_infoE___cxa_call_unexpected_Znwm.eh__ZNSt9bad_allocD1Ev__ZTVSt9bad_alloc___cxa_allocate_exception___cxa_throw_getsectdatafromheader_ZN10__cxxabiv111__terminateEPFvvE.eh_ZN10__cxxabiv112__unexpectedEPFvvE.eh_ZSt13set_terminatePFvvE.eh_ZSt14set_unexpectedPFvvE.eh_ZSt9terminatev.eh__ZN10__cxxabiv111__terminateEPFvvE__ZN10__cxxabiv112__unexpectedEPFvvE__ZN10__cxxabiv119__terminate_handlerE__ZN10__cxxabiv120__unexpected_handlerE__ZSt13set_terminatePFvvE__ZSt14set_unexpectedPFvvE___cxa_begin_catch__ZTISt13bad_exception__ZTSSt13bad_exception__cxa_call_unexpected.eh__gxx_personality_v0.eh__Unwind_GetDataRelBase__Unwind_GetIP__Unwind_GetLanguageSpecificData__Unwind_GetRegionStart__Unwind_GetTextRelBase__Unwind_SetGR__Unwind_SetIP__ZNSt13bad_exceptionD1Ev__ZTVSt13bad_exception___cxa_end_catch___cxa_get_globals_fast___cxa_rethrow_Unwind_DeleteException.eh_Unwind_GetDataRelBase.eh_Unwind_GetGR.eh_Unwind_GetIP.eh_Unwind_GetLanguageSpecificData.eh_Unwind_GetRegionStart.eh_Unwind_GetTextRelBase.eh_Unwind_RaiseException.eh_Unwind_Resume.eh_Unwind_SetGR.eh_Unwind_SetIP.eh__Unwind_DeleteException__Unwind_RaiseException__Unwind_Find_FDEeh_rest_world_r10save_world_ZN10__cxxabiv117__class_type_infoD0Ev.eh_ZN10__cxxabiv117__class_type_infoD1Ev.eh_ZN10__cxxabiv117__class_type_infoD2Ev.eh_ZN10__cxxabiv117__class_type_infoD4Ev.eh_ZN10__cxxabiv120__si_class_type_infoD0Ev.eh_ZN10__cxxabiv120__si_class_type_infoD1Ev.eh_ZN10__cxxabiv120__si_class_type_infoD2Ev.eh_ZN10__cxxabiv120__si_class_type_infoD4Ev.eh_ZN10__cxxabiv121__vmi_class_type_infoD0Ev.eh_ZN10__cxxabiv121__vmi_class_type_infoD1Ev.eh_ZN10__cxxabiv121__vmi_class_type_infoD2Ev.eh_ZN10__cxxabiv121__vmi_class_type_infoD4Ev.eh_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj.eh_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE.eh_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv.eh_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE.eh_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_.eh_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE.eh_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE.eh_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_.eh_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE.eh_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE.eh_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_.eh_ZNKSt9type_info10__do_catchEPKS_PPvj.eh_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv.eh_ZNKSt9type_info14__is_pointer_pEv.eh_ZNKSt9type_info15__is_function_pEv.eh_ZNKSt9type_infoeqERKS_.eh_ZNSt10bad_typeidD0Ev.eh_ZNSt10bad_typeidD1Ev.eh_ZNSt10bad_typeidD2Ev.eh_ZNSt10bad_typeidD4Ev.eh_ZNSt8bad_castD0Ev.eh_ZNSt8bad_castD1Ev.eh_ZNSt8bad_castD2Ev.eh_ZNSt8bad_castD4Ev.eh_ZNSt9type_infoD0Ev.eh_ZNSt9type_infoD1Ev.eh_ZNSt9type_infoD2Ev.eh_ZNSt9type_infoD4Ev.eh__ZN10__cxxabiv117__class_type_infoD0Ev__ZN10__cxxabiv117__class_type_infoD1Ev__ZN10__cxxabiv117__class_type_infoD2Ev__ZN10__cxxabiv117__class_type_infoD4Ev__ZN10__cxxabiv120__si_class_type_infoD0Ev__ZN10__cxxabiv120__si_class_type_infoD1Ev__ZN10__cxxabiv120__si_class_type_infoD4Ev__ZN10__cxxabiv121__vmi_class_type_infoD0Ev__ZN10__cxxabiv121__vmi_class_type_infoD1Ev__ZN10__cxxabiv121__vmi_class_type_infoD4Ev__ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE__ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE__ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2___ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___ZNKSt9type_infoeqERKS___ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__ZNKSt9type_info10__do_catchEPKS_PPvj__ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv__ZNKSt9type_info14__is_pointer_pEv__ZNKSt9type_info15__is_function_pEv__ZNSt10bad_typeidD0Ev__ZNSt10bad_typeidD1Ev__ZNSt10bad_typeidD4Ev__ZNSt8bad_castD0Ev__ZNSt8bad_castD1Ev__ZNSt8bad_castD4Ev__ZNSt9type_infoD0Ev__ZNSt9type_infoD1Ev__ZNSt9type_infoD2Ev__ZNSt9type_infoD4Ev__ZTIN10__cxxabiv117__class_type_infoE__ZTIN10__cxxabiv120__si_class_type_infoE__ZTIN10__cxxabiv121__vmi_class_type_infoE__ZTISt10bad_typeid__ZTISt8bad_cast__ZTISt9type_info__ZTSN10__cxxabiv117__class_type_infoE__ZTSN10__cxxabiv120__si_class_type_infoE__ZTSN10__cxxabiv121__vmi_class_type_infoE__ZTSSt10bad_typeid__ZTSSt8bad_cast__ZTSSt9type_info__ZTVN10__cxxabiv121__vmi_class_type_infoE__ZTVSt10bad_typeid__ZTVSt8bad_cast__ZTVSt9type_info__ZNKSt9exception4whatEv__ZNSt9exceptionD2Ev_ZNSt9bad_allocD0Ev.eh_ZNSt9bad_allocD1Ev.eh_ZNSt9bad_allocD2Ev.eh_ZNSt9bad_allocD4Ev.eh__ZNSt9bad_allocD0Ev__ZNSt9bad_allocD4Ev___new_handler___cxa_free_exception__cxa_allocate_exception.eh__cxa_free_exception.eh__cxa_rethrow.eh__cxa_throw.eh___cxa_get_globals_ZSt18uncaught_exceptionv.eh__cxa_begin_catch.eh__cxa_end_catch.eh_ZNKSt9exception4whatEv.eh_ZNSt13bad_exceptionD0Ev.eh_ZNSt13bad_exceptionD1Ev.eh_ZNSt13bad_exceptionD2Ev.eh_ZNSt13bad_exceptionD4Ev.eh_ZNSt9exceptionD0Ev.eh_ZNSt9exceptionD1Ev.eh_ZNSt9exceptionD2Ev.eh_ZNSt9exceptionD4Ev.eh__ZNSt13bad_exceptionD0Ev__ZNSt13bad_exceptionD4Ev__ZNSt9exceptionD0Ev__ZNSt9exceptionD1Ev__ZNSt9exceptionD4Ev__ZTVSt9exception__cxa_get_globals.eh__cxa_get_globals_fast.eh_Unwind_Find_FDE.eh___deregister_frame_info_bases__deregister_frame_info.eh__deregister_frame_info_bases.eh__register_frame_info.eh__register_frame_info_bases.eh__register_frame_info_table.eh__register_frame_info_table_bases.ehrest_worldstart.sint:t1=r1;-2147483648;2147483647;char:t2=r2;0;127;/SourceCache/Csu/Csu-58//SourceCache/Csu/Csu-58/crt.cgcc2_compiled._pointer_to__darwin_gcc3_preregister_frame_info_start:F(0,1)argc:P(0,2)argv:P(0,3)envp:P(0,3)p:r(0,4)char:t(0,5)=r(0,5);0;127;:t(0,1)=(0,1)int:t(0,2)=r(0,2);-2147483648;2147483647;:t(0,3)=*(0,4):t(0,4)=*(0,5)q:r(0,3)term:(0,6):t(0,6)=*(0,7):t(0,7)=f(0,1)__call_mod_init_funcs_call_mod_init_funcs:f(0,1)p:(0,6)_crt_basenamecrt_basename:f(0,8)path:P(0,8)s:r(0,8):t(0,8)=*(0,9):t(0,9)=k(0,5)last:r(0,8)_crt_strbeginswithcrt_strbeginswith:f(0,2)s1:P(0,8)s2:P(0,8)i:r(0,2)int:t(0,2)__call_objcInit_call_objcInit:f(0,1)i:r(0,10)unsigned int:t(0,10)=r(0,10);0;037777777777;count:r(0,10)_dyld_image_count_fn:(0,11)_dyld_get_image_name_fn:(0,12)_dyld_get_image_header_fn:(0,13)NSLookupSymbolInImage_fn:(0,14)NSAddressOfSymbol_fn:(0,15)void:t(0,1):t(0,11)=*(0,16):t(0,12)=*(0,17):t(0,13)=*(0,18):t(0,14)=*(0,19):t(0,15)=*(0,20):t(0,16)=f(0,10):t(0,17)=f(0,8):t(0,18)=f(0,21):t(0,19)=f(0,21):t(0,20)=f(0,22):t(0,21)=*(0,23):t(0,22)=*(0,1):t(0,23)=k(0,1)pointer_to__darwin_gcc3_preregister_frame_info:S(0,6)NXArgc:G(0,2)NXArgv:G(0,3)environ:G(0,3)__progname:G(0,4)dyld_lazy_symbol_binding_entry_pointerror_messagedyld_func_lookup_pointer_darwin_unwind_dyld_add_image_hook_darwin_unwind_dyld_remove_image_hook_hex_upper_gDebugWriteProc_gDebugFilename_gNewDebugFile__Z16OpenStdDebugFilev__Z41__static_initialization_and_destruction_0ii__ZTV19InstalledComponents__Z23PrintComponentsCallbackP21IOXpertsComponentInfoPvS1___Z22ShowCustomizedCallbackP21IOXpertsComponentInfoPvS1___Z9parseArgsiPPKc__GLOBAL__I_installedComponents__GLOBAL__D_installedComponents_executableKey_bundleIdentifierKeyEH_frame1EH_frame1EH_frame1__Z21size_of_encoded_valueh__Z21base_of_encoded_valuehP15_Unwind_Context__Z12read_uleb128PKhPj__Z12read_sleb128PKhPi__Z28read_encoded_value_with_basehjPKhPj__Z17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info__Z15get_ttype_entryP16lsda_header_infoj__Z16get_adjusted_ptrPKSt9type_infoS1_PPv__Z20check_exception_specP16lsda_header_infoPKSt9type_infoPvi_Z21size_of_encoded_valueh.eh_Z21base_of_encoded_valuehP15_Unwind_Context.eh_Z12read_uleb128PKhPj.eh_Z12read_sleb128PKhPi.eh_Z28read_encoded_value_with_basehjPKhPj.eh_Z15get_ttype_entryP16lsda_header_infoj.ehEH_frame1_Z17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info.eh_Z16get_adjusted_ptrPKSt9type_infoS1_PPv.eh_Z20check_exception_specP16lsda_header_infoPKSt9type_infoPvi.eh_size_of_encoded_value_base_of_encoded_value_read_uleb128_read_sleb128_read_encoded_value_with_base_extract_cie_info_execute_stack_op_execute_cfa_program_uw_frame_state_for_uw_update_context_1_uw_update_context_uw_init_context_1_once_regsizes.0_uw_install_context_1_dwarf_reg_size_table__Unwind_RaiseException_Phase2__Unwind_ForcedUnwind_Phase2_init_dwarf_reg_size_tablesize_of_encoded_value.ehbase_of_encoded_value.ehread_uleb128.ehread_sleb128.ehread_encoded_value_with_base.ehexecute_stack_op.ehuw_update_context_1.ehuw_update_context.ehinit_dwarf_reg_size_table.ehEH_frame1extract_cie_info.ehexecute_cfa_program.ehuw_frame_state_for.ehuw_init_context_1.ehuw_install_context_1.eh_Unwind_RaiseException_Phase2.eh_Unwind_ForcedUnwind_Phase2.ehEH_frame1_emergency_buffer_emergency_used_emergency_mutexEH_frame1__Z23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_ExceptionEH_frame1_Z23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_Exception.eh_globals_static_use_thread_key__Z21get_globals_init_oncev_Z21get_globals_init_oncev.ehEH_frame1_size_of_encoded_value_read_uleb128_read_sleb128_read_encoded_value_with_base_unseen_objects_seen_objects_base_from_object_get_cie_encoding_fde_unencoded_compare_fde_single_encoding_compare_fde_mixed_encoding_compare_marker.0_frame_heapsort_classify_object_over_fdes_add_fdes_linear_search_fdes_search_object_init_object__Unwind_Find_registered_FDE_live_image_destructor_examine_objects_fde_splitsize_of_encoded_value.ehread_uleb128.ehread_sleb128.ehread_encoded_value_with_base.ehbase_from_object.ehget_cie_encoding.ehfde_unencoded_compare.ehfde_single_encoding_compare.ehfde_mixed_encoding_compare.ehclassify_object_over_fdes.ehadd_fdes.ehlinear_search_fdes.ehEH_frame1frame_heapsort.ehsearch_object.eh_Unwind_Find_registered_FDE.ehlive_image_destructor.ehinit_object.ehexamine_objects.ehfde_split.ehrest_world_eh_r7r8d ] @8__PAGEZERO$__TEXT  __text__TEXT~ __picsymbol_stub__TEXTB*B__symbol_stub__TEXTB*B__cstring__TEXTD*D__textcoal_nt__TEXT$+1$ __const_coal__TEXTU+5U __eh_frame__TEXT+l h__constructor__TEXT/__destructor__TEXT/__literal8__TEXT/__literal4__TEXT/__DATA0 __data__DATA0 __dyld__DATA0 __const_coal__DATA@0@  __gcc_except_tab__DATA0e __const__DATA@2X@"__bss__DATA2__common__DATA24__IMPORT@0__pointers__IMPORT@(0__jump_table__IMPORT(@i(0 8__LINKEDITP0@$ /usr/lib/dyld X"˹C/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon 4"˹C/usr/lib/libstdc++.6.dylib 45FC/usr/lib/libgcc_s.1.dylib 4"˹CX/usr/lib/libSystem.B.dylib@L P pLL K Pj]\$ML$ˉ\$UWVS,( EE E !tЋ !t ED$L $Et$ !E 8ud'/D‰vut E8t E8uD$ ED$E D$E$$N twUS$+ ED$g $U$[]Ðh%0%0UWVSLEEED$E $REt ؁L[^_]D$*uԉ4$E܉D$D$ |$t$E$É4$3uE܅~ED$<$ÅuE;EE؁L[^_]ÉÉ4$$AUWVSLE$*mEġ@ @@EȋEĉẺUЉMEED$*u܉4$}ED$t$<$KÉ4$gt#EEĉ$<$؃L[^_]ËE;EED$E D$<$cÅt붉É<$$`É4$UWVS\] }~'C+ t FO)ȅtD$$*1\[^_]Ã}~ދsC $EUT$t$$u }t1\[^_]UEtD$D$ @$UEJ]UVSU E @D$$Qƅu [[^]É$ki9tߋED$D$ 4$3t1UWVSME @D$ $Rƅu[Ѓ[^_]É$9t܋EtEu4$U1D$ ED$UT$4$1}уE4$39EMkUEH2@t E]G]US]H2Ct$&][]US]E H2CtD$D$ @$C[]UVSE ]utD$D$ @$t[^]ËE[^]ÐUS]h2{u@][]QC$K@][]/@$U(UB D$BD$ BD$ED$E $1UU D$E D$$QUU E D$$QUUB D$ BD$BD$E $ÐUUB D$ BD$BD$E $t $HUUB D$BD$B$LU ÐUE t E]]ÐUS$]h2CECEC CCD$$@D$ CD$E D$$$[]Ë@$US$]h2CECEC CCD$$@D$ CD$E D$$k$[]Ë@$US]h2{u@[]ËC$@[]Ë@$US]h2{u@[]ËC$@[]Ë@$uUS$]ED$$Ut*C D$ CD$CD$$tËE$5؃$[]US4]ED$${Ut0C D$CD$ CD$T$$E$4[]U(UB D$BD$ BD$D$E $UVS0uEEEEEEf]\$ ED$D$+4$t 0[^]ÉU:. com.ioxperts.devicemonitor-version%d%n%c%d$U@E]ÐUU@U]17IOXDictionaryBase13StackCFString14IOXPreferenceszPLR|y $$t $L` ,t&  , , zPLR|y $$* ,Lh ,| (, (B zPLR|y ($b $PJ4 $xV" $P" $J+ $N< $b1 (@h (lh (T ($T (LR (rV $H3 D* 0(+<+U+i+y+043[=h4'2|[_r|3O]JUcJUc,AO,AO0#$0x'$*%%^%%% &(t('>&`2@0dddd.<.DDDDDD#D%D1D3D8D=DRDYDaDmDxDDDDD DD=$KW co@x@ $N.D+D.D0 D1 3$+O,WX Y$*N Z -hs . / 0d  0 0$+8$ K\ +R!i* +!,,<++>(+Z+y0U+@0\,,"4$3#d*#",)P`-$4-9To V : v$r   3 _ - "  ,3 0H i+] @2-Kx'`2@ (e / ' x/ >& a t( / *%-C^%o.&.T&%.T$m-L/$' /%P.1%_(. &.%x.N0dy+(5Ph/DYn>f2Kl 0  0,  0222+2>2X2s222222S 0X2ur   z     *{@29# F]?x8 """"&"("*"6"8"n"""" VZ1M{""J "K "L  0 t0 p0 l0 h0 d0 `0 \0 X0 T0 P0 0 0 _NXArgc_NXArgv___i686.get_pc_thunk.bx___progname__dyld_func_lookup__start_environdyld_stub_binding_helperstart___keymgr_dwarf2_register_sections__cthread_init_routine__mh_execute_header_atexit_catch_exception_raise_catch_exception_raise_state_catch_exception_raise_state_identity_clock_alarm_reply_do_mach_notify_dead_name_do_mach_notify_no_senders_do_mach_notify_port_deleted_do_mach_notify_send_once_do_seqnos_mach_notify_dead_name_do_seqnos_mach_notify_no_senders_do_seqnos_mach_notify_port_deleted_do_seqnos_mach_notify_send_once_errno_exit_mach_init_routine_main_receive_samples__Z16DMVersionAtLeastR14IOXPreferencesPKcRb__Z16DMVersionAtLeastR14IOXPreferencesPKcRb.eh__Z18DMPrefsVersionTestiPKcRb__Z18DMPrefsVersionTestiPKcRb.eh__ZN17IOXDictionaryBaseD0Ev__ZN17IOXDictionaryBaseD0Ev.eh__ZN17IOXDictionaryBaseD1Ev__ZN17IOXDictionaryBaseD1Ev.eh__ZTI17IOXDictionaryBase__ZTS17IOXDictionaryBase__ZTV17IOXDictionaryBase_main.eh_CFRelease__Unwind_Resume__Z12StringToVersPKcRm__Z17CStringToCFStringPKc__ZN13StackCFStringC1EPKc__ZN13StackCFStringD1Ev__ZN14IOXPreferencesD1Ev__ZNK17IOXDictionaryBase10getCStringE13StackCFStringPclRl__ZNK17IOXDictionaryBase7getLongE13StackCFStringRl__ZTV14IOXPreferences__ZTVN10__cxxabiv117__class_type_infoE__ZdlPv___cxa_pure_virtual___gxx_personality_v0_atoi_kCFPreferencesAnyUser_kCFPreferencesCurrentHost_printf__Z11LogRefCountPKvPKci.eh__Z17CStringToCFStringPKc.eh__Z18HexCStringToOSTypePKcRm.eh__Z18OSTypeToHexCStringmPcm.eh__ZN11StackCFDataD1Ev.eh__ZN11StackCFDataD2Ev.eh__ZN13IOXDictionary12_eraseExtantEv.eh__ZN13IOXDictionary21_releaseDictAfterSaveEPK14__CFDictionary.eh__ZN13IOXDictionary8getCountEv.eh__ZN13StackCFNumberD1Ev.eh__ZN13StackCFNumberD2Ev.eh__ZN13StackCFStringC1EPKc.eh__ZN13StackCFStringD0Ev__ZN13StackCFStringD0Ev.eh__ZN13StackCFStringD1Ev.eh__ZN13StackCFStringD2Ev.eh__ZN17IOXDictionaryBase10setBooleanE13StackCFStringb.eh__ZN17IOXDictionaryBase10setBooleanE13StackCFStringh.eh__ZN17IOXDictionaryBase12PtrAllocatorEl.eh__ZN17IOXDictionaryBase13setDictionaryE13StackCFStringPK14__CFDictionary.eh__ZN17IOXDictionaryBase13setDictionaryE13StackCFStringR13IOXDictionary.eh__ZN17IOXDictionaryBase18setPropertyListRefE13StackCFStringPKv.eh__ZN17IOXDictionaryBase6removeE13StackCFString.eh__ZN17IOXDictionaryBase7PtrFreeEPc.eh__ZN17IOXDictionaryBase7initStrEPKcRPK10__CFStringS4_Rb__ZN17IOXDictionaryBase7setDataE13StackCFStringPK8__CFData.eh__ZN17IOXDictionaryBase8setArrayE13StackCFStringPK9__CFArray.eh__ZN17IOXDictionaryBase9setStringE13StackCFStringPK10__CFString.eh__ZNK13IOXDictionary4_getEPK10__CFString.eh__ZNK17IOXDictionaryBase10getCStringE13StackCFStringPclRl.eh__ZNK17IOXDictionaryBase7getKeysERPK9__CFArray__ZNK17IOXDictionaryBase7getKeysERPK9__CFArray.eh__ZNK17IOXDictionaryBase7getLongE13StackCFStringRl.eh__ZTI13StackCFString__ZTS13StackCFString__ZTV13StackCFString_CFGetTypeID_CFNumberGetTypeID_CFNumberGetValue_CFStringCreateWithCString_CFStringGetCString_CFStringGetLength_CFStringGetTypeID__ZTVN10__cxxabiv120__si_class_type_infoE_kCFAllocatorDefault_sscanf__ZN14IOXPreferences12_eraseExtantEv__ZN14IOXPreferences12_eraseExtantEv.eh__ZN14IOXPreferences15_getDictForSaveEv__ZN14IOXPreferences15_getDictForSaveEv.eh__ZN14IOXPreferences21_releaseDictAfterSaveEPK14__CFDictionary__ZN14IOXPreferences21_releaseDictAfterSaveEPK14__CFDictionary.eh__ZN14IOXPreferences24_addContentsOfDictionaryEPK14__CFDictionary__ZN14IOXPreferences24_addContentsOfDictionaryEPK14__CFDictionary.eh__ZN14IOXPreferences4_setEPK10__CFStringPKv__ZN14IOXPreferences4_setEPK10__CFStringPKv.eh__ZN14IOXPreferences7_removeEPK10__CFString__ZN14IOXPreferences7_removeEPK10__CFString.eh__ZN14IOXPreferencesC1EPKcPK10__CFStringS4___ZN14IOXPreferencesC1EPKcPK10__CFStringS4_.eh__ZN14IOXPreferencesC2EPKcPK10__CFStringS4___ZN14IOXPreferencesC2EPKcPK10__CFStringS4_.eh__ZN14IOXPreferencesD0Ev__ZN14IOXPreferencesD0Ev.eh__ZN14IOXPreferencesD1Ev.eh__ZN14IOXPreferencesD2Ev__ZN14IOXPreferencesD2Ev.eh__ZNK14IOXPreferences4_getEPK10__CFString__ZNK14IOXPreferences4_getEPK10__CFString.eh__ZNK14IOXPreferences4_getEPK10__CFStringRPKv__ZNK14IOXPreferences4_getEPK10__CFStringRPKv.eh__ZNK14IOXPreferences8_getKeysERPK9__CFArray__ZNK14IOXPreferences8_getKeysERPK9__CFArray.eh__ZNK14IOXPreferences9_containsEPK10__CFString__ZNK14IOXPreferences9_containsEPK10__CFString.eh__ZTI14IOXPreferences__ZTS14IOXPreferences_CFPreferencesCopyKeyList_CFPreferencesCopyMultiple_CFPreferencesCopyValue_CFPreferencesSetMultiple_CFPreferencesSetValue_kCFPreferencesCurrentApplication__Z11MakeCStringPcPKvii.eh__Z11MakePStringPhPKvii.eh__Z11TruncToCStrPccm.eh__Z12MakePCStringPhii.eh__Z12OSTypestrcpyPcmi.eh__Z12StringToVersPKcRm.eh__Z13ASCIICharDumpPKvPcim.eh__Z15CStringToOSTypePKcRm.eh__Z7HexDumpPKvPcim.eh__Z7HexScanPKcPmim.eh__Z7cstrcatPcPKci.eh__Z7cstrcpyPcPKci.eh__Z7pstrcatPhPKhi.eh__Z7pstrcpyPhPKhi.eh__Z8cpstrcatPhPKci.eh__Z8cpstrcpyPhPKci.eh__Z8pcstrcatPcPKhi.eh__Z8pcstrcpyPcPKhi.eh__Z20NanosecondsToSecondsRK12UnsignedWide.eh__Z20NanosecondsToSecondsy.eh__Z20SecondsToNanosecondsdR12UnsignedWide.eh__Z30UnsignedFixedRateToNanosecondsm.eh__Z30UnsignedFixedRateToNanosecondsmR12UnsignedWide.eh__Z30UnsignedFixedSecsToNanosecondsm.eh__Z30UnsignedFixedSecsToNanosecondsmR12UnsignedWide.eh__ZN11NativeTimer5ResetEv.eh__ZN11NativeTimerC1Ev.eh__ZN11NativeTimerC2Ev.eh__ZN10IOXDprintfILb1EEclEPKcz.eh__ZN16IOXAppErrorUtils18getSigTermReceivedEv.eh__Z13CopyRightJustPKvlPvlc.ehstart.sint:t1=r1;-2147483648;2147483647;char:t2=r2;0;127;/SourceCache/Csu/Csu-58//SourceCache/Csu/Csu-58/crt.cgcc2_compiled._start:F(0,1)argc:p(0,2)argv:p(0,3)envp:p(0,3)p:r(0,4)char:t(0,5)=r(0,5);0;127;:t(0,1)=(0,1)int:t(0,2)=r(0,2);-2147483648;2147483647;:t(0,3)=*(0,4):t(0,4)=*(0,5)q:r(0,3)term:(0,6):t(0,6)=*(0,7):t(0,7)=f(0,1)__call_mod_init_funcs_call_mod_init_funcs:f(0,1)p:(0,6)NXArgc:G(0,2)int:t(0,2)NXArgv:G(0,3)environ:G(0,3)__progname:G(0,4)dyld_lazy_symbol_binding_entry_pointdyld_func_lookup_pointerEH_frame1EH_frame1EH_frame118__PAGEZEROh__TEXT __text__TEXTjk,Z__picsymbol_stub__TEXTհŰ$__symbol_stub__TEXTհŰ__picsymbolstub1__TEXT __cstring__TEXT__symbol_stub1__TEXTڼ ʼ__eh_frame__TEXT Ph __constructor__TEXT,,__destructor__TEXT,,__textcoal_nt__TEXT,,@ __literal8__TEXT__const__TEXT__DATA __data__DATA__nl_symbol_ptr__DATA<*__la_symbol_ptr__DATA9__dyld__DATAtt__gcc_except_tab__DATA=__const__DATA__datacoal_nt__DATAp@ __bss__DATA__common__DATA48__LINKEDITpm /usr/lib/dyld XCS/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon 4CSX/usr/lib/libSystem.B.dylib\T/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon0/usr/lib/libSystem.B.dylib F@*0X 0 `Р#Gǜx` ='s?1 `Gg`(! /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI|t/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Inktl/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServicesx/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScriptingx/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HTMLRendering.framework/Versions/A/HTMLRendering/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/NavigationServices.framework/Versions/A/NavigationServices/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CarbonSound.framework/Versions/A/CarbonSound/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolboxD x~x|8`8(Hf|`x@^@x^@|^@8(@8`-Hf)}8`-@He!|N |B}=|9e}N |B}=|9e}N |B}=|9e}N |!|> x~x|8H8`-Hey~@8@D^D/@Hx^DBBx@L^DBB|@4^DH>D^H ^H/(AHd^DB8DK|8`-@HdH/A4^H /A^H ~H| x}N!~HHd=!|N |B}=|9d}N |B}=|9d<}N |B}=|9c}N |B}=|9d}N |!|> xBHci<_B}@@/A^@T>+@H<_b}$Hc <_b} Hb݀!|N |B}=|9b}N |B}=|9b}N |B}=|9b}N |H8A|~x|#x!|+x8PXPHa8@|}yAT@;@<`8xH=xx8@88THH||xxHxH"|}xxH,@<T,@8a@8XH|}y@XP|08|)x8!px}N A}h;a=@|{x!`8j|+x|#xH= <|}x<` C;`<`8p@L8xHDPH%8a@x8pHH|xxHHh|xxHy/@p8@| @8@\@Dx8a@xK5|x,A ;@\xHeIH|x8a@HxH! 8a@HŃa8!xhAN ,|HA|~x|#x!@`d<8h8 Hd|y@D,@<} Hdx8@@Ki,@(@8`/@H<8f4Hdu8`h8!`|N |cy|H8A!A |dx<`8fHd|`xAH|x8!@|HN 8H 8H|H|xA<|#x!88c,AHcsAX8!Px|H=4aX8!P|hN H,<|88@8|x!C8`A<`8hHcِX8!P|N }N Hol|Ha|+xA|3x|;x!}N!8[|yAtHc=|}xHc8|@\,AD/A<xx8xHcxHc{xHb83|AHxHb{8h8!`|xa|N 8H 8H|H<A|x|#x!8f8,A$HbH=8P8Hs=`9KP9*?AX8!Px}H;LX8!PN |H|hxA! |#x|+xHbiAH8`8!@|HN 8}N |HA!}N!,8`A8`H8!@|N |gx |#xHa|H|gxA! |#xHa8,A H`8H|x8!@|N |H|fxA|#x! cHaY,}8`A8`X8!P|N |H|xA!8@K)@,A 8`H`a@H`=ah8!`|hN |#x8H`|H|xA!8@Ka@,A H`i|~xa@H_̀h8!`x|N |#yM H_|<89!8@f|#x|~x8t8H8DDTA@HLPH`9,8`@tH|~ ",.@4<`;8L8t8HxH_,8`@8!H|H/.@4=@;8P8tx8HH_,8`@aH|X|ct,aA/dA,bA ,f@(=x8@8|8TH_u/8`@D= ff8`a(fga@W|_@p|ht/b|Dp| P | P|^PA0A/a8@H,d8 A/f8A8=T @.T_PTL}#SxU|fxT8`|+xx}jcx]x8!pN /|8!APTc~8/A@A/A H,/8A$/AH8H8HHY|xX8!P|N /|!ATcv/ A+ A<_U):8B`| .|| N t4`tHht|+x8@K݀A@H|+x8DKAD|lxH\EHE9HHE9H/L@;H/R@;;H@/PCx@L$x;xK=x|dx8xKQ;||x/@Cy@xx8!p!|N  @|aB!|lx|#x@|+x;@99>+A<_U):8BP| .|| N Xdt|`p||hPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP,8H 9H 9|tHܠ H 9HȀ 9HLlLTBUk }kxUJ@.}J[x9H }cx8@Kq|lxH}cx8DKD|lxHd8H}cx8HK=H|lxT:|[."H}cx8LKI8H}cx8HK8LK-H|lxT:};.LI|BH/W:A4Hl7@TH`L89AL@H|PT:|A" x||x|#x|3x|+x&x@f}j[x@@;T2/@@[T|| H/@Tx8@DH|/@ T9 T8D|B"H+/A <_T :8B| .|| N  \(Td4DDxxKx|dx8xKH;H ;[H[;|| H8DxK98@K1^D{||x>@TB8|B8})YHx8DK^D8||xTB8|BHpx8DHx8DK8HK^D9 ||xTB8|B"D^HT8|[.H$/A=x9xHp;@xdx8|HKyxH샻xcx8|xHK]=xxHx8K18@K)@8@||x|[Hx8KHx8@K@||x|Htx8@Kـ^@8{HPx8DK8@K^D8TB8|BD>@T8|{.JHx8DKu8LK^D||x{TB8>LK<8xKI8|Kq8||xHx8|KUHX89`D9@Ub8|BB>D8 U":+8BU)8| x|I.D@Hhx8K||xHTx8DK8@K@;||x^D} I8TB8|B})ЀDT8};.HHH@@{}j[x@Al!|N !||#x|{x8!8#xHI{88Ȑ8cH7-8||yAdx%x\P;xK8/Aex&x;@|";8KiyKyTc"@"A"B"C"D"E"F"G"H"I"J"K"LbMbNbObPbQbRbSbTbUbVbWbXbYbZb[b\b]b^b_b`babbbcbdbe"mblbfbgbhbibjbk<_;8Bd|]x;m|.|~./A/AA HC;;@̀{[|`Ph8!`|c|AN |||x!|#xx8@K/\9 |x!`| T:@d/A<8`cxx}N!/|ixA,/9 @ /AHB%x8@K Kt8!}#Kx|N |9`H7ـAaPT8 `a x8a@X\K8a 8@8HBy8a 8K/A/@/A8A x8`89 |Gx}N!/A/@T8a 8KEK8@! x8@88a I HAa x8 Ke/A9@H,8`K8`K8a@8 K|jx hH7|@&|AA||x!|#xC cx8@K|~yA.8`@H.8 @88`xxixLxIN!/8`@`AX/A<8`8 xx}N!/|~xA /8`@x8@KKHx8!aA|}p N |9`PH5AaPT8\a8a@XK8a 8@8H@YAȀ /@|Cx8 KHa8 K/AH?a8 8a@K|jxH6<|dx8`}N T:|D.N cN N |B=!@8@a 8a$9 a(a,a0a4a8aa ?aK@aKAaKBaKCaKDaKEaĘKFaȘKGa̘KHaИKIaԘKJaؘKKaܘKLa+Ma+Na+Oa+Pa+Qa+Ra+Sa+Ta+Ua+Va+Wa +Xa+Ya+Za+[a+\a +]a$+^a(+_a,+`a0+aa4+ba8+ca<+da@+eaD+faH+gaL+haP+iaT+jaX+ka\+l!`Im8!|N /|8!APTc~8/A@A/A H,/8A$/AH8H8HH:|xX8!P|N /|!ATcv/ A+ A<_U):8B`| .|| N t4`tHht|+x8@K݀A@H|+x8DKAD|lxH\EHE9HHE9H+ A<_U):8B`| .|| N t4`tHht|+x8@K݀A@H|+x8DKAD|lxH\EHE9HHE9HKx i HH4 A 9i/| x@H }>Kx xX8!P|Cx|N /|8!APTcv/ A0A/A/H/0A/P@8HHHH5|xX8!P|N ||}x!;  8`/z@H eHxH8@|~8cKi8DK8@8cKU; |ex/RA/P@$e888HTc~K|exH/L8`8@ ;Kh8!`|N D8`@M @ 8`N 8`N |A|}x!|#xcx|+xTc^>Kq8||x}x8@Tc^>K}x8Tc^>8DKA@D8`@A@ 8`H8`x8!pA|N |A|zx!|+xD|#x|B P8bKQDxT}>xK8|dx8@xKY{|cP8cKDxT}>xK8|dx8DxK%A@D8`@A@ 8`H8`x8!pA|N |А|tx!|#x;e/xA;W<x8Bx@@:@@hW8~x<~x~N!/@LW:~x~x|.~N!/@,|^.~x|.YHLW:W8HW:~x~x|.~N!/@,|^.;|.\W<8Bx@A8/@+@:;;@W:|.;}".@;@:@@hW8~x<~x~N!/@LW:~x~x|.~N!/@,|^.~x|.YHLW:W8HW:~x~x|.~N!/@,|^.;|.\W<|x8Z@A8+Ax8!p|N |ܐ||x!|#x;@; ;`;#:H؀/A|@PW}>8BAP|Cx|ZxK)xT}>|{xxK|xxT^>/@ S`HA d x88@xKxK+ATb8~08bH8`A@|@9A;9@@\<^|^;HA/@8!#x|N |ܐ|}x!|#xx|+x;@T^>:W>cxK=|yxH^/AȀt A8|BP8BA(|Cx|ZxKxT{>||xcxKM|yx/@/@LHl$x88@cxKcxK+ATb8~08bH8`@|9A(x/AKTI:8B})ZK=^|^;HA/@8!|N |ܐ||x!|#xx|+x;@T^>:W>cxKU<|yxH^/A؀t A8|BP8BA(|Cx|ZxKxT{>|}xcxK|yx/@ >/!@ D@`Hp$x88@cxKi8|ex8DW>KUcxKY+ATb8~08bH8`!@} 9AAD| Px@A,<^|^;HA/@8`8!|N |ؐ|yx!|#x/AHU8`@A(/@t A :V@@|T~Wb:|B~|cP8cK%$xT}>||xxK8|dx8@xK)8|ex8DW>KA@@@ zxHD:x|@At@ApHPT^>/@hy 9CP@@0|RT ~U":|BBb @@ }*KxH|Z9 @@ |CxHP@AH W>$x~xK;`|yx@@W>|$xT~8HW:~x|B8K8|ex8LWC>KAH@@ xHL;~x|@Ad@AH@t@A@ /A(|x#xxKu|cy@(/@8`H #xxKI8!|N |B??30|}x!|#x/;A4@AxxKI||yAH/@<_8B3,/A||[x|ZxxxK9930I||x/A,~X@A9"/|x@8@,^@/@H,AX^Xt T^>A||cP8cKT}>xxK8|dx8xKh8!`x|N |aB!|~x/A8`.H|{yA<?;1?;1[]~K ][dx8`.H~;HIpA ~H18 h8!`a|N |@&|BaA|{x!8`.|#xH=.|~x@8`8HE.|~xA0<_cxx1<_>"1Ke|}y@|&TcxxH-|}xA<_=?B1^)1>x8`.Hh8!`xa|a}p N |@&|a̐AB!pC|zxT]/@xt@@A< /A@|xCxKU/@Z/H K1Z/|}xST@ZA T@AW:;xH/|bxa@Ax;H/aDAt@A4 /A4|xCx8@K̈́/@H Cx8@KA@:@/A@tt A<_)H$T^>/@<_)H <_)Ԁ/ACx~xHi4 E|AHCx~xKt#|sx/AW :|@.:W:;|@;9;uH;.;;A$Cxex~x~N!/A/|\TB:|Bb@S|tH H~xCxKՀA@: "A@dZ 8!aa|}p N |@&|BܐA|yx!`8`-|#x|+xH };|}yA<_;@'p@}<<8`8h8`H]|cy@4}<<8t8h8`H9|cyAP``/A8/;@8`8H ||x \|{x.A;@8@< x\$x\\`|K|~x@\= 9k-H` K/A,<H@A9b/|x@8@\/Ah\Xt T^>A~|cP8cKT}>xxK 8|dx8xKH`/@L8`-H 8!xa|}p N |a̐;@!B%?|+x@|tx|#x|3x;{+@pxx:`;;|+xH|Pv.~v.A$~x~x~N!/A;Z}@;~;;;A98@@T979V)}BSx}+Kx8B/A 8 9kH 9 9J9)BȐ8!a|N |B}=$0||&, px!Aaځڡ!Aaہۡ$9 |!Yn@ | N | 9`@~a9`P~a9``~a9`p~a9` a9`+a9`Ka9`ka9`a9`a9`a|B9`aΐ N a8 9@H$a}GSx \XTkPHB}a=# | , $Al 9`|C~`9p~`9~`9~`9 `9+`9K`9k`9`9`9`9`px +Kkʋʫ +Kkˋ˫} |+:N ||lx|i!N!HHH|B8`!H <_|cyAb!b!K||lx|i!N!K|B|}x!8`H )|~xx8`H/<_@!0H/AKaKX8!Px!0|N |B|}x!8`H|~xx8`H/<_@ H/AKKyX8!Px |N 8H8H 8H|B<_pB H=?9)&8I\><|B88cIX8!P|HHX8!P8c|H0|;Д!H=^/@ BH8B^C8BCA X8!P~(|N |!H|kxc#/@$5)@LK8BK H45)@$8c0 X8!P|K4@Hm#X8!P|N |B}H| -version%d%n%c%dpure virtual method called __DATA__eh_frame__TEXT=`}N =`}N =`}N =`}N =` }N =`}N =`}N =`}N =`}N =` }N =`$}N =`(}N =`,}N =`0}N =`4}N =`8}N =`<}N =`@}N zPLR|A , A~ 0Pt<A~(|A~ `zPLR|A   H@A~(@lPA~$lTd A~P,`A~(  PA~ 4 0zPLR|A ( yA~ PL<<@A~ll< @A~L@A~(PA~P$X `A~$8\ `A~zR|A ,p\pA~4HA~p ,HpA~(\ A~( $`A~( A~,4FA~dklF%&'()*+,-./01234567l<k@jDiHhLgPfTeXd\c`bdah  "$jizPLR|A , hpA~(Pd A~`(|| A~`D FA~ zPR|A $ h PA~$H\h PA~$pƬh PA~hx`A~0\A~`F@ʔDFA~ 40\,FA~ zPR|A   \0 PA~zR|A  Ӵ A~P4<<8 A~ p4tp A~ ,Td `A~( A~`, A~`F<8FA~ 4xl,A~ F8`( A~ zPLR|A ]  H$ PA~$@L8A~P(hxt A~P(t A~PzPR|A  ( PFA~$L| PA~zPR|A 2   PA~zPR|A   XPA~$D  PA~ l\DPA~|H|+xA!}N!8[|yA9-@@969E9T@A9`m9am9b$<Nm9cm.mDMmDQmDRmDPn DMnDQnDRn09v$Mm9@L9@L9@N99m9n89$\Nn89n8.n8DYn8DcnPDen`DgnpDinDknDpnDqnDrnDsnDtnDwnDxnDznD{oD|o DoDo4DoPDo\DodDxotDoD|oD|oD{oD{oDcoDco9$Yn89@Z9:@Z:%\8:A]<:`^@:_D:`H:n8::ʀ:ۀ::;;;0;@;Q;b;s;;;o;$No;& y; -; .; /< 0<do<t >\>,>B>a>~> > > > > ?  ? ?6 ?K ?h?r? ?D?t?ߠ?@%$?Yj{(`D7F4g<Lt@ <@<@j`@@@HA A)tAS A A A A B B< BgBqBB44-DVXm`CJq q   !!F!s!!!")"W""#<#\#$$%%c%&S\&&'&'L's'''''(((4(J(a(x(((())FH)q@)P))**K0*p*++$+,98,8-8-,..e.../X/4/K/b/y///T/L/D/\0 @00L0ZX040(0 001 181Lt1]d1o1101H2d2C( 2(C2CI4CWdCeCCC CCLCtC DDD/DJ4DTDhDwXDPDĴD4D`D D D E  E- EA EU En E E E E ELEFFF6$FOF^Fqx2P222`23313PF~͸̈͘3ǘF4Π213P333p3 P4 T4A4[ό`h114v4444555/5F5]h5wp5555FFF `F5Ѽ5 68 T ,6,6I6^FF FPG G2` =p6qӤ6|6G<ԀGG Ul d666677   7TPYlkܤ( Amv:, p)D_w Pq 5Oi  % ? f       < V p  Pxwޠ&T/*    <    B g   a  Jv L,  E/d5{HsLvtfwHTwLnvvvzp+zS{<zy0yl,xxEx^yyz ywwwur  %K^x 1M rux\oj } } ~> zX s  Q Ol | | |t$ |.$7 |  \     @  ` K J < K$ P? X J F dR Y LN Y2I ָ P |Sg |S_  *h #`  ` #`2` 2t   t 1 )` (2B L """"&"("*"6"8"n"""" (*8:>?AB[4=U"" J" L8 8 ; F PPɀ_NXArgc_NXArgv___progname__dyld_func_lookup__dyld_init_check__start_environdyld_stub_binding_helperstart___darwin_gcc3_preregister_frame_info___keymgr_dwarf2_register_sections__cthread_init_routine__mh_execute_header_atexit_catch_exception_raise_catch_exception_raise_state_catch_exception_raise_state_identity_clock_alarm_reply_do_mach_notify_dead_name_do_mach_notify_no_senders_do_mach_notify_port_deleted_do_mach_notify_send_once_do_seqnos_mach_notify_dead_name_do_seqnos_mach_notify_no_senders_do_seqnos_mach_notify_port_deleted_do_seqnos_mach_notify_send_once_errno_exit_mach_init_routine_main_receive_samples___keymgr_global__dyld_register_func_for_add_image__dyld_register_func_for_remove_image__init_keymgr__keymgr_get_and_lock_processwide_ptr__keymgr_set_and_unlock_processwide_ptr_abort_calloc_free_Z12versionUsagePKc.eh_Z16DMVersionAtLeastR14IOXPreferencesPKcRb.eh_Z18DMPrefsVersionTestiPKcRb.eh_Z5usagePKc.eh__Z16DMVersionAtLeastR14IOXPreferencesPKcRb__Z18DMPrefsVersionTestiPKcRbmain.eh_CFRelease__Unwind_Resume__Z12StringToVersPKcRm__Z17CStringToCFStringPKc__ZN13StackCFStringC1EPKc__ZN13StackCFStringD1Ev__ZN14IOXPreferencesD1Ev__ZNK17IOXDictionaryBase10getCStringE13StackCFStringPclRl__ZNK17IOXDictionaryBase7getLongE13StackCFStringRl__ZTV14IOXPreferences___gxx_personality_v0_atoi_kCFPreferencesAnyUser_kCFPreferencesCurrentHost_memcmp_printf_Z11LogRefCountPKvPKci.eh_Z11NumToNumRef12CFNumberTypePKv.eh_Z17CStringToCFStringPKc.eh_Z18HexCStringToOSTypePKcRm.eh_Z18OSTypeToHexCStringmPcm.eh_ZN11StackCFDataC1EPKhm.eh_ZN11StackCFDataC2EPKhm.eh_ZN11StackCFDataD0Ev.eh_ZN11StackCFDataD1Ev.eh_ZN11StackCFDataD2Ev.eh_ZN13IOXDictionary12_eraseExtantEv.eh_ZN13IOXDictionary21_releaseDictAfterSaveEPK14__CFDictionary.eh_ZN13IOXDictionary24_addContentsOfDictionaryEPK14__CFDictionary.eh_ZN13IOXDictionary8getCountEv.eh_ZN13IOXDictionaryC1EP14__CFDictionary.eh_ZN13IOXDictionaryC1EPK14__CFDictionary.eh_ZN13IOXDictionaryC1Ev.eh_ZN13IOXDictionaryC2EP14__CFDictionary.eh_ZN13IOXDictionaryC2EPK14__CFDictionary.eh_ZN13IOXDictionaryC2Ev.eh_ZN13IOXDictionaryD0Ev.eh_ZN13IOXDictionaryD1Ev.eh_ZN13IOXDictionaryD2Ev.eh_ZN13StackCFNumberC1E12CFNumberTypePKv.eh_ZN13StackCFNumberC2E12CFNumberTypePKv.eh_ZN13StackCFNumberD0Ev.eh_ZN13StackCFNumberD1Ev.eh_ZN13StackCFNumberD2Ev.eh_ZN13StackCFStringC1EPK10__CFString.eh_ZN13StackCFStringC1EPKc.eh_ZN13StackCFStringC1Em.eh_ZN13StackCFStringC2EPK10__CFString.eh_ZN13StackCFStringC2EPKc.eh_ZN13StackCFStringC2Em.eh_ZN13StackCFStringC4EPK10__CFString.eh_ZN13StackCFStringC4EPKc.eh_ZN13StackCFStringD0Ev.eh_ZN13StackCFStringD1Ev.eh_ZN13StackCFStringD2Ev.eh_ZN13StackCFStringD4Ev.eh_ZN17IOXDictionaryBase10setBooleanE13StackCFStringb.eh_ZN17IOXDictionaryBase10setBooleanE13StackCFStringh.eh_ZN17IOXDictionaryBase12PtrAllocatorEl.eh_ZN17IOXDictionaryBase13setDictionaryE13StackCFStringPK14__CFDictionary.eh_ZN17IOXDictionaryBase13setDictionaryE13StackCFStringR13IOXDictionary.eh_ZN17IOXDictionaryBase18setPropertyListRefE13StackCFStringPKv.eh_ZN17IOXDictionaryBase6removeE13StackCFString.eh_ZN17IOXDictionaryBase7PtrFreeEPc.eh_ZN17IOXDictionaryBase7setDataE13StackCFStringPK8__CFData.eh_ZN17IOXDictionaryBase8setArrayE13StackCFStringPK9__CFArray.eh_ZN17IOXDictionaryBase9setStringE13StackCFStringPK10__CFString.eh_ZN17IOXDictionaryBaseD0Ev.eh_ZN17IOXDictionaryBaseD1Ev.eh_ZN19StackCFPascalStringC1EPKc.eh_ZN19StackCFPascalStringC2EPKc.eh_ZNK13IOXDictionary4_getEPK10__CFString.eh_ZNK17IOXDictionaryBase10getCStringE13StackCFStringPclRl.eh_ZNK17IOXDictionaryBase10getIntegerE13StackCFStringRi.eh_ZNK17IOXDictionaryBase11getLongLongE13StackCFStringRx.eh_ZNK17IOXDictionaryBase15getUnsignedLongE13StackCFStringRm.eh_ZNK17IOXDictionaryBase18getUnsignedIntegerE13StackCFStringRj.eh_ZNK17IOXDictionaryBase7getKeysERPK9__CFArray.eh_ZNK17IOXDictionaryBase7getLongE13StackCFStringRl.eh_ZNK17IOXDictionaryBase8containsE13StackCFString.eh_ZNK17IOXDictionaryBase8getFloatE13StackCFStringRf.eh_ZNK17IOXDictionaryBase9getDoubleE13StackCFStringRd.eh_ZNK17IOXDictionaryBase9getNumberIlL12CFNumberType10EEElR13StackCFStringRT_.eh__ZN13StackCFStringC4EPKc__ZN13StackCFStringD0Ev__ZN13StackCFStringD4Ev__ZN17IOXDictionaryBaseD0Ev__ZN17IOXDictionaryBaseD1Ev__ZNK17IOXDictionaryBase7getKeysERPK9__CFArray__ZNK17IOXDictionaryBase9getNumberIlL12CFNumberType10EEElR13StackCFStringRT___ZTI13StackCFString__ZTI17IOXDictionaryBase__ZTS13StackCFString__ZTS17IOXDictionaryBase__ZTV13StackCFString_CFGetTypeID_CFNumberGetTypeID_CFNumberGetValue_CFStringCreateWithCString_CFStringGetCString_CFStringGetLength_CFStringGetTypeID__ZTVN10__cxxabiv117__class_type_infoE__ZTVN10__cxxabiv120__si_class_type_infoE__ZdlPv___cxa_pure_virtual_kCFAllocatorDefault_sscanf_strlen_ZN14IOXPreferences11getMultipleEPK9__CFArray.eh_ZN14IOXPreferences11setMultipleEPK14__CFDictionaryPK9__CFArray.eh_ZN14IOXPreferences12_eraseExtantEv.eh_ZN14IOXPreferences15_getDictForSaveEv.eh_ZN14IOXPreferences21_releaseDictAfterSaveEPK14__CFDictionary.eh_ZN14IOXPreferences24_addContentsOfDictionaryEPK14__CFDictionary.eh_ZN14IOXPreferences4_setEPK10__CFStringPKv.eh_ZN14IOXPreferences7_removeEPK10__CFString.eh_ZN14IOXPreferencesC1EPKcPK10__CFStringS4_.eh_ZN14IOXPreferencesC2EPKcPK10__CFStringS4_.eh_ZN14IOXPreferencesD0Ev.eh_ZN14IOXPreferencesD1Ev.eh_ZN14IOXPreferencesD2Ev.eh_ZN14IOXPreferencesD4Ev.eh_ZNK14IOXPreferences4_getEPK10__CFString.eh_ZNK14IOXPreferences4_getEPK10__CFStringRPKv.eh_ZNK14IOXPreferences8_getKeysERPK9__CFArray.eh_ZNK14IOXPreferences9_containsEPK10__CFString.eh__ZN14IOXPreferences12_eraseExtantEv__ZN14IOXPreferences15_getDictForSaveEv__ZN14IOXPreferences21_releaseDictAfterSaveEPK14__CFDictionary__ZN14IOXPreferences24_addContentsOfDictionaryEPK14__CFDictionary__ZN14IOXPreferences4_setEPK10__CFStringPKv__ZN14IOXPreferences7_removeEPK10__CFString__ZN14IOXPreferencesD0Ev__ZN14IOXPreferencesD4Ev__ZNK14IOXPreferences4_getEPK10__CFString__ZNK14IOXPreferences4_getEPK10__CFStringRPKv__ZNK14IOXPreferences8_getKeysERPK9__CFArray__ZNK14IOXPreferences9_containsEPK10__CFString__ZTI14IOXPreferences__ZTS14IOXPreferences_CFPreferencesCopyKeyList_CFPreferencesCopyMultiple_CFPreferencesCopyValue_CFPreferencesSetMultiple_CFPreferencesSetValue_Z11MakeCStringPcPKvii.eh_Z11MakePStringPhPKvii.eh_Z11TruncToCStrPccm.eh_Z12MakePCStringPhii.eh_Z12OSTypestrcpyPcmi.eh_Z12StringToVersPKcRm.eh_Z13ASCIICharDumpPKvPcim.eh_Z15CStringToOSTypePKcRm.eh_Z7HexDumpPKvPcim.eh_Z7cstrcatPcPKci.eh_Z7cstrcpyPcPKci.eh_Z7pstrcatPhPKhi.eh_Z7pstrcpyPhPKhi.eh_Z8cpstrcatPhPKci.eh_Z8cpstrcpyPhPKci.eh_Z8pcstrcatPcPKhi.eh_Z8pcstrcpyPcPKhi.eh_Z20NanosecondsToSecondsRK12UnsignedWide.eh_Z20NanosecondsToSecondsy.eh_Z20SecondsToNanosecondsdR12UnsignedWide.eh_Z30UnsignedFixedRateToNanosecondsm.eh_Z30UnsignedFixedRateToNanosecondsmR12UnsignedWide.eh_Z30UnsignedFixedSecsToNanosecondsm.eh_Z30UnsignedFixedSecsToNanosecondsmR12UnsignedWide.eh_ZN11NativeTimer5ResetEv.eh_ZN11NativeTimerC1Ev.eh_ZN11NativeTimerC2Ev.eh_ZN11NativeTimerC4Ev.eh_ZN14MPCallThrottleC1El.eh_ZN14MPCallThrottleC2El.eh_ZN10IOXDprintfILb1EEclEPKcz.eh_ZN16IOXAppErrorUtils18getSigTermReceivedEv.eh_Z13CopyRightJustPKvlPvlc.eh_Z23NFNewHandleSysTempClearRPPcl.eh_memset__keymgr_get_per_thread_data__keymgr_set_per_thread_data__keymgr_unlock_processwide_ptr_pthread_once__cpu_has_altivec_malloc_Unwind_DeleteException.eh_Unwind_GetDataRelBase.eh_Unwind_GetGR.eh_Unwind_GetIP.eh_Unwind_GetLanguageSpecificData.eh_Unwind_GetRegionStart.eh_Unwind_GetTextRelBase.eh_Unwind_Resume.eh_Unwind_SetGR.eh_Unwind_SetIP.eh__Unwind_DeleteException__Unwind_GetDataRelBase__Unwind_GetIP__Unwind_GetLanguageSpecificData__Unwind_GetRegionStart__Unwind_GetTextRelBase__Unwind_RaiseException__Unwind_SetGR__Unwind_SetIP__Unwind_Find_FDE_memcpyeh_rest_world_r10save_world__ZTISt13bad_exception__ZTISt9exception__ZTSSt13bad_exception__ZTSSt9exception___cxa_call_unexpected__gxx_personality_v0.eh__ZN10__cxxabiv111__terminateEPFvvE__ZN10__cxxabiv112__unexpectedEPFvvE__ZNSt13bad_exceptionD1Ev__ZTVSt13bad_exception___cxa_allocate_exception___cxa_begin_catch___cxa_end_catch___cxa_get_globals_fast___cxa_rethrow___cxa_throw_ZN10__cxxabiv117__class_type_infoD0Ev.eh_ZN10__cxxabiv117__class_type_infoD1Ev.eh_ZN10__cxxabiv117__class_type_infoD2Ev.eh_ZN10__cxxabiv117__class_type_infoD4Ev.eh_ZN10__cxxabiv120__si_class_type_infoD0Ev.eh_ZN10__cxxabiv120__si_class_type_infoD1Ev.eh_ZN10__cxxabiv120__si_class_type_infoD2Ev.eh_ZN10__cxxabiv120__si_class_type_infoD4Ev.eh_ZN10__cxxabiv121__vmi_class_type_infoD0Ev.eh_ZN10__cxxabiv121__vmi_class_type_infoD1Ev.eh_ZN10__cxxabiv121__vmi_class_type_infoD2Ev.eh_ZN10__cxxabiv121__vmi_class_type_infoD4Ev.eh_ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj.eh_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE.eh_ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv.eh_ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE.eh_ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2_.eh_ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE.eh_ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE.eh_ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_.eh_ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE.eh_ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE.eh_ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2_.eh_ZNKSt9type_info10__do_catchEPKS_PPvj.eh_ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv.eh_ZNKSt9type_info14__is_pointer_pEv.eh_ZNKSt9type_info15__is_function_pEv.eh_ZNKSt9type_infoeqERKS_.eh_ZNSt10bad_typeidD0Ev.eh_ZNSt10bad_typeidD1Ev.eh_ZNSt10bad_typeidD2Ev.eh_ZNSt10bad_typeidD4Ev.eh_ZNSt8bad_castD0Ev.eh_ZNSt8bad_castD1Ev.eh_ZNSt8bad_castD2Ev.eh_ZNSt8bad_castD4Ev.eh_ZNSt9type_infoD0Ev.eh_ZNSt9type_infoD1Ev.eh_ZNSt9type_infoD2Ev.eh_ZNSt9type_infoD4Ev.eh__ZN10__cxxabiv117__class_type_infoD0Ev__ZN10__cxxabiv117__class_type_infoD1Ev__ZN10__cxxabiv117__class_type_infoD2Ev__ZN10__cxxabiv117__class_type_infoD4Ev__ZN10__cxxabiv120__si_class_type_infoD0Ev__ZN10__cxxabiv120__si_class_type_infoD1Ev__ZN10__cxxabiv120__si_class_type_infoD4Ev__ZN10__cxxabiv121__vmi_class_type_infoD0Ev__ZN10__cxxabiv121__vmi_class_type_infoD1Ev__ZN10__cxxabiv121__vmi_class_type_infoD4Ev__ZNK10__cxxabiv117__class_type_info10__do_catchEPKSt9type_infoPPvj__ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PKvRNS0_15__upcast_resultE__ZNK10__cxxabiv117__class_type_info11__do_upcastEPKS0_PPv__ZNK10__cxxabiv117__class_type_info12__do_dyncastEiNS0_10__sub_kindEPKS0_PKvS3_S5_RNS0_16__dyncast_resultE__ZNK10__cxxabiv117__class_type_info20__do_find_public_srcEiPKvPKS0_S2___ZNK10__cxxabiv120__si_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__ZNK10__cxxabiv120__si_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__ZNK10__cxxabiv120__si_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___ZNK10__cxxabiv121__vmi_class_type_info11__do_upcastEPKNS_17__class_type_infoEPKvRNS1_15__upcast_resultE__ZNK10__cxxabiv121__vmi_class_type_info12__do_dyncastEiNS_17__class_type_info10__sub_kindEPKS1_PKvS4_S6_RNS1_16__dyncast_resultE__ZNK10__cxxabiv121__vmi_class_type_info20__do_find_public_srcEiPKvPKNS_17__class_type_infoES2___ZNKSt9type_info10__do_catchEPKS_PPvj__ZNKSt9type_info11__do_upcastEPKN10__cxxabiv117__class_type_infoEPPv__ZNKSt9type_info14__is_pointer_pEv__ZNKSt9type_info15__is_function_pEv__ZNKSt9type_infoeqERKS___ZNSt10bad_typeidD0Ev__ZNSt10bad_typeidD1Ev__ZNSt10bad_typeidD4Ev__ZNSt8bad_castD0Ev__ZNSt8bad_castD1Ev__ZNSt8bad_castD4Ev__ZNSt9type_infoD0Ev__ZNSt9type_infoD1Ev__ZNSt9type_infoD2Ev__ZNSt9type_infoD4Ev__ZTIN10__cxxabiv117__class_type_infoE__ZTIN10__cxxabiv120__si_class_type_infoE__ZTIN10__cxxabiv121__vmi_class_type_infoE__ZTISt10bad_typeid__ZTISt8bad_cast__ZTISt9type_info__ZTSN10__cxxabiv117__class_type_infoE__ZTSN10__cxxabiv120__si_class_type_infoE__ZTSN10__cxxabiv121__vmi_class_type_infoE__ZTSSt10bad_typeid__ZTSSt8bad_cast__ZTSSt9type_info__ZTVN10__cxxabiv121__vmi_class_type_infoE__ZTVSt10bad_typeid__ZTVSt8bad_cast__ZTVSt9type_info__ZNKSt9exception4whatEv__ZNSt9exceptionD2Ev_strcmp_ZdaPv.eh_ZdlPv.eh__cxa_pure_virtual.eh__ZSt9terminatev_write_getsectdatafromheader_pthread_mutex_lock_pthread_mutex_unlock_Unwind_Find_FDE.eh___deregister_frame_info_bases__deregister_frame_info.eh__deregister_frame_info_bases.eh__register_frame_info.eh__register_frame_info_bases.eh__register_frame_info_table.eh__register_frame_info_table_bases.ehrest_world_ZN10__cxxabiv111__terminateEPFvvE.eh_ZSt13set_terminatePFvvE.eh_ZSt14set_unexpectedPFvvE.eh_ZSt9terminatev.eh__ZN10__cxxabiv119__terminate_handlerE__ZN10__cxxabiv120__unexpected_handlerE__ZSt13set_terminatePFvvE__ZSt14set_unexpectedPFvvE_ZNKSt9exception4whatEv.eh_ZNSt13bad_exceptionD0Ev.eh_ZNSt13bad_exceptionD1Ev.eh_ZNSt13bad_exceptionD2Ev.eh_ZNSt13bad_exceptionD4Ev.eh_ZNSt9exceptionD0Ev.eh_ZNSt9exceptionD1Ev.eh_ZNSt9exceptionD2Ev.eh_ZNSt9exceptionD4Ev.eh__ZNSt13bad_exceptionD0Ev__ZNSt13bad_exceptionD4Ev__ZNSt9exceptionD0Ev__ZNSt9exceptionD1Ev__ZNSt9exceptionD4Ev__ZTVSt9exception___cxa_free_exception__cxa_allocate_exception.eh__cxa_free_exception.eh_ZSt18uncaught_exceptionv.eh__cxa_begin_catch.eh__cxa_end_catch.eh___cxa_get_globals__cxa_get_globals.eh__cxa_get_globals_fast.eh__cxa_rethrow.eh__cxa_throw.eh_ZNSt9bad_allocD0Ev.eh_ZNSt9bad_allocD1Ev.eh_ZNSt9bad_allocD2Ev.eh_ZNSt9bad_allocD4Ev.ehstart.sint:t1=r1;-2147483648;2147483647;char:t2=r2;0;127;/SourceCache/Csu/Csu-58//SourceCache/Csu/Csu-58/crt.cgcc2_compiled._pointer_to__darwin_gcc3_preregister_frame_info_start:F(0,1)argc:P(0,2)argv:P(0,3)envp:P(0,3)p:r(0,4)char:t(0,5)=r(0,5);0;127;:t(0,1)=(0,1)int:t(0,2)=r(0,2);-2147483648;2147483647;:t(0,3)=*(0,4):t(0,4)=*(0,5)q:r(0,3)term:(0,6):t(0,6)=*(0,7):t(0,7)=f(0,1)__call_mod_init_funcs_call_mod_init_funcs:f(0,1)p:(0,6)_crt_basenamecrt_basename:f(0,8)path:P(0,8)s:r(0,8):t(0,8)=*(0,9):t(0,9)=k(0,5)last:r(0,8)_crt_strbeginswithcrt_strbeginswith:f(0,2)s1:P(0,8)s2:P(0,8)i:r(0,2)int:t(0,2)__call_objcInit_call_objcInit:f(0,1)i:r(0,10)unsigned int:t(0,10)=r(0,10);0;037777777777;count:r(0,10)_dyld_image_count_fn:(0,11)_dyld_get_image_name_fn:(0,12)_dyld_get_image_header_fn:(0,13)NSLookupSymbolInImage_fn:(0,14)NSAddressOfSymbol_fn:(0,15)void:t(0,1):t(0,11)=*(0,16):t(0,12)=*(0,17):t(0,13)=*(0,18):t(0,14)=*(0,19):t(0,15)=*(0,20):t(0,16)=f(0,10):t(0,17)=f(0,8):t(0,18)=f(0,21):t(0,19)=f(0,21):t(0,20)=f(0,22):t(0,21)=*(0,23):t(0,22)=*(0,1):t(0,23)=k(0,1)pointer_to__darwin_gcc3_preregister_frame_info:S(0,6)NXArgc:G(0,2)NXArgv:G(0,3)environ:G(0,3)__progname:G(0,4)dyld_lazy_symbol_binding_entry_pointerror_messagedyld_func_lookup_pointer_darwin_unwind_dyld_add_image_hook_darwin_unwind_dyld_remove_image_hookEH_frame1__ZTV17IOXDictionaryBaseEH_frame1__ZTV17IOXDictionaryBaseEH_frame1_Z11nibbleValueiRj.eh_size_of_encoded_value_base_of_encoded_value_read_uleb128_read_sleb128_read_encoded_value_with_base_extract_cie_info_execute_stack_op_execute_cfa_program_uw_frame_state_for_uw_update_context_1_uw_update_context_uw_init_context_1_once_regsizes.0_uw_install_context_1_dwarf_reg_size_table__Unwind_RaiseException_Phase2__Unwind_ForcedUnwind_Phase2_init_dwarf_reg_size_tablesize_of_encoded_value.ehbase_of_encoded_value.ehread_uleb128.ehread_sleb128.ehread_encoded_value_with_base.ehexecute_stack_op.ehuw_update_context_1.ehuw_update_context.ehinit_dwarf_reg_size_table.ehEH_frame1extract_cie_info.ehexecute_cfa_program.ehuw_frame_state_for.ehuw_init_context_1.ehuw_install_context_1.eh_Unwind_RaiseException_Phase2.eh_Unwind_ForcedUnwind_Phase2.eh__Z21size_of_encoded_valueh__Z21base_of_encoded_valuehP15_Unwind_Context__Z12read_uleb128PKhPj__Z12read_sleb128PKhPi__Z28read_encoded_value_with_basehjPKhPj__Z17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info__Z15get_ttype_entryP16lsda_header_infoj__Z16get_adjusted_ptrPKSt9type_infoS1_PPv__Z20check_exception_specP16lsda_header_infoPKSt9type_infoPvi_Z21size_of_encoded_valueh.eh_Z21base_of_encoded_valuehP15_Unwind_Context.eh_Z12read_uleb128PKhPj.eh_Z12read_sleb128PKhPi.eh_Z28read_encoded_value_with_basehjPKhPj.eh_Z15get_ttype_entryP16lsda_header_infoj.ehEH_frame1_Z17parse_lsda_headerP15_Unwind_ContextPKhP16lsda_header_info.eh_Z16get_adjusted_ptrPKSt9type_infoS1_PPv.eh_Z20check_exception_specP16lsda_header_infoPKSt9type_infoPvi.ehEH_frame1EH_frame1_size_of_encoded_value_read_uleb128_read_sleb128_read_encoded_value_with_base_unseen_objects_seen_objects_base_from_object_get_cie_encoding_fde_unencoded_compare_fde_single_encoding_compare_fde_mixed_encoding_compare_marker.0_frame_heapsort_classify_object_over_fdes_add_fdes_linear_search_fdes_search_object_init_object__Unwind_Find_registered_FDE_live_image_destructor_examine_objects_fde_splitsize_of_encoded_value.ehread_uleb128.ehread_sleb128.ehread_encoded_value_with_base.ehbase_from_object.ehget_cie_encoding.ehfde_unencoded_compare.ehfde_single_encoding_compare.ehfde_mixed_encoding_compare.ehclassify_object_over_fdes.ehadd_fdes.ehlinear_search_fdes.ehEH_frame1frame_heapsort.ehsearch_object.eh_Unwind_Find_registered_FDE.ehlive_image_destructor.ehinit_object.ehexamine_objects.ehfde_split.ehrest_world_eh_r7r8EH_frame1_emergency_buffer_emergency_used_emergency_mutexEH_frame1_globals_static_use_thread_key__Z21get_globals_init_oncev_Z21get_globals_init_oncev.ehEH_frame1__Z23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_ExceptionEH_frame1_Z23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_Exception.eh#!/bin/sh +x # # Argument 1 (the only argument to InstallationCheck) is the full name of the package # The IOXperts installation check goes into the package becuase the installation gets # confused about the # # NOTE - this check works only with the current boot volume, although it is called for # each and every volume. (TODO-try setting install only on boot volume flag in .info file) # There probably isn't any way to use the volume argument "$3" to apply this to # the selected installation volume because of the above. There is no script that # is called after the volume selection but before the installer chooses install/upgrade. # Also, the installer should only install the driver on the boot volume because it # needs to do prebinding which I suspect will not work correctly if you install the # driver on a different boot volume. # P="$1" PACKAGE_NAME=`/usr/bin/basename "${P}"` /bin/rm -rf "/Library/Receipts/${PACKAGE_NAME}" # case sensitivity work around if [ "${PACKAGE_NAME}" == "Webcam.pkg" ] then /bin/rm -rf "/Library/Receipts/WebCam.pkg" fi exit 0 # # TODO - are there variants that cause problems? # special handling for Webcam vs WebCam # # # Where the InstallationCheck.strings go. # #Test.pkg # Contents # Archive.bom # Archive.pax.gz # Info.plist # Resources # Description.plist # InstallationCheck -1- # English.lproj -2- # InstallationCheck.strings -3- # French.lproj -4- # InstallationCheck.strings -5- ##!/bin/sh -x # ---------------------------------------------------------------------------- # exit script with error if symbol named $2 with value $1 doesn't exist as a file # system object. # TODO - disable and restore echoing during these functions function assertExistFileSystemObject() { # if name is '' if [ "x$1" == "x" ] then echo $2 "is undefined" exit 1 fi # if name exists if ! [ -e "$1" ] then echo $2 " == " $1 " doesn't exist" exit 1 fi } # ---------------------------------------------------------------------------- # exit script with error if symbol $2 with value $1 doesn't exist or isn't a directory function assertExistDir() { assertExistFileSystemObject "$1" "$2" # if name is dir if ! [ -d "$1" ] then echo $2 " == " $1 " is not a directory" exit 1 fi } # ---------------------------------------------------------------------------- # exit script with error if symbol $2 with value $1 doesn't exist or isn't a directory function assertDefinedString() { if [ -z "$1" ] then echo $2 " == " $1 " is not a file" exit 1 fi } # ---------------------------------------------------------------------------- # exit script with error if symbol $2 with value $1 doesn't exist or isn't a directory function assertExistFile() { assertExistFileSystemObject "$1" "$2" # if name is file if ! [ -f "$1" ] then echo $2 " == " $1 " is not a file" exit 1 fi } # ---------------------------------------------------------------------------- # exit script with error if symbol $2 with value $1 doesn't exist or isn't an executable function assertExistExecutable() { assertExistFileSystemObject "$1" "$2" # if name is executable if ! [ -x "$1" ] then echo $2 " == " $1 " is not executable" exit 1 fi } # ---------------------------------------------------------------------------- # exit script with error if symbol $2 with value $1 doesn't exist or isn't a directory function assertExistAppBundle() { assertExistDir "$1" "$2" assertExistDir "$1/Contents" "$2/Contents" assertExistDir "$1/Contents/Resources" "$2/Resources" assertExistDir "$1/Contents/MacOS" "$2/MacOS" assertExistFile "$1/Contents/Info.plist" "$2/Contents/Info.plist" assertExistFile "$1/Contents/PkgInfo" "$2/Contents/PkgInfo" } #! /bin/sh -x DEVICE_MONITOR_APP="/Library/Application Support/IOXperts/Private/ioxdeviced.app" DEVICE_MONITOR="/Library/StartupItems/IOXpertsDeviceMonitor" DEVICE_MONITOR_LAUNCHD_PLIST="/Library/LaunchDaemons/com.ioxperts.ioxdeviced.1.1.plist" SESSION_MONITOR_APP="/Library/Application Support/IOXperts/Private/ioxsessiond.app" REGISTER_APP="/Library/Application Support/IOXperts/Private/IOXperts Register.app" IDENTIFIER_APP="/Applications/IOXperts/IOXperts Camera Identifier.app" CAMERA_CONTROL_APP="/Applications/IOXperts/IOXperts Camera Control.app" SGPANEL_COMPONENT="/Library/Components/IOXperts Video Support.component" DIGITIZER_COMPONENT="/Library/Components/IOXperts Webcam.component" IIDC_CODEC_COMPONENT="/Library/Components/IOXperts IIDC Codec.component" #!/bin/sh +x # # IOXperts Uninstaller.sh # # Written by : Ian Keck Dec 2004-Jan 2005 # # # Usage: IOXpertsUninstaller [-volume ] [-bin ] [-scripts ] [-show] [-installer] [-verbose] ... # # Valid methods are: trash, mvmac, remove, show # trash uses a tool to move files to the trash, appending 'copy ' as appropriate # mvmac uses mvmac to move files to the trash, but currently doesn't append 'copy ' to the names. # remove uses the rm command # show lists the files to be removed # # Options are as follows # -volume remove products on volume named /Volumes/, default = boot volume # NOTE - trash methods may not work, remove and show options should work. # -bin location of bin directory - containing all tools needed by the removal script - default is . # -scripts location of scripts dir - containing all scripts that need to be sourced - default is . # -show echo commands that would be performed instead of performing them # -installer uninstaller is running in the installer # -verbose echo more stuff # -removeprefs remove preference files for specified components # -clearprefs erase specific preferences for specified components # -removeinstaller remove installer receipts for specified components # -log show names of files as they are being removed # -preflight skip removal phase # # Names of items which may be removed # # The following names are composite items # webcam, usbwebcam = ioxperts usb webcam drivers # iidc = ioxperts iidc firewire drivers # wireless = ioxperts wireless drivers # still = ioxperts still camera drivers # industrial = ioxperts industrial camera drivers # logitech = logitech webcam drivers # stmicro = stmicro still drivers # ioxperts = webcam, iidc, wireless, still and industrial # all = ioxperts and logitech # # The following names are individual items # shared = video shared # register = purchase and register # dm = device monitor # sm = session monitor # sgpanel = sgpanel # codecs = standard ioxperts codecs # industrial-codecs = bayer codecs # video-kexts = ioxperts video kext # logitech-kexts = logitech kexts # webcam-vdigs # iidc-vdigs # industrial-vdigs # logitech-vdigs # wireless-kexts # still-capture # stmicro-still-capture # # # # -------------------------------------------------------------------------- # Required Tools # # MoveToTrash # MvMac # ComponentTool # # Required Scripts # UninstallerTools.sh # # Unix Tools # rm # kill # ls # echo # sed # # --------------------------------------------------------------------------- # # Expected Behavior # In an installer - remove everything that will conflict with what will be replacing it. # Outside an installer - only allow top level - composite components # - don't remove components shared by other installed components. # Remove - doesn't fail if something isn't there. # Test for IsInstalled - if only one item of a subsystem is there it's installed for the purposes # of the uninstaller # # Problems - need to be able to determine what is installed. # - need to be able to determine what not to remove - those items used by other installed components. # - can do all this in sh, easier to do in python. # # # --------------------------------------------------------------------------- # # # TODO - write a function that saves a copy of device keys to ~ # TODO - write a script that restores these device keys from ~ # TODO - move files to trash in structure corresponding to the installation structure. # how would this work with multiple installs and 'copy ' appended? # TODO - move to appropriate trash on another boot volume - may need to specify user and trash folder explicitly # # echo commands off (set -v echos commands, set +v doesn't) # xtrace on (set -x shows what was executed, set +x doesn't) # ---------------------------------------------------------------------- # Process Args HOW=$1 WHAT=() VOLUME="" BINDIR="" SCRIPTDIR="." VERBOSE=0 LOG=0 PREFLIGHT=0 SHOW=0 INSTALLER=0 OPTION_REMOVE_INSTALLER=0 OPTION_REMOVE_PREFERENCES=0 OPTION_CLEAR_PREFERENCES=0 # ----------------------------------------------------------------------- shift while (( 0 < $# )) do arg="$1" if [[ "${arg}" == "-volume" || "${arg}" == "-v" ]] then shift VOLUME="$1" elif [ "${arg}" == "-bin" ] then shift BINDIR="$1" elif [ "${arg}" == "-scripts" ] then shift SCRIPTDIR="$1" elif [ "${arg}" == "-installer" ] then INSTALLER=1 elif [ "${arg}" == "-removeinstaller" ] then OPTION_REMOVE_INSTALLER=1 elif [ "${arg}" == "-removeprefs" ] then OPTION_REMOVE_PREFERENCES=1 elif [ "${arg}" == "-clearprefs" ] then OPTION_CLEAR_PREFERENCES=1 elif [[ "${arg}" == "-show" || "${arg}" == "-showonly" ]] then SHOW=1 elif [ "${arg}" == "-log" ] then LOG=1 elif [ "${arg}" == "-verbose" ] then VERBOSE=1 elif [ "${arg}" == "-preflight" ] then PREFLIGHT=1 else # add arg to list of what to take action on. WHAT=( "${WHAT[@]}" "${arg}" ) fi shift done # ----------------------------------------------------------------------- if [ "${#WHAT}" -eq 0 ] then echo "No uninstall specified" exit 1 fi if [ -z "${SCRIPTDIR}" ] then SCRIPTDIR="." fi if [ -z "${BINDIR}" ] then BINDIR="${SCRIPTDIR}" fi if [ "${OPTION_REMOVE_PREFERENCES}" -ne 0 ] then OPTION_CLEAR_PREFERENCES=0 fi if ! [ -z "${VOLUME}" ] then VOLUME="/Volumes/${VOLUME}" fi # ---------------------------------------------------------------------- if ! [ "${VERBOSE}" -eq 0 ] then echo "Args" > /dev/stderr echo " " > /dev/stderr echo " WHAT= ${WHAT[@]}" > /dev/stderr echo " HOW= ${HOW}" > /dev/stderr echo " SHOW= ${SHOW}" > /dev/stderr echo " VOLUME= '${VOLUME}'" > /dev/stderr echo " BINDIR= ${BINDIR}" > /dev/stderr echo " SCRIPTDIR= ${SCRIPTDIR}" > /dev/stderr echo " " > /dev/stderr echo " INSTALLER= ${INSTALLER}" > /dev/stderr echo " CLEAR_PREFS= ${OPTION_CLEAR_PREFERENCES}" > /dev/stderr echo " REMOVE_PREFS= ${OPTION_REMOVE_PREFERENCES}" > /dev/stderr echo " REMOVE_INSTALLER=${OPTION_REMOVE_INSTALLER}" > /dev/stderr echo " " echo " VERBOSE= ${VERBOSE}" > /dev/stderr echo " PREFLIGHT= ${PREFLIGHT}" > /dev/stderr echo " LOG= ${LOG}" > /dev/stderr echo " " > /dev/stderr fi # ---------------------------------------------------------------------- # sam levin - macmice - dlink adapter for bluetooth source "${SCRIPTDIR}/UninstallerTools.sh" source "${SCRIPTDIR}/InstallerFileTools.sh" source "${SCRIPTDIR}/IOXpertsUninstallerTools.sh" defineRemoveArgs "${BINDIR}" "${HOW}" "${VOLUME}" "${SHOW}" locateTools if ! [ "${VERBOSE}" -eq 0 ] then showRemoveArgs # showRemoveTools fi # ----------------------------------------------------------------------- # Determine what to remove initIOXpertsRemoveActions initLogitechRemoveActions initSTMicroRemoveActions # ----------------------------------------------------------------------- # Determine what to remove for ITEM in "${WHAT[@]}" do # echo "Item=${ITEM}" > /dev/stderr addToRemovals "${ITEM}" done # ----------------------------------------------------------------------- # Determine what to retain # If multiple products installed, don't remove shared components unless # UNLESS we are in installer checkInstalledIOXperts checkInstalledSTMicro checkInstalledLogitech showWhatsInstalled # ------------------------------------------------------------- # Determine what to retain eliminateRemoveRequestedAndNotPresent determineWhatToRetain # ------------------------------------------------------------- # Show what will be procesed if ! [ "${VERBOSE}" -eq 0 ] then echo "What will be removed" fi showIOXpertsRemoveActions showLogitechRemoveActions showSTMicroRemoveActions # ------------------------------------------------------------- # Exit before taking action if [ "${PREFLIGHT}" != 0 ] then exit 0 fi # ----------------------------------------------------------------------------------------- # Process IOXperts Installations # ----------------------------------------------------------------------------------------- # ------------------------------------------------------------- # Checking for Presence of Tools checkRemovalTools # ------------------------------------------------------------- # Kill running apps as appropriate # TODO - kill camera identifier? echo "Stopping Programs..." stopRegisterApp stopSessionMonitor stopDeviceMonitor stopLogitechDeviceMonitor stopWirelessDaemons # ------------------------------------------------------------- # Remove IOXperts Components # removeRegisterApp removePurchaseApp removeVideoCommon removeCameraCommon removeDeviceMonitor removeSessionMonitor # ------------------------------------------------------------- # Remove Empty Directories defineIOXpertsInstallLocations removeEmptyDir "${APPLICATION_DIR}" removeEmptyDir "${APPLICATION_SUPPORT_BIN_DIR}" removeEmptyDir "${APPLICATION_SUPPORT_BIN_DIR_OLD}" removeEmptyDir "${APPLICATION_SUPPORT_BIN_DIR_OLD_2}" # ------------------------------------------------------------- # Remove Kexts Below here # ------------------------------------------------------------- removeVideoKexts removeLogitechVideoKexts # ------------------------------------------------------------- # Remove Components Below here # ------------------------------------------------------------- removeIOXpertsSGPanel removeWebcamCodecs removeIndustrialCodecs removeWebcam removeIIDC removeIndustrial removeStill removeWireless # ----------------------------------------------------------------------------------------- # Process STMicro Installations # ----------------------------------------------------------------------------------------- removeSTMicroStill # ----------------------------------------------------------------------------------------- # Process Logitech Installations # ----------------------------------------------------------------------------------------- # Logitech is in a separate section because it uses has its own Application and Application Support # directories. removeLogitechQuickCam removeLogitechDeviceMonitor # ------------------------------------------------------------- # Remove application dir if emptied defineLogitechInstallLocations removeEmptyDir "${APPLICATION_DIR}" # removeEmptyDir "${APPLICATION_SUPPORT_BIN_DIR}" # removeEmptyDir "${APPLICATION_SUPPORT_BIN_DIR_OLD}" # removeEmptyDir "${APPLICATION_SUPPORT_BIN_DIR_OLD_2}" # ----------------------------------------------------------------------------------------- # Done # ----------------------------------------------------------------------------------------- echo "Done." echo " " #!/bin/sh +x # # IOXperts Uninstaller Tools.sh # # Written by : Ian Keck Dec 2004-Jan 2005 # # Description: Functions for constructing an IOXperts Uninstaller. # # Options are as follows # # Names of items which may be removed # # The following names are composite items # webcam, usbwebcam = ioxperts usb webcam drivers # iidc = ioxperts iidc firewire drivers # wireless = ioxperts wireless drivers # still = ioxperts still camera drivers # industrial = ioxperts industrial camera drivers # logitech = logitech webcam drivers # stmicro = stmicro still drivers # ioxperts = webcam, iidc, wireless, still and industrial # all = ioxperts and logitech # # The following names are individual items # shared = video shared # register = purchase and register # dm = dm # sgpanel = sgpanel # codecs = standard ioxperts codecs # industrial-codecs = bayer codecs # video-kexts = ioxperts video kext # logitech-kexts = logitech kexts # webcam-vdigs # iidc-vdigs # industrial-vdigs # logitech-vdigs # wireless-kexts # still-capture # stmicro-still-capture # # # # -------------------------------------------------------------------------- # Required Tools # # MoveToTrash # MvMac # ComponentTool # # Required Scripts # UninstallerTools.sh # # Unix Tools # rm # kill # ls # echo # sed # # --------------------------------------------------------------------------- # # Expected Behavior # In an installer - remove everything that will conflict with what will be replacing it. # Outside an installer - only allow top level - composite components # - don't remove components shared by other installed components. # Remove - doesn't fail if something isn't there. # Test for IsInstalled - if only one item of a subsystem is there it's installed for the purposes # of the uninstaller # # Problems - need to be able to determine what is installed. # - need to be able to determine what not to remove - those items used by other installed components. # - can do all this in sh, easier to do in python. # # # --------------------------------------------------------------------------- # # # TODO - write a function that saves a copy of device keys to ~ # TODO - write a script that restores these device keys from ~ # TODO - move files to trash in structure corresponding to the installation structure. # how would this work with multiple installs and 'copy ' appended? # TODO - move to appropriate trash on another boot volume - may need to specify user and trash folder explicitly # # echo commands off (set -v echos commands, set +v doesn't) # xtrace on (set -x shows what was executed, set +x doesn't) function showThingsYouCanRemove() { echo " " echo "webcam : IOXperts Webcam Driver - 1.0 through 1.1" echo "iidc : IOXperts IIDC Camera Driver" echo "industrial : IOXperts Industrial Camera Driver 1.1" echo "still : IOXperts Still Camera Driver" echo "wireless : IOXperts 802.11b Wireless Driver" echo "ioxperts : All IOXperts Drivers installed on this machine" # echo "stmicro : STMicro Still Camera Driver" # echo "logitech : Logitech QuickCam Driver" echo "all : All IOXperts and IOXperts OEM products" echo " " } # ----------------------------------------------------------------------- # Determine what to remove function initIOXpertsRemoveActions() { REMOVE_DM=0 REMOVE_PRE_1_1_DM=0 REMOVE_SESSION_MONITOR=0 REMOVE_IIDC=0 REMOVE_INDUSTRIAL=0 REMOVE_INDUSTRIAL_CODECS=0 REMOVE_REGISTER=0 REMOVE_PURCHASE=0 REMOVE_PRE_1_1_REGISTER=0 REMOVE_SGPANEL=0 REMOVE_STILL=0 REMOVE_VIDEO_COMMON=0 REMOVE_CAMERA_COMMON=0 REMOVE_VIDEO_KEXTS=0 REMOVE_WEBCAM=0 REMOVE_WEBCAM_CODECS=0 REMOVE_WIRELESS=0 } function initLogitechRemoveActions() { REMOVE_LOGITECH=0 REMOVE_LOGITECH_KEXTS=0 REMOVE_LOGITECH_DM=0 } function initSTMicroRemoveActions() { REMOVE_STMICRO_STILL=0 } # ----------------------------------------------------------------------- # Converts names of things to removes to components to remove. # Used in argument processing. # Must be called after all init...RemoveActions() are called function addToRemovals() { # ----------------------------------------------------------------- # Composite items if [[ "$1" == "webcam" || "$1" == "usbwebcam" ]] then REMOVE_WEBCAM=1 REMOVE_SGPANEL=1 REMOVE_VIDEO_COMMON=1 REMOVE_CAMERA_COMMON=1 REMOVE_REGISTER=1 REMOVE_PURCHASE=1 REMOVE_WEBCAM_CODECS=1 REMOVE_DM=1 REMOVE_SESSION_MONITOR=1 REMOVE_VIDEO_KEXTS=1 elif [ "$1" == "iidc" ] then REMOVE_IIDC=1 REMOVE_SGPANEL=1 REMOVE_VIDEO_COMMON=1 REMOVE_CAMERA_COMMON=1 REMOVE_REGISTER=1 REMOVE_PURCHASE=1 REMOVE_DM=1 REMOVE_SESSION_MONITOR=1 elif [[ "$1" == "industrial" ]] then REMOVE_INDUSTRIAL=1 REMOVE_SGPANEL=1 REMOVE_VIDEO_COMMON=1 REMOVE_CAMERA_COMMON=1 REMOVE_REGISTER=1 REMOVE_PURCHASE=1 REMOVE_WEBCAM_CODECS=1 REMOVE_INDUSTRIAL_CODECS=1 REMOVE_DM=1 REMOVE_SESSION_MONITOR=1 REMOVE_VIDEO_KEXTS=1 elif [ "$1" == "still" ] then REMOVE_STILL=1 REMOVE_REGISTER=1 REMOVE_PURCHASE=1 REMOVE_DM=1 REMOVE_SESSION_MONITOR=1 REMOVE_CAMERA_COMMON=1 elif [[ "$1" == "wireless" ]] then REMOVE_WIRELESS=1 REMOVE_REGISTER=1 REMOVE_PURCHASE=1 REMOVE_DM=1 REMOVE_SESSION_MONITOR=1 elif [[ "$1" == "logitech" ]] then REMOVE_LOGITECH=1 REMOVE_DM=1 REMOVE_LOGITECH_DM=1 REMOVE_LOGITECH_KEXTS=1 elif [ "$1" == "stmicro" ] then REMOVE_STMICRO_STILL=1 # REMOVE_REGISTER=1 # REMOVE_DM=1 elif [[ "$1" == "all" ]] then REMOVE_WEBCAM=1 REMOVE_IIDC=1 REMOVE_INDUSTRIAL=1 REMOVE_WIRELESS=1 REMOVE_STILL=1 REMOVE_LOGITECH=1 REMOVE_LOGITECH_DM=1 REMOVE_LOGITECH_KEXTS=1 REMOVE_STMICRO_STILL=1 REMOVE_VIDEO_COMMON=1 REMOVE_CAMERA_COMMON=1 REMOVE_SGPANEL=1 REMOVE_VIDEO_KEXTS=1 REMOVE_REGISTER=1 REMOVE_PURCHASE=1 REMOVE_INDUSTRIAL_CODECS=1 REMOVE_WEBCAM_CODECS=1 REMOVE_DM=1 REMOVE_SESSION_MONITOR=1 elif [[ "$1" == "ioxperts" ]] then REMOVE_WEBCAM=1 REMOVE_IIDC=1 REMOVE_INDUSTRIAL=1 REMOVE_WIRELESS=1 REMOVE_STILL=1 REMOVE_VIDEO_COMMON=1 REMOVE_CAMERA_COMMON=1 REMOVE_SGPANEL=1 REMOVE_VIDEO_KEXTS=1 REMOVE_REGISTER=1 REMOVE_PURCHASE=1 REMOVE_INDUSTRIAL_CODECS=1 REMOVE_WEBCAM_CODECS=1 REMOVE_DM=1 REMOVE_SESSION_MONITOR=1 # ----------------------------------------------------------------- # Special Purpose elif [[ "$1" == "ioxcomponents" ]] then REMOVE_WEBCAM=1 REMOVE_IIDC=1 REMOVE_INDUSTRIAL=1 REMOVE_SGPANEL=1 REMOVE_INDUSTRIAL_CODECS=1 REMOVE_WEBCAM_CODECS=1 elif [[ "$1" == "components" ]] then REMOVE_WEBCAM=1 REMOVE_IIDC=1 REMOVE_INDUSTRIAL=1 REMOVE_SGPANEL=1 REMOVE_INDUSTRIAL_CODECS=1 REMOVE_WEBCAM_CODECS=1 REMOVE_LOGITECH=1 # ----------------------------------------------------------------- # Individual items elif [ "$1" == "webcam-vdigs" ] then REMOVE_WEBCAM=1 elif [ "$1" == "iidc-vdigs" ] then REMOVE_IIDC=1 elif [ "$1" == "industrial-vdigs" ] then REMOVE_INDUSTRIAL=1 elif [ "$1" == "logitech-vdigs" ] then REMOVE_LOGITECH=1 elif [ "$1" == "wireless-kexts" ] then REMOVE_WIRELESS=1 elif [ "$1" == "still-capture" ] then REMOVE_STILL=1 elif [ "$1" == "stmicro-still-capture" ] then REMOVE_STMICRO_STILL=1 elif [[ "$1" == "shared" || "$1" == "common" ]] then REMOVE_VIDEO_COMMON=1 elif [[ "$1" == "camera-common" ]] then REMOVE_CAMERA_COMMON=1 elif [[ "$1" == "register" ]] then REMOVE_REGISTER=1 elif [[ "$1" == "purchase" ]] then REMOVE_PURCHASE=1 elif [[ "$1" == "DM" || "$1" == "dm" || "$1" == "devicemonitor" ]] then REMOVE_DM=1 elif [[ "$1" == "SM" || "$1" == "sm" || "$1" == "sessionmonitor" ]] then REMOVE_SESSION_MONITOR=1 elif [[ "$1" == "Logitech-DM" || "$1" == "logitech-dm" ]] then REMOVE_LOGITECH_DM=1 elif [[ "$1" == "sgpanel" ]] then REMOVE_SGPANEL=1 elif [[ "$1" == "webcam-codecs" ]] then REMOVE_WEBCAM_CODECS=1 elif [[ "$1" == "industrial-codecs" ]] then REMOVE_INDUSTRIAL_CODECS=1 elif [[ "$1" == "video-kexts" ]] then REMOVE_VIDEO_KEXTS=1 elif [[ "$1" == "logitech-kexts" ]] then REMOVE_LOGITECH_KEXTS=1 fi } # ----------------------------------------------------------------------- # Determine what to retain # If multiple products installed, don't remove shared components unless # UNLESS we are in installer # ------------------------------------------------------------- # Show what will be procesed function showIOXpertsRemoveActions() { if ! [ "${VERBOSE}" -eq 0 ] then showIfCountOrAll "REMOVE_DM" "${REMOVE_DM}" "$1" showIfCountOrAll "REMOVE_IIDC" "${REMOVE_IIDC}" "$1" showIfCountOrAll "REMOVE_INDUSTRIAL" "${REMOVE_INDUSTRIAL}" "$1" showIfCountOrAll "REMOVE_INDUSTRIAL_CODECS" "${REMOVE_INDUSTRIAL_CODECS}" "$1" showIfCountOrAll "REMOVE_REGISTER" "${REMOVE_REGISTER}" "$1" showIfCountOrAll "REMOVE_PURCHASE" "${REMOVE_PURCHASE}" "$1" showIfCountOrAll "REMOVE_SESSION_MONITOR" "${REMOVE_SESSION_MONITOR}" "$1" showIfCountOrAll "REMOVE_SGPANEL" "${REMOVE_SGPANEL}" "$1" showIfCountOrAll "REMOVE_STILL" "${REMOVE_STILL}" "$1" showIfCountOrAll "REMOVE_VIDEO_COMMON" "${REMOVE_VIDEO_COMMON}" "$1" showIfCountOrAll "REMOVE_CAMERA_COMMON" "${REMOVE_CAMERA_COMMON}" "$1" showIfCountOrAll "REMOVE_VIDEO_KEXTS" "${REMOVE_VIDEO_KEXTS}" "$1" showIfCountOrAll "REMOVE_WEBCAM" "${REMOVE_WEBCAM}" "$1" showIfCountOrAll "REMOVE_WEBCAM_CODECS" "${REMOVE_WEBCAM_CODECS}" "$1" showIfCountOrAll "REMOVE_WIRELESS" "${REMOVE_WIRELESS}" "$1" echo " " fi } function showLogitechRemoveActions() { if ! [ "${VERBOSE}" -eq 0 ] then showIfCountOrAll "REMOVE_LOGITECH" "${REMOVE_LOGITECH}" "$1" showIfCountOrAll "REMOVE_LOGITECH_DM" "${REMOVE_LOGITECH_DM}" "$1" showIfCountOrAll "REMOVE_LOGITECH_KEXTS" "${REMOVE_LOGITECH_KEXTS}" "$1" echo " " fi } function showSTMicroRemoveActions() { if ! [ "${VERBOSE}" -eq 0 ] then showIfCountOrAll "REMOVE_STMICRO_STILL" "${REMOVE_STMICRO_STILL}" "$1" echo " " fi } # ----------------------------------------------------------------------------------------- # Process IOXperts Installations # ----------------------------------------------------------------------------------------- # ------------------------------------------------------------- # Checking for Presence of Tools function checkRemovalTools() { echo "Checking Tools..." if [ "${REMOVE_ACTION}" == "trash" ] then assertExistExecutable "${REMOVE_BIN}/MoveToTrash" "-MoveToTrash-" fi if [[ "${REMOVE_DM}" -ne 0 || "${REMOVE_LOGITECH_DM}" -ne 0 ]] then assertExistExecutable "${REMOVE_BIN}/AddGlobalLoginItem" "-AddGlobalLoginItem-" fi if [ "${REMOVE_SESSION_MONITOR}" -ne 0 ] then assertExistExecutable "${REMOVE_BIN}/AddGlobalLoginItem" "-AddGlobalLoginItem-" fi # NOTE - maintain as ComponentTool is used. if [[ "${REMOVE_IIDC}" -ne 0 || "${REMOVE_WEBCAM}" -ne 0 ]] then assertExistExecutable "${REMOVE_BIN}/ComponentTool" "-ComponentTool-" fi } # ------------------------------------------------------------- # Kill running apps as appropriate # ------------------------------------------------------------- # ------------------------------------------------------------- function stopRegisterApp() { if [ "${REMOVE_REGISTER}" != 0 ] then killRegisterApp fi } # ------------------------------------------------------------- function stopSessionMonitor() { if [ "${REMOVE_SESSION_MONITOR}" != 0 ] then killSessionMonitor fi } # ------------------------------------------------------------- function stopDeviceMonitor() { if [ "${REMOVE_DM}" != 0 ] then killDeviceMonitor fi } # ------------------------------------------------------------- function stopLogitechDeviceMonitor() { if [ "${REMOVE_LOGITECH_DM}" != 0 ] then killDeviceMonitor logitech fi } # ------------------------------------------------------------- function stopWirelessDaemons() { if [ "${REMOVE_WIRELESS}" != 0 ] then kill80211bPrefloader kill80211bNotify fi } # ------------------------------------------------------------- # Install Locations # ------------------------------------------------------------- function defineIOXpertsInstallLocations() { defineInstallLocations "IOXperts" "IOXperts" } function defineSTMicroInstallLocations() { defineInstallLocations "IOXperts" "IOXperts" } function defineLogitechInstallLocations() { defineInstallLocations "Logitech QuickCam" "Logitech" } # ------------------------------------------------------------- # IOXperts Register # ------------------------------------------------------------- function removeRegisterApp() { if [[ "${REMOVE_REGISTER}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Register App..." defineIOXpertsInstallLocations removeActionVariants "${APPLICATION_SUPPORT_DIR}/IOXperts Register" ".app" # Application Support/bin - 1.1b43 and later removeActionVariants "${APPLICATION_SUPPORT_BIN_DIR}/IOXperts Register" ".app" # Interrim betas 1.1b42-b43 removeActionVariants "${APPLICATION_SUPPORT_BIN_DIR_OLD}/IOXperts Register" ".app" removeActionVariants "${APPLICATION_SUPPORT_BIN_DIR_OLD_2}/IOXperts Register" ".app" # Prefs for sessiond if [ "${OPTION_REMOVE_PREFERENCES}" != 0 ] then removeActionGlob "${PREFERENCES_DIR}/com.ioxperts.common.plist" removeActionGlob "${PREFERENCES_DIR}/com.ioxperts.common.1.1.plist" fi # Prefs for sessiond # if [ "${OPTION_CLEAR_PREFERENCES}" != 0 ] # then # # echo " TODO - clear any launch prefs for Purchase/Register" > /dev/stderr # fi fi } # ------------------------------------------------------------- function checkForRegisterApp() { beginCountingAction removeRegisterApp endCountingAction return $? } # ------------------------------------------------------------- # IOXperts Purchase # ------------------------------------------------------------- function removePurchaseApp() { if [[ "${REMOVE_PURCHASE}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Purchase App..." defineIOXpertsInstallLocations removeActionVariants "${APPLICATION_SUPPORT_DIR}/IOXperts Purchase" ".app" fi } # ------------------------------------------------------------- function checkForPurchaseApp() { beginCountingAction removePurchaseApp endCountingAction return $? } # ------------------------------------------------------------- # IOXperts Video Common # ------------------------------------------------------------- function removeVideoCommon() { if [[ "${REMOVE_VIDEO_COMMON}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Video Common Components...." defineIOXpertsInstallLocations # Applications/IOXperts removeActionVariants "${APPLICATION_DIR}/IOXperts Camera Control" ".app" removeActionVariants "${APPLICATION_DIR}/Camera Identifier" ".app" # NOTE - IOXperts Camera Identifier.app is used in still driver as well, # so we control its removal with REMOVE_CAMERA_COMMON # In some 1.1 betas removeActionVariants "${APPLICATION_SUPPORT_DIR}/SetInstallationPrefs" "" # Remove prefs for sessiond if [ "${OPTION_REMOVE_PREFERENCES}" != 0 ] then removeActionGlob "${PREFERENCES_DIR}/com.ioxperts.common.plist" removeActionGlob "${PREFERENCES_DIR}/com.ioxperts.common.1.1.plist" fi # Prefs for sessiond # if [ "${OPTION_CLEAR_PREFERENCES}" != 0 ] # then # # echo " TODO - clear our login item from loginwindow.plist" > /dev/stderr # # echo " TODO - clear global launch prefs for SM/Identifier/" > /dev/stderr # fi fi } # ------------------------------------------------------------- function checkForVideoCommon() { beginCountingAction removeVideoCommon endCountingAction return $? } # ------------------------------------------------------------- # IOXperts Camera Products Common # ------------------------------------------------------------- function removeCameraCommon() { if [[ "${REMOVE_CAMERA_COMMON}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Common Components...." defineIOXpertsInstallLocations # Applications/IOXperts removeActionVariants "${APPLICATION_DIR}/IOXperts Camera Identifier" ".app" fi } # ------------------------------------------------------------- function checkForCameraCommon() { beginCountingAction removeCameraCommon endCountingAction return $? } # ------------------------------------------------------------- # ------------------------------------------------------------- function removeDeviceMonitor() { if [[ "${REMOVE_DM}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Device Monitor...." defineIOXpertsInstallLocations locateDMLaunchPlists # Application Support - 1.1.2 - Oct 05 and later removeActionVariants "${APPLICATION_SUPPORT_BIN_DIR}/ioxdeviced" ".app" # /Library/StartupItems # /System/Library/StartupItems - 1.1 - Sept 04 and later removeAction "${STARTUP_ITEMS}/IOXpertsDeviceMonitor" removeAction "${SYSTEM_STARTUP_ITEMS}/IOXpertsDeviceMonitor" # /Library/LaunchDaemons - 1.1.2 - Oct 05 and later removeAction "${LAUNCHD_DAEMONS_PLIST_DIR}/${DM_LAUNCH_PLIST_NAME}" # Remove global login item "${REMOVE_BIN}/AddGlobalLoginItem" -remove "ioxdeviced" # Application Support - 1.1 - Sept 04 and earlier removeActionVariants "${APPLICATION_SUPPORT_DIR}/IOXperts Device Monitor" ".app" # Prefs for DM if [ "${OPTION_REMOVE_PREFERENCES}" != 0 ] then removeActionGlob "${PREFERENCES_DIR}/com.ioxperts.devicemonitor.plist" fi # Remove Unix Domain Sockets used by DM set -x sudo rm -rf "/var/tmp/com.ioxperts.dm.1.1.rpc.localserver" sudo rm -rf "/var/tmp/com.ioxperts.dm.notify.1.1.rpc.localserver" set +x # Clear Prefs for DM # if [ "${OPTION_CLEAR_PREFERENCES}" != 0 ] # then # echo " TODO - save (mvmac) to new filename" # # "${PREFERENCES_DIR}/com.ioxperts.devicemonitor.plist" # fi fi } # ------------------------------------------------------------- function checkForDeviceMonitor() { beginCountingAction removeDeviceMonitor endCountingAction return $? } # ------------------------------------------------------------- # ------------------------------------------------------------- function removeSessionMonitor() { if [[ "${REMOVE_SESSION_MONITOR}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Device Monitor...." defineIOXpertsInstallLocations # Application Support 1.1 betas prior to 1.1b43 removeActionVariants "${APPLICATION_SUPPORT_DIR}/ioxsessiond" ".app" # Application Support/bin - 1.1b43 and later removeActionVariants "${APPLICATION_SUPPORT_BIN_DIR}/ioxsessiond" ".app" # Remove global login item "${REMOVE_BIN}/AddGlobalLoginItem" -remove "ioxsessiond" # Interrim betas 1.1b42-b43 removeActionVariants "${APPLICATION_SUPPORT_BIN_DIR_OLD}/ioxsessiond" ".app" removeActionVariants "${APPLICATION_SUPPORT_BIN_DIR_OLD_2}/ioxsessiond" ".app" fi } # ------------------------------------------------------------- function checkForSessionMonitor() { beginCountingAction removeSessionMonitor endCountingAction return $? } # ------------------------------------------------------------- # ------------------------------------------------------------- function removeLogitechDeviceMonitor() { if [[ "${REMOVE_LOGITECH_DM}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Logitech Device Monitor..." defineLogitechInstallLocations locateDMLaunchPlists "logitech" # Application Support - iox 1.1.2 - Oct 05 and later removeActionVariants "${APPLICATION_SUPPORT_BIN_DIR}/logideviced" ".app" # /Library/LaunchDaemons - iox 1.1.2 - Oct 05 and later removeAction "${LAUNCHD_DAEMONS_PLIST_DIR}/${DM_LAUNCH_PLIST_NAME}" # Application Support - IOX 1.1.2d5 (Oct 05) and later removeActionVariants "${APPLICATION_SUPPORT_BIN_DIR}/logideviced" ".app" # /Library/StartupItems removeAction "${STARTUP_ITEMS}/LogitechDeviceMonitor" # Remove global login item "${REMOVE_BIN}/AddGlobalLoginItem" -remove "logideviced" # Prefs for DM if [ "${OPTION_REMOVE_PREFERENCES}" != 0 ] then removeActionGlob "${PREFERENCES_DIR}/com.logitech.devicemonitor.plist" fi # Remove Unix Domain Sockets used by DM # TODO - enable this # sudo rm -rf "/var/tmp/com.logitech.dm.1.1.rpc.*" # sudo rm -rf "/var/tmp/com.logitech.dm.notify.1.1.rpc.*" fi } # ------------------------------------------------------------- function checkForLogitechDeviceMonitor() { beginCountingAction removeLogitechDeviceMonitor endCountingAction return $? } # ------------------------------------------------------------- # ------------------------------------------------------------- function removeVideoKexts() { if [[ "${REMOVE_VIDEO_KEXTS}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Video Kexts..." defineIOXpertsInstallLocations removeActionVariants "${SYSTEM_EXTENSIONS_DIR}/IOXpertsWebCam" ".kext" removeActionVariants "${SYSTEM_EXTENSIONS_DIR}/IOXpertsWebcam" ".kext" fi } # ------------------------------------------------------------- function checkForVideoKexts() { beginCountingAction removeVideoKexts endCountingAction return $? } # ------------------------------------------------------------- # ------------------------------------------------------------- function removeLogitechVideoKexts() { if [[ "${REMOVE_LOGITECH_KEXTS}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Logitech Video Kexts..." defineLogitechInstallLocations removeAction "${SYSTEM_EXTENSIONS_DIR}/LogitechQuickCam.kext" fi } # ------------------------------------------------------------- function checkForLogitechVideoKexts() { beginCountingAction removeLogitechVideoKexts endCountingAction return $? } # ------------------------------------------------------------- # ------------------------------------------------------------- function removeIOXpertsSGPanel() { if [[ "${REMOVE_SGPANEL}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing SGPanel Component..." defineIOXpertsInstallLocations removeActionVariants "${COMPONENTS_DIR}/IOXperts SGPanel" ".component" removeActionVariants "${COMPONENTS_DIR}/IOXperts Video Support" ".component" # Prefs for sessiond # if [ "${OPTION_REMOVE_PREFERENCES}" != 0 ] # then # # echo " " # fi # Clear Prefs for DM # if [ "${OPTION_CLEAR_PREFERENCES}" != 0 ] # then # # echo " " # # "${PREFERENCES_DIR}/com.ioxperts.devicemonitor.plist" # fi fi } # ------------------------------------------------------------- function checkForIOXpertsSGPanel() { beginCountingAction removeIOXpertsSGPanel endCountingAction return $? } # ------------------------------------------------------------- # ------------------------------------------------------------- function removeWebcamCodecs() { if [[ "${REMOVE_WEBCAM_CODECS}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing IOXWebcam Video Codecs..." defineIOXpertsInstallLocations removeAction "${COMPONENTS_DIR}/IOXperts IIDC Codec.component" fi } # ------------------------------------------------------------- function checkForWebcamCodecs() { beginCountingAction removeWebcamCodecs endCountingAction return $? } # ------------------------------------------------------------- # ------------------------------------------------------------- function removeIndustrialCodecs() { if [[ "${REMOVE_INDUSTRIAL_CODECS}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Industrial Video Codecs..." defineIOXpertsInstallLocations removeAction "${COMPONENTS_DIR}/IOXperts Bayer Codec.component" fi } # ------------------------------------------------------------- function checkForIndustrialCodecs() { beginCountingAction removeIndustrialCodecs endCountingAction return $? } # ------------------------------------------------------------- # ------------------------------------------------------------- function removeWebcam() { if [[ "${REMOVE_WEBCAM}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Webcam Digitizer Components..." defineIOXpertsInstallLocations removeActionVariants "${COMPONENTS_DIR}/IOXperts WebCam" ".component" removeActionVariants "${COMPONENTS_DIR}/IOXperts Webcam" ".component" removeActionCustomizedComponents if [ "${OPTION_REMOVE_PREFERENCES}" != 0 ] then # echo " TODO - find and remove Webcam Prefs" > /dev/stderr removeActionGlob "${PREFERENCES_DIR}/com.ioxperts.webcam*" removeActionGlob "${HOME_PREFERENCES_DIR}/com.ioxperts.*" fi # Prefs for sessiond if [ "${OPTION_REMOVE_INSTALLER}" != 0 ] then removeActionGlob "${RECEIPTS_DIR}/WebCam*.pkg" "ignore" removeActionGlob "${RECEIPTS_DIR}/Webcam*.pkg" "ignore" fi fi } # ------------------------------------------------------------- function checkForWebcam() { beginCountingAction removeWebcam endCountingAction return $? } # ------------------------------------------------------------- # ------------------------------------------------------------- function removeIIDC() { if [[ "${REMOVE_IIDC}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing IIDC Digitizer Components..." defineIOXpertsInstallLocations # Library/Components removeActionVariants "${COMPONENTS_DIR}/IOXperts FWDCam" ".component" removeActionCustomizedComponents # Prefs for sessiond if [ "${OPTION_REMOVE_INSTALLER}" != 0 ] then removeActionGlob "${RECEIPTS_DIR}/IIDC*.pkg" "ignore" fi fi } # ------------------------------------------------------------- function checkForIIDC() { beginCountingAction removeIIDC endCountingAction return $? } # ------------------------------------------------------------- # ------------------------------------------------------------- function removeIndustrial() { if [[ "${REMOVE_INDUSTRIAL}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Industrial Digitizer Components..." removeActionVariants "${COMPONENTS_DIR}/IOXperts Industrial Camera" ".component" # Prefs for sessiond if [ "${OPTION_REMOVE_INSTALLER}" != 0 ] then removeActionGlob "${RECEIPTS_DIR}/Industrial*.pkg" "ignore" fi fi } # ------------------------------------------------------------- function checkForIndustrial() { beginCountingAction removeIndustrial endCountingAction return $? } # ------------------------------------------------------------- # ------------------------------------------------------------- function removeStill() { if [[ "${REMOVE_STILL}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Still Camera Components..." defineIOXpertsInstallLocations removeActionVariants "${IMAGE_CAPTURE_DIR}/USBStillCamera" ".app" fi } # ------------------------------------------------------------- function checkForStill() { beginCountingAction removeStill endCountingAction return $? } # ------------------------------------------------------------- # ------------------------------------------------------------- function removeWireless() { if [[ "${REMOVE_WIRELESS}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing 802.11b Wireless Driver and Components..." defineIOXpertsInstallLocations # /Library/StartupItems # /System/Library/StartupItems removeAction "${STARTUP_ITEMS}/IOXperts80211" removeAction "${SYSTEM_STARTUP_ITEMS}/IOXperts80211" # /Library/PreferencePanes removeAction "${PREF_PANES_DIR}/IOXperts 802.11.prefPane" # /System/Library/Extensions removeAction "${SYSTEM_LIBRARY_EXTENSIONS_DIR}/IOXperts80211.kext" # if [ "${OPTION_REMOVE_PREFERENCES}" != 0 ] # then # TODO - find and remove wireless Prefs # fi # if [ "${OPTION_CLEAR_PREFERENCES}" != 0 ] # then # TODO - clear specific prefs that affect the new wireless installation # fi if [ "${OPTION_REMOVE_INSTALLER}" != 0 ] then # TODO - improve removeActionGlob "${RECEIPTS_DIR}/802.11Driver*.pkg" "ignore" fi fi } # ------------------------------------------------------------- function checkForWireless() { beginCountingAction removeWireless endCountingAction return $? } # ----------------------------------------------------------------------------------------- # Process STMicro Installations # ----------------------------------------------------------------------------------------- # ------------------------------------------------------------- # ------------------------------------------------------------- function removeSTMicroStill() { if [[ "${REMOVE_STMICRO_STILL}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing STMicro Still Driver..." defineSTMicroInstallLocations removeActionVariants "${IMAGE_CAPTURE_DIR}/IOXpertsUSBStillCamera" ".app" fi } # ------------------------------------------------------------- function checkForSTMicroStill() { beginCountingAction removeSTMicroStill endCountingAction return $? } # ----------------------------------------------------------------------------------------- # Process Logitech Installations # ----------------------------------------------------------------------------------------- # Logitech is in a separate section because it uses has its own Application and Application Support # directories. # ------------------------------------------------------------- # NOTE - Logitech QuickCam also requires removal of the DM for # clean removal. # NOTE - Logitech does not use SM, Register, Purchase, or Identifier App. # ------------------------------------------------------------- function removeLogitechQuickCam() { if [[ "${REMOVE_LOGITECH}" != 0 || "${REMOVE_ACTION}" == "count" ]] then echoAction "Removing Logitech QuickCam..." defineSTMicroInstallLocations removeActionVariants "${APPLICATION_DIR}/Logitech Camera Control" ".app" removeActionVariants "${APPLICATION_DIR}/QuickCapture" ".app" removeActionVariants "${APPLICATION_SUPPORT_DIR}/SetInstallationPrefs" "" removeActionVariants "${COMPONENT_DIR}/Logitech QuickCam" ".qtx" # TODO - separate removal for logitech kexts removeActionVariants "${SYSTEM_EXTENSIONS_DIR}/LogitechQuickCam" ".kext" # Preferences if [ "${OPTION_REMOVE_PREFERENCES}" != 0 ] then removeActionGlob "${PREFERENCES_DIR}/com.logitech.*" removeActionGlob "${HOME_PREFERENCES_DIR}/com.logitech.*" fi # Installer if [ "${OPTION_REMOVE_INSTALLER}" != 0 ] then removeActionGlob "${RECEIPTS_DIR}/QuickCam*.pkg" "ignore" fi fi } # ------------------------------------------------------------- function checkForLogitechQuickCam() { beginCountingAction removeLogitechQuickCam endCountingAction return $? } # ----------------------------------------------------------------------------------------- # Determine What is Installed # ----------------------------------------------------------------------------------------- function checkInstalledIOXperts() { checkForRegisterApp ; HAS_REGISTER_APP=$? checkForPurchaseApp ; HAS_PURCHASE_APP=$? checkForVideoCommon ; HAS_VIDEO_COMMON=$? checkForCameraCommon ; HAS_CAMERA_COMMON=$? checkForDeviceMonitor ; HAS_DEVICE_MONITOR=$? checkForSessionMonitor ; HAS_SESSION_MONITOR=$? checkForVideoKexts ; HAS_VIDEO_KEXTS=$? checkForIOXpertsSGPanel ; HAS_IOXPERTS_SGPANEL=$? checkForWebcamCodecs ; HAS_WEBCAM_CODECS=$? checkForIndustrialCodecs ; HAS_INDUSTRIAL_CODECS=$? checkForWebcam ; HAS_WEBCAM=$? checkForIIDC ; HAS_IIDC=$? checkForIndustrial ; HAS_INDUSTRIAL=$? checkForStill ; HAS_STILL=$? checkForWireless ; HAS_WIRELESS=$? } function checkInstalledSTMicro() { checkForSTMicroStill ; HAS_STMICRO_STILL=$? } function checkInstalledLogitech() { checkForLogitechDeviceMonitor ; HAS_LOGITECH_DEVICE_MONITOR=$? checkForLogitechVideoKexts ; HAS_LOGITECH_VIDEO_KEXTS=$? checkForLogitechQuickCam ; HAS_LOGITECH_QUICKCAM=$? } function showWhatsInstalled() { if ! [ "${VERBOSE}" -eq 0 ] then echo " " echo "What's Installed" showIfCount "HAS_REGISTER_APP" ${HAS_REGISTER_APP} showIfCount "HAS_PURCHASE_APP" ${HAS_PURCHASE_APP} showIfCount "HAS_VIDEO_COMMON" ${HAS_VIDEO_COMMON} showIfCount "HAS_CAMERA_COMMON" ${HAS_CAMERA_COMMON} showIfCount "HAS_DEVICE_MONITOR" ${HAS_DEVICE_MONITOR} showIfCount "HAS_SESSION_MONITOR" ${HAS_SESSION_MONITOR} showIfCount "HAS_VIDEO_KEXTS" ${HAS_VIDEO_KEXTS} showIfCount "HAS_IOXPERTS_SGPANEL" ${HAS_IOXPERTS_SGPANEL} showIfCount "HAS_WEBCAM_CODECS" ${HAS_WEBCAM_CODECS} showIfCount "HAS_INDUSTRIAL_CODECS" ${HAS_INDUSTRIAL_CODECS} showIfCount "HAS_WEBCAM" ${HAS_WEBCAM} showIfCount "HAS_IIDC" ${HAS_IIDC} showIfCount "HAS_INDUSTRIAL" ${HAS_INDUSTRIAL} showIfCount "HAS_STILL" ${HAS_STILL} showIfCount "HAS_WIRELESS" ${HAS_WIRELESS} echo " " showIfCount "HAS_STMICRO_STILL" ${HAS_STMICRO_STILL} echo " " showIfCount "HAS_LOGITECH_DEVICE_MONITOR" ${HAS_LOGITECH_DEVICE_MONITOR} showIfCount "HAS_LOGITECH_VIDEO_KEXTS" ${HAS_LOGITECH_VIDEO_KEXTS} showIfCount "HAS_LOGITECH_QUICKCAM" ${HAS_LOGITECH_QUICKCAM} echo " " fi } # ----------------------------------------------------------------------------------------- # Remove Only What's Installed # ----------------------------------------------------------------------------------------- function funcAnd() { if [[ $1 != 0 && $2 != 0 ]] ; then return 1 fi return 0 } # ------------------------------------------------------------------------- function eliminateRemoveRequestedAndNotPresent() { funcAnd "${HAS_DEVICE_MONITOR}" "${REMOVE_DM}" ; REMOVE_DM=$? funcAnd "${HAS_SESSION_MONITOR}" "${REMOVE_SESSION_MONITOR}" ; REMOVE_SESSION_MONITOR=$? funcAnd "${HAS_REGISTER_APP}" "${REMOVE_REGISTER}" ; REMOVE_REGISTER=$? funcAnd "${HAS_PURCHASE_APP}" "${REMOVE_PURCHASE}" ; REMOVE_PURCHASE=$? funcAnd "${HAS_VIDEO_COMMON}" "${REMOVE_VIDEO_COMMON}" ; REMOVE_VIDEO_COMMON=$? funcAnd "${HAS_CAMERA_COMMON}" "${REMOVE_CAMERA_COMMON}" ; REMOVE_CAMERA_COMMON=$? funcAnd "${HAS_VIDEO_KEXTS}" "${REMOVE_VIDEO_KEXTS}" ; REMOVE_VIDEO_KEXTS=$? funcAnd "${HAS_IOXPERTS_SGPANEL}" "${REMOVE_SGPANEL}" ; REMOVE_SGPANEL=$? funcAnd "${HAS_WEBCAM_CODECS}" "${REMOVE_WEBCAM_CODECS}" ; REMOVE_WEBCAM_CODECS=$? funcAnd "${HAS_INDUSTRIAL_CODECS}" "${REMOVE_INDUSTRIAL_CODECS}" ; REMOVE_INDUSTRIAL_CODECS=$? funcAnd "${HAS_WEBCAM}" "${REMOVE_WEBCAM}" ; REMOVE_WEBCAM=$? funcAnd "${HAS_IIDC}" "${REMOVE_IIDC}" ; REMOVE_IIDC=$? funcAnd "${HAS_INDUSTRIAL}" "${REMOVE_INDUSTRIAL}" ; REMOVE_INDUSTRIAL=$? funcAnd "${HAS_STILL}" "${REMOVE_STILL}" ; REMOVE_STILL=$? funcAnd "${HAS_WIRELESS}" "${REMOVE_WIRELESS}" ; REMOVE_WIRELESS=$? funcAnd "${HAS_LOGITECH_QUICKCAM}" "${REMOVE_LOGITECH}" ; REMOVE_LOGITECH=$? funcAnd "${HAS_LOGITECH_DEVICE_MONITOR}" "${REMOVE_LOGITECH_DM}" ; REMOVE_LOGITECH_DM=$? funcAnd "${HAS_LOGITECH_VIDEO_KEXTS}" "${REMOVE_LOGITECH_KEXTS}" ; REMOVE_LOGITECH_KEXTS=$? funcAnd "${HAS_STMICRO_STILL}" "${REMOVE_STMICRO_STILL}" ; REMOVE_STMICRO_STILL=$? } # ----------------------------------------------------------------------------------------- # Determine What To Retain # ----------------------------------------------------------------------------------------- function presentAndNotBeingRemoved() { # $1 = present # $2 = removal requested # return 1 if present and no removal requested # return 0 otherwise # echo "presentAndNotBeingRemoved $1 $2" if [[ $1 != 0 && $2 == 0 ]] then # echo " Returning 1" return 1 fi # echo " Returning 0" return 0 } function determineWhatToRetain() { if [[ "${INSTALLER}" != 0 ]] then return 0 fi # Not in the installer # If multiple products are installed, don't remove components common to # products not being removed. # e.g All modern products use Register application and DM. # unless all are being removed, retain the Register application. # # components that are shared among all ioxperts products # DM, REGISTER, PURCHASE # components that are shared among video products # VIDEO_COMMON, SGPANEL, CAMERA_COMMON # Items to remove # WEBCAM, IIDC, INDUSTRIAL, WIRELESS, STILL if [[ ${REMOVE_DM} != 0 ]] then # if any of WEBCAM, IIDC, INDUSTRIAL, STILL, WIRELESS are present and not being removed presentAndNotBeingRemoved ${HAS_WEBCAM} ${REMOVE_WEBCAM} if [ $? != 0 ]; then REMOVE_DM=0 ; fi presentAndNotBeingRemoved ${HAS_IIDC} ${REMOVE_IIDC} if [ $? != 0 ]; then REMOVE_DM=0 ; fi presentAndNotBeingRemoved ${HAS_INDUSTRIAL} ${REMOVE_INDUSTRIAL} if [ $? != 0 ]; then REMOVE_DM=0 ; fi presentAndNotBeingRemoved ${HAS_STILL} ${REMOVE_STILL} if [ $? != 0 ]; then REMOVE_DM=0 ; fi presentAndNotBeingRemoved ${HAS_WIRELESS} ${REMOVE_WIRELESS} if [ $? != 0 ]; then REMOVE_DM=0 ; fi fi if [[ ${REMOVE_REGISTER} != 0 ]] then # if any of WEBCAM, IIDC, INDUSTRIAL, STILL, WIRELESS are present and not being removed presentAndNotBeingRemoved ${HAS_WEBCAM} ${REMOVE_WEBCAM} if [ $? != 0 ]; then REMOVE_REGISTER=0 ; fi presentAndNotBeingRemoved ${HAS_IIDC} ${REMOVE_IIDC} if [ $? != 0 ]; then REMOVE_REGISTER=0 ; fi presentAndNotBeingRemoved ${HAS_INDUSTRIAL} ${REMOVE_INDUSTRIAL} if [ $? != 0 ]; then REMOVE_REGISTER=0 ; fi presentAndNotBeingRemoved ${HAS_STILL} ${REMOVE_STILL} if [ $? != 0 ]; then REMOVE_REGISTER=0 ; fi presentAndNotBeingRemoved ${HAS_WIRELESS} ${REMOVE_WIRELESS} if [ $? != 0 ]; then REMOVE_REGISTER=0 ; fi fi if [[ ${REMOVE_PURCHASE} != 0 ]] then # if any of (older) WEBCAM, IIDC, INDUSTRIAL, STILL, WIRELESS are present and are not being removed presentAndNotBeingRemoved ${HAS_WEBCAM} ${REMOVE_WEBCAM} if [ $? != 0 ]; then REMOVE_PURCHASE=0 ; fi presentAndNotBeingRemoved ${HAS_IIDC} ${REMOVE_IIDC} if [ $? != 0 ]; then REMOVE_PURCHASE=0 ; fi presentAndNotBeingRemoved ${HAS_INDUSTRIAL} ${REMOVE_INDUSTRIAL} if [ $? != 0 ]; then REMOVE_PURCHASE=0 ; fi # TODO - ? - Modern Still uses Register but not Purchase presentAndNotBeingRemoved ${HAS_STILL} ${REMOVE_STILL} if [ $? != 0 ]; then REMOVE_PURCHASE=0 ; fi presentAndNotBeingRemoved ${HAS_WIRELESS} ${REMOVE_WIRELESS} if [ $? != 0 ]; then REMOVE_PURCHASE=0 ; fi fi if [[ ${REMOVE_VIDEO_COMMON} != 0 ]] then # if any of WEBCAM, IIDC, INDUSTRIAL are present and are not being removed presentAndNotBeingRemoved ${HAS_WEBCAM} ${REMOVE_WEBCAM} if [ $? != 0 ]; then REMOVE_VIDEO_COMMON=0 ; fi presentAndNotBeingRemoved ${HAS_IIDC} ${REMOVE_IIDC} if [ $? != 0 ]; then REMOVE_VIDEO_COMMON=0 ; fi presentAndNotBeingRemoved ${HAS_INDUSTRIAL} ${REMOVE_INDUSTRIAL} if [ $? != 0 ]; then REMOVE_VIDEO_COMMON=0 ; fi fi if [[ ${REMOVE_CAMERA_COMMON} != 0 ]] then # if any of WEBCAM, IIDC, INDUSTRIAL are present and are not being removed presentAndNotBeingRemoved ${HAS_WEBCAM} ${REMOVE_WEBCAM} if [ $? != 0 ]; then REMOVE_CAMERA_COMMON=0 ; fi presentAndNotBeingRemoved ${HAS_IIDC} ${REMOVE_IIDC} if [ $? != 0 ]; then REMOVE_CAMERA_COMMON=0 ; fi presentAndNotBeingRemoved ${HAS_INDUSTRIAL} ${REMOVE_INDUSTRIAL} if [ $? != 0 ]; then REMOVE_CAMERA_COMMON=0 ; fi presentAndNotBeingRemoved ${HAS_STILL} ${REMOVE_STILL} if [ $? != 0 ]; then REMOVE_CAMERA_COMMON=0 ; fi fi if [[ ${REMOVE_SGPANEL} != 0 ]] then # if any of WEBCAM, IIDC, INDUSTRIAL are present and are not being removed presentAndNotBeingRemoved ${HAS_WEBCAM} ${REMOVE_WEBCAM} if [ $? != 0 ]; then REMOVE_SGPANEL=0 ; fi presentAndNotBeingRemoved ${HAS_IIDC} ${REMOVE_IIDC} if [ $? != 0 ]; then REMOVE_SGPANEL=0 ; fi presentAndNotBeingRemoved ${HAS_INDUSTRIAL} ${REMOVE_INDUSTRIAL} if [ $? != 0 ]; then REMOVE_SGPANEL=0 ; fi fi if [[ ${REMOVE_SESSION_MONITOR} != 0 ]] then # if any of WEBCAM, IIDC, INDUSTRIAL, STILL are present and are not being removed presentAndNotBeingRemoved ${HAS_WEBCAM} ${REMOVE_WEBCAM} if [ $? != 0 ]; then REMOVE_SESSION_MONITOR=0 ; fi presentAndNotBeingRemoved ${HAS_IIDC} ${REMOVE_IIDC} if [ $? != 0 ]; then REMOVE_SESSION_MONITOR=0 ; fi presentAndNotBeingRemoved ${HAS_INDUSTRIAL} ${REMOVE_INDUSTRIAL} if [ $? != 0 ]; then REMOVE_SESSION_MONITOR=0 ; fi presentAndNotBeingRemoved ${HAS_STILL} ${REMOVE_STILL} if [ $? != 0 ]; then REMOVE_SESSION_MONITOR=0 ; fi fi } BOMStoreX U#"<nfotreePaths %$('"!1076=<CBIHLKONUTml+*[Za`gfsryx~.-43:9@?FERQXW^]dcjipovu|{   *)! '&$#-,0/3298<;65EDKJQPWV]\`_fe~}?>lkrqxwBAHGNMTSZYcbihonut{z   treetree. dextree APDIndexBomInfoPathsHLIndexVIndex Size64APDfApplicationsAPDIOXpertsAPDfIOXperts Camera Control.appAPDContentsPDO]Info.plistAPDfMacOS PC1{<=#Ib#<,IOXperts Camera Control PC1{PkgInfo #APDdResources &APDf da.lproj )PC1Dw Localizable.strings ,APDf Dutch.lproj /PC1nRl Localizable.strings2APDf English.lproj5PC1w>`|Localizable.strings8APDf French.lproj;PC1YLocalizable.strings>APDf German.lprojAPC1Localizable.stringsDPC1QU IOXperts Camera Control.rsrcGPC1ÿkv IOXpertsCameraControl.icnsJAPDf Italian.lprojMPC11e+Localizable.stringsPAPDf Japanese.lprojSPC1Ps'Localizable.stringsVAPDf ko.lprojYPC1>Pp,[Localizable.strings\APDf no.lproj_PC1x PC1P |١·q | >ioxdeviced?PC19!>)>D">f>n> >>>>>> >>??#?+?B ?N?V?m??? ?????? @@@@O@^@f@ @@@@@@@@@A9 AFANAeAAA AAAAAA BB0B>BTB\Bw BBBBBBBBCC,C4@Ct CCCCCC CCDDDD1 D;DC@DDDD DDDDDEE'E/EFEUE]Et"EEE EEEEEF FF%@FeF}FF FFFFFFGGG5GRGZGq%GGG GGGGGH HH%@HeHHH HHHHHH III+ICIKIbIrIzIIIIIIJJJ!J8JIJQJlJJJJJJJJK K2K:KQKcKkKKKKKKKL LL* L7L?LZLrLzL LLLLLL MM M(M@MHM_MqMyMMMM MMMNNN2NBNJNeN}NNNNNNNOO$O,OC OPOXOsOOO OO@OPPP* P6P>PUPcPkP PPPPPPPQQQ4Q<QSQeQmQQQQQQQR RR*R;RCR^RvR~RRRRRRSSS&S=SPSXSsSSS SSSSST TT&TATYTaTx TTTTTTTTUU,U4UK UXU`U{UUUUUUUVVV,V4VOVgVoVVVV&VVWWWW0WJWRWmWWWWn "1 ъDYtSUM!@5jՎf36 E! Xm%K[tJHSMCT8ՕG*z (- ˎju:lb:,BQw{פ:s=޿s]JKSy쒒RW^V4L(] l+3%ih,hs2ʓь^nwXhwlvLe+?)1ŧ<~;x`9|6}W˿, }?Fl;ܙ 1ׄꕎĔ|vi2iR0 jwy⦎6a83L%3 tPy3nZ8殺Z `mX\Sm6̸Hp6;|FcU}ZS]Wo0r ÌVh4]q96\n<(og | G٤N;pꔊ K fʱx@հˆӰ -ZaTi]m\t,ad:T#|3S&Ȱaɺh.eIxptHWoYQFmoxThj|by:*2iT$ ٶjjU(z6En-C1$I6 G, +S)F.mjjr0Yf|5t2-֦͑Ys7B}m`m;eQT{$fGĸP9"0XK:FR?cefcݔ*;|6׼@Fn&FifϦɑvZU%MxagOlmɲj)}^V4wcx;XhoI>$c%9&Gx۪tSq|3ݯR1nL T{W[{Y$l˪T߰J=mmwV'MvVZ-OxV^Zc^ ^ݮŤڼM俯2ac84 \蔸joRUR@Y"f2=* C(.*8~qu3 9wk|6_q ڵ}Fͷ.nQG)s =)7{i ΀-us򝙡YEdl 7g,[ 6tJlZM^lRIeW/Vrϫ!6~WU?zZTdKa%aU-18lb }2YӣrRc^sҿfHOFtOJ5E9!FpO7HuY{ -ZI|G:I܃ ea>'vD$"QDv^2,UiBvr%MQ=-ðNE*AgK_r;ְπhf%1 G&IT qO:pj`ViQtU ֋% ֲhrA}P(t jx:b ≈]iAo:0%yL^ siP VjRkH)lj<0O붢Q,ί@) rV k4x68l&4bv9NAi@i*Mو4C;Uq V1; s'cԇA7:(C?@4TZ"nπ/QX<.M,GBWyaQ#d7ADܬN0w6@EBظʸZ;g|T_K^XHj~-J~L6l9 g t"e;~ΏeX NuP˖ ,@=0 XtDžX o<H "f}f2bJDZSuovn[ W20!=4t# HG`+>) kЛR(xA(:dqNV*zI7oJr7qr(Fc`(zϊ@’Ierz'Fr[ij,bCN'uU71)5hHAK ~B H$נdShrMceN2(ewm2y咃˜`H5F}k%p5Cr.6WA  6oY@\` b47aWXtԸ>c a-԰hB78bq@isi7 ܖ!$za*D&]_aGk D MabQ5 ߲h=qlQ!]Q '+Gka }m f@|WQPq`(rw=N$< ZF;Jv5=(^B")!嬇bƄMi%'aij?2z zoW<:AzG_4; #?7 <5IAg(OpY?qHMy眈0k$0Au̮*Bo6'r+xdhy.(9AdWb+QI& F腘ѵdyɚDGP .E>\O(3n<0d`PIlA嚂i+F3zg(5Mr#>)M+!v nAJy oQl,p׈zI6Y HE}{)RPF?PsEQ.=A'[ ^@/[,IT wO\@ܯ'_W^a(ULPfS-ĝ՟\(? zT $Ri=$ݝ`4tLsb2Prc!S&R ٛY(@Qgڏ21(B: 1U=Pn](hny*^q_ |=MD'fp4@xM5wRRӬ!X1zE%qKAӲ fQ )}iēC"l +v[㭭ֳֶxkOVZITwhpJ;أ=ۉ[P$o{UͦtT<H |k/x W0=GОsږI&s𒠥FݬCCA[?/И4SD#D2j Y4O!&̚LɹT!o&hBĞ2hExdB5^hQ@H"ܘ7%+^l1r਒[!_"MDdEX 0#@ܐk[wb||(XCC;vaC^^k>Cn#vԑ3 `RF>܍[ 1uˍ:y~`Y[m#i辏dT)WY Ud·J'uP%\Ud.DhdR465s ߪ73JGAyd!9wu+/ `}29-"d9~ѱUj|->H!>,7|XV͗6ypN5?-'+LysZSTf3W OG=N+?um&(FPQ?{[FBIG>r;TJ!]:97pkނ:4Z``2tkkV/\>pYNq5 O9w-T? >&}#9<'EBC2N}\jK:1.NiL.t&63( MXrxjh$+ Mk~5 ^ c{tquxa&3ܽA`q?7:ӱ#gmȖMDF杔Wee+"ǠR2Ċ:ނ%ޥIR8D#/2y_.I$9!G.N#[RVKuU'd^@%"նorr_KrcKrD0H<n?UΩTE %//Ry8uԨE=D wDU_t+`z|PH=E s5bp7c-xpc~(`<-_FW c3JZwh[^Y| r}_)K?"gm#ܨ:#/ſ^=F?D5REQdJvЯ~o\ocJم(\@3@STƽM^P_ƕP}S]B\=ß#Z&;ճ$=7O|txNak.:IcHgy|~02:= RX>\~QބF򮪕wvV5 \z.p[N >A%."AY߃/`3 b/$a`џMw0wFIga4x44PgWҿES/o ΉI!}I#[+R⒊T@+!!d۞%C\G ɜTIzm5*q Z,(r CEI5X3ix~sνwfBjA{;ypwF_s>V`£>y/$%%VÙG2je1>/am@c%8O߸K^zhy+ Um,­j k_"#lMhpPZa^Z]񻐇B[dGu/17Ni NDPנF c=_6lb /;Zmga:3K׳Ji_BăSV{gv"q,ҋ+6wJ)' g^WR?_~Cw?6o!JƯJUpU΍ſO,p2u $Nlg#P} gáo_,@2HxaE"#"X6㊀0Jۀdҋ4nQ*-#1A| %0B+?(q0\¤车TX-lsqڴAkr[P :C De%t**̵^(Y-95礥f4i6bp +AVΙ!G\|ih`Ag7`,[ 9:HY'(!Gw%xzmcZ }lɼE$w[Kd37㖦9vD:vVbT+/G89 );+kݦKU'LQz ]k P\`qe0R}б_)#˞(ՙ-tBAhH*T')v8zQXP ?qPa /h24\] oi_GȪ,Joƫ7fMM8nkl`?L1[*)i)λΜ-UVcѲq4u?VVp@B5 !WkosmZy%XTy(|\9Hu%s43גn]Xa0t%w]XL`kUCULށiAUPqPW١2fu $+-TA5vkL9A}j  *,X D*!h<~yGQ,#zFJ 7p@ D%KqAN3c`.6;vY^=M[?CA=2ŕsMܘi>2][}xꐣ;^7MƃRxݴG}:ѽ 9)ѥ|8V%_'DNOIj)r G 4zĊ$P [8g;v[{1P[Z CUh&<.f6J(Sh5?AJ(|fVkqx=;b-Rd/Zh&5 `߾5G˷ɏ{#% u"d•}#`JUA`%9qb}j\$HllTLju !Lդ|ػWD8Tە xB# "BHLt1bS28Rјm6]0-x6=^z<z"c/ÐSn.ISJra@-SDP^qe. PstEeH/D~ W#?.taZ_̄:{F% e+qT,@{3:DՍw;? Jh.xٛ'&i"8ǿ{&Ygg $zZX,<= ènRKr\`W{z13&d:q~ M|:4,>o nA%O;/{V cX9%DUt*@[̢4%ahy\ZxG1>ig&'moIѿƊU'W-Zd_h6K;H<>9#ROE0c٢BY1jx#M7I/mȴsN,}=tJ7}ct,֕H!sUDB9-~l% D/Q応UIͯOjHS|H.87k|ϩ+7Q2M<3)tS:GnV"TxY!({jm݈$S]nT|/BYu._^t`\h>H'H2)YmkraXjw>M3 E 20uhe1 LqD{0B٫Ux OTu/".r$q=bx~()uxvTA3QCqPv:|JDc+^z12CGɒ3B'8<⾔0 T+ƦjߢUB9Zu viXǴ#E~Gag~`n\_`*7et,+z$t%;Ő Kzi3f kwT39W܉r>LGJ NZnZNra$wD٦\ߤr&[㧲P,4Gn9q -)r]J>% [`S%vJklTӃX1ar>,O$DgHf.Bp)7l)R}/9k"vD0D+L"X!";uMV`FiHۅH'ѽS6%i)`c9T`ُ7P~7ycvLFNBzE)|8sqDZ${IHs-k8Iиcܕi}Lʷp#ax[31B# Fc`nFU*#Hy%sfM͝bS+$4mE_Gn uBׄ6b{o-0_[D.Gú+~)s } R:iOma f,iV&F* ip|J1Pk^%jl8p|2)NH: x|@@ j̉" |Bn Y;d]E1>RXu+@\ˆ:;aYsb":#0ኚf| za#%'6`828k+%YgxAOHޗe=":'+Y߫ŝïB&T{mE%b[b+P6=A2r"E/|itIZalQp$]\F)7jm8ooQrUr Df.Ɡ==4#ϻLeP%,[PĖ裄]`h-oX]c ]z1̬CjCX<̰Cn&+>Mx,˞ّOH_&1HK5pko -?y[MVF.KWӇX)|oG;pL^ .u<~Y&@URsB2h?~X+Ŝngځ~wHLJ$ƪ@Zٍ<ٶ<# (_6x>qTg$<%g-;(roe+8ȫ9Xf&L;^#7RzϊF K6+eսnmfuO]Ѯ ^(BIa!IVJl7 H^Wc]Z=^ӲN֭1훗ظ@ r O(c; q8XDW!'GhwFɬ ylMK PhREZhOb*UGD&RҔ3'0uq|#V2 ,2U_}I oSsz~b&# $K1,A;m"y5K(EgTB2<œ ᷅,77;Qp9c0@]-qk1)Fy2Wdɠ0T9KăWrߖ)EV?:Uk jmh텟њpnmh͐Q=i '` a_%Dm+AEY'x PG(+SE6r^|4^<WW?ޥ?i %cvu,.b>סWĺe<ufx4~$1Zbʝ:_PFOe*|Y"]m_Ô"_])whmי<;AOg4M+rdw6C2>lͱD/AdTq%&Ѥ4[qYTU5&y畺=!tn-ѫJa-@pG%VUQBJ&ê+6I<5L>K)Sl2gIqV?J'O) j_-RPqXŲ;/jMkj϶JJJ'?o[]< ňL=Pbϩб#4HWqTxeUm!¨flS!CAy畚뗘:\4M{Zpmuo2$Qtp%eUQ:mՍT Kg&X}R8Tc82GqHNà2ju0{FFRqVR3P)k,&1uHHґ2w;2š7Sjl`[gceQO$h]R 5I?< u%-G&+,Z/U<]'=8[c&A@BBW}[y/a_ b!܂t^N Xt@]J4 E'V*D;*: +)UmG:N{* ĒWCRea.E9fꭳ+U3Е/G][B72^ TTJƑP2© ˴RUҒ/?Z3k\}GUC]xɎh7I]w㹙&^jOB/1R2ski= [jss_PK^e\på=_e? ߥ-TͧtԪѶ锝wNgIfA |TfPaUwO!Ol70˻|pky8mCt~UMI'C5g1'fή|᱔,w1sb\W> E|T}mFj*{MkbWXtV*vb mȸ1)ȷ%Ŧ>oGj=Z'yh ]gw*GͦHnIx$Y5 1^7 ڻv_?)kquߊNFe7t B髡uHסÀ97H+R5x$⃡!/ak(n[x)y9~qQN d쮡zk1GB(.ʎjNmC|[YJ%pz}aMD{?>bMz]$Y\)>Ϟ<r9?1{@dZ>òdĜҮ#Z&$̚g;L3 (Y?_ J:)_z#&VĝuхTO#`6n_~TL(q4=ۡJ3#Ree7/2) "D =&@?LzEGG1f4D W틦U1Kن|)5|FϽ?ܳdPM8ե]ƥve_3mȌ=?ZEEӶJcIX bO,G1GQp7iuC'07EO32$^RȔвUewuۊqKg:Njf$b`bT5-ֆ6Aݛ]OJ E+J-QޅJ}U t@Sz+{0U,S$4\a߀|SI Ǹ@mtxYơ$a:w ulkt d3 zOX~ܺMT:ЫF{W+BU3wr?1lE"&RԳ j;ͳ4?K;a ,}E.yctSC4NK\ ,Nq3uR}2xԡ% Y)VfDhQ(7kJʛ>_,]9 4T fIEsfEй9,|qzR{*en!Ty&'|,ZUh(U.TlŌ(ۂG)dsҟ$vKw#R`pN6}} }\aE¦YZ(H$/^ysԕ[mH51qbl#O3lkf]mz=)Z(9Ұ9^|@T|xΧ< K}4o4 s 7pgP k֎\\w1Ɂ9E\c/X[F*Qj4_oճȌ@vʹ++^JR c&} O^V}cU_,z^4Kׄ\GV_ 5Dg&Ջ[x٭plLK]{F=X%_4}Oo>OA,gH|d%|Rb& N'>SO`I,[lf 4&$8O{| {p:m2><ƁY5ݺC\O~5dnP ? E}^m|.jdȸ]`[ $8u{:PQGɮUP!JڙPK/VLwV[,7O3l`=sⱖb'B)IݟEəGs78B ' }8}UC)vW狸R6@3oVFvL?jn'Tc6}'aekԶ&@1J{IqA_g&WMxVnKvTژ`lC`G瑀g0fD Y;,. TF7NNZWL-fΞcmK7gm| *43{@ۯ~g"Bt\XjAs{bX /m1M~³ƇحB]޾SۿC{ug=nZ`Kgۺo7Wl2lBRE y69Dak$N2m`YL6Kn3/Rp$8> 0HfTaǴXiR3U`cx!34cᱡ䎒൰$}?,Rmѱs{ĬCi)RzvOcyd9MtWjRDax11dJaRF]6da|ngpa? wc7fAl 9CcP}X 8S;y6M)mnsm' !Ld} !bA;vTbxS)g/766 Q L g2yK]pxd8lTlvd';(ոMЫN,?aqΞkJ7I5R+ .*v$%`P) 5N-MJ S d  nFU݇ZphzO䌦pg!w~!=[U4ȀXdW'%*򺒠]kV/')U bn} 'pVyc5kLgbTN`.- ъh*]>LgDN3LÜC>*T+d'YTGST ~{yvAk((^c5ׄ[lt {["KVM'~خ+ݎXԼߊgy}HEqSzfUDւrxtj"^>#(^%;9W{K"5671}8)y.blۀ]\gQsM1'=CE;Z]%#wog|z,5oqdo\<+}-f+zQ-XwE{[*3Nt]=@{5yy*NwŃ){GLm^kTs3^vd֗){q%ѷ}ka$Z;N$o*lo?pcB46~v_u&juaҜ&- Zɴ&xʃ"^ZmP=^\+7K?l-7M-d6H /@&J0ɹV~Ju7[ OG{1/$~k ? /l¡'0zU):A?m.ڳC{t-ێNmn )Nj?g)Cw( 7'/. ȟ^ze@ʝv_QמFG|8Y4I*feyKFTiTGdo $|o7_͗n~ӂol7~? _[4rP?_uAsO W v'̼79(CB T7ў+ O0zՒwf/VI %`O P (/UQ1N`'Am(@ X>0TAc//ACB\m*nr## 1z,s2~AF $}kKтV&/\A0&|D6瀀)U2 &'xUXĥy 6Z/KңΝ;ְ ٢Tl@wqClth%t='][X4sKA9|h(IC&>)-N5DO/a)CC{S s>@A8y䶟88`FYm@e7Nwb*zғCi xXcjaNhtO=16KTP5un&b0E=XZ0b|‹ S;w: E[Q|Vk)f:&IYe'QuRڴ6=|?ĸwQ!ACwϘ;9+TaLRGxb{Tn. t9{Kݓ+₍1Lz_(śՍ]Ϭ_Cru 7AWj]) k-9oY?/mr3b[Yqh^a~B=5G" ])QCwW9[daF͊hw֟0 wJ1-Mo>=}xK ⦖2*=rz#; JIX&ͨE) E~AV_z~nt mY(ޖXz¤.>^x)$W5H$kԢ(PŞ cQ̲km .kc>m.nIN}N4Օ3Nk4!n<0E2;QxU<Gڅff&8Qg|0FoLw@>PϜ+>D.Vtӊa7}8a=-mQD-RwYV)q)R"f^ k)@{=7X$. >P^ X-[B/u{Pbz:0/zX~M p[aрC1R}I ⏴)6E^hȹiAQ} M6EOGM.)V';BI zKgF:ET޼4~xk9$1'T~)j:=wD/SwrUEoӢ;i{]Y~_D@Di!t'o!~: qK~u~Y7U&%E[jl/;x5qZ02Ѽkn.=n \s}@ @0"t`Ve' R jOuqh8ry4*\n}^ y3 Pfj]k#o* hD,DCt!/$dPHF.]2ZM=IFE7k B1FYA:=&(s=4m3M8ڍ3Ce@`RUwgim%=/rV ge8A9/!l:~”B?~` _M/y.觐 VH?ChC]~5~A?uYM4!")CK+*#0QP}m!w1U*|RK9jZ [|?=8Lf\'$5 jBТ K-8plʴL"#=@ sb8oe"cnfdfK4W $;:>)\_Nv*Jqv*厷]]ytpYݪ~nubsA{wQZف%!|Y~H*NkHt >j3 =7{+n,ȷ œ 4/Zl75fߚjD3hVI4;IdG)4ĸ`FKv}Aq^ %O=?͎<;ihv>f$KfG4F9u&kDܿyM7]G3R"1&K[@S). "[Tuf Jb *{<1;ئ ]٬ȚPQt(((S/M {;r%9)fhsPLn1)ZfT-bQ0IP"3mFcuz ` F uu @|K9ںlʎ"睿f7GlcF&Chs(I'UمTB y~ ;fn{U3V9bX?[*eBQC#l@?[L]PJ\:*+f)ZGXlnZ_70{ε|d3 / bQ[_Jz0AԖ<p7kaX3x, H=&7Gvw;R6 ]>u3\-Y+O ~$/&&%cW;W2}'kt2X[Gw;؛[<6+4l0 Qz?On,Bٌ30~ ^hK GR#F<7=T- ZdiU^z=b:VgG Y aYsgm^-Z+X1Noāq<7diSu򿝸aQo? pdS~ {x" Ig;,:.>Ah`h`O"wgnidTKetE3cǁ)U=bI*Z\e;\#)ZiT3`kv!Փ 3nkr䋸3NWa}]RCF`maNz X)ΥpSnc|\c J( c'OS4H-(a~Q3ֶwB=i'?)h1mjCɿwG-dyF1\6EG$Xz_WVy]/_Ev({݂Zy>َj;6xC|{Ey~ZK.M>]+ݏγ> 1AieS  uHMr=(*@A-aYXa" ./Uut3g?c!o?9Y֨nCz)$ %B<6ay[NR|l_X8џ;"ˍJrsρ )dQF:dPt~.}#clIcͤ1D+QoGm[|Կh2d Έ{+o)UPƠL)8ees,@V!Amv7> uhЎU!w8mbrR4EWUg;$l7F)XWo0*{q8/].b^"%\%SnqOAvNӟm}+X 4txOH+|V@ dcPo&P\8)=n]aڂ 0DCطN :J`LkZ/ҟԟF|'`VecjPLl9NlpfC֚cOؿ<,^zv+$bo1y඿GP٭zANXo1KP~ (4H׀!ӔNw|Bv,l6s<)sE9frC!K{PnJA⊽9_֋-@nj*K[h(Lݪ."V~ڵXs.x]MPFR Z>, - 9Z U$νwyiZ{3ޙw̝;w~wiQhoD> VοH6_D>ǔ㩻"Nչ2҇^'Y- JXI^E$}Pʪ *2ڨM3P;iq&ܴPyw} PEe6^aӆXv@?#x3L14'(buI@'1A A[I XB+wUĉOS[I"Wm nFv# +5l~)dI iMPiMWu &/Ω.[N^ ɧc>I*e '*{Џ#/%-ci"nkmh' | 3P@hlD; l7jyΝ%y3gTgzT7Cu=q3:bД SZB2xj޳&#e]~AN`g?\XX e]!p>m=gBe蓩C.1 AVXY[g9-~<]iL+|~ܾ4^wPϑ6O=nNQِEMVR@dU=moGg3:k76&TNCZ&>@ϲF 1Jfr}ŰMD(e$7e^t*ueptgo˾.rbh);g,@B mJtNrW=-3,B ":ei R 7e88սT#GD]_KX}8Nz]D{8[2I؏HW' kQKfJ9rMԉ=(K<pt'C]P%z<%-R\xF%zH'[xj/pjsJ3Mf{})4" 1餟IǺmh~b{}vEML)u3vF-{߄^uϷѽ᝔ "dn׹ӺUFIǂor*J1,7Gif8u^_0Jobm@R qat"_0 }7h6*|wZbMó$FχM{JYxN}<{p>CЛZlwcƎ]&=0A @(mk6p<u쭎3&Ww(:\dKE?mc+TB\O y); B pUzgj^3 `s`0ۋ:ǗliZWN̘ Ȥa T릇Vo~bVS^<3k7gJXw3 +P"vVd-Z#ٗ@ɡlC5y ]7Ȕ9W9!s]&7`lذ3D``F8l ]vAz]t<84=EMd$ݞ%(iuΨŜ0ކ1|QJ"={$}IA+s`_m+<UDeV{ bh o<* ~[)'+;c㛊"x܉~'6^;c_+}-GN'r\,D@6F1kַ37|*aB0 [D첋6*kw-oа8$m-hCPB~bm%Ꮡe_3 GmMـ\Ta"7@l& {1޴46oZYMeҲږO'!럵umzhk"+.u?87 3 3GrY w>Kq]CZ5.p (#6hI s-õqFũsɗyNH[\ʩyn&欣1"u`qe^v 8\wQ?x"),> _R鴺z=Ėew!ZL@7]2y-pشx5#.ZD0 u~sQcv2mq2MZw6"z+9`GLt- kkqssǚ:2b6$_GA\lʼ1ٍcߩs-&K`)r: ղZ(~H*hb Iנ* 2V+v`옔^tpw|c_^=?!iFIeEEV2& ~VǮzzr~CѲ#|1GJ92nXM[:Մ]pl3<^@hZ|Upyyzkyt ي_({+-4sTz; P E.@݀e"ce$&bBwY'_>--:abF9賟Ε4ՔJu'Y/":CTD  Xչ:;suǭu9h8"o*aFVQd hA;CȜHєHghŠo"3:% 6qrA_Xk@PKmeCx(v@c U07<|] ]ǾsP #}&.(8ÍSwhp=5"4c`x>$b3{<' e(xVbW{&| SQ+cJ4]bJjx;'ÐFH}#g}؉-Zֆ^ iƓH3RiNҌ&6}ki5F8WhFu0sР]n륢.*ƽbxK )cL))Fsň/x]W +:]1VH1l7N1*;WE+".h£+I5aHaJj5a# /0j¡B/h漮jB.̛Wz\B$ v5no3L )xcʡ]at/8޽o8$ uEfJ#Q6p%)pS;Wזn2.MGmSC;aJJ 7h9)~.w.0?uɹWޝ+4?n~ʝEzwk.j~zlq.v~ڻKӜQӠ%%F/Sy~6%Q >Vbڒ)ɖfՑu ֻ9$Xh$=S,ćbfV%vi__F={|,9Z*QtnXD;ӑo<)R6[޸fQgiiNbYtՋۣ;y\]B 0Xido2-rN.UΫmɳ󐣕7\Wz8 g"BGBK/ PVE DDa2#~"^ =+k/,eUcY$  cXd2Z)f &/:/tAtƍK;K F,_aV'01㏥:6oq)0вyșNH)rS'93(xE1sfC^Dgl̔0:uI螳g(Yjlρ'Y65 [Liu&0t+P8wpC[m19AX˂C;3 y&*{H"5W"yѼs@LvtXSFu2.)=UpOhyӎ3y|5<[wڿ 18dlʎ/0cqkDB!H]OU>F,."=xsX