# PaCkAgE DaTaStReAm crossover 1 171732 # end of header 07070100082d02000081a400000067000001f400000001490a20ee0000011d000000660000000700000000000000000000001200000000crossover/pkginfoPKG=crossover NAME=CrossOver Solaris Professional ARCH=intel VERSION=7.1.1 CATEGORY=application DESC=Run Windows applications like MS Office VENDOR=CodeWeavers, Inc. EMAIL=Solaris Packager CLASSES=none PSTAMP=August 15, 2008 BASEDIR=/opt MAXINST=1000 CX_OLDVER= 07070100082d01000081a400000067000001f400000001490a20ee00010413000000660000000700000000000000000000001100000000crossover/pkgmap: 1 171732 1 d none $PKGINST 0755 root bin 1 f none $PKGINST/README 0644 root bin 5210 45971 1225400534 1 d none $PKGINST/bin 0755 root bin 1 s none $PKGINST/bin/autorun=wine 1 s none $PKGINST/bin/bottlesetup=cxtcl 1 f none $PKGINST/bin/cxassoc 0755 root bin 49296 14746 1225400534 1 f none $PKGINST/bin/cxavscan 0755 root bin 6498 7116 1225400535 1 f none $PKGINST/bin/cxbottle 0755 root bin 45544 60112 1225400556 1 s none $PKGINST/bin/cxbottlemanager=cxtcl 1 f none $PKGINST/bin/cxburner 0755 root bin 8196 26836 1225400534 1 f none $PKGINST/bin/cxgetsysinfo 0755 root bin 5408 59025 1225400535 1 f none $PKGINST/bin/cxgettext 0755 root bin 7236 56893 1225400534 1 f none $PKGINST/bin/cxglcheck 0755 root bin 8160 7545 1225400534 1 s none $PKGINST/bin/cxinstallwizard=cxtcl 1 f none $PKGINST/bin/cxlogfilter 0755 root bin 7228 58654 1225400535 1 f none $PKGINST/bin/cxmenu 0755 root bin 41070 16653 1225400534 1 s none $PKGINST/bin/cxmessage=cxtcl 1 f none $PKGINST/bin/cxnativeopen 0755 root bin 10026 1902 1225400535 1 f none $PKGINST/bin/cxnsplugin 0755 root bin 32256 19445 1225400535 1 f none $PKGINST/bin/cxntlm_auth 0755 root bin 896816 23245 1225400530 1 f none $PKGINST/bin/cxreboot 0755 root bin 4613 9813 1225400555 1 f none $PKGINST/bin/cxrepackage 0755 root bin 20318 44861 1225400534 1 s none $PKGINST/bin/cxreset=cxtcl 1 s none $PKGINST/bin/cxrun=cxtcl 1 s none $PKGINST/bin/cxsetup=cxtcl 1 s none $PKGINST/bin/cxstart=wine 1 f none $PKGINST/bin/cxsu 0755 root bin 5809 31925 1225400535 1 f none $PKGINST/bin/cxtcl 0755 root bin 43740 30807 1225400534 1 f none $PKGINST/bin/cxtemplate 0755 root bin 5404 5518 1225400556 1 f none $PKGINST/bin/cxuninstall 0755 root bin 9884 13560 1225400534 1 f none $PKGINST/bin/cxwinassoc 0755 root bin 7135 10759 1225400556 1 f none $PKGINST/bin/detectcd 0755 root bin 10741 60813 1225400535 1 f none $PKGINST/bin/launchurl 0755 root bin 6211 2762 1225400535 1 f none $PKGINST/bin/locate_gui.sh 0755 root bin 32429 1894 1225400535 1 s none $PKGINST/bin/officesetup=cxtcl 1 s none $PKGINST/bin/regedit=wine 1 s none $PKGINST/bin/regsvr32=wine 1 f none $PKGINST/bin/unhide_fstab 0755 root bin 12165 34119 1225400535 1 f none $PKGINST/bin/updatekonqplugins 0755 root bin 436 33659 1225400535 1 f none $PKGINST/bin/wine 0755 root bin 35439 10549 1225400555 1 f none $PKGINST/bin/wineloader 0755 root bin 7128 36022 1225400552 1 f none $PKGINST/bin/wineprefixcreate 0755 root bin 11983 6550 1225400556 1 f none $PKGINST/bin/wineserver 0755 root bin 289580 58071 1225400553 1 f none $PKGINST/bin/wineshelllink 0755 root bin 3983 39713 1225400534 1 f none $PKGINST/changelog.txt 0644 root bin 44647 12258 1225400534 1 d none $PKGINST/doc 0755 root bin 1 d none $PKGINST/doc/en 0755 root bin 1 d none $PKGINST/doc/en/html 0755 root bin 1 f none $PKGINST/doc/en/html/addremove.html 0644 root bin 7574 4971 1225400533 1 f none $PKGINST/doc/en/html/advanced-config.html 0644 root bin 12842 61584 1225400533 1 f none $PKGINST/doc/en/html/bottlehooks.html 0644 root bin 9026 39929 1225400533 1 f none $PKGINST/doc/en/html/bottlesetup.html 0644 root bin 13861 38306 1225400533 1 f none $PKGINST/doc/en/html/configuration-advanced.html 0644 root bin 7266 42661 1225400533 1 f none $PKGINST/doc/en/html/controlpanel.html 0644 root bin 5369 24760 1225400533 1 f none $PKGINST/doc/en/html/cxbottlepath.html 0644 root bin 4868 5043 1225400533 1 f none $PKGINST/doc/en/html/def-bottle.html 0644 root bin 3276 55505 1225400533 1 f none $PKGINST/doc/en/html/definitions.html 0644 root bin 3473 2739 1225400533 1 f none $PKGINST/doc/en/html/driveconfig.html 0644 root bin 4514 36985 1225400533 1 f none $PKGINST/doc/en/html/faq.html 0644 root bin 344990 48761 1225400533 1 f none $PKGINST/doc/en/html/fixedfaq.html 0644 root bin 23174 41340 1225400533 1 d none $PKGINST/doc/en/html/images 0755 root bin 1 s none $PKGINST/doc/en/html/images.common=../../images.common 1 d none $PKGINST/doc/en/html/images.multiuser 0755 root bin 1 f none $PKGINST/doc/en/html/images.multiuser/privatemu.png 0644 root bin 27550 29561 1225400533 1 f none $PKGINST/doc/en/html/images.multiuser/setup-managebottlesmu.png 0644 root bin 32070 44177 1225400533 1 f none $PKGINST/doc/en/html/images.multiuser/shareddrive.png 0644 root bin 64986 49508 1225400533 1 d none $PKGINST/doc/en/html/images.office 0755 root bin 1 f none $PKGINST/doc/en/html/images.office/cxregistermenu.png 0644 root bin 31995 31817 1225400533 1 f none $PKGINST/doc/en/html/images.office/demonag.png 0644 root bin 39854 2166 1225400533 1 f none $PKGINST/doc/en/html/images.office/demoregister.png 0644 root bin 35270 49937 1225400533 1 f none $PKGINST/doc/en/html/images.office/demoregistered.png 0644 root bin 54461 64143 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-cxregistermenu.png 0644 root bin 37962 32679 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-demonag.png 0644 root bin 28336 24989 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-demoregister.png 0644 root bin 8179 2898 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-demoregistered.png 0644 root bin 14951 37982 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-installwizard-advanced.png 0644 root bin 26665 55031 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-installwizard-bottle.png 0644 root bin 26851 63361 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-installwizard-cd.png 0644 root bin 25739 16031 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-installwizard-choose.png 0644 root bin 27759 61722 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-installwizard-download.png 0644 root bin 24866 18171 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-installwizard-finished.png 0644 root bin 24299 61716 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-loki-installer.png 0644 root bin 98494 52888 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-setup-addremove.png 0644 root bin 12076 869 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-setup-advanced.png 0644 root bin 5830 56954 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-setup-bottledefaults.png 0644 root bin 10191 5671 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-setup-menus.png 0644 root bin 22300 33201 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-setupkdemenu.png 0644 root bin 37361 5985 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-usekdemenu.png 0644 root bin 34159 62308 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-advanced.png 0644 root bin 32517 20632 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-assoc.png 0644 root bin 57933 63214 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-bottle.png 0644 root bin 63939 29998 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-cd.png 0644 root bin 74583 20523 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-choose.png 0644 root bin 68155 3500 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-choosefont.png 0644 root bin 60377 57703 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-download.png 0644 root bin 71117 6477 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-finished.png 0644 root bin 63938 40648 1225400533 1 f none $PKGINST/doc/en/html/images.office/loki-installer.png 0644 root bin 64840 18756 1225400533 1 f none $PKGINST/doc/en/html/images.office/run.png 0644 root bin 9139 53021 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-addremove.png 0644 root bin 32801 36897 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-advanced.png 0644 root bin 17290 53031 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-associations.png 0644 root bin 19957 33840 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-bottledefaults.png 0644 root bin 15828 36113 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-bottlesettings.png 0644 root bin 14751 27369 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-confadvanced.png 0644 root bin 10686 58690 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-configuration.png 0644 root bin 58864 17467 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-controlpanel.png 0644 root bin 27243 64785 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-createbottle.png 0644 root bin 13677 22154 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-fonts.png 0644 root bin 16092 39760 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-managebottles.png 0644 root bin 8114 8429 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-menus.png 0644 root bin 20863 49175 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-rpmbottle.png 0644 root bin 16419 19618 1225400533 1 f none $PKGINST/doc/en/html/images.office/setupkdemenu.png 0644 root bin 37722 21653 1225400533 1 f none $PKGINST/doc/en/html/images.office/useassoc.png 0644 root bin 37851 32400 1225400533 1 f none $PKGINST/doc/en/html/images.office/usecmdline.png 0644 root bin 24031 15956 1225400533 1 f none $PKGINST/doc/en/html/images.office/usecxapp.png 0644 root bin 24426 40694 1225400533 1 f none $PKGINST/doc/en/html/images.office/usecxreboot.png 0644 root bin 8939 4440 1225400533 1 f none $PKGINST/doc/en/html/images.office/usecxreset.png 0644 root bin 9593 39994 1225400533 1 f none $PKGINST/doc/en/html/images.office/usecxrun.png 0644 root bin 9719 42824 1225400533 1 f none $PKGINST/doc/en/html/images.office/usekdemenu.png 0644 root bin 18072 19145 1225400533 1 f none $PKGINST/doc/en/html/images.office/usemenutab.png 0644 root bin 38735 60751 1225400533 1 d none $PKGINST/doc/en/html/images.plug 0755 root bin 1 f none $PKGINST/doc/en/html/images.plug/setup-plugins.png 0644 root bin 15048 64506 1225400533 1 f none $PKGINST/doc/en/html/images/decompress-ppd.png 0644 root bin 5817 35595 1225400533 1 f none $PKGINST/doc/en/html/images/edit-psdrv-reg.png 0644 root bin 28023 24170 1225400533 1 f none $PKGINST/doc/en/html/images/print.png 0644 root bin 10534 25864 1225400533 1 f none $PKGINST/doc/en/html/images/supportsite.png 0644 root bin 119890 28776 1225400533 1 f none $PKGINST/doc/en/html/images/visio-autorun.png 0644 root bin 18916 32013 1225400533 1 f none $PKGINST/doc/en/html/index.html 0644 root bin 11526 44245 1225400533 1 f none $PKGINST/doc/en/html/install-windows.html 0644 root bin 22276 36059 1225400533 1 f none $PKGINST/doc/en/html/install.html 0644 root bin 9610 10098 1225400533 1 f none $PKGINST/doc/en/html/installedFiles.html 0644 root bin 8364 10076 1225400533 1 f none $PKGINST/doc/en/html/installingTTFonts.html 0644 root bin 6648 20033 1225400533 1 f none $PKGINST/doc/en/html/intro.html 0644 root bin 6926 254 1225400533 1 f none $PKGINST/doc/en/html/locategui.html 0644 root bin 3100 49021 1225400533 1 f none $PKGINST/doc/en/html/main.html 0644 root bin 1675 19566 1225400533 1 f none $PKGINST/doc/en/html/menu.html 0644 root bin 1556 45505 1225400533 1 f none $PKGINST/doc/en/html/officesetup.html 0644 root bin 18118 40640 1225400533 1 f none $PKGINST/doc/en/html/print-setup.html 0644 root bin 11390 53837 1225400533 1 f none $PKGINST/doc/en/html/setup-remove.html 0644 root bin 4132 64495 1225400533 1 f none $PKGINST/doc/en/html/terminate.html 0644 root bin 3781 31643 1225400533 1 f none $PKGINST/doc/en/html/top.html 0644 root bin 628 52558 1225400533 1 f none $PKGINST/doc/en/html/troubleshooting.html 0644 root bin 5202 6604 1225400533 1 f none $PKGINST/doc/en/html/userguide.css 0644 root bin 2111 40074 1225400533 1 f none $PKGINST/doc/en/html/usingcrossover.html 0644 root bin 16049 8632 1225400533 1 f none $PKGINST/doc/en/index.html 0644 root bin 854 4611 1225400533 1 d none $PKGINST/doc/images 0755 root bin 1 d none $PKGINST/doc/images.common 0755 root bin 1 f none $PKGINST/doc/images.common/blank.png 0644 root bin 159 10406 1225400533 1 f none $PKGINST/doc/images.common/blcurve.png 0644 root bin 163 12845 1225400533 1 f none $PKGINST/doc/images.common/codeweavers_logo.jpg 0644 root bin 3444 9858 1225400533 1 d none $PKGINST/doc/images.common/dbimages 0755 root bin 1 f none $PKGINST/doc/images.common/dbimages/1.png 0644 root bin 171 14683 1225400533 1 f none $PKGINST/doc/images.common/dbimages/10.png 0644 root bin 205 17901 1225400533 1 f none $PKGINST/doc/images.common/dbimages/2.png 0644 root bin 193 17525 1225400533 1 f none $PKGINST/doc/images.common/dbimages/3.png 0644 root bin 192 17344 1225400533 1 f none $PKGINST/doc/images.common/dbimages/4.png 0644 root bin 186 17498 1225400533 1 f none $PKGINST/doc/images.common/dbimages/5.png 0644 root bin 192 16758 1225400533 1 f none $PKGINST/doc/images.common/dbimages/6.png 0644 root bin 197 16667 1225400533 1 f none $PKGINST/doc/images.common/dbimages/7.png 0644 root bin 183 16072 1225400533 1 f none $PKGINST/doc/images.common/dbimages/8.png 0644 root bin 199 16684 1225400533 1 f none $PKGINST/doc/images.common/dbimages/9.png 0644 root bin 198 16469 1225400533 1 f none $PKGINST/doc/images.common/dbimages/caution.png 0644 root bin 1098 13101 1225400533 1 f none $PKGINST/doc/images.common/dbimages/important.png 0644 root bin 617 4465 1225400533 1 f none $PKGINST/doc/images.common/dbimages/note.png 0644 root bin 334 35988 1225400533 1 f none $PKGINST/doc/images.common/dbimages/tip.png 0644 root bin 296 30906 1225400533 1 f none $PKGINST/doc/images.common/dbimages/warning.png 0644 root bin 1090 5888 1225400533 1 f none $PKGINST/doc/images.common/tlcurve.png 0644 root bin 403 43048 1225400533 1 f none $PKGINST/doc/images.common/xover-logo-small.jpg 0644 root bin 2929 22364 1225400533 1 f none $PKGINST/doc/images.common/xover-logo.jpg 0644 root bin 41652 33260 1225400533 1 f none $PKGINST/doc/images/it.gif 0644 root bin 390 48715 1225400533 1 f none $PKGINST/doc/images/jp.gif 0644 root bin 1051 20455 1225400533 1 f none $PKGINST/doc/images/uk.gif 0644 root bin 2444 49578 1225400533 1 f none $PKGINST/doc/images/us.gif 0644 root bin 2101 63319 1225400533 1 f none $PKGINST/doc/index.html 0644 root bin 831 65431 1225400533 1 d none $PKGINST/etc 0755 root bin 1 d none $PKGINST/lib 0755 root bin 1 f none $PKGINST/lib/cxupgrade 0755 root bin 18458 22525 1225400534 1 s none $PKGINST/lib/libcxfreetype.so=libcxfreetype.so.6.3.7 1 s none $PKGINST/lib/libcxfreetype.so.6=libcxfreetype.so.6.3.7 1 f none $PKGINST/lib/libcxfreetype.so.6.3.7 0755 root bin 1386984 57054 1225400535 1 s none $PKGINST/lib/libwine.so.1=libwine.so.1.0 1 f none $PKGINST/lib/libwine.so.1.0 0755 root bin 1188992 10694 1225400552 1 s none $PKGINST/lib/libxml2.so=libxml2.so.2.6.19 1 s none $PKGINST/lib/libxml2.so.2=libxml2.so.2.6.19 1 f none $PKGINST/lib/libxml2.so.2.6.19 0755 root bin 2498536 3579 1225400531 1 s none $PKGINST/lib/libxslt.so=libxslt.so.1.1.14 1 s none $PKGINST/lib/libxslt.so.1=libxslt.so.1.1.14 1 f none $PKGINST/lib/libxslt.so.1.1.14 0755 root bin 611944 27566 1225400533 1 f none $PKGINST/lib/nsplugin-solaris.so 0755 root bin 77336 53883 1225400535 1 f none $PKGINST/lib/nsplugin-solaris64.so 0755 root bin 97328 26989 1225400535 1 d none $PKGINST/lib/perl 0755 root bin 1 f none $PKGINST/lib/perl/CXAssoc.pm 0644 root bin 17776 10790 1225400534 1 f none $PKGINST/lib/perl/CXAssocCDE.pm 0644 root bin 14324 35349 1225400534 1 f none $PKGINST/lib/perl/CXAssocCheck.pm 0644 root bin 3403 57667 1225400534 1 f none $PKGINST/lib/perl/CXAssocDebian.pm 0644 root bin 1540 49580 1225400534 1 f none $PKGINST/lib/perl/CXAssocGnome.pm 0644 root bin 30586 61985 1225400534 1 f none $PKGINST/lib/perl/CXAssocKDE.pm 0644 root bin 5698 40867 1225400534 1 f none $PKGINST/lib/perl/CXAssocKDEXDG.pm 0644 root bin 2388 52051 1225400534 1 f none $PKGINST/lib/perl/CXAssocMacOSX.pm 0644 root bin 18778 57709 1225400534 1 f none $PKGINST/lib/perl/CXAssocMailcap.pm 0644 root bin 2476 47619 1225400534 1 f none $PKGINST/lib/perl/CXAssocMandrake.pm 0644 root bin 7813 51522 1225400534 1 f none $PKGINST/lib/perl/CXAssocMcap.pm 0644 root bin 5156 55797 1225400534 1 f none $PKGINST/lib/perl/CXAssocWindows.pm 0644 root bin 1871 14224 1225400534 1 f none $PKGINST/lib/perl/CXAssocXDG.pm 0644 root bin 32763 52797 1225400534 1 f none $PKGINST/lib/perl/CXBottle.pm 0644 root bin 18899 20168 1225400535 1 f none $PKGINST/lib/perl/CXCDE.pm 0644 root bin 4898 58690 1225400535 1 f none $PKGINST/lib/perl/CXConfig.pm 0644 root bin 4227 22744 1225400535 1 f none $PKGINST/lib/perl/CXDebian.pm 0644 root bin 4387 32881 1225400535 1 f none $PKGINST/lib/perl/CXLog.pm 0644 root bin 3011 15687 1225400535 1 f none $PKGINST/lib/perl/CXMenu.pm 0644 root bin 13114 4535 1225400534 1 f none $PKGINST/lib/perl/CXMenuCDE.pm 0644 root bin 8853 40682 1225400534 1 f none $PKGINST/lib/perl/CXMenuCheck.pm 0644 root bin 1085 17258 1225400534 1 f none $PKGINST/lib/perl/CXMenuDebian.pm 0644 root bin 10620 49471 1225400534 1 f none $PKGINST/lib/perl/CXMenuDtop.pm 0644 root bin 801 57542 1225400534 1 f none $PKGINST/lib/perl/CXMenuGnome.pm 0644 root bin 1102 18443 1225400534 1 f none $PKGINST/lib/perl/CXMenuKDE.pm 0644 root bin 2605 1406 1225400534 1 f none $PKGINST/lib/perl/CXMenuKG.pm 0644 root bin 11754 45833 1225400534 1 f none $PKGINST/lib/perl/CXMenuMacOSX.pm 0644 root bin 11551 9462 1225400534 1 f none $PKGINST/lib/perl/CXMenuSUSE8.pm 0644 root bin 4038 27652 1225400534 1 f none $PKGINST/lib/perl/CXMenuShortcut.pm 0644 root bin 8096 35351 1225400534 1 f none $PKGINST/lib/perl/CXMenuVFDesktop.pm 0644 root bin 786 57644 1225400534 1 f none $PKGINST/lib/perl/CXMenuVFolder.pm 0644 root bin 39579 18566 1225400534 1 f none $PKGINST/lib/perl/CXMenuWindows.pm 0644 root bin 4812 36398 1225400534 1 f none $PKGINST/lib/perl/CXMenuXDG.pm 0644 root bin 23612 58745 1225400534 1 f none $PKGINST/lib/perl/CXMimeKDE.pm 0644 root bin 12022 2293 1225400534 1 f none $PKGINST/lib/perl/CXMimeMcap.pm 0644 root bin 24350 44831 1225400534 1 f none $PKGINST/lib/perl/CXOpts.pm 0644 root bin 4492 46391 1225400535 1 f none $PKGINST/lib/perl/CXPlist.pm 0644 root bin 1777 524 1225400535 1 f none $PKGINST/lib/perl/CXRPM.pm 0644 root bin 5683 65455 1225400535 1 f none $PKGINST/lib/perl/CXRWConfig.pm 0644 root bin 15741 6700 1225400535 1 f none $PKGINST/lib/perl/CXRecode.pm 0644 root bin 2731 382 1225400535 1 f none $PKGINST/lib/perl/CXReplicateDir.pm 0644 root bin 40210 33557 1225400556 1 f none $PKGINST/lib/perl/CXSunpkg.pm 0644 root bin 5205 36178 1225400535 1 f none $PKGINST/lib/perl/CXTinySAX.pm 0644 root bin 4188 3339 1225400535 1 f none $PKGINST/lib/perl/CXTinySAXBase.pm 0644 root bin 780 59739 1225400535 1 f none $PKGINST/lib/perl/CXTinySAXLog.pm 0644 root bin 1018 13140 1225400535 1 f none $PKGINST/lib/perl/CXTinySAXMultiplexer.pm 0644 root bin 1321 36776 1225400535 1 f none $PKGINST/lib/perl/CXUpgrade.pm 0644 root bin 16813 42296 1225400534 1 f none $PKGINST/lib/perl/CXUtils.pm 0644 root bin 29368 9570 1225400535 1 f none $PKGINST/lib/perl/CXXMLDOM.pm 0644 root bin 8978 11955 1225400535 1 d none $PKGINST/lib/perl/Parse 0755 root bin 1 d none $PKGINST/lib/perl/Parse/Win32Registry 0755 root bin 1 f none $PKGINST/lib/perl/Parse/Win32Registry.pm 0644 root bin 22356 19714 1225400535 1 f none $PKGINST/lib/perl/Parse/Win32Registry/Key.pm 0644 root bin 1813 4309 1225400535 1 f none $PKGINST/lib/perl/Parse/Win32Registry/Value.pm 0644 root bin 1936 4816 1225400535 1 d none $PKGINST/lib/perl/Parse/Win32Registry/Win95 0755 root bin 1 f none $PKGINST/lib/perl/Parse/Win32Registry/Win95/File.pm 0644 root bin 4926 37658 1225400535 1 f none $PKGINST/lib/perl/Parse/Win32Registry/Win95/Key.pm 0644 root bin 12547 46819 1225400535 1 f none $PKGINST/lib/perl/Parse/Win32Registry/Win95/Value.pm 0644 root bin 3599 4014 1225400535 1 d none $PKGINST/lib/perl/Parse/Win32Registry/WinNT 0755 root bin 1 f none $PKGINST/lib/perl/Parse/Win32Registry/WinNT/File.pm 0644 root bin 5679 6746 1225400535 1 f none $PKGINST/lib/perl/Parse/Win32Registry/WinNT/Key.pm 0644 root bin 12027 49837 1225400535 1 f none $PKGINST/lib/perl/Parse/Win32Registry/WinNT/Value.pm 0644 root bin 6127 49556 1225400535 1 d none $PKGINST/lib/perl/XML 0755 root bin 1 d none $PKGINST/lib/perl/XML/DOM 0755 root bin 1 f none $PKGINST/lib/perl/XML/DOM.pm 0644 root bin 107741 49449 1225400531 1 f none $PKGINST/lib/perl/XML/DOM/DOMException.pm 0644 root bin 1892 61015 1225400531 1 f none $PKGINST/lib/perl/XML/DOM/NamedNodeMap.pm 0644 root bin 5311 61422 1225400531 1 f none $PKGINST/lib/perl/XML/DOM/NodeList.pm 0644 root bin 695 44442 1225400531 1 d none $PKGINST/lib/perl/XML/Handler 0755 root bin 1 f none $PKGINST/lib/perl/XML/Handler/BuildDOM.pm 0644 root bin 7587 13094 1225400531 1 f none $PKGINST/lib/perl/XML/NamespaceSupport.pm 0644 root bin 20258 6467 1225400531 1 f none $PKGINST/lib/perl/XML/RegExp.pm 0644 root bin 6065 26642 1225400531 1 d none $PKGINST/lib/perl/XML/SAX 0755 root bin 1 f none $PKGINST/lib/perl/XML/SAX.pm 0644 root bin 9194 2160 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/Base.pm 0644 root bin 112756 45123 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/DocumentLocator.pm 0644 root bin 2473 61682 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/Exception.pm 0644 root bin 3021 43613 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/ParserFactory.pm 0644 root bin 6561 61713 1225400531 1 d none $PKGINST/lib/perl/XML/SAX/PurePerl 0755 root bin 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl.pm 0644 root bin 20995 61656 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/DTDDecls.pm 0644 root bin 15273 54755 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/DebugHandler.pm 0644 root bin 1879 24384 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/DocType.pm 0644 root bin 3964 26742 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/EncodingDetect.pm 0644 root bin 6117 47326 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Exception.pm 0644 root bin 1707 58290 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/NoUnicodeExt.pm 0644 root bin 628 36785 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Productions.pm 0644 root bin 6691 10869 1225400531 1 d none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader 0755 root bin 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader.pm 0644 root bin 6902 24954 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader/NoUnicodeExt.pm 0644 root bin 2911 2526 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader/Stream.pm 0644 root bin 1839 64767 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader/String.pm 0644 root bin 1369 31795 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader/URI.pm 0644 root bin 1462 36722 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader/UnicodeExt.pm 0644 root bin 675 50202 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/UnicodeExt.pm 0644 root bin 369 26208 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/XMLDecl.pm 0644 root bin 4289 65378 1225400531 1 d none $PKGINST/lib/tcl 0755 root bin 1 f none $PKGINST/lib/tcl/libTktable2.8.so 0755 root bin 124284 14634 1225400531 1 f none $PKGINST/lib/tcl/libimg1.2.so 0755 root bin 35364 51528 1225400531 1 f none $PKGINST/lib/tcl/libitcl3.1.so 0755 root bin 102480 35892 1225400531 1 f none $PKGINST/lib/tcl/libitk3.1.so 0755 root bin 40340 24287 1225400531 1 f none $PKGINST/lib/tcl/libtcl8.4.so 0755 root bin 661008 45105 1225400530 1 f none $PKGINST/lib/tcl/libtk8.4.so 0755 root bin 847076 6352 1225400531 1 f none $PKGINST/lib/tcl/tcllib.so 0755 root bin 4019952 10553 1225400534 1 d none $PKGINST/lib/wine 0755 root bin 1 f none $PKGINST/lib/wine/acledit.dll.so 0755 root bin 75440 52857 1225400537 1 f none $PKGINST/lib/wine/activeds.dll.so 0755 root bin 78140 3145 1225400537 1 f none $PKGINST/lib/wine/actxprxy.dll.so 0755 root bin 81440 18514 1225400537 1 f none $PKGINST/lib/wine/advapi32.dll.so 0755 root bin 302856 38567 1225400537 1 f none $PKGINST/lib/wine/advpack.dll.so 0755 root bin 112668 60827 1225400537 1 f none $PKGINST/lib/wine/amstream.dll.so 0755 root bin 152100 30059 1225400537 1 f none $PKGINST/lib/wine/appwiz.cpl.so 0755 root bin 101768 58058 1225400537 1 f none $PKGINST/lib/wine/assocscan.exe.so 0755 root bin 92028 35437 1225400553 1 f none $PKGINST/lib/wine/atl.dll.so 0755 root bin 158160 13089 1225400537 1 f none $PKGINST/lib/wine/autorun.exe.so 0755 root bin 75888 63431 1225400553 1 f none $PKGINST/lib/wine/avicap32.dll.so 0755 root bin 75820 22301 1225400537 1 f none $PKGINST/lib/wine/avifil32.dll.so 0755 root bin 254940 56880 1225400537 1 f none $PKGINST/lib/wine/avifile.dll16 0644 root bin 13 1108 1225400550 1 f none $PKGINST/lib/wine/browseui.dll.so 0755 root bin 139236 8383 1225400537 1 f none $PKGINST/lib/wine/cabinet.dll.so 0755 root bin 124552 19215 1225400537 1 f none $PKGINST/lib/wine/capi2032.dll.so 0755 root bin 77048 50338 1225400537 1 f none $PKGINST/lib/wine/cards.dll.so 0755 root bin 327404 3692 1225400537 1 f none $PKGINST/lib/wine/cfgmgr32.dll.so 0755 root bin 93848 26998 1225400537 1 f none $PKGINST/lib/wine/clusapi.dll.so 0755 root bin 86836 26887 1225400537 1 f none $PKGINST/lib/wine/cmd.exe.so 0755 root bin 410572 468 1225400552 1 f none $PKGINST/lib/wine/comcat.dll.so 0755 root bin 75568 5718 1225400537 1 f none $PKGINST/lib/wine/comctl32.dll.so 0755 root bin 697120 17001 1225400538 1 f none $PKGINST/lib/wine/comdlg32.dll.so 0755 root bin 698288 34158 1225400538 1 f none $PKGINST/lib/wine/comm.drv16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/commdlg.dll16 0644 root bin 13 1103 1225400550 1 f none $PKGINST/lib/wine/compobj.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/compstui.dll.so 0755 root bin 75308 43456 1225400538 1 f none $PKGINST/lib/wine/control.exe.so 0755 root bin 75672 62750 1225400552 1 f none $PKGINST/lib/wine/credui.dll.so 0755 root bin 177604 38588 1225400538 1 f none $PKGINST/lib/wine/crtdll.dll.so 0755 root bin 102104 53310 1225400538 1 f none $PKGINST/lib/wine/crypt32.dll.so 0755 root bin 412388 59103 1225400538 1 f none $PKGINST/lib/wine/cryptdlg.dll.so 0755 root bin 82788 32876 1225400538 1 f none $PKGINST/lib/wine/cryptdll.dll.so 0755 root bin 75804 6267 1225400538 1 f none $PKGINST/lib/wine/cryptnet.dll.so 0755 root bin 92844 22590 1225400538 1 f none $PKGINST/lib/wine/cryptui.dll.so 0755 root bin 82764 22165 1225400538 1 f none $PKGINST/lib/wine/ctapi32.dll.so 0755 root bin 76996 61023 1225400538 1 s none $PKGINST/lib/wine/ctfmon.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/ctl3d.dll16 0644 root bin 12 947 1225400550 1 f none $PKGINST/lib/wine/ctl3d32.dll.so 0755 root bin 82504 9967 1225400538 1 f none $PKGINST/lib/wine/ctl3dv2.dll16 0644 root bin 12 947 1225400550 1 f none $PKGINST/lib/wine/cxcplinfo.exe.so 0755 root bin 82012 3740 1225400553 1 f none $PKGINST/lib/wine/cxdummy.exe.so 0755 root bin 74336 45884 1225400553 1 f none $PKGINST/lib/wine/cxexeinfo.exe.so 0755 root bin 75696 35126 1225400553 1 f none $PKGINST/lib/wine/cxfontreplace.exe.so 0755 root bin 77688 59056 1225400553 1 f none $PKGINST/lib/wine/cxhtmlsetup.exe.so 0755 root bin 5826980 8196 1225400554 1 f none $PKGINST/lib/wine/cxmn.exe.so 0755 root bin 84256 40214 1225400554 1 f none $PKGINST/lib/wine/cxnative.exe.so 0755 root bin 78188 12555 1225400556 1 f none $PKGINST/lib/wine/cxwget.exe.so 0755 root bin 178072 47766 1225400554 1 f none $PKGINST/lib/wine/d3d10.dll.so 0755 root bin 150952 44095 1225400538 1 f none $PKGINST/lib/wine/d3d8.dll.so 0755 root bin 171776 44675 1225400538 1 f none $PKGINST/lib/wine/d3d9.dll.so 0755 root bin 190652 26164 1225400538 1 f none $PKGINST/lib/wine/d3dim.dll.so 0755 root bin 76556 24089 1225400538 1 f none $PKGINST/lib/wine/d3drm.dll.so 0755 root bin 80684 24752 1225400538 1 f none $PKGINST/lib/wine/d3dx8.dll.so 0755 root bin 157132 7043 1225400538 1 f none $PKGINST/lib/wine/d3dx9_24.dll.so 0755 root bin 102140 45839 1225400538 1 f none $PKGINST/lib/wine/d3dx9_25.dll.so 0755 root bin 102340 58381 1225400538 1 f none $PKGINST/lib/wine/d3dx9_26.dll.so 0755 root bin 102716 19554 1225400538 1 f none $PKGINST/lib/wine/d3dx9_27.dll.so 0755 root bin 102716 19067 1225400539 1 f none $PKGINST/lib/wine/d3dx9_28.dll.so 0755 root bin 103184 49358 1225400539 1 f none $PKGINST/lib/wine/d3dx9_29.dll.so 0755 root bin 103184 49122 1225400539 1 f none $PKGINST/lib/wine/d3dx9_30.dll.so 0755 root bin 103184 49153 1225400539 1 f none $PKGINST/lib/wine/d3dx9_31.dll.so 0755 root bin 102684 14980 1225400539 1 f none $PKGINST/lib/wine/d3dx9_32.dll.so 0755 root bin 103024 37565 1225400539 1 f none $PKGINST/lib/wine/d3dx9_33.dll.so 0755 root bin 103024 37856 1225400539 1 f none $PKGINST/lib/wine/d3dx9_34.dll.so 0755 root bin 103024 37971 1225400539 1 f none $PKGINST/lib/wine/d3dx9_35.dll.so 0755 root bin 103032 38587 1225400539 1 f none $PKGINST/lib/wine/d3dx9_36.dll.so 0755 root bin 127816 14778 1225400539 1 f none $PKGINST/lib/wine/d3dx9_37.dll.so 0755 root bin 103216 51755 1225400539 1 f none $PKGINST/lib/wine/d3dxof.dll.so 0755 root bin 152200 10556 1225400539 1 f none $PKGINST/lib/wine/dbghelp.dll.so 0755 root bin 255472 4224 1225400539 1 f none $PKGINST/lib/wine/dcapvxd.vxd.so 0755 root bin 74696 55325 1225400539 1 f none $PKGINST/lib/wine/dciman32.dll.so 0755 root bin 76584 56031 1225400539 1 f none $PKGINST/lib/wine/ddeml.dll16 0644 root bin 11 920 1225400550 1 s none $PKGINST/lib/wine/ddhelp.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/ddraw.dll.so 0755 root bin 379872 26092 1225400539 1 f none $PKGINST/lib/wine/ddrawex.dll.so 0755 root bin 146644 2749 1225400539 1 f none $PKGINST/lib/wine/devenum.dll.so 0755 root bin 172816 8319 1225400539 1 f none $PKGINST/lib/wine/dinput.dll.so 0755 root bin 215212 32434 1225400539 1 f none $PKGINST/lib/wine/dinput8.dll.so 0755 root bin 146152 45683 1225400539 1 f none $PKGINST/lib/wine/dispdib.dll16 0644 root bin 10 781 1225400550 1 f none $PKGINST/lib/wine/display.drv16 0644 root bin 11 920 1225400550 1 f none $PKGINST/lib/wine/dmband.dll.so 0755 root bin 192720 43556 1225400539 1 f none $PKGINST/lib/wine/dmcompos.dll.so 0755 root bin 186628 10979 1225400540 1 f none $PKGINST/lib/wine/dmime.dll.so 0755 root bin 297660 37196 1225400540 1 f none $PKGINST/lib/wine/dmloader.dll.so 0755 root bin 215064 14884 1225400540 1 f none $PKGINST/lib/wine/dmscript.dll.so 0755 root bin 189052 16300 1225400540 1 f none $PKGINST/lib/wine/dmstyle.dll.so 0755 root bin 233268 28469 1225400540 1 f none $PKGINST/lib/wine/dmsynth.dll.so 0755 root bin 169564 14668 1225400540 1 f none $PKGINST/lib/wine/dmusic.dll.so 0755 root bin 199164 11741 1225400540 1 f none $PKGINST/lib/wine/dmusic32.dll.so 0755 root bin 75932 44235 1225400540 1 f none $PKGINST/lib/wine/dnsapi.dll.so 0755 root bin 115784 65525 1225400540 1 f none $PKGINST/lib/wine/dplay.dll.so 0755 root bin 75232 52564 1225400540 1 f none $PKGINST/lib/wine/dplayx.dll.so 0755 root bin 242484 35804 1225400540 1 f none $PKGINST/lib/wine/dpnaddr.dll.so 0755 root bin 75156 53796 1225400540 1 f none $PKGINST/lib/wine/dpnet.dll.so 0755 root bin 111484 41567 1225400540 1 f none $PKGINST/lib/wine/dpnhpast.dll.so 0755 root bin 76412 21324 1225400540 1 f none $PKGINST/lib/wine/dpnlobby.dll.so 0755 root bin 75160 53946 1225400540 1 f none $PKGINST/lib/wine/dpwsockx.dll.so 0755 root bin 74888 799 1225400540 1 f none $PKGINST/lib/wine/dsound.dll.so 0755 root bin 329760 52318 1225400541 1 f none $PKGINST/lib/wine/dssenh.dll.so 0755 root bin 76996 21223 1225400541 1 f none $PKGINST/lib/wine/dswave.dll.so 0755 root bin 169768 7192 1225400541 1 f none $PKGINST/lib/wine/dwmapi.dll.so 0755 root bin 79900 26723 1225400541 1 f none $PKGINST/lib/wine/dxdiagn.dll.so 0755 root bin 128484 10304 1225400541 1 f none $PKGINST/lib/wine/dxgi.dll.so 0755 root bin 129488 37533 1225400541 1 f none $PKGINST/lib/wine/eject.exe.so 0755 root bin 76440 48145 1225400552 1 f none $PKGINST/lib/wine/enumfonts.exe.so 0755 root bin 75640 26333 1225400554 1 f none $PKGINST/lib/wine/expand.exe.so 0755 root bin 76400 3050 1225400552 1 f none $PKGINST/lib/wine/explorer.exe.so 0755 root bin 94400 61014 1225400552 1 f none $PKGINST/lib/wine/extract.exe.so 0755 root bin 79140 50364 1225400554 1 f none $PKGINST/lib/wine/faultrep.dll.so 0755 root bin 76996 40920 1225400541 1 s none $PKGINST/lib/wine/findfast.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/fusion.dll.so 0755 root bin 101900 46357 1225400541 1 f none $PKGINST/lib/wine/gdi.exe16 0644 root bin 10 781 1225400550 1 f none $PKGINST/lib/wine/gdi32.dll.so 0755 root bin 536360 8781 1225400541 1 f none $PKGINST/lib/wine/gdiplus.dll.so 0755 root bin 306408 63381 1225400541 1 f none $PKGINST/lib/wine/glu32.dll.so 0755 root bin 86316 4602 1225400541 1 f none $PKGINST/lib/wine/gphoto2.ds.so 0755 root bin 121616 31780 1225400541 1 f none $PKGINST/lib/wine/gpkcsp.dll.so 0755 root bin 76872 11399 1225400541 1 f none $PKGINST/lib/wine/hackmsi.exe.so 0755 root bin 76240 40632 1225400554 1 f none $PKGINST/lib/wine/hal.dll.so 0755 root bin 84964 53928 1225400541 1 f none $PKGINST/lib/wine/hh.exe.so 0755 root bin 74544 57121 1225400552 1 f none $PKGINST/lib/wine/hhctrl.ocx.so 0755 root bin 161588 47692 1225400541 1 f none $PKGINST/lib/wine/hid.dll.so 0755 root bin 80176 38054 1225400541 1 f none $PKGINST/lib/wine/hlink.dll.so 0755 root bin 148908 33942 1225400541 1 f none $PKGINST/lib/wine/hnetcfg.dll.so 0755 root bin 75488 56745 1225400541 1 f none $PKGINST/lib/wine/iccvid.dll.so 0755 root bin 87416 16398 1225400541 1 f none $PKGINST/lib/wine/icmp.dll.so 0755 root bin 74912 6677 1225400541 1 f none $PKGINST/lib/wine/icwconn1.exe.so 0755 root bin 76972 30724 1225400554 1 f none $PKGINST/lib/wine/ieinfo5.ocx.so 0755 root bin 75500 51140 1225400541 1 f none $PKGINST/lib/wine/iernonce.dll.so 0755 root bin 79472 39889 1225400541 1 f none $PKGINST/lib/wine/iexplore.exe.so 0755 root bin 75436 22798 1225400552 1 f none $PKGINST/lib/wine/ifsmgr.vxd.so 0755 root bin 75700 20426 1225400541 1 f none $PKGINST/lib/wine/imaadp32.acm.so 0755 root bin 83996 43162 1225400541 1 f none $PKGINST/lib/wine/imagehlp.dll.so 0755 root bin 91384 40904 1225400541 1 s none $PKGINST/lib/wine/imjpmig.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/imm.dll16 0644 root bin 10 796 1225400550 1 f none $PKGINST/lib/wine/imm32.dll.so 0755 root bin 120776 63176 1225400541 1 f none $PKGINST/lib/wine/inetcomm.dll.so 0755 root bin 197920 49566 1225400542 1 f none $PKGINST/lib/wine/inetmib1.dll.so 0755 root bin 88308 35438 1225400542 1 f none $PKGINST/lib/wine/infosoft.dll.so 0755 root bin 118992 65432 1225400542 1 f none $PKGINST/lib/wine/initpki.dll.so 0755 root bin 74940 8696 1225400542 1 f none $PKGINST/lib/wine/inkobj.dll.so 0755 root bin 75676 1518 1225400542 1 f none $PKGINST/lib/wine/inseng.dll.so 0755 root bin 80580 51568 1225400542 1 f none $PKGINST/lib/wine/iphlpapi.dll.so 0755 root bin 122124 54666 1225400542 1 f none $PKGINST/lib/wine/itircl.dll.so 0755 root bin 74956 10636 1225400542 1 f none $PKGINST/lib/wine/itss.dll.so 0755 root bin 160092 2027 1225400542 1 f none $PKGINST/lib/wine/jscript.dll.so 0755 root bin 282256 53931 1225400542 1 f none $PKGINST/lib/wine/kernel32.dll.so 0755 root bin 1196188 31901 1225400542 1 f none $PKGINST/lib/wine/keyboard.drv16 0644 root bin 11 920 1225400550 1 f none $PKGINST/lib/wine/krnl386.exe16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/localspl.dll.so 0755 root bin 107512 62503 1225400542 1 f none $PKGINST/lib/wine/localui.dll.so 0755 root bin 94740 64479 1225400542 1 f none $PKGINST/lib/wine/lz32.dll.so 0755 root bin 78904 11447 1225400542 1 f none $PKGINST/lib/wine/lzexpand.dll16 0644 root bin 9 703 1225400550 1 s none $PKGINST/lib/wine/maildoff.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/mapi32.dll.so 0755 root bin 164964 16593 1225400542 1 f none $PKGINST/lib/wine/mciavi32.dll.so 0755 root bin 121096 44714 1225400542 1 f none $PKGINST/lib/wine/mcicda.dll.so 0755 root bin 88576 29399 1225400542 1 f none $PKGINST/lib/wine/mciseq.dll.so 0755 root bin 98656 19089 1225400542 1 f none $PKGINST/lib/wine/mciwave.dll.so 0755 root bin 94520 19553 1225400542 1 s none $PKGINST/lib/wine/mdm.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/midimap.dll.so 0755 root bin 81008 2771 1225400542 1 f none $PKGINST/lib/wine/mlang.dll.so 0755 root bin 158964 44737 1225400542 1 f none $PKGINST/lib/wine/mmdevldr.vxd.so 0755 root bin 74664 47853 1225400542 1 f none $PKGINST/lib/wine/mmsystem.dll16 0644 root bin 10 924 1225400550 1 f none $PKGINST/lib/wine/monodebg.vxd.so 0755 root bin 74784 61186 1225400542 1 s none $PKGINST/lib/wine/mosearch.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/mountmgr.sys.so 0755 root bin 87452 63569 1225400543 1 f none $PKGINST/lib/wine/mouse.drv16 0644 root bin 11 920 1225400550 1 f none $PKGINST/lib/wine/mpr.dll.so 0755 root bin 129932 46849 1225400543 1 f none $PKGINST/lib/wine/mprapi.dll.so 0755 root bin 89556 56426 1225400543 1 f none $PKGINST/lib/wine/msacm.dll16 0644 root bin 12 1002 1225400550 1 f none $PKGINST/lib/wine/msacm32.dll.so 0755 root bin 148140 6512 1225400543 1 f none $PKGINST/lib/wine/msacm32.drv.so 0755 root bin 91696 6668 1225400543 1 f none $PKGINST/lib/wine/msadp32.acm.so 0755 root bin 80992 30056 1225400543 1 f none $PKGINST/lib/wine/mscat32.dll.so 0755 root bin 77984 39358 1225400543 1 f none $PKGINST/lib/wine/mscms.dll.so 0755 root bin 98816 29646 1225400543 1 f none $PKGINST/lib/wine/mscoree.dll.so 0755 root bin 136652 55592 1225400543 1 f none $PKGINST/lib/wine/msdmo.dll.so 0755 root bin 125516 12805 1225400543 1 f none $PKGINST/lib/wine/msftedit.dll.so 0755 root bin 116336 18005 1225400543 1 f none $PKGINST/lib/wine/msg711.acm.so 0755 root bin 81356 61241 1225400543 1 f none $PKGINST/lib/wine/mshtml.dll.so 0755 root bin 695224 1517 1225400543 1 f none $PKGINST/lib/wine/mshtml.tlb.so 0755 root bin 378832 31645 1225400543 1 f none $PKGINST/lib/wine/msi.dll.so 0755 root bin 662696 29692 1225400543 1 f none $PKGINST/lib/wine/msiexec.exe.so 0755 root bin 103516 742 1225400552 1 f none $PKGINST/lib/wine/msimg32.dll.so 0755 root bin 74768 53662 1225400543 1 f none $PKGINST/lib/wine/msimtf.dll.so 0755 root bin 118008 50311 1225400543 1 f none $PKGINST/lib/wine/msisip.dll.so 0755 root bin 78348 41223 1225400543 1 f none $PKGINST/lib/wine/msisys.ocx.so 0755 root bin 75236 42808 1225400543 1 f none $PKGINST/lib/wine/msnet32.dll.so 0755 root bin 79596 2747 1225400543 1 f none $PKGINST/lib/wine/msrle32.dll.so 0755 root bin 99900 19650 1225400543 1 f none $PKGINST/lib/wine/mssip32.dll.so 0755 root bin 75560 55673 1225400543 1 f none $PKGINST/lib/wine/mstask.dll.so 0755 root bin 138520 19947 1225400544 1 f none $PKGINST/lib/wine/msvcirt.dll.so 0755 root bin 120616 12065 1225400544 1 f none $PKGINST/lib/wine/msvcr71.dll.so 0755 root bin 122240 30069 1225400544 1 f none $PKGINST/lib/wine/msvcrt.dll.so 0755 root bin 315768 33931 1225400544 1 f none $PKGINST/lib/wine/msvcrt20.dll.so 0755 root bin 159900 17285 1225400544 1 f none $PKGINST/lib/wine/msvcrt40.dll.so 0755 root bin 163456 29018 1225400544 1 f none $PKGINST/lib/wine/msvcrtd.dll.so 0755 root bin 119124 28485 1225400544 1 f none $PKGINST/lib/wine/msvfw32.dll.so 0755 root bin 152900 46471 1225400544 1 f none $PKGINST/lib/wine/msvidc32.dll.so 0755 root bin 81036 32558 1225400544 1 f none $PKGINST/lib/wine/msvideo.dll16 0644 root bin 12 1036 1225400550 1 f none $PKGINST/lib/wine/mswsock.dll.so 0755 root bin 79084 37065 1225400544 1 f none $PKGINST/lib/wine/msxml3.dll.so 0755 root bin 327844 5667 1225400544 1 f none $PKGINST/lib/wine/nddeapi.dll.so 0755 root bin 77760 19388 1225400544 1 f none $PKGINST/lib/wine/net.exe.so 0755 root bin 95308 59387 1225400552 1 f none $PKGINST/lib/wine/netapi32.dll.so 0755 root bin 147416 60032 1225400544 1 f none $PKGINST/lib/wine/newdev.dll.so 0755 root bin 75288 34624 1225400544 1 f none $PKGINST/lib/wine/notepad.exe.so 0755 root bin 181472 34282 1225400552 1 f none $PKGINST/lib/wine/ntdll.dll.so 0755 root bin 545148 2697 1225400544 1 f none $PKGINST/lib/wine/ntdsapi.dll.so 0755 root bin 85472 46520 1225400544 1 f none $PKGINST/lib/wine/ntoskrnl.exe.so 0755 root bin 227728 57513 1225400544 1 f none $PKGINST/lib/wine/ntprint.dll.so 0755 root bin 80992 63652 1225400544 1 f none $PKGINST/lib/wine/objsel.dll.so 0755 root bin 123264 28033 1225400544 1 f none $PKGINST/lib/wine/odbc32.dll.so 0755 root bin 143132 29898 1225400544 1 f none $PKGINST/lib/wine/odbccp32.dll.so 0755 root bin 92172 61045 1225400545 1 f none $PKGINST/lib/wine/ole2.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/ole2conv.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/ole2disp.dll16 0644 root bin 13 1123 1225400550 1 f none $PKGINST/lib/wine/ole2nls.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/ole2prox.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/ole2thk.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/ole32.dll.so 0755 root bin 1031568 28349 1225400545 1 f none $PKGINST/lib/wine/oleacc.dll.so 0755 root bin 80092 46050 1225400545 1 f none $PKGINST/lib/wine/oleaut32.dll.so 0755 root bin 900440 11 1225400545 1 f none $PKGINST/lib/wine/olecli.dll16 0644 root bin 13 1105 1225400550 1 f none $PKGINST/lib/wine/olecli32.dll.so 0755 root bin 99840 48267 1225400545 1 f none $PKGINST/lib/wine/oledlg.dll.so 0755 root bin 155464 51264 1225400545 1 f none $PKGINST/lib/wine/olepro32.dll.so 0755 root bin 76676 37841 1225400545 1 f none $PKGINST/lib/wine/olesvr.dll16 0644 root bin 13 1140 1225400550 1 f none $PKGINST/lib/wine/olesvr32.dll.so 0755 root bin 80676 16311 1225400545 1 f none $PKGINST/lib/wine/olethk32.dll.so 0755 root bin 76948 46155 1225400545 1 f none $PKGINST/lib/wine/oleview.exe.so 0755 root bin 253308 45031 1225400552 1 f none $PKGINST/lib/wine/opengl32.dll.so 0755 root bin 581496 7831 1225400545 1 f none $PKGINST/lib/wine/pdh.dll.so 0755 root bin 101664 26944 1225400545 1 f none $PKGINST/lib/wine/pluginserver.exe.so 0755 root bin 131824 31392 1225400554 1 f none $PKGINST/lib/wine/powrprof.dll.so 0755 root bin 81260 35143 1225400545 1 f none $PKGINST/lib/wine/printui.dll.so 0755 root bin 80216 11724 1225400545 1 s none $PKGINST/lib/wine/progman.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/propsys.dll.so 0755 root bin 100272 59176 1225400545 1 f none $PKGINST/lib/wine/psapi.dll.so 0755 root bin 82048 50098 1225400545 1 f none $PKGINST/lib/wine/pstorec.dll.so 0755 root bin 123148 14910 1225400545 1 s none $PKGINST/lib/wine/pstores.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/qcap.dll.so 0755 root bin 180592 9201 1225400545 1 f none $PKGINST/lib/wine/qedit.dll.so 0755 root bin 149372 43654 1225400545 1 f none $PKGINST/lib/wine/qmgr.dll.so 0755 root bin 137984 58054 1225400545 1 f none $PKGINST/lib/wine/qmgrprxy.dll.so 0755 root bin 169764 22399 1225400546 1 s none $PKGINST/lib/wine/qttask.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/quartz.dll.so 0755 root bin 473444 51234 1225400546 1 f none $PKGINST/lib/wine/query.dll.so 0755 root bin 80388 37565 1225400546 1 f none $PKGINST/lib/wine/rasapi16.dll16 0644 root bin 13 1113 1225400550 1 f none $PKGINST/lib/wine/rasapi32.dll.so 0755 root bin 96680 31374 1225400546 1 f none $PKGINST/lib/wine/reboot.exe.so 0755 root bin 228308 44772 1225400555 1 f none $PKGINST/lib/wine/reg.exe.so 0755 root bin 83144 40301 1225400552 1 f none $PKGINST/lib/wine/regedit.exe.so 0755 root bin 312708 21664 1225400552 1 f none $PKGINST/lib/wine/registerfonts.exe.so 0755 root bin 74764 5571 1225400555 1 f none $PKGINST/lib/wine/regsvr32.exe.so 0755 root bin 77880 30778 1225400552 1 f none $PKGINST/lib/wine/resutils.dll.so 0755 root bin 82756 44019 1225400546 1 f none $PKGINST/lib/wine/riched20.dll.so 0755 root bin 343752 54194 1225400546 1 f none $PKGINST/lib/wine/riched32.dll.so 0755 root bin 76036 57732 1225400546 1 f none $PKGINST/lib/wine/rpcrt4.dll.so 0755 root bin 421980 60386 1225400546 1 f none $PKGINST/lib/wine/rpcss.exe.so 0755 root bin 100464 26564 1225400552 1 f none $PKGINST/lib/wine/rsabase.dll.so 0755 root bin 76720 20720 1225400546 1 f none $PKGINST/lib/wine/rsaenh.dll.so 0755 root bin 225800 55478 1225400546 1 f none $PKGINST/lib/wine/rundll32.exe.so 0755 root bin 77724 58207 1225400552 1 f none $PKGINST/lib/wine/sane.ds.so 0755 root bin 110688 39339 1225400546 1 f none $PKGINST/lib/wine/sccbase.dll.so 0755 root bin 76920 15941 1225400546 1 f none $PKGINST/lib/wine/schannel.dll.so 0755 root bin 80240 21203 1225400546 1 f none $PKGINST/lib/wine/secedit.exe.so 0755 root bin 73972 10388 1225400552 1 f none $PKGINST/lib/wine/secur32.dll.so 0755 root bin 143264 35676 1225400546 1 f none $PKGINST/lib/wine/security.dll.so 0755 root bin 77244 47122 1225400546 1 f none $PKGINST/lib/wine/sendwndcmd.exe.so 0755 root bin 83404 24446 1225400556 1 f none $PKGINST/lib/wine/sensapi.dll.so 0755 root bin 75172 30590 1225400546 1 f none $PKGINST/lib/wine/serialui.dll.so 0755 root bin 93072 53655 1225400546 1 f none $PKGINST/lib/wine/services.exe.so 0755 root bin 131740 5457 1225400552 1 f none $PKGINST/lib/wine/setupapi.dll.so 0755 root bin 351056 4747 1225400546 1 f none $PKGINST/lib/wine/setupx.dll16 0644 root bin 13 1247 1225400550 1 f none $PKGINST/lib/wine/sfc.dll.so 0755 root bin 74812 62806 1225400546 1 f none $PKGINST/lib/wine/sfc_os.dll.so 0755 root bin 75416 52550 1225400546 1 f none $PKGINST/lib/wine/shdoclc.dll.so 0755 root bin 152768 46930 1225400546 1 f none $PKGINST/lib/wine/shdocvw.dll.so 0755 root bin 270228 43591 1225400547 1 f none $PKGINST/lib/wine/shell.dll16 0644 root bin 12 1009 1225400550 1 f none $PKGINST/lib/wine/shell32.dll.so 0755 root bin 1123232 55321 1225400547 1 f none $PKGINST/lib/wine/shfolder.dll.so 0755 root bin 75300 56341 1225400547 1 f none $PKGINST/lib/wine/shlwapi.dll.so 0755 root bin 359248 24498 1225400547 1 f none $PKGINST/lib/wine/slbcsp.dll.so 0755 root bin 76996 21152 1225400547 1 f none $PKGINST/lib/wine/slc.dll.so 0755 root bin 79008 56015 1225400547 1 f none $PKGINST/lib/wine/snmpapi.dll.so 0755 root bin 86604 57484 1225400547 1 f none $PKGINST/lib/wine/softpub.dll.so 0755 root bin 76252 41498 1225400547 1 f none $PKGINST/lib/wine/sound.drv16 0644 root bin 10 924 1225400550 1 f none $PKGINST/lib/wine/spoolss.dll.so 0755 root bin 93412 52970 1225400547 1 f none $PKGINST/lib/wine/spoolsv.exe.so 0755 root bin 75316 64925 1225400552 1 f none $PKGINST/lib/wine/start.exe.so 0755 root bin 131668 36548 1225400552 1 f none $PKGINST/lib/wine/stdole2.tlb.so 0755 root bin 90116 38798 1225400547 1 f none $PKGINST/lib/wine/stdole32.tlb.so 0755 root bin 79520 11542 1225400547 1 f none $PKGINST/lib/wine/sti.dll.so 0755 root bin 75108 18484 1225400547 1 f none $PKGINST/lib/wine/storage.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/stress.dll16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/svchost.exe.so 0755 root bin 78716 12642 1225400552 1 f none $PKGINST/lib/wine/svrapi.dll.so 0755 root bin 76416 47833 1225400547 1 f none $PKGINST/lib/wine/sxs.dll.so 0755 root bin 74524 42220 1225400547 1 f none $PKGINST/lib/wine/system.drv16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/tapi32.dll.so 0755 root bin 111572 25814 1225400547 1 f none $PKGINST/lib/wine/taskmgr.exe.so 0755 root bin 335612 47717 1225400552 1 f none $PKGINST/lib/wine/toolhelp.dll16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/twain.dll16 0644 root bin 13 1115 1225400550 1 f none $PKGINST/lib/wine/twain_32.dll.so 0755 root bin 82332 60266 1225400547 1 f none $PKGINST/lib/wine/typelib.dll16 0644 root bin 13 1123 1225400550 1 f none $PKGINST/lib/wine/unicows.dll.so 0755 root bin 129080 50681 1225400547 1 f none $PKGINST/lib/wine/uninstaller.exe.so 0755 root bin 88060 35810 1225400552 1 f none $PKGINST/lib/wine/url.dll.so 0755 root bin 77500 13361 1225400547 1 f none $PKGINST/lib/wine/urlmon.dll.so 0755 root bin 267928 30363 1225400547 1 f none $PKGINST/lib/wine/user.exe16 0644 root bin 11 920 1225400550 1 f none $PKGINST/lib/wine/user32.dll.so 0755 root bin 988060 61363 1225400548 1 f none $PKGINST/lib/wine/userenv.dll.so 0755 root bin 78320 39419 1225400548 1 f none $PKGINST/lib/wine/usp10.dll.so 0755 root bin 93532 60579 1225400548 1 f none $PKGINST/lib/wine/uxtheme.dll.so 0755 root bin 196980 52520 1225400548 1 f none $PKGINST/lib/wine/vdhcp.vxd.so 0755 root bin 74684 51291 1225400548 1 f none $PKGINST/lib/wine/vdmdbg.dll.so 0755 root bin 76564 60069 1225400548 1 f none $PKGINST/lib/wine/ver.dll16 0644 root bin 12 1146 1225400550 1 f none $PKGINST/lib/wine/version.dll.so 0755 root bin 99148 10330 1225400548 1 f none $PKGINST/lib/wine/vmm.vxd.so 0755 root bin 79280 44406 1225400548 1 f none $PKGINST/lib/wine/vnbt.vxd.so 0755 root bin 75964 50130 1225400548 1 f none $PKGINST/lib/wine/vnetbios.vxd.so 0755 root bin 74704 52378 1225400548 1 f none $PKGINST/lib/wine/vtdapi.vxd.so 0755 root bin 74672 50959 1225400548 1 f none $PKGINST/lib/wine/vwin32.vxd.so 0755 root bin 76580 21620 1225400548 1 f none $PKGINST/lib/wine/w32skrnl.dll.so 0755 root bin 99316 7573 1225400548 1 f none $PKGINST/lib/wine/w32sys.dll16 0644 root bin 13 1146 1225400550 1 f none $PKGINST/lib/wine/win32s16.dll16 0644 root bin 13 1146 1225400550 1 f none $PKGINST/lib/wine/win87em.dll16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/winaspi.dll16 0644 root bin 13 1131 1225400550 1 f none $PKGINST/lib/wine/windebug.dll16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/winealsa.drv.so 0755 root bin 76428 54011 1225400548 1 f none $PKGINST/lib/wine/wineaudioio.drv.so 0755 root bin 75064 16850 1225400548 1 f none $PKGINST/lib/wine/wineboot.exe.so 0755 root bin 99164 35361 1225400553 1 f none $PKGINST/lib/wine/winebrowser.exe.so 0755 root bin 81316 16376 1225400553 1 f none $PKGINST/lib/wine/winecfg.exe.so 0755 root bin 503556 10946 1225400553 1 f none $PKGINST/lib/wine/wineconsole.exe.so 0755 root bin 208980 23792 1225400553 1 f none $PKGINST/lib/wine/winecoreaudio.drv.so 0755 root bin 76600 14421 1225400548 1 f none $PKGINST/lib/wine/wined3d.dll.so 0755 root bin 1020032 43030 1225400548 1 f none $PKGINST/lib/wine/winedbg.exe.so 0755 root bin 265416 34517 1225400553 1 f none $PKGINST/lib/wine/winedevice.exe.so 0755 root bin 79508 61357 1225400553 1 f none $PKGINST/lib/wine/winedos.dll.so 0755 root bin 279316 18622 1225400548 1 f none $PKGINST/lib/wine/wineesd.drv.so 0755 root bin 97680 434 1225400548 1 f none $PKGINST/lib/wine/winejack.drv.so 0755 root bin 75572 60180 1225400548 1 f none $PKGINST/lib/wine/winejoystick.drv.so 0755 root bin 74720 63810 1225400548 1 f none $PKGINST/lib/wine/winemenubuilder.exe.so 0755 root bin 142092 24376 1225400553 1 f none $PKGINST/lib/wine/winemp3.acm.so 0755 root bin 125908 63453 1225400548 1 f none $PKGINST/lib/wine/winenas.drv.so 0755 root bin 74868 62628 1225400548 1 f none $PKGINST/lib/wine/wineoss.drv.so 0755 root bin 242564 4644 1225400549 1 f none $PKGINST/lib/wine/winepath.exe.so 0755 root bin 78240 56148 1225400553 1 f none $PKGINST/lib/wine/wineps.drv.so 0755 root bin 459948 11556 1225400549 1 f none $PKGINST/lib/wine/wineps16.drv16 0644 root bin 11 1050 1225400550 1 f none $PKGINST/lib/wine/winevdm.exe.so 0755 root bin 80952 43310 1225400553 1 f none $PKGINST/lib/wine/winewrapper.exe.so 0755 root bin 204340 35372 1225400556 1 f none $PKGINST/lib/wine/winex11.drv.so 0755 root bin 581172 33642 1225400549 1 f none $PKGINST/lib/wine/wing.dll16 0644 root bin 10 781 1225400550 1 f none $PKGINST/lib/wine/wing32.dll.so 0755 root bin 76304 37865 1225400549 1 f none $PKGINST/lib/wine/winhelp.exe16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/winhlp32.exe.so 0755 root bin 220372 25441 1225400553 1 f none $PKGINST/lib/wine/winhttp.dll.so 0755 root bin 128896 56142 1225400549 1 f none $PKGINST/lib/wine/wininet.dll.so 0755 root bin 290120 60069 1225400549 1 f none $PKGINST/lib/wine/winmm.dll.so 0755 root bin 562176 64615 1225400549 1 f none $PKGINST/lib/wine/winnls.dll16 0644 root bin 13 1140 1225400550 1 f none $PKGINST/lib/wine/winnls32.dll.so 0755 root bin 78668 49331 1225400549 1 f none $PKGINST/lib/wine/winoldap.mod16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/winscard.dll.so 0755 root bin 82832 43446 1225400549 1 f none $PKGINST/lib/wine/winsock.dll16 0644 root bin 11 852 1225400550 1 f none $PKGINST/lib/wine/winspool.drv.so 0755 root bin 193904 39090 1225400549 1 f none $PKGINST/lib/wine/wintab.dll16 0644 root bin 13 1118 1225400550 1 f none $PKGINST/lib/wine/wintab32.dll.so 0755 root bin 120112 2610 1225400550 1 f none $PKGINST/lib/wine/wintrust.dll.so 0755 root bin 158324 17597 1225400550 1 f none $PKGINST/lib/wine/wldap32.dll.so 0755 root bin 142236 25153 1225400550 1 f none $PKGINST/lib/wine/wmi.dll.so 0755 root bin 77404 38173 1225400550 1 f none $PKGINST/lib/wine/wnaspi32.dll.so 0755 root bin 80064 48898 1225400550 1 f none $PKGINST/lib/wine/wordpad.exe.so 0755 root bin 217492 53496 1225400553 1 f none $PKGINST/lib/wine/wow32.dll.so 0755 root bin 77076 12307 1225400550 1 f none $PKGINST/lib/wine/wprocs.dll16 0644 root bin 12 1133 1225400550 1 f none $PKGINST/lib/wine/write.exe.so 0755 root bin 76440 18229 1225400553 1 f none $PKGINST/lib/wine/ws2_32.dll.so 0755 root bin 164796 6248 1225400550 1 f none $PKGINST/lib/wine/wscript.exe.so 0755 root bin 75884 654 1225400556 1 f none $PKGINST/lib/wine/wsock32.dll.so 0755 root bin 100184 53918 1225400550 1 f none $PKGINST/lib/wine/wtsapi32.dll.so 0755 root bin 80352 55031 1225400550 1 f none $PKGINST/lib/wine/xcopy.exe.so 0755 root bin 127300 31549 1225400553 1 f none $PKGINST/license.txt 0644 root bin 39056 36770 1225400534 1 d none $PKGINST/share 0755 root bin 1 d none $PKGINST/share/crossover 0755 root bin 1 d none $PKGINST/share/crossover/bottle_data 0755 root bin 1 f none $PKGINST/share/crossover/bottle_data/MozAxPlugin.class 0644 root bin 1508 16133 1225400554 1 f none $PKGINST/share/crossover/bottle_data/crossover.inf 0644 root bin 24121 15221 1225400554 1 f none $PKGINST/share/crossover/bottle_data/cxbottle.conf 0644 root bin 21238 29094 1225400554 1 f none $PKGINST/share/crossover/bottle_data/l_intl.nls 0644 root bin 5990 54797 1225400554 1 s none $PKGINST/share/crossover/bottle_data/launchurl.exe=../../../bin/launchurl 1 f none $PKGINST/share/crossover/bottle_data/msvcp60.dll 0644 root bin 401462 19318 1225400554 1 f none $PKGINST/share/crossover/bottle_data/netscape.exe 0644 root bin 28672 22526 1225400554 1 f none $PKGINST/share/crossover/bottle_data/npmozax.dll 0644 root bin 163840 65255 1225400554 1 f none $PKGINST/share/crossover/bottle_data/nsIMozAxPlugin.xpt 0644 root bin 343 19939 1225400554 1 f none $PKGINST/share/crossover/bottle_data/nspr4.dll 0644 root bin 155741 34395 1225400554 1 f none $PKGINST/share/crossover/bottle_data/plc4.dll 0644 root bin 29792 28137 1225400554 1 f none $PKGINST/share/crossover/bottle_data/stdole2.tlb 0644 root bin 24576 9772 1225400556 1 f none $PKGINST/share/crossover/bottle_data/stdole32.tlb 0644 root bin 16384 47213 1225400556 1 d none $PKGINST/share/crossover/bottle_templates 0755 root bin 1 d none $PKGINST/share/crossover/bottle_templates/win2000 0755 root bin 1 f none $PKGINST/share/crossover/bottle_templates/win2000/CXBT_win2000.pm 0644 root bin 25492 60025 1225400554 1 f none $PKGINST/share/crossover/bottle_templates/win2000/setup 0755 root bin 3415 59024 1225400554 1 d none $PKGINST/share/crossover/bottle_templates/win98 0755 root bin 1 f none $PKGINST/share/crossover/bottle_templates/win98/CXBT_win98.pm 0644 root bin 25486 59782 1225400554 1 f none $PKGINST/share/crossover/bottle_templates/win98/setup 0755 root bin 3405 58619 1225400554 1 d none $PKGINST/share/crossover/bottle_templates/winvista 0755 root bin 1 f none $PKGINST/share/crossover/bottle_templates/winvista/CXBT_winvista.pm 0644 root bin 25492 60762 1225400554 1 f none $PKGINST/share/crossover/bottle_templates/winvista/setup 0755 root bin 3420 60809 1225400554 1 d none $PKGINST/share/crossover/bottle_templates/winxp 0755 root bin 1 f none $PKGINST/share/crossover/bottle_templates/winxp/CXBT_winxp.pm 0644 root bin 25486 60139 1225400554 1 f none $PKGINST/share/crossover/bottle_templates/winxp/setup 0755 root bin 3405 59214 1225400554 1 d none $PKGINST/share/crossover/cxbottle 0755 root bin 1 f none $PKGINST/share/crossover/cxbottle/deb.build 0755 root bin 223 19762 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.changelog 0644 root bin 124 10627 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.compat 0644 root bin 2 62 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.control 0644 root bin 289 25705 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.copyright 0644 root bin 129 12272 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.postinst 0644 root bin 742 53459 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.postrm 0644 root bin 471 34009 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.preinst 0644 root bin 1171 19945 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.prerm 0644 root bin 613 46177 1225400556 1 f none $PKGINST/share/crossover/cxbottle/rpm.spec 0644 root bin 5056 12361 1225400556 1 f none $PKGINST/share/crossover/cxbottle/sunpkg.checkinstall 0644 root bin 1213 26645 1225400556 1 f none $PKGINST/share/crossover/cxbottle/sunpkg.pkginfo 0644 root bin 398 33245 1225400556 1 f none $PKGINST/share/crossover/cxbottle/sunpkg.postinstall 0644 root bin 818 60786 1225400556 1 f none $PKGINST/share/crossover/cxbottle/sunpkg.postremove 0644 root bin 448 32991 1225400556 1 f none $PKGINST/share/crossover/cxbottle/sunpkg.preremove 0644 root bin 797 64101 1225400556 1 d none $PKGINST/share/crossover/cxrepackage 0755 root bin 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.checkinstall 0644 root bin 808 60784 1225400534 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.compver 0644 root bin 14 1260 1225400534 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.copyright 0644 root bin 44 3258 1225400534 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.depend 0644 root bin 92 7596 1225400534 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.pkginfo 0644 root bin 301 25289 1225400534 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.postinstall 0644 root bin 4079 52317 1225400534 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.preremove 0644 root bin 3094 31395 1225400534 1 d none $PKGINST/share/crossover/data 0755 root bin 1 f none $PKGINST/share/crossover/data/crossover.assoc 0644 root bin 273 21148 1225400534 1 f none $PKGINST/share/crossover/data/crossover.menu 0644 root bin 1358 38448 1225400534 1 f none $PKGINST/share/crossover/data/cxoffice.conf 0644 root bin 15148 15726 1225400534 1 d none $PKGINST/share/icons 0755 root bin 1 f none $PKGINST/share/icons/crossover.xpm 0644 root bin 9210 6901 1225400534 1 f none $PKGINST/share/icons/cxbottle.xpm 0644 root bin 2791 47138 1225400555 1 f none $PKGINST/share/icons/cxdoc.xpm 0644 root bin 10523 36044 1225400534 1 f none $PKGINST/share/icons/cxmenu.xpm 0644 root bin 9820 1588 1225400534 1 f none $PKGINST/share/icons/cxreboot.ico 0644 root bin 3774 18802 1225400555 1 f none $PKGINST/share/icons/cxreboot.xpm 0644 root bin 9807 16915 1225400555 1 f none $PKGINST/share/icons/cxregister.xpm 0644 root bin 10550 20943 1225400535 1 f none $PKGINST/share/icons/cxreset.xpm 0644 root bin 8624 39538 1225400535 1 f none $PKGINST/share/icons/cxrun.xpm 0644 root bin 8837 4289 1225400535 1 f none $PKGINST/share/icons/cxuninstall.xpm 0644 root bin 9399 32355 1225400534 1 f none $PKGINST/share/icons/winecfg.ico 0644 root bin 3774 57359 1225400534 1 f none $PKGINST/share/icons/winecfg.xpm 0644 root bin 9902 22215 1225400534 1 f none $PKGINST/share/icons/winetaskmgr.ico 0644 root bin 3774 65472 1225400534 1 f none $PKGINST/share/icons/winetaskmgr.xpm 0644 root bin 10548 14364 1225400534 1 d none $PKGINST/share/locale 0755 root bin 1 d none $PKGINST/share/locale/de 0755 root bin 1 d none $PKGINST/share/locale/de/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/de/LC_MESSAGES/crossover.mo 0644 root bin 128333 10367 1225400534 1 d none $PKGINST/share/locale/fr 0755 root bin 1 d none $PKGINST/share/locale/fr/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/fr/LC_MESSAGES/crossover.mo 0644 root bin 127527 5118 1225400534 1 d none $PKGINST/share/locale/it 0755 root bin 1 d none $PKGINST/share/locale/it/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/it/LC_MESSAGES/crossover.mo 0644 root bin 111725 42980 1225400534 1 d none $PKGINST/share/locale/ja 0755 root bin 1 d none $PKGINST/share/locale/ja/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/ja/LC_MESSAGES/crossover.mo 0644 root bin 135578 25019 1225400534 1 d none $PKGINST/share/locale/pl 0755 root bin 1 d none $PKGINST/share/locale/pl/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/pl/LC_MESSAGES/crossover.mo 0644 root bin 87207 16116 1225400534 1 d none $PKGINST/share/locale/pt 0755 root bin 1 d none $PKGINST/share/locale/pt/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/pt/LC_MESSAGES/crossover.mo 0644 root bin 110603 40955 1225400534 1 d none $PKGINST/share/locale/pt_BR 0755 root bin 1 d none $PKGINST/share/locale/pt_BR/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/pt_BR/LC_MESSAGES/crossover.mo 0644 root bin 53785 36216 1225400534 1 d none $PKGINST/share/locale/ru 0755 root bin 1 d none $PKGINST/share/locale/ru/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/ru/LC_MESSAGES/crossover.mo 0644 root bin 144431 17366 1225400534 1 d none $PKGINST/share/locale/sk 0755 root bin 1 d none $PKGINST/share/locale/sk/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/sk/LC_MESSAGES/crossover.mo 0644 root bin 45716 14146 1225400534 1 d none $PKGINST/share/wine 0755 root bin 1 d none $PKGINST/share/wine/fonts 0755 root bin 1 f none $PKGINST/share/wine/fonts/Vera.ttf 0644 root bin 65932 3051 1225400554 1 f none $PKGINST/share/wine/fonts/VeraBI.ttf 0644 root bin 63208 42183 1225400554 1 f none $PKGINST/share/wine/fonts/VeraBd.ttf 0644 root bin 58716 39932 1225400554 1 f none $PKGINST/share/wine/fonts/VeraIt.ttf 0644 root bin 63684 64997 1225400554 1 f none $PKGINST/share/wine/fonts/VeraMoBI.ttf 0644 root bin 55032 18336 1225400554 1 f none $PKGINST/share/wine/fonts/VeraMoBd.ttf 0644 root bin 49052 25790 1225400554 1 f none $PKGINST/share/wine/fonts/VeraMoIt.ttf 0644 root bin 54508 36169 1225400554 1 f none $PKGINST/share/wine/fonts/VeraMono.ttf 0644 root bin 49224 12578 1225400554 1 f none $PKGINST/share/wine/fonts/VeraSe.ttf 0644 root bin 60280 28072 1225400554 1 f none $PKGINST/share/wine/fonts/VeraSeBd.ttf 0644 root bin 58736 14184 1225400554 1 f none $PKGINST/share/wine/fonts/coue1255.fon 0644 root bin 4912 32059 1225400550 1 f none $PKGINST/share/wine/fonts/coue1256.fon 0644 root bin 4912 33746 1225400550 1 f none $PKGINST/share/wine/fonts/coue1257.fon 0644 root bin 4912 49458 1225400550 1 f none $PKGINST/share/wine/fonts/coure.fon 0644 root bin 4912 57618 1225400550 1 f none $PKGINST/share/wine/fonts/couree.fon 0644 root bin 4912 58887 1225400550 1 f none $PKGINST/share/wine/fonts/coureg.fon 0644 root bin 4912 28665 1225400550 1 f none $PKGINST/share/wine/fonts/courer.fon 0644 root bin 4912 57321 1225400550 1 f none $PKGINST/share/wine/fonts/couret.fon 0644 root bin 4912 56558 1225400550 1 f none $PKGINST/share/wine/fonts/cvgasys.fon 0644 root bin 12704 63683 1225400550 1 f none $PKGINST/share/wine/fonts/hvgasys.fon 0644 root bin 6512 4811 1225400550 1 f none $PKGINST/share/wine/fonts/jsmalle.fon 0644 root bin 4496 51634 1225400550 1 f none $PKGINST/share/wine/fonts/jvgasys.fon 0644 root bin 7360 2309 1225400550 1 f none $PKGINST/share/wine/fonts/marlett.ttf 0644 root bin 6136 2469 1225400551 1 f none $PKGINST/share/wine/fonts/smae1255.fon 0644 root bin 4512 53783 1225400550 1 f none $PKGINST/share/wine/fonts/smae1256.fon 0644 root bin 4512 52604 1225400550 1 f none $PKGINST/share/wine/fonts/smae1257.fon 0644 root bin 4512 12711 1225400550 1 f none $PKGINST/share/wine/fonts/smalle.fon 0644 root bin 4512 11548 1225400550 1 f none $PKGINST/share/wine/fonts/smallee.fon 0644 root bin 4496 12120 1225400550 1 f none $PKGINST/share/wine/fonts/smalleg.fon 0644 root bin 4512 45769 1225400550 1 f none $PKGINST/share/wine/fonts/smaller.fon 0644 root bin 4544 12182 1225400550 1 f none $PKGINST/share/wine/fonts/smallet.fon 0644 root bin 4512 11535 1225400550 1 f none $PKGINST/share/wine/fonts/ssee1255.fon 0644 root bin 18832 35189 1225400550 1 f none $PKGINST/share/wine/fonts/ssee1256.fon 0644 root bin 18800 22072 1225400550 1 f none $PKGINST/share/wine/fonts/ssee1257.fon 0644 root bin 19696 38413 1225400550 1 f none $PKGINST/share/wine/fonts/ssee874.fon 0644 root bin 18208 47052 1225400550 1 f none $PKGINST/share/wine/fonts/sserife.fon 0644 root bin 20144 49907 1225400550 1 f none $PKGINST/share/wine/fonts/sserifee.fon 0644 root bin 11248 28295 1225400550 1 f none $PKGINST/share/wine/fonts/sserifeg.fon 0644 root bin 18480 12696 1225400550 1 f none $PKGINST/share/wine/fonts/sserifer.fon 0644 root bin 20448 13973 1225400550 1 f none $PKGINST/share/wine/fonts/sserifet.fon 0644 root bin 20064 51851 1225400550 1 f none $PKGINST/share/wine/fonts/svgasys.fon 0644 root bin 12704 63679 1225400550 1 f none $PKGINST/share/wine/fonts/tahoma.ttf 0644 root bin 85444 4069 1225400551 1 f none $PKGINST/share/wine/fonts/tahomabd.ttf 0644 root bin 75600 921 1225400551 1 f none $PKGINST/share/wine/fonts/ume-ui-gothic.ttf 0644 root bin 4615092 21965 1225400554 1 f none $PKGINST/share/wine/fonts/vgas1255.fon 0644 root bin 6512 53798 1225400551 1 f none $PKGINST/share/wine/fonts/vgas1256.fon 0644 root bin 6128 63367 1225400551 1 f none $PKGINST/share/wine/fonts/vgas1257.fon 0644 root bin 6480 45000 1225400551 1 f none $PKGINST/share/wine/fonts/vgas874.fon 0644 root bin 6000 37241 1225400551 1 f none $PKGINST/share/wine/fonts/vgasys.fon 0644 root bin 6512 4250 1225400550 1 f none $PKGINST/share/wine/fonts/vgasyse.fon 0644 root bin 6608 1845 1225400550 1 f none $PKGINST/share/wine/fonts/vgasysg.fon 0644 root bin 6576 1960 1225400550 1 f none $PKGINST/share/wine/fonts/vgasysr.fon 0644 root bin 6736 65086 1225400550 1 f none $PKGINST/share/wine/fonts/vgasyst.fon 0644 root bin 6480 2694 1225400551 1 f none $PKGINST/share/wine/fonts/wineding.ttf 0644 root bin 2608 64301 1225400554 1 f none $PKGINST/share/wine/generic.ppd 0644 root bin 7729 38709 1225400549 1 f none $PKGINST/share/wine/wine.inf 0644 root bin 218017 53646 1225400553 1 i checkinstall 808 60784 1225400557 1 i compver 10 902 1225397142 1 i copyright 44 3258 1225400557 1 i depend 92 7596 1225400557 1 i pkginfo 285 23697 1225400558 1 i postinstall 4067 51243 1225397142 1 i preremove 3090 31037 1225397143 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!07070100082d02000081a400000067000001f400000001490a20ee0000011d000000660000000700000000000000000000000800000000pkginfoPKG=crossover NAME=CrossOver Solaris Professional ARCH=intel VERSION=7.1.1 CATEGORY=application DESC=Run Windows applications like MS Office VENDOR=CodeWeavers, Inc. EMAIL=Solaris Packager CLASSES=none PSTAMP=August 15, 2008 BASEDIR=/opt MAXINST=1000 CX_OLDVER= 07070100082d01000081a400000067000001f400000001490a20ee00010413000000660000000700000000000000000000000700000000pkgmap: 1 171732 1 d none $PKGINST 0755 root bin 1 f none $PKGINST/README 0644 root bin 5210 45971 1225400534 1 d none $PKGINST/bin 0755 root bin 1 s none $PKGINST/bin/autorun=wine 1 s none $PKGINST/bin/bottlesetup=cxtcl 1 f none $PKGINST/bin/cxassoc 0755 root bin 49296 14746 1225400534 1 f none $PKGINST/bin/cxavscan 0755 root bin 6498 7116 1225400535 1 f none $PKGINST/bin/cxbottle 0755 root bin 45544 60112 1225400556 1 s none $PKGINST/bin/cxbottlemanager=cxtcl 1 f none $PKGINST/bin/cxburner 0755 root bin 8196 26836 1225400534 1 f none $PKGINST/bin/cxgetsysinfo 0755 root bin 5408 59025 1225400535 1 f none $PKGINST/bin/cxgettext 0755 root bin 7236 56893 1225400534 1 f none $PKGINST/bin/cxglcheck 0755 root bin 8160 7545 1225400534 1 s none $PKGINST/bin/cxinstallwizard=cxtcl 1 f none $PKGINST/bin/cxlogfilter 0755 root bin 7228 58654 1225400535 1 f none $PKGINST/bin/cxmenu 0755 root bin 41070 16653 1225400534 1 s none $PKGINST/bin/cxmessage=cxtcl 1 f none $PKGINST/bin/cxnativeopen 0755 root bin 10026 1902 1225400535 1 f none $PKGINST/bin/cxnsplugin 0755 root bin 32256 19445 1225400535 1 f none $PKGINST/bin/cxntlm_auth 0755 root bin 896816 23245 1225400530 1 f none $PKGINST/bin/cxreboot 0755 root bin 4613 9813 1225400555 1 f none $PKGINST/bin/cxrepackage 0755 root bin 20318 44861 1225400534 1 s none $PKGINST/bin/cxreset=cxtcl 1 s none $PKGINST/bin/cxrun=cxtcl 1 s none $PKGINST/bin/cxsetup=cxtcl 1 s none $PKGINST/bin/cxstart=wine 1 f none $PKGINST/bin/cxsu 0755 root bin 5809 31925 1225400535 1 f none $PKGINST/bin/cxtcl 0755 root bin 43740 30807 1225400534 1 f none $PKGINST/bin/cxtemplate 0755 root bin 5404 5518 1225400556 1 f none $PKGINST/bin/cxuninstall 0755 root bin 9884 13560 1225400534 1 f none $PKGINST/bin/cxwinassoc 0755 root bin 7135 10759 1225400556 1 f none $PKGINST/bin/detectcd 0755 root bin 10741 60813 1225400535 1 f none $PKGINST/bin/launchurl 0755 root bin 6211 2762 1225400535 1 f none $PKGINST/bin/locate_gui.sh 0755 root bin 32429 1894 1225400535 1 s none $PKGINST/bin/officesetup=cxtcl 1 s none $PKGINST/bin/regedit=wine 1 s none $PKGINST/bin/regsvr32=wine 1 f none $PKGINST/bin/unhide_fstab 0755 root bin 12165 34119 1225400535 1 f none $PKGINST/bin/updatekonqplugins 0755 root bin 436 33659 1225400535 1 f none $PKGINST/bin/wine 0755 root bin 35439 10549 1225400555 1 f none $PKGINST/bin/wineloader 0755 root bin 7128 36022 1225400552 1 f none $PKGINST/bin/wineprefixcreate 0755 root bin 11983 6550 1225400556 1 f none $PKGINST/bin/wineserver 0755 root bin 289580 58071 1225400553 1 f none $PKGINST/bin/wineshelllink 0755 root bin 3983 39713 1225400534 1 f none $PKGINST/changelog.txt 0644 root bin 44647 12258 1225400534 1 d none $PKGINST/doc 0755 root bin 1 d none $PKGINST/doc/en 0755 root bin 1 d none $PKGINST/doc/en/html 0755 root bin 1 f none $PKGINST/doc/en/html/addremove.html 0644 root bin 7574 4971 1225400533 1 f none $PKGINST/doc/en/html/advanced-config.html 0644 root bin 12842 61584 1225400533 1 f none $PKGINST/doc/en/html/bottlehooks.html 0644 root bin 9026 39929 1225400533 1 f none $PKGINST/doc/en/html/bottlesetup.html 0644 root bin 13861 38306 1225400533 1 f none $PKGINST/doc/en/html/configuration-advanced.html 0644 root bin 7266 42661 1225400533 1 f none $PKGINST/doc/en/html/controlpanel.html 0644 root bin 5369 24760 1225400533 1 f none $PKGINST/doc/en/html/cxbottlepath.html 0644 root bin 4868 5043 1225400533 1 f none $PKGINST/doc/en/html/def-bottle.html 0644 root bin 3276 55505 1225400533 1 f none $PKGINST/doc/en/html/definitions.html 0644 root bin 3473 2739 1225400533 1 f none $PKGINST/doc/en/html/driveconfig.html 0644 root bin 4514 36985 1225400533 1 f none $PKGINST/doc/en/html/faq.html 0644 root bin 344990 48761 1225400533 1 f none $PKGINST/doc/en/html/fixedfaq.html 0644 root bin 23174 41340 1225400533 1 d none $PKGINST/doc/en/html/images 0755 root bin 1 s none $PKGINST/doc/en/html/images.common=../../images.common 1 d none $PKGINST/doc/en/html/images.multiuser 0755 root bin 1 f none $PKGINST/doc/en/html/images.multiuser/privatemu.png 0644 root bin 27550 29561 1225400533 1 f none $PKGINST/doc/en/html/images.multiuser/setup-managebottlesmu.png 0644 root bin 32070 44177 1225400533 1 f none $PKGINST/doc/en/html/images.multiuser/shareddrive.png 0644 root bin 64986 49508 1225400533 1 d none $PKGINST/doc/en/html/images.office 0755 root bin 1 f none $PKGINST/doc/en/html/images.office/cxregistermenu.png 0644 root bin 31995 31817 1225400533 1 f none $PKGINST/doc/en/html/images.office/demonag.png 0644 root bin 39854 2166 1225400533 1 f none $PKGINST/doc/en/html/images.office/demoregister.png 0644 root bin 35270 49937 1225400533 1 f none $PKGINST/doc/en/html/images.office/demoregistered.png 0644 root bin 54461 64143 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-cxregistermenu.png 0644 root bin 37962 32679 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-demonag.png 0644 root bin 28336 24989 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-demoregister.png 0644 root bin 8179 2898 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-demoregistered.png 0644 root bin 14951 37982 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-installwizard-advanced.png 0644 root bin 26665 55031 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-installwizard-bottle.png 0644 root bin 26851 63361 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-installwizard-cd.png 0644 root bin 25739 16031 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-installwizard-choose.png 0644 root bin 27759 61722 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-installwizard-download.png 0644 root bin 24866 18171 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-installwizard-finished.png 0644 root bin 24299 61716 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-loki-installer.png 0644 root bin 98494 52888 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-setup-addremove.png 0644 root bin 12076 869 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-setup-advanced.png 0644 root bin 5830 56954 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-setup-bottledefaults.png 0644 root bin 10191 5671 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-setup-menus.png 0644 root bin 22300 33201 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-setupkdemenu.png 0644 root bin 37361 5985 1225400533 1 f none $PKGINST/doc/en/html/images.office/games-usekdemenu.png 0644 root bin 34159 62308 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-advanced.png 0644 root bin 32517 20632 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-assoc.png 0644 root bin 57933 63214 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-bottle.png 0644 root bin 63939 29998 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-cd.png 0644 root bin 74583 20523 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-choose.png 0644 root bin 68155 3500 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-choosefont.png 0644 root bin 60377 57703 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-download.png 0644 root bin 71117 6477 1225400533 1 f none $PKGINST/doc/en/html/images.office/installwizard-finished.png 0644 root bin 63938 40648 1225400533 1 f none $PKGINST/doc/en/html/images.office/loki-installer.png 0644 root bin 64840 18756 1225400533 1 f none $PKGINST/doc/en/html/images.office/run.png 0644 root bin 9139 53021 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-addremove.png 0644 root bin 32801 36897 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-advanced.png 0644 root bin 17290 53031 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-associations.png 0644 root bin 19957 33840 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-bottledefaults.png 0644 root bin 15828 36113 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-bottlesettings.png 0644 root bin 14751 27369 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-confadvanced.png 0644 root bin 10686 58690 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-configuration.png 0644 root bin 58864 17467 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-controlpanel.png 0644 root bin 27243 64785 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-createbottle.png 0644 root bin 13677 22154 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-fonts.png 0644 root bin 16092 39760 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-managebottles.png 0644 root bin 8114 8429 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-menus.png 0644 root bin 20863 49175 1225400533 1 f none $PKGINST/doc/en/html/images.office/setup-rpmbottle.png 0644 root bin 16419 19618 1225400533 1 f none $PKGINST/doc/en/html/images.office/setupkdemenu.png 0644 root bin 37722 21653 1225400533 1 f none $PKGINST/doc/en/html/images.office/useassoc.png 0644 root bin 37851 32400 1225400533 1 f none $PKGINST/doc/en/html/images.office/usecmdline.png 0644 root bin 24031 15956 1225400533 1 f none $PKGINST/doc/en/html/images.office/usecxapp.png 0644 root bin 24426 40694 1225400533 1 f none $PKGINST/doc/en/html/images.office/usecxreboot.png 0644 root bin 8939 4440 1225400533 1 f none $PKGINST/doc/en/html/images.office/usecxreset.png 0644 root bin 9593 39994 1225400533 1 f none $PKGINST/doc/en/html/images.office/usecxrun.png 0644 root bin 9719 42824 1225400533 1 f none $PKGINST/doc/en/html/images.office/usekdemenu.png 0644 root bin 18072 19145 1225400533 1 f none $PKGINST/doc/en/html/images.office/usemenutab.png 0644 root bin 38735 60751 1225400533 1 d none $PKGINST/doc/en/html/images.plug 0755 root bin 1 f none $PKGINST/doc/en/html/images.plug/setup-plugins.png 0644 root bin 15048 64506 1225400533 1 f none $PKGINST/doc/en/html/images/decompress-ppd.png 0644 root bin 5817 35595 1225400533 1 f none $PKGINST/doc/en/html/images/edit-psdrv-reg.png 0644 root bin 28023 24170 1225400533 1 f none $PKGINST/doc/en/html/images/print.png 0644 root bin 10534 25864 1225400533 1 f none $PKGINST/doc/en/html/images/supportsite.png 0644 root bin 119890 28776 1225400533 1 f none $PKGINST/doc/en/html/images/visio-autorun.png 0644 root bin 18916 32013 1225400533 1 f none $PKGINST/doc/en/html/index.html 0644 root bin 11526 44245 1225400533 1 f none $PKGINST/doc/en/html/install-windows.html 0644 root bin 22276 36059 1225400533 1 f none $PKGINST/doc/en/html/install.html 0644 root bin 9610 10098 1225400533 1 f none $PKGINST/doc/en/html/installedFiles.html 0644 root bin 8364 10076 1225400533 1 f none $PKGINST/doc/en/html/installingTTFonts.html 0644 root bin 6648 20033 1225400533 1 f none $PKGINST/doc/en/html/intro.html 0644 root bin 6926 254 1225400533 1 f none $PKGINST/doc/en/html/locategui.html 0644 root bin 3100 49021 1225400533 1 f none $PKGINST/doc/en/html/main.html 0644 root bin 1675 19566 1225400533 1 f none $PKGINST/doc/en/html/menu.html 0644 root bin 1556 45505 1225400533 1 f none $PKGINST/doc/en/html/officesetup.html 0644 root bin 18118 40640 1225400533 1 f none $PKGINST/doc/en/html/print-setup.html 0644 root bin 11390 53837 1225400533 1 f none $PKGINST/doc/en/html/setup-remove.html 0644 root bin 4132 64495 1225400533 1 f none $PKGINST/doc/en/html/terminate.html 0644 root bin 3781 31643 1225400533 1 f none $PKGINST/doc/en/html/top.html 0644 root bin 628 52558 1225400533 1 f none $PKGINST/doc/en/html/troubleshooting.html 0644 root bin 5202 6604 1225400533 1 f none $PKGINST/doc/en/html/userguide.css 0644 root bin 2111 40074 1225400533 1 f none $PKGINST/doc/en/html/usingcrossover.html 0644 root bin 16049 8632 1225400533 1 f none $PKGINST/doc/en/index.html 0644 root bin 854 4611 1225400533 1 d none $PKGINST/doc/images 0755 root bin 1 d none $PKGINST/doc/images.common 0755 root bin 1 f none $PKGINST/doc/images.common/blank.png 0644 root bin 159 10406 1225400533 1 f none $PKGINST/doc/images.common/blcurve.png 0644 root bin 163 12845 1225400533 1 f none $PKGINST/doc/images.common/codeweavers_logo.jpg 0644 root bin 3444 9858 1225400533 1 d none $PKGINST/doc/images.common/dbimages 0755 root bin 1 f none $PKGINST/doc/images.common/dbimages/1.png 0644 root bin 171 14683 1225400533 1 f none $PKGINST/doc/images.common/dbimages/10.png 0644 root bin 205 17901 1225400533 1 f none $PKGINST/doc/images.common/dbimages/2.png 0644 root bin 193 17525 1225400533 1 f none $PKGINST/doc/images.common/dbimages/3.png 0644 root bin 192 17344 1225400533 1 f none $PKGINST/doc/images.common/dbimages/4.png 0644 root bin 186 17498 1225400533 1 f none $PKGINST/doc/images.common/dbimages/5.png 0644 root bin 192 16758 1225400533 1 f none $PKGINST/doc/images.common/dbimages/6.png 0644 root bin 197 16667 1225400533 1 f none $PKGINST/doc/images.common/dbimages/7.png 0644 root bin 183 16072 1225400533 1 f none $PKGINST/doc/images.common/dbimages/8.png 0644 root bin 199 16684 1225400533 1 f none $PKGINST/doc/images.common/dbimages/9.png 0644 root bin 198 16469 1225400533 1 f none $PKGINST/doc/images.common/dbimages/caution.png 0644 root bin 1098 13101 1225400533 1 f none $PKGINST/doc/images.common/dbimages/important.png 0644 root bin 617 4465 1225400533 1 f none $PKGINST/doc/images.common/dbimages/note.png 0644 root bin 334 35988 1225400533 1 f none $PKGINST/doc/images.common/dbimages/tip.png 0644 root bin 296 30906 1225400533 1 f none $PKGINST/doc/images.common/dbimages/warning.png 0644 root bin 1090 5888 1225400533 1 f none $PKGINST/doc/images.common/tlcurve.png 0644 root bin 403 43048 1225400533 1 f none $PKGINST/doc/images.common/xover-logo-small.jpg 0644 root bin 2929 22364 1225400533 1 f none $PKGINST/doc/images.common/xover-logo.jpg 0644 root bin 41652 33260 1225400533 1 f none $PKGINST/doc/images/it.gif 0644 root bin 390 48715 1225400533 1 f none $PKGINST/doc/images/jp.gif 0644 root bin 1051 20455 1225400533 1 f none $PKGINST/doc/images/uk.gif 0644 root bin 2444 49578 1225400533 1 f none $PKGINST/doc/images/us.gif 0644 root bin 2101 63319 1225400533 1 f none $PKGINST/doc/index.html 0644 root bin 831 65431 1225400533 1 d none $PKGINST/etc 0755 root bin 1 d none $PKGINST/lib 0755 root bin 1 f none $PKGINST/lib/cxupgrade 0755 root bin 18458 22525 1225400534 1 s none $PKGINST/lib/libcxfreetype.so=libcxfreetype.so.6.3.7 1 s none $PKGINST/lib/libcxfreetype.so.6=libcxfreetype.so.6.3.7 1 f none $PKGINST/lib/libcxfreetype.so.6.3.7 0755 root bin 1386984 57054 1225400535 1 s none $PKGINST/lib/libwine.so.1=libwine.so.1.0 1 f none $PKGINST/lib/libwine.so.1.0 0755 root bin 1188992 10694 1225400552 1 s none $PKGINST/lib/libxml2.so=libxml2.so.2.6.19 1 s none $PKGINST/lib/libxml2.so.2=libxml2.so.2.6.19 1 f none $PKGINST/lib/libxml2.so.2.6.19 0755 root bin 2498536 3579 1225400531 1 s none $PKGINST/lib/libxslt.so=libxslt.so.1.1.14 1 s none $PKGINST/lib/libxslt.so.1=libxslt.so.1.1.14 1 f none $PKGINST/lib/libxslt.so.1.1.14 0755 root bin 611944 27566 1225400533 1 f none $PKGINST/lib/nsplugin-solaris.so 0755 root bin 77336 53883 1225400535 1 f none $PKGINST/lib/nsplugin-solaris64.so 0755 root bin 97328 26989 1225400535 1 d none $PKGINST/lib/perl 0755 root bin 1 f none $PKGINST/lib/perl/CXAssoc.pm 0644 root bin 17776 10790 1225400534 1 f none $PKGINST/lib/perl/CXAssocCDE.pm 0644 root bin 14324 35349 1225400534 1 f none $PKGINST/lib/perl/CXAssocCheck.pm 0644 root bin 3403 57667 1225400534 1 f none $PKGINST/lib/perl/CXAssocDebian.pm 0644 root bin 1540 49580 1225400534 1 f none $PKGINST/lib/perl/CXAssocGnome.pm 0644 root bin 30586 61985 1225400534 1 f none $PKGINST/lib/perl/CXAssocKDE.pm 0644 root bin 5698 40867 1225400534 1 f none $PKGINST/lib/perl/CXAssocKDEXDG.pm 0644 root bin 2388 52051 1225400534 1 f none $PKGINST/lib/perl/CXAssocMacOSX.pm 0644 root bin 18778 57709 1225400534 1 f none $PKGINST/lib/perl/CXAssocMailcap.pm 0644 root bin 2476 47619 1225400534 1 f none $PKGINST/lib/perl/CXAssocMandrake.pm 0644 root bin 7813 51522 1225400534 1 f none $PKGINST/lib/perl/CXAssocMcap.pm 0644 root bin 5156 55797 1225400534 1 f none $PKGINST/lib/perl/CXAssocWindows.pm 0644 root bin 1871 14224 1225400534 1 f none $PKGINST/lib/perl/CXAssocXDG.pm 0644 root bin 32763 52797 1225400534 1 f none $PKGINST/lib/perl/CXBottle.pm 0644 root bin 18899 20168 1225400535 1 f none $PKGINST/lib/perl/CXCDE.pm 0644 root bin 4898 58690 1225400535 1 f none $PKGINST/lib/perl/CXConfig.pm 0644 root bin 4227 22744 1225400535 1 f none $PKGINST/lib/perl/CXDebian.pm 0644 root bin 4387 32881 1225400535 1 f none $PKGINST/lib/perl/CXLog.pm 0644 root bin 3011 15687 1225400535 1 f none $PKGINST/lib/perl/CXMenu.pm 0644 root bin 13114 4535 1225400534 1 f none $PKGINST/lib/perl/CXMenuCDE.pm 0644 root bin 8853 40682 1225400534 1 f none $PKGINST/lib/perl/CXMenuCheck.pm 0644 root bin 1085 17258 1225400534 1 f none $PKGINST/lib/perl/CXMenuDebian.pm 0644 root bin 10620 49471 1225400534 1 f none $PKGINST/lib/perl/CXMenuDtop.pm 0644 root bin 801 57542 1225400534 1 f none $PKGINST/lib/perl/CXMenuGnome.pm 0644 root bin 1102 18443 1225400534 1 f none $PKGINST/lib/perl/CXMenuKDE.pm 0644 root bin 2605 1406 1225400534 1 f none $PKGINST/lib/perl/CXMenuKG.pm 0644 root bin 11754 45833 1225400534 1 f none $PKGINST/lib/perl/CXMenuMacOSX.pm 0644 root bin 11551 9462 1225400534 1 f none $PKGINST/lib/perl/CXMenuSUSE8.pm 0644 root bin 4038 27652 1225400534 1 f none $PKGINST/lib/perl/CXMenuShortcut.pm 0644 root bin 8096 35351 1225400534 1 f none $PKGINST/lib/perl/CXMenuVFDesktop.pm 0644 root bin 786 57644 1225400534 1 f none $PKGINST/lib/perl/CXMenuVFolder.pm 0644 root bin 39579 18566 1225400534 1 f none $PKGINST/lib/perl/CXMenuWindows.pm 0644 root bin 4812 36398 1225400534 1 f none $PKGINST/lib/perl/CXMenuXDG.pm 0644 root bin 23612 58745 1225400534 1 f none $PKGINST/lib/perl/CXMimeKDE.pm 0644 root bin 12022 2293 1225400534 1 f none $PKGINST/lib/perl/CXMimeMcap.pm 0644 root bin 24350 44831 1225400534 1 f none $PKGINST/lib/perl/CXOpts.pm 0644 root bin 4492 46391 1225400535 1 f none $PKGINST/lib/perl/CXPlist.pm 0644 root bin 1777 524 1225400535 1 f none $PKGINST/lib/perl/CXRPM.pm 0644 root bin 5683 65455 1225400535 1 f none $PKGINST/lib/perl/CXRWConfig.pm 0644 root bin 15741 6700 1225400535 1 f none $PKGINST/lib/perl/CXRecode.pm 0644 root bin 2731 382 1225400535 1 f none $PKGINST/lib/perl/CXReplicateDir.pm 0644 root bin 40210 33557 1225400556 1 f none $PKGINST/lib/perl/CXSunpkg.pm 0644 root bin 5205 36178 1225400535 1 f none $PKGINST/lib/perl/CXTinySAX.pm 0644 root bin 4188 3339 1225400535 1 f none $PKGINST/lib/perl/CXTinySAXBase.pm 0644 root bin 780 59739 1225400535 1 f none $PKGINST/lib/perl/CXTinySAXLog.pm 0644 root bin 1018 13140 1225400535 1 f none $PKGINST/lib/perl/CXTinySAXMultiplexer.pm 0644 root bin 1321 36776 1225400535 1 f none $PKGINST/lib/perl/CXUpgrade.pm 0644 root bin 16813 42296 1225400534 1 f none $PKGINST/lib/perl/CXUtils.pm 0644 root bin 29368 9570 1225400535 1 f none $PKGINST/lib/perl/CXXMLDOM.pm 0644 root bin 8978 11955 1225400535 1 d none $PKGINST/lib/perl/Parse 0755 root bin 1 d none $PKGINST/lib/perl/Parse/Win32Registry 0755 root bin 1 f none $PKGINST/lib/perl/Parse/Win32Registry.pm 0644 root bin 22356 19714 1225400535 1 f none $PKGINST/lib/perl/Parse/Win32Registry/Key.pm 0644 root bin 1813 4309 1225400535 1 f none $PKGINST/lib/perl/Parse/Win32Registry/Value.pm 0644 root bin 1936 4816 1225400535 1 d none $PKGINST/lib/perl/Parse/Win32Registry/Win95 0755 root bin 1 f none $PKGINST/lib/perl/Parse/Win32Registry/Win95/File.pm 0644 root bin 4926 37658 1225400535 1 f none $PKGINST/lib/perl/Parse/Win32Registry/Win95/Key.pm 0644 root bin 12547 46819 1225400535 1 f none $PKGINST/lib/perl/Parse/Win32Registry/Win95/Value.pm 0644 root bin 3599 4014 1225400535 1 d none $PKGINST/lib/perl/Parse/Win32Registry/WinNT 0755 root bin 1 f none $PKGINST/lib/perl/Parse/Win32Registry/WinNT/File.pm 0644 root bin 5679 6746 1225400535 1 f none $PKGINST/lib/perl/Parse/Win32Registry/WinNT/Key.pm 0644 root bin 12027 49837 1225400535 1 f none $PKGINST/lib/perl/Parse/Win32Registry/WinNT/Value.pm 0644 root bin 6127 49556 1225400535 1 d none $PKGINST/lib/perl/XML 0755 root bin 1 d none $PKGINST/lib/perl/XML/DOM 0755 root bin 1 f none $PKGINST/lib/perl/XML/DOM.pm 0644 root bin 107741 49449 1225400531 1 f none $PKGINST/lib/perl/XML/DOM/DOMException.pm 0644 root bin 1892 61015 1225400531 1 f none $PKGINST/lib/perl/XML/DOM/NamedNodeMap.pm 0644 root bin 5311 61422 1225400531 1 f none $PKGINST/lib/perl/XML/DOM/NodeList.pm 0644 root bin 695 44442 1225400531 1 d none $PKGINST/lib/perl/XML/Handler 0755 root bin 1 f none $PKGINST/lib/perl/XML/Handler/BuildDOM.pm 0644 root bin 7587 13094 1225400531 1 f none $PKGINST/lib/perl/XML/NamespaceSupport.pm 0644 root bin 20258 6467 1225400531 1 f none $PKGINST/lib/perl/XML/RegExp.pm 0644 root bin 6065 26642 1225400531 1 d none $PKGINST/lib/perl/XML/SAX 0755 root bin 1 f none $PKGINST/lib/perl/XML/SAX.pm 0644 root bin 9194 2160 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/Base.pm 0644 root bin 112756 45123 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/DocumentLocator.pm 0644 root bin 2473 61682 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/Exception.pm 0644 root bin 3021 43613 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/ParserFactory.pm 0644 root bin 6561 61713 1225400531 1 d none $PKGINST/lib/perl/XML/SAX/PurePerl 0755 root bin 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl.pm 0644 root bin 20995 61656 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/DTDDecls.pm 0644 root bin 15273 54755 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/DebugHandler.pm 0644 root bin 1879 24384 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/DocType.pm 0644 root bin 3964 26742 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/EncodingDetect.pm 0644 root bin 6117 47326 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Exception.pm 0644 root bin 1707 58290 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/NoUnicodeExt.pm 0644 root bin 628 36785 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Productions.pm 0644 root bin 6691 10869 1225400531 1 d none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader 0755 root bin 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader.pm 0644 root bin 6902 24954 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader/NoUnicodeExt.pm 0644 root bin 2911 2526 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader/Stream.pm 0644 root bin 1839 64767 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader/String.pm 0644 root bin 1369 31795 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader/URI.pm 0644 root bin 1462 36722 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/Reader/UnicodeExt.pm 0644 root bin 675 50202 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/UnicodeExt.pm 0644 root bin 369 26208 1225400531 1 f none $PKGINST/lib/perl/XML/SAX/PurePerl/XMLDecl.pm 0644 root bin 4289 65378 1225400531 1 d none $PKGINST/lib/tcl 0755 root bin 1 f none $PKGINST/lib/tcl/libTktable2.8.so 0755 root bin 124284 14634 1225400531 1 f none $PKGINST/lib/tcl/libimg1.2.so 0755 root bin 35364 51528 1225400531 1 f none $PKGINST/lib/tcl/libitcl3.1.so 0755 root bin 102480 35892 1225400531 1 f none $PKGINST/lib/tcl/libitk3.1.so 0755 root bin 40340 24287 1225400531 1 f none $PKGINST/lib/tcl/libtcl8.4.so 0755 root bin 661008 45105 1225400530 1 f none $PKGINST/lib/tcl/libtk8.4.so 0755 root bin 847076 6352 1225400531 1 f none $PKGINST/lib/tcl/tcllib.so 0755 root bin 4019952 10553 1225400534 1 d none $PKGINST/lib/wine 0755 root bin 1 f none $PKGINST/lib/wine/acledit.dll.so 0755 root bin 75440 52857 1225400537 1 f none $PKGINST/lib/wine/activeds.dll.so 0755 root bin 78140 3145 1225400537 1 f none $PKGINST/lib/wine/actxprxy.dll.so 0755 root bin 81440 18514 1225400537 1 f none $PKGINST/lib/wine/advapi32.dll.so 0755 root bin 302856 38567 1225400537 1 f none $PKGINST/lib/wine/advpack.dll.so 0755 root bin 112668 60827 1225400537 1 f none $PKGINST/lib/wine/amstream.dll.so 0755 root bin 152100 30059 1225400537 1 f none $PKGINST/lib/wine/appwiz.cpl.so 0755 root bin 101768 58058 1225400537 1 f none $PKGINST/lib/wine/assocscan.exe.so 0755 root bin 92028 35437 1225400553 1 f none $PKGINST/lib/wine/atl.dll.so 0755 root bin 158160 13089 1225400537 1 f none $PKGINST/lib/wine/autorun.exe.so 0755 root bin 75888 63431 1225400553 1 f none $PKGINST/lib/wine/avicap32.dll.so 0755 root bin 75820 22301 1225400537 1 f none $PKGINST/lib/wine/avifil32.dll.so 0755 root bin 254940 56880 1225400537 1 f none $PKGINST/lib/wine/avifile.dll16 0644 root bin 13 1108 1225400550 1 f none $PKGINST/lib/wine/browseui.dll.so 0755 root bin 139236 8383 1225400537 1 f none $PKGINST/lib/wine/cabinet.dll.so 0755 root bin 124552 19215 1225400537 1 f none $PKGINST/lib/wine/capi2032.dll.so 0755 root bin 77048 50338 1225400537 1 f none $PKGINST/lib/wine/cards.dll.so 0755 root bin 327404 3692 1225400537 1 f none $PKGINST/lib/wine/cfgmgr32.dll.so 0755 root bin 93848 26998 1225400537 1 f none $PKGINST/lib/wine/clusapi.dll.so 0755 root bin 86836 26887 1225400537 1 f none $PKGINST/lib/wine/cmd.exe.so 0755 root bin 410572 468 1225400552 1 f none $PKGINST/lib/wine/comcat.dll.so 0755 root bin 75568 5718 1225400537 1 f none $PKGINST/lib/wine/comctl32.dll.so 0755 root bin 697120 17001 1225400538 1 f none $PKGINST/lib/wine/comdlg32.dll.so 0755 root bin 698288 34158 1225400538 1 f none $PKGINST/lib/wine/comm.drv16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/commdlg.dll16 0644 root bin 13 1103 1225400550 1 f none $PKGINST/lib/wine/compobj.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/compstui.dll.so 0755 root bin 75308 43456 1225400538 1 f none $PKGINST/lib/wine/control.exe.so 0755 root bin 75672 62750 1225400552 1 f none $PKGINST/lib/wine/credui.dll.so 0755 root bin 177604 38588 1225400538 1 f none $PKGINST/lib/wine/crtdll.dll.so 0755 root bin 102104 53310 1225400538 1 f none $PKGINST/lib/wine/crypt32.dll.so 0755 root bin 412388 59103 1225400538 1 f none $PKGINST/lib/wine/cryptdlg.dll.so 0755 root bin 82788 32876 1225400538 1 f none $PKGINST/lib/wine/cryptdll.dll.so 0755 root bin 75804 6267 1225400538 1 f none $PKGINST/lib/wine/cryptnet.dll.so 0755 root bin 92844 22590 1225400538 1 f none $PKGINST/lib/wine/cryptui.dll.so 0755 root bin 82764 22165 1225400538 1 f none $PKGINST/lib/wine/ctapi32.dll.so 0755 root bin 76996 61023 1225400538 1 s none $PKGINST/lib/wine/ctfmon.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/ctl3d.dll16 0644 root bin 12 947 1225400550 1 f none $PKGINST/lib/wine/ctl3d32.dll.so 0755 root bin 82504 9967 1225400538 1 f none $PKGINST/lib/wine/ctl3dv2.dll16 0644 root bin 12 947 1225400550 1 f none $PKGINST/lib/wine/cxcplinfo.exe.so 0755 root bin 82012 3740 1225400553 1 f none $PKGINST/lib/wine/cxdummy.exe.so 0755 root bin 74336 45884 1225400553 1 f none $PKGINST/lib/wine/cxexeinfo.exe.so 0755 root bin 75696 35126 1225400553 1 f none $PKGINST/lib/wine/cxfontreplace.exe.so 0755 root bin 77688 59056 1225400553 1 f none $PKGINST/lib/wine/cxhtmlsetup.exe.so 0755 root bin 5826980 8196 1225400554 1 f none $PKGINST/lib/wine/cxmn.exe.so 0755 root bin 84256 40214 1225400554 1 f none $PKGINST/lib/wine/cxnative.exe.so 0755 root bin 78188 12555 1225400556 1 f none $PKGINST/lib/wine/cxwget.exe.so 0755 root bin 178072 47766 1225400554 1 f none $PKGINST/lib/wine/d3d10.dll.so 0755 root bin 150952 44095 1225400538 1 f none $PKGINST/lib/wine/d3d8.dll.so 0755 root bin 171776 44675 1225400538 1 f none $PKGINST/lib/wine/d3d9.dll.so 0755 root bin 190652 26164 1225400538 1 f none $PKGINST/lib/wine/d3dim.dll.so 0755 root bin 76556 24089 1225400538 1 f none $PKGINST/lib/wine/d3drm.dll.so 0755 root bin 80684 24752 1225400538 1 f none $PKGINST/lib/wine/d3dx8.dll.so 0755 root bin 157132 7043 1225400538 1 f none $PKGINST/lib/wine/d3dx9_24.dll.so 0755 root bin 102140 45839 1225400538 1 f none $PKGINST/lib/wine/d3dx9_25.dll.so 0755 root bin 102340 58381 1225400538 1 f none $PKGINST/lib/wine/d3dx9_26.dll.so 0755 root bin 102716 19554 1225400538 1 f none $PKGINST/lib/wine/d3dx9_27.dll.so 0755 root bin 102716 19067 1225400539 1 f none $PKGINST/lib/wine/d3dx9_28.dll.so 0755 root bin 103184 49358 1225400539 1 f none $PKGINST/lib/wine/d3dx9_29.dll.so 0755 root bin 103184 49122 1225400539 1 f none $PKGINST/lib/wine/d3dx9_30.dll.so 0755 root bin 103184 49153 1225400539 1 f none $PKGINST/lib/wine/d3dx9_31.dll.so 0755 root bin 102684 14980 1225400539 1 f none $PKGINST/lib/wine/d3dx9_32.dll.so 0755 root bin 103024 37565 1225400539 1 f none $PKGINST/lib/wine/d3dx9_33.dll.so 0755 root bin 103024 37856 1225400539 1 f none $PKGINST/lib/wine/d3dx9_34.dll.so 0755 root bin 103024 37971 1225400539 1 f none $PKGINST/lib/wine/d3dx9_35.dll.so 0755 root bin 103032 38587 1225400539 1 f none $PKGINST/lib/wine/d3dx9_36.dll.so 0755 root bin 127816 14778 1225400539 1 f none $PKGINST/lib/wine/d3dx9_37.dll.so 0755 root bin 103216 51755 1225400539 1 f none $PKGINST/lib/wine/d3dxof.dll.so 0755 root bin 152200 10556 1225400539 1 f none $PKGINST/lib/wine/dbghelp.dll.so 0755 root bin 255472 4224 1225400539 1 f none $PKGINST/lib/wine/dcapvxd.vxd.so 0755 root bin 74696 55325 1225400539 1 f none $PKGINST/lib/wine/dciman32.dll.so 0755 root bin 76584 56031 1225400539 1 f none $PKGINST/lib/wine/ddeml.dll16 0644 root bin 11 920 1225400550 1 s none $PKGINST/lib/wine/ddhelp.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/ddraw.dll.so 0755 root bin 379872 26092 1225400539 1 f none $PKGINST/lib/wine/ddrawex.dll.so 0755 root bin 146644 2749 1225400539 1 f none $PKGINST/lib/wine/devenum.dll.so 0755 root bin 172816 8319 1225400539 1 f none $PKGINST/lib/wine/dinput.dll.so 0755 root bin 215212 32434 1225400539 1 f none $PKGINST/lib/wine/dinput8.dll.so 0755 root bin 146152 45683 1225400539 1 f none $PKGINST/lib/wine/dispdib.dll16 0644 root bin 10 781 1225400550 1 f none $PKGINST/lib/wine/display.drv16 0644 root bin 11 920 1225400550 1 f none $PKGINST/lib/wine/dmband.dll.so 0755 root bin 192720 43556 1225400539 1 f none $PKGINST/lib/wine/dmcompos.dll.so 0755 root bin 186628 10979 1225400540 1 f none $PKGINST/lib/wine/dmime.dll.so 0755 root bin 297660 37196 1225400540 1 f none $PKGINST/lib/wine/dmloader.dll.so 0755 root bin 215064 14884 1225400540 1 f none $PKGINST/lib/wine/dmscript.dll.so 0755 root bin 189052 16300 1225400540 1 f none $PKGINST/lib/wine/dmstyle.dll.so 0755 root bin 233268 28469 1225400540 1 f none $PKGINST/lib/wine/dmsynth.dll.so 0755 root bin 169564 14668 1225400540 1 f none $PKGINST/lib/wine/dmusic.dll.so 0755 root bin 199164 11741 1225400540 1 f none $PKGINST/lib/wine/dmusic32.dll.so 0755 root bin 75932 44235 1225400540 1 f none $PKGINST/lib/wine/dnsapi.dll.so 0755 root bin 115784 65525 1225400540 1 f none $PKGINST/lib/wine/dplay.dll.so 0755 root bin 75232 52564 1225400540 1 f none $PKGINST/lib/wine/dplayx.dll.so 0755 root bin 242484 35804 1225400540 1 f none $PKGINST/lib/wine/dpnaddr.dll.so 0755 root bin 75156 53796 1225400540 1 f none $PKGINST/lib/wine/dpnet.dll.so 0755 root bin 111484 41567 1225400540 1 f none $PKGINST/lib/wine/dpnhpast.dll.so 0755 root bin 76412 21324 1225400540 1 f none $PKGINST/lib/wine/dpnlobby.dll.so 0755 root bin 75160 53946 1225400540 1 f none $PKGINST/lib/wine/dpwsockx.dll.so 0755 root bin 74888 799 1225400540 1 f none $PKGINST/lib/wine/dsound.dll.so 0755 root bin 329760 52318 1225400541 1 f none $PKGINST/lib/wine/dssenh.dll.so 0755 root bin 76996 21223 1225400541 1 f none $PKGINST/lib/wine/dswave.dll.so 0755 root bin 169768 7192 1225400541 1 f none $PKGINST/lib/wine/dwmapi.dll.so 0755 root bin 79900 26723 1225400541 1 f none $PKGINST/lib/wine/dxdiagn.dll.so 0755 root bin 128484 10304 1225400541 1 f none $PKGINST/lib/wine/dxgi.dll.so 0755 root bin 129488 37533 1225400541 1 f none $PKGINST/lib/wine/eject.exe.so 0755 root bin 76440 48145 1225400552 1 f none $PKGINST/lib/wine/enumfonts.exe.so 0755 root bin 75640 26333 1225400554 1 f none $PKGINST/lib/wine/expand.exe.so 0755 root bin 76400 3050 1225400552 1 f none $PKGINST/lib/wine/explorer.exe.so 0755 root bin 94400 61014 1225400552 1 f none $PKGINST/lib/wine/extract.exe.so 0755 root bin 79140 50364 1225400554 1 f none $PKGINST/lib/wine/faultrep.dll.so 0755 root bin 76996 40920 1225400541 1 s none $PKGINST/lib/wine/findfast.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/fusion.dll.so 0755 root bin 101900 46357 1225400541 1 f none $PKGINST/lib/wine/gdi.exe16 0644 root bin 10 781 1225400550 1 f none $PKGINST/lib/wine/gdi32.dll.so 0755 root bin 536360 8781 1225400541 1 f none $PKGINST/lib/wine/gdiplus.dll.so 0755 root bin 306408 63381 1225400541 1 f none $PKGINST/lib/wine/glu32.dll.so 0755 root bin 86316 4602 1225400541 1 f none $PKGINST/lib/wine/gphoto2.ds.so 0755 root bin 121616 31780 1225400541 1 f none $PKGINST/lib/wine/gpkcsp.dll.so 0755 root bin 76872 11399 1225400541 1 f none $PKGINST/lib/wine/hackmsi.exe.so 0755 root bin 76240 40632 1225400554 1 f none $PKGINST/lib/wine/hal.dll.so 0755 root bin 84964 53928 1225400541 1 f none $PKGINST/lib/wine/hh.exe.so 0755 root bin 74544 57121 1225400552 1 f none $PKGINST/lib/wine/hhctrl.ocx.so 0755 root bin 161588 47692 1225400541 1 f none $PKGINST/lib/wine/hid.dll.so 0755 root bin 80176 38054 1225400541 1 f none $PKGINST/lib/wine/hlink.dll.so 0755 root bin 148908 33942 1225400541 1 f none $PKGINST/lib/wine/hnetcfg.dll.so 0755 root bin 75488 56745 1225400541 1 f none $PKGINST/lib/wine/iccvid.dll.so 0755 root bin 87416 16398 1225400541 1 f none $PKGINST/lib/wine/icmp.dll.so 0755 root bin 74912 6677 1225400541 1 f none $PKGINST/lib/wine/icwconn1.exe.so 0755 root bin 76972 30724 1225400554 1 f none $PKGINST/lib/wine/ieinfo5.ocx.so 0755 root bin 75500 51140 1225400541 1 f none $PKGINST/lib/wine/iernonce.dll.so 0755 root bin 79472 39889 1225400541 1 f none $PKGINST/lib/wine/iexplore.exe.so 0755 root bin 75436 22798 1225400552 1 f none $PKGINST/lib/wine/ifsmgr.vxd.so 0755 root bin 75700 20426 1225400541 1 f none $PKGINST/lib/wine/imaadp32.acm.so 0755 root bin 83996 43162 1225400541 1 f none $PKGINST/lib/wine/imagehlp.dll.so 0755 root bin 91384 40904 1225400541 1 s none $PKGINST/lib/wine/imjpmig.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/imm.dll16 0644 root bin 10 796 1225400550 1 f none $PKGINST/lib/wine/imm32.dll.so 0755 root bin 120776 63176 1225400541 1 f none $PKGINST/lib/wine/inetcomm.dll.so 0755 root bin 197920 49566 1225400542 1 f none $PKGINST/lib/wine/inetmib1.dll.so 0755 root bin 88308 35438 1225400542 1 f none $PKGINST/lib/wine/infosoft.dll.so 0755 root bin 118992 65432 1225400542 1 f none $PKGINST/lib/wine/initpki.dll.so 0755 root bin 74940 8696 1225400542 1 f none $PKGINST/lib/wine/inkobj.dll.so 0755 root bin 75676 1518 1225400542 1 f none $PKGINST/lib/wine/inseng.dll.so 0755 root bin 80580 51568 1225400542 1 f none $PKGINST/lib/wine/iphlpapi.dll.so 0755 root bin 122124 54666 1225400542 1 f none $PKGINST/lib/wine/itircl.dll.so 0755 root bin 74956 10636 1225400542 1 f none $PKGINST/lib/wine/itss.dll.so 0755 root bin 160092 2027 1225400542 1 f none $PKGINST/lib/wine/jscript.dll.so 0755 root bin 282256 53931 1225400542 1 f none $PKGINST/lib/wine/kernel32.dll.so 0755 root bin 1196188 31901 1225400542 1 f none $PKGINST/lib/wine/keyboard.drv16 0644 root bin 11 920 1225400550 1 f none $PKGINST/lib/wine/krnl386.exe16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/localspl.dll.so 0755 root bin 107512 62503 1225400542 1 f none $PKGINST/lib/wine/localui.dll.so 0755 root bin 94740 64479 1225400542 1 f none $PKGINST/lib/wine/lz32.dll.so 0755 root bin 78904 11447 1225400542 1 f none $PKGINST/lib/wine/lzexpand.dll16 0644 root bin 9 703 1225400550 1 s none $PKGINST/lib/wine/maildoff.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/mapi32.dll.so 0755 root bin 164964 16593 1225400542 1 f none $PKGINST/lib/wine/mciavi32.dll.so 0755 root bin 121096 44714 1225400542 1 f none $PKGINST/lib/wine/mcicda.dll.so 0755 root bin 88576 29399 1225400542 1 f none $PKGINST/lib/wine/mciseq.dll.so 0755 root bin 98656 19089 1225400542 1 f none $PKGINST/lib/wine/mciwave.dll.so 0755 root bin 94520 19553 1225400542 1 s none $PKGINST/lib/wine/mdm.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/midimap.dll.so 0755 root bin 81008 2771 1225400542 1 f none $PKGINST/lib/wine/mlang.dll.so 0755 root bin 158964 44737 1225400542 1 f none $PKGINST/lib/wine/mmdevldr.vxd.so 0755 root bin 74664 47853 1225400542 1 f none $PKGINST/lib/wine/mmsystem.dll16 0644 root bin 10 924 1225400550 1 f none $PKGINST/lib/wine/monodebg.vxd.so 0755 root bin 74784 61186 1225400542 1 s none $PKGINST/lib/wine/mosearch.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/mountmgr.sys.so 0755 root bin 87452 63569 1225400543 1 f none $PKGINST/lib/wine/mouse.drv16 0644 root bin 11 920 1225400550 1 f none $PKGINST/lib/wine/mpr.dll.so 0755 root bin 129932 46849 1225400543 1 f none $PKGINST/lib/wine/mprapi.dll.so 0755 root bin 89556 56426 1225400543 1 f none $PKGINST/lib/wine/msacm.dll16 0644 root bin 12 1002 1225400550 1 f none $PKGINST/lib/wine/msacm32.dll.so 0755 root bin 148140 6512 1225400543 1 f none $PKGINST/lib/wine/msacm32.drv.so 0755 root bin 91696 6668 1225400543 1 f none $PKGINST/lib/wine/msadp32.acm.so 0755 root bin 80992 30056 1225400543 1 f none $PKGINST/lib/wine/mscat32.dll.so 0755 root bin 77984 39358 1225400543 1 f none $PKGINST/lib/wine/mscms.dll.so 0755 root bin 98816 29646 1225400543 1 f none $PKGINST/lib/wine/mscoree.dll.so 0755 root bin 136652 55592 1225400543 1 f none $PKGINST/lib/wine/msdmo.dll.so 0755 root bin 125516 12805 1225400543 1 f none $PKGINST/lib/wine/msftedit.dll.so 0755 root bin 116336 18005 1225400543 1 f none $PKGINST/lib/wine/msg711.acm.so 0755 root bin 81356 61241 1225400543 1 f none $PKGINST/lib/wine/mshtml.dll.so 0755 root bin 695224 1517 1225400543 1 f none $PKGINST/lib/wine/mshtml.tlb.so 0755 root bin 378832 31645 1225400543 1 f none $PKGINST/lib/wine/msi.dll.so 0755 root bin 662696 29692 1225400543 1 f none $PKGINST/lib/wine/msiexec.exe.so 0755 root bin 103516 742 1225400552 1 f none $PKGINST/lib/wine/msimg32.dll.so 0755 root bin 74768 53662 1225400543 1 f none $PKGINST/lib/wine/msimtf.dll.so 0755 root bin 118008 50311 1225400543 1 f none $PKGINST/lib/wine/msisip.dll.so 0755 root bin 78348 41223 1225400543 1 f none $PKGINST/lib/wine/msisys.ocx.so 0755 root bin 75236 42808 1225400543 1 f none $PKGINST/lib/wine/msnet32.dll.so 0755 root bin 79596 2747 1225400543 1 f none $PKGINST/lib/wine/msrle32.dll.so 0755 root bin 99900 19650 1225400543 1 f none $PKGINST/lib/wine/mssip32.dll.so 0755 root bin 75560 55673 1225400543 1 f none $PKGINST/lib/wine/mstask.dll.so 0755 root bin 138520 19947 1225400544 1 f none $PKGINST/lib/wine/msvcirt.dll.so 0755 root bin 120616 12065 1225400544 1 f none $PKGINST/lib/wine/msvcr71.dll.so 0755 root bin 122240 30069 1225400544 1 f none $PKGINST/lib/wine/msvcrt.dll.so 0755 root bin 315768 33931 1225400544 1 f none $PKGINST/lib/wine/msvcrt20.dll.so 0755 root bin 159900 17285 1225400544 1 f none $PKGINST/lib/wine/msvcrt40.dll.so 0755 root bin 163456 29018 1225400544 1 f none $PKGINST/lib/wine/msvcrtd.dll.so 0755 root bin 119124 28485 1225400544 1 f none $PKGINST/lib/wine/msvfw32.dll.so 0755 root bin 152900 46471 1225400544 1 f none $PKGINST/lib/wine/msvidc32.dll.so 0755 root bin 81036 32558 1225400544 1 f none $PKGINST/lib/wine/msvideo.dll16 0644 root bin 12 1036 1225400550 1 f none $PKGINST/lib/wine/mswsock.dll.so 0755 root bin 79084 37065 1225400544 1 f none $PKGINST/lib/wine/msxml3.dll.so 0755 root bin 327844 5667 1225400544 1 f none $PKGINST/lib/wine/nddeapi.dll.so 0755 root bin 77760 19388 1225400544 1 f none $PKGINST/lib/wine/net.exe.so 0755 root bin 95308 59387 1225400552 1 f none $PKGINST/lib/wine/netapi32.dll.so 0755 root bin 147416 60032 1225400544 1 f none $PKGINST/lib/wine/newdev.dll.so 0755 root bin 75288 34624 1225400544 1 f none $PKGINST/lib/wine/notepad.exe.so 0755 root bin 181472 34282 1225400552 1 f none $PKGINST/lib/wine/ntdll.dll.so 0755 root bin 545148 2697 1225400544 1 f none $PKGINST/lib/wine/ntdsapi.dll.so 0755 root bin 85472 46520 1225400544 1 f none $PKGINST/lib/wine/ntoskrnl.exe.so 0755 root bin 227728 57513 1225400544 1 f none $PKGINST/lib/wine/ntprint.dll.so 0755 root bin 80992 63652 1225400544 1 f none $PKGINST/lib/wine/objsel.dll.so 0755 root bin 123264 28033 1225400544 1 f none $PKGINST/lib/wine/odbc32.dll.so 0755 root bin 143132 29898 1225400544 1 f none $PKGINST/lib/wine/odbccp32.dll.so 0755 root bin 92172 61045 1225400545 1 f none $PKGINST/lib/wine/ole2.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/ole2conv.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/ole2disp.dll16 0644 root bin 13 1123 1225400550 1 f none $PKGINST/lib/wine/ole2nls.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/ole2prox.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/ole2thk.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/ole32.dll.so 0755 root bin 1031568 28349 1225400545 1 f none $PKGINST/lib/wine/oleacc.dll.so 0755 root bin 80092 46050 1225400545 1 f none $PKGINST/lib/wine/oleaut32.dll.so 0755 root bin 900440 11 1225400545 1 f none $PKGINST/lib/wine/olecli.dll16 0644 root bin 13 1105 1225400550 1 f none $PKGINST/lib/wine/olecli32.dll.so 0755 root bin 99840 48267 1225400545 1 f none $PKGINST/lib/wine/oledlg.dll.so 0755 root bin 155464 51264 1225400545 1 f none $PKGINST/lib/wine/olepro32.dll.so 0755 root bin 76676 37841 1225400545 1 f none $PKGINST/lib/wine/olesvr.dll16 0644 root bin 13 1140 1225400550 1 f none $PKGINST/lib/wine/olesvr32.dll.so 0755 root bin 80676 16311 1225400545 1 f none $PKGINST/lib/wine/olethk32.dll.so 0755 root bin 76948 46155 1225400545 1 f none $PKGINST/lib/wine/oleview.exe.so 0755 root bin 253308 45031 1225400552 1 f none $PKGINST/lib/wine/opengl32.dll.so 0755 root bin 581496 7831 1225400545 1 f none $PKGINST/lib/wine/pdh.dll.so 0755 root bin 101664 26944 1225400545 1 f none $PKGINST/lib/wine/pluginserver.exe.so 0755 root bin 131824 31392 1225400554 1 f none $PKGINST/lib/wine/powrprof.dll.so 0755 root bin 81260 35143 1225400545 1 f none $PKGINST/lib/wine/printui.dll.so 0755 root bin 80216 11724 1225400545 1 s none $PKGINST/lib/wine/progman.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/propsys.dll.so 0755 root bin 100272 59176 1225400545 1 f none $PKGINST/lib/wine/psapi.dll.so 0755 root bin 82048 50098 1225400545 1 f none $PKGINST/lib/wine/pstorec.dll.so 0755 root bin 123148 14910 1225400545 1 s none $PKGINST/lib/wine/pstores.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/qcap.dll.so 0755 root bin 180592 9201 1225400545 1 f none $PKGINST/lib/wine/qedit.dll.so 0755 root bin 149372 43654 1225400545 1 f none $PKGINST/lib/wine/qmgr.dll.so 0755 root bin 137984 58054 1225400545 1 f none $PKGINST/lib/wine/qmgrprxy.dll.so 0755 root bin 169764 22399 1225400546 1 s none $PKGINST/lib/wine/qttask.exe.so=cxdummy.exe.so 1 f none $PKGINST/lib/wine/quartz.dll.so 0755 root bin 473444 51234 1225400546 1 f none $PKGINST/lib/wine/query.dll.so 0755 root bin 80388 37565 1225400546 1 f none $PKGINST/lib/wine/rasapi16.dll16 0644 root bin 13 1113 1225400550 1 f none $PKGINST/lib/wine/rasapi32.dll.so 0755 root bin 96680 31374 1225400546 1 f none $PKGINST/lib/wine/reboot.exe.so 0755 root bin 228308 44772 1225400555 1 f none $PKGINST/lib/wine/reg.exe.so 0755 root bin 83144 40301 1225400552 1 f none $PKGINST/lib/wine/regedit.exe.so 0755 root bin 312708 21664 1225400552 1 f none $PKGINST/lib/wine/registerfonts.exe.so 0755 root bin 74764 5571 1225400555 1 f none $PKGINST/lib/wine/regsvr32.exe.so 0755 root bin 77880 30778 1225400552 1 f none $PKGINST/lib/wine/resutils.dll.so 0755 root bin 82756 44019 1225400546 1 f none $PKGINST/lib/wine/riched20.dll.so 0755 root bin 343752 54194 1225400546 1 f none $PKGINST/lib/wine/riched32.dll.so 0755 root bin 76036 57732 1225400546 1 f none $PKGINST/lib/wine/rpcrt4.dll.so 0755 root bin 421980 60386 1225400546 1 f none $PKGINST/lib/wine/rpcss.exe.so 0755 root bin 100464 26564 1225400552 1 f none $PKGINST/lib/wine/rsabase.dll.so 0755 root bin 76720 20720 1225400546 1 f none $PKGINST/lib/wine/rsaenh.dll.so 0755 root bin 225800 55478 1225400546 1 f none $PKGINST/lib/wine/rundll32.exe.so 0755 root bin 77724 58207 1225400552 1 f none $PKGINST/lib/wine/sane.ds.so 0755 root bin 110688 39339 1225400546 1 f none $PKGINST/lib/wine/sccbase.dll.so 0755 root bin 76920 15941 1225400546 1 f none $PKGINST/lib/wine/schannel.dll.so 0755 root bin 80240 21203 1225400546 1 f none $PKGINST/lib/wine/secedit.exe.so 0755 root bin 73972 10388 1225400552 1 f none $PKGINST/lib/wine/secur32.dll.so 0755 root bin 143264 35676 1225400546 1 f none $PKGINST/lib/wine/security.dll.so 0755 root bin 77244 47122 1225400546 1 f none $PKGINST/lib/wine/sendwndcmd.exe.so 0755 root bin 83404 24446 1225400556 1 f none $PKGINST/lib/wine/sensapi.dll.so 0755 root bin 75172 30590 1225400546 1 f none $PKGINST/lib/wine/serialui.dll.so 0755 root bin 93072 53655 1225400546 1 f none $PKGINST/lib/wine/services.exe.so 0755 root bin 131740 5457 1225400552 1 f none $PKGINST/lib/wine/setupapi.dll.so 0755 root bin 351056 4747 1225400546 1 f none $PKGINST/lib/wine/setupx.dll16 0644 root bin 13 1247 1225400550 1 f none $PKGINST/lib/wine/sfc.dll.so 0755 root bin 74812 62806 1225400546 1 f none $PKGINST/lib/wine/sfc_os.dll.so 0755 root bin 75416 52550 1225400546 1 f none $PKGINST/lib/wine/shdoclc.dll.so 0755 root bin 152768 46930 1225400546 1 f none $PKGINST/lib/wine/shdocvw.dll.so 0755 root bin 270228 43591 1225400547 1 f none $PKGINST/lib/wine/shell.dll16 0644 root bin 12 1009 1225400550 1 f none $PKGINST/lib/wine/shell32.dll.so 0755 root bin 1123232 55321 1225400547 1 f none $PKGINST/lib/wine/shfolder.dll.so 0755 root bin 75300 56341 1225400547 1 f none $PKGINST/lib/wine/shlwapi.dll.so 0755 root bin 359248 24498 1225400547 1 f none $PKGINST/lib/wine/slbcsp.dll.so 0755 root bin 76996 21152 1225400547 1 f none $PKGINST/lib/wine/slc.dll.so 0755 root bin 79008 56015 1225400547 1 f none $PKGINST/lib/wine/snmpapi.dll.so 0755 root bin 86604 57484 1225400547 1 f none $PKGINST/lib/wine/softpub.dll.so 0755 root bin 76252 41498 1225400547 1 f none $PKGINST/lib/wine/sound.drv16 0644 root bin 10 924 1225400550 1 f none $PKGINST/lib/wine/spoolss.dll.so 0755 root bin 93412 52970 1225400547 1 f none $PKGINST/lib/wine/spoolsv.exe.so 0755 root bin 75316 64925 1225400552 1 f none $PKGINST/lib/wine/start.exe.so 0755 root bin 131668 36548 1225400552 1 f none $PKGINST/lib/wine/stdole2.tlb.so 0755 root bin 90116 38798 1225400547 1 f none $PKGINST/lib/wine/stdole32.tlb.so 0755 root bin 79520 11542 1225400547 1 f none $PKGINST/lib/wine/sti.dll.so 0755 root bin 75108 18484 1225400547 1 f none $PKGINST/lib/wine/storage.dll16 0644 root bin 10 793 1225400550 1 f none $PKGINST/lib/wine/stress.dll16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/svchost.exe.so 0755 root bin 78716 12642 1225400552 1 f none $PKGINST/lib/wine/svrapi.dll.so 0755 root bin 76416 47833 1225400547 1 f none $PKGINST/lib/wine/sxs.dll.so 0755 root bin 74524 42220 1225400547 1 f none $PKGINST/lib/wine/system.drv16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/tapi32.dll.so 0755 root bin 111572 25814 1225400547 1 f none $PKGINST/lib/wine/taskmgr.exe.so 0755 root bin 335612 47717 1225400552 1 f none $PKGINST/lib/wine/toolhelp.dll16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/twain.dll16 0644 root bin 13 1115 1225400550 1 f none $PKGINST/lib/wine/twain_32.dll.so 0755 root bin 82332 60266 1225400547 1 f none $PKGINST/lib/wine/typelib.dll16 0644 root bin 13 1123 1225400550 1 f none $PKGINST/lib/wine/unicows.dll.so 0755 root bin 129080 50681 1225400547 1 f none $PKGINST/lib/wine/uninstaller.exe.so 0755 root bin 88060 35810 1225400552 1 f none $PKGINST/lib/wine/url.dll.so 0755 root bin 77500 13361 1225400547 1 f none $PKGINST/lib/wine/urlmon.dll.so 0755 root bin 267928 30363 1225400547 1 f none $PKGINST/lib/wine/user.exe16 0644 root bin 11 920 1225400550 1 f none $PKGINST/lib/wine/user32.dll.so 0755 root bin 988060 61363 1225400548 1 f none $PKGINST/lib/wine/userenv.dll.so 0755 root bin 78320 39419 1225400548 1 f none $PKGINST/lib/wine/usp10.dll.so 0755 root bin 93532 60579 1225400548 1 f none $PKGINST/lib/wine/uxtheme.dll.so 0755 root bin 196980 52520 1225400548 1 f none $PKGINST/lib/wine/vdhcp.vxd.so 0755 root bin 74684 51291 1225400548 1 f none $PKGINST/lib/wine/vdmdbg.dll.so 0755 root bin 76564 60069 1225400548 1 f none $PKGINST/lib/wine/ver.dll16 0644 root bin 12 1146 1225400550 1 f none $PKGINST/lib/wine/version.dll.so 0755 root bin 99148 10330 1225400548 1 f none $PKGINST/lib/wine/vmm.vxd.so 0755 root bin 79280 44406 1225400548 1 f none $PKGINST/lib/wine/vnbt.vxd.so 0755 root bin 75964 50130 1225400548 1 f none $PKGINST/lib/wine/vnetbios.vxd.so 0755 root bin 74704 52378 1225400548 1 f none $PKGINST/lib/wine/vtdapi.vxd.so 0755 root bin 74672 50959 1225400548 1 f none $PKGINST/lib/wine/vwin32.vxd.so 0755 root bin 76580 21620 1225400548 1 f none $PKGINST/lib/wine/w32skrnl.dll.so 0755 root bin 99316 7573 1225400548 1 f none $PKGINST/lib/wine/w32sys.dll16 0644 root bin 13 1146 1225400550 1 f none $PKGINST/lib/wine/win32s16.dll16 0644 root bin 13 1146 1225400550 1 f none $PKGINST/lib/wine/win87em.dll16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/winaspi.dll16 0644 root bin 13 1131 1225400550 1 f none $PKGINST/lib/wine/windebug.dll16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/winealsa.drv.so 0755 root bin 76428 54011 1225400548 1 f none $PKGINST/lib/wine/wineaudioio.drv.so 0755 root bin 75064 16850 1225400548 1 f none $PKGINST/lib/wine/wineboot.exe.so 0755 root bin 99164 35361 1225400553 1 f none $PKGINST/lib/wine/winebrowser.exe.so 0755 root bin 81316 16376 1225400553 1 f none $PKGINST/lib/wine/winecfg.exe.so 0755 root bin 503556 10946 1225400553 1 f none $PKGINST/lib/wine/wineconsole.exe.so 0755 root bin 208980 23792 1225400553 1 f none $PKGINST/lib/wine/winecoreaudio.drv.so 0755 root bin 76600 14421 1225400548 1 f none $PKGINST/lib/wine/wined3d.dll.so 0755 root bin 1020032 43030 1225400548 1 f none $PKGINST/lib/wine/winedbg.exe.so 0755 root bin 265416 34517 1225400553 1 f none $PKGINST/lib/wine/winedevice.exe.so 0755 root bin 79508 61357 1225400553 1 f none $PKGINST/lib/wine/winedos.dll.so 0755 root bin 279316 18622 1225400548 1 f none $PKGINST/lib/wine/wineesd.drv.so 0755 root bin 97680 434 1225400548 1 f none $PKGINST/lib/wine/winejack.drv.so 0755 root bin 75572 60180 1225400548 1 f none $PKGINST/lib/wine/winejoystick.drv.so 0755 root bin 74720 63810 1225400548 1 f none $PKGINST/lib/wine/winemenubuilder.exe.so 0755 root bin 142092 24376 1225400553 1 f none $PKGINST/lib/wine/winemp3.acm.so 0755 root bin 125908 63453 1225400548 1 f none $PKGINST/lib/wine/winenas.drv.so 0755 root bin 74868 62628 1225400548 1 f none $PKGINST/lib/wine/wineoss.drv.so 0755 root bin 242564 4644 1225400549 1 f none $PKGINST/lib/wine/winepath.exe.so 0755 root bin 78240 56148 1225400553 1 f none $PKGINST/lib/wine/wineps.drv.so 0755 root bin 459948 11556 1225400549 1 f none $PKGINST/lib/wine/wineps16.drv16 0644 root bin 11 1050 1225400550 1 f none $PKGINST/lib/wine/winevdm.exe.so 0755 root bin 80952 43310 1225400553 1 f none $PKGINST/lib/wine/winewrapper.exe.so 0755 root bin 204340 35372 1225400556 1 f none $PKGINST/lib/wine/winex11.drv.so 0755 root bin 581172 33642 1225400549 1 f none $PKGINST/lib/wine/wing.dll16 0644 root bin 10 781 1225400550 1 f none $PKGINST/lib/wine/wing32.dll.so 0755 root bin 76304 37865 1225400549 1 f none $PKGINST/lib/wine/winhelp.exe16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/winhlp32.exe.so 0755 root bin 220372 25441 1225400553 1 f none $PKGINST/lib/wine/winhttp.dll.so 0755 root bin 128896 56142 1225400549 1 f none $PKGINST/lib/wine/wininet.dll.so 0755 root bin 290120 60069 1225400549 1 f none $PKGINST/lib/wine/winmm.dll.so 0755 root bin 562176 64615 1225400549 1 f none $PKGINST/lib/wine/winnls.dll16 0644 root bin 13 1140 1225400550 1 f none $PKGINST/lib/wine/winnls32.dll.so 0755 root bin 78668 49331 1225400549 1 f none $PKGINST/lib/wine/winoldap.mod16 0644 root bin 13 1114 1225400550 1 f none $PKGINST/lib/wine/winscard.dll.so 0755 root bin 82832 43446 1225400549 1 f none $PKGINST/lib/wine/winsock.dll16 0644 root bin 11 852 1225400550 1 f none $PKGINST/lib/wine/winspool.drv.so 0755 root bin 193904 39090 1225400549 1 f none $PKGINST/lib/wine/wintab.dll16 0644 root bin 13 1118 1225400550 1 f none $PKGINST/lib/wine/wintab32.dll.so 0755 root bin 120112 2610 1225400550 1 f none $PKGINST/lib/wine/wintrust.dll.so 0755 root bin 158324 17597 1225400550 1 f none $PKGINST/lib/wine/wldap32.dll.so 0755 root bin 142236 25153 1225400550 1 f none $PKGINST/lib/wine/wmi.dll.so 0755 root bin 77404 38173 1225400550 1 f none $PKGINST/lib/wine/wnaspi32.dll.so 0755 root bin 80064 48898 1225400550 1 f none $PKGINST/lib/wine/wordpad.exe.so 0755 root bin 217492 53496 1225400553 1 f none $PKGINST/lib/wine/wow32.dll.so 0755 root bin 77076 12307 1225400550 1 f none $PKGINST/lib/wine/wprocs.dll16 0644 root bin 12 1133 1225400550 1 f none $PKGINST/lib/wine/write.exe.so 0755 root bin 76440 18229 1225400553 1 f none $PKGINST/lib/wine/ws2_32.dll.so 0755 root bin 164796 6248 1225400550 1 f none $PKGINST/lib/wine/wscript.exe.so 0755 root bin 75884 654 1225400556 1 f none $PKGINST/lib/wine/wsock32.dll.so 0755 root bin 100184 53918 1225400550 1 f none $PKGINST/lib/wine/wtsapi32.dll.so 0755 root bin 80352 55031 1225400550 1 f none $PKGINST/lib/wine/xcopy.exe.so 0755 root bin 127300 31549 1225400553 1 f none $PKGINST/license.txt 0644 root bin 39056 36770 1225400534 1 d none $PKGINST/share 0755 root bin 1 d none $PKGINST/share/crossover 0755 root bin 1 d none $PKGINST/share/crossover/bottle_data 0755 root bin 1 f none $PKGINST/share/crossover/bottle_data/MozAxPlugin.class 0644 root bin 1508 16133 1225400554 1 f none $PKGINST/share/crossover/bottle_data/crossover.inf 0644 root bin 24121 15221 1225400554 1 f none $PKGINST/share/crossover/bottle_data/cxbottle.conf 0644 root bin 21238 29094 1225400554 1 f none $PKGINST/share/crossover/bottle_data/l_intl.nls 0644 root bin 5990 54797 1225400554 1 s none $PKGINST/share/crossover/bottle_data/launchurl.exe=../../../bin/launchurl 1 f none $PKGINST/share/crossover/bottle_data/msvcp60.dll 0644 root bin 401462 19318 1225400554 1 f none $PKGINST/share/crossover/bottle_data/netscape.exe 0644 root bin 28672 22526 1225400554 1 f none $PKGINST/share/crossover/bottle_data/npmozax.dll 0644 root bin 163840 65255 1225400554 1 f none $PKGINST/share/crossover/bottle_data/nsIMozAxPlugin.xpt 0644 root bin 343 19939 1225400554 1 f none $PKGINST/share/crossover/bottle_data/nspr4.dll 0644 root bin 155741 34395 1225400554 1 f none $PKGINST/share/crossover/bottle_data/plc4.dll 0644 root bin 29792 28137 1225400554 1 f none $PKGINST/share/crossover/bottle_data/stdole2.tlb 0644 root bin 24576 9772 1225400556 1 f none $PKGINST/share/crossover/bottle_data/stdole32.tlb 0644 root bin 16384 47213 1225400556 1 d none $PKGINST/share/crossover/bottle_templates 0755 root bin 1 d none $PKGINST/share/crossover/bottle_templates/win2000 0755 root bin 1 f none $PKGINST/share/crossover/bottle_templates/win2000/CXBT_win2000.pm 0644 root bin 25492 60025 1225400554 1 f none $PKGINST/share/crossover/bottle_templates/win2000/setup 0755 root bin 3415 59024 1225400554 1 d none $PKGINST/share/crossover/bottle_templates/win98 0755 root bin 1 f none $PKGINST/share/crossover/bottle_templates/win98/CXBT_win98.pm 0644 root bin 25486 59782 1225400554 1 f none $PKGINST/share/crossover/bottle_templates/win98/setup 0755 root bin 3405 58619 1225400554 1 d none $PKGINST/share/crossover/bottle_templates/winvista 0755 root bin 1 f none $PKGINST/share/crossover/bottle_templates/winvista/CXBT_winvista.pm 0644 root bin 25492 60762 1225400554 1 f none $PKGINST/share/crossover/bottle_templates/winvista/setup 0755 root bin 3420 60809 1225400554 1 d none $PKGINST/share/crossover/bottle_templates/winxp 0755 root bin 1 f none $PKGINST/share/crossover/bottle_templates/winxp/CXBT_winxp.pm 0644 root bin 25486 60139 1225400554 1 f none $PKGINST/share/crossover/bottle_templates/winxp/setup 0755 root bin 3405 59214 1225400554 1 d none $PKGINST/share/crossover/cxbottle 0755 root bin 1 f none $PKGINST/share/crossover/cxbottle/deb.build 0755 root bin 223 19762 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.changelog 0644 root bin 124 10627 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.compat 0644 root bin 2 62 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.control 0644 root bin 289 25705 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.copyright 0644 root bin 129 12272 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.postinst 0644 root bin 742 53459 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.postrm 0644 root bin 471 34009 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.preinst 0644 root bin 1171 19945 1225400556 1 f none $PKGINST/share/crossover/cxbottle/deb.prerm 0644 root bin 613 46177 1225400556 1 f none $PKGINST/share/crossover/cxbottle/rpm.spec 0644 root bin 5056 12361 1225400556 1 f none $PKGINST/share/crossover/cxbottle/sunpkg.checkinstall 0644 root bin 1213 26645 1225400556 1 f none $PKGINST/share/crossover/cxbottle/sunpkg.pkginfo 0644 root bin 398 33245 1225400556 1 f none $PKGINST/share/crossover/cxbottle/sunpkg.postinstall 0644 root bin 818 60786 1225400556 1 f none $PKGINST/share/crossover/cxbottle/sunpkg.postremove 0644 root bin 448 32991 1225400556 1 f none $PKGINST/share/crossover/cxbottle/sunpkg.preremove 0644 root bin 797 64101 1225400556 1 d none $PKGINST/share/crossover/cxrepackage 0755 root bin 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.checkinstall 0644 root bin 808 60784 1225400534 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.compver 0644 root bin 14 1260 1225400534 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.copyright 0644 root bin 44 3258 1225400534 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.depend 0644 root bin 92 7596 1225400534 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.pkginfo 0644 root bin 301 25289 1225400534 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.postinstall 0644 root bin 4079 52317 1225400534 1 f none $PKGINST/share/crossover/cxrepackage/sunpkg.preremove 0644 root bin 3094 31395 1225400534 1 d none $PKGINST/share/crossover/data 0755 root bin 1 f none $PKGINST/share/crossover/data/crossover.assoc 0644 root bin 273 21148 1225400534 1 f none $PKGINST/share/crossover/data/crossover.menu 0644 root bin 1358 38448 1225400534 1 f none $PKGINST/share/crossover/data/cxoffice.conf 0644 root bin 15148 15726 1225400534 1 d none $PKGINST/share/icons 0755 root bin 1 f none $PKGINST/share/icons/crossover.xpm 0644 root bin 9210 6901 1225400534 1 f none $PKGINST/share/icons/cxbottle.xpm 0644 root bin 2791 47138 1225400555 1 f none $PKGINST/share/icons/cxdoc.xpm 0644 root bin 10523 36044 1225400534 1 f none $PKGINST/share/icons/cxmenu.xpm 0644 root bin 9820 1588 1225400534 1 f none $PKGINST/share/icons/cxreboot.ico 0644 root bin 3774 18802 1225400555 1 f none $PKGINST/share/icons/cxreboot.xpm 0644 root bin 9807 16915 1225400555 1 f none $PKGINST/share/icons/cxregister.xpm 0644 root bin 10550 20943 1225400535 1 f none $PKGINST/share/icons/cxreset.xpm 0644 root bin 8624 39538 1225400535 1 f none $PKGINST/share/icons/cxrun.xpm 0644 root bin 8837 4289 1225400535 1 f none $PKGINST/share/icons/cxuninstall.xpm 0644 root bin 9399 32355 1225400534 1 f none $PKGINST/share/icons/winecfg.ico 0644 root bin 3774 57359 1225400534 1 f none $PKGINST/share/icons/winecfg.xpm 0644 root bin 9902 22215 1225400534 1 f none $PKGINST/share/icons/winetaskmgr.ico 0644 root bin 3774 65472 1225400534 1 f none $PKGINST/share/icons/winetaskmgr.xpm 0644 root bin 10548 14364 1225400534 1 d none $PKGINST/share/locale 0755 root bin 1 d none $PKGINST/share/locale/de 0755 root bin 1 d none $PKGINST/share/locale/de/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/de/LC_MESSAGES/crossover.mo 0644 root bin 128333 10367 1225400534 1 d none $PKGINST/share/locale/fr 0755 root bin 1 d none $PKGINST/share/locale/fr/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/fr/LC_MESSAGES/crossover.mo 0644 root bin 127527 5118 1225400534 1 d none $PKGINST/share/locale/it 0755 root bin 1 d none $PKGINST/share/locale/it/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/it/LC_MESSAGES/crossover.mo 0644 root bin 111725 42980 1225400534 1 d none $PKGINST/share/locale/ja 0755 root bin 1 d none $PKGINST/share/locale/ja/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/ja/LC_MESSAGES/crossover.mo 0644 root bin 135578 25019 1225400534 1 d none $PKGINST/share/locale/pl 0755 root bin 1 d none $PKGINST/share/locale/pl/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/pl/LC_MESSAGES/crossover.mo 0644 root bin 87207 16116 1225400534 1 d none $PKGINST/share/locale/pt 0755 root bin 1 d none $PKGINST/share/locale/pt/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/pt/LC_MESSAGES/crossover.mo 0644 root bin 110603 40955 1225400534 1 d none $PKGINST/share/locale/pt_BR 0755 root bin 1 d none $PKGINST/share/locale/pt_BR/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/pt_BR/LC_MESSAGES/crossover.mo 0644 root bin 53785 36216 1225400534 1 d none $PKGINST/share/locale/ru 0755 root bin 1 d none $PKGINST/share/locale/ru/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/ru/LC_MESSAGES/crossover.mo 0644 root bin 144431 17366 1225400534 1 d none $PKGINST/share/locale/sk 0755 root bin 1 d none $PKGINST/share/locale/sk/LC_MESSAGES 0755 root bin 1 f none $PKGINST/share/locale/sk/LC_MESSAGES/crossover.mo 0644 root bin 45716 14146 1225400534 1 d none $PKGINST/share/wine 0755 root bin 1 d none $PKGINST/share/wine/fonts 0755 root bin 1 f none $PKGINST/share/wine/fonts/Vera.ttf 0644 root bin 65932 3051 1225400554 1 f none $PKGINST/share/wine/fonts/VeraBI.ttf 0644 root bin 63208 42183 1225400554 1 f none $PKGINST/share/wine/fonts/VeraBd.ttf 0644 root bin 58716 39932 1225400554 1 f none $PKGINST/share/wine/fonts/VeraIt.ttf 0644 root bin 63684 64997 1225400554 1 f none $PKGINST/share/wine/fonts/VeraMoBI.ttf 0644 root bin 55032 18336 1225400554 1 f none $PKGINST/share/wine/fonts/VeraMoBd.ttf 0644 root bin 49052 25790 1225400554 1 f none $PKGINST/share/wine/fonts/VeraMoIt.ttf 0644 root bin 54508 36169 1225400554 1 f none $PKGINST/share/wine/fonts/VeraMono.ttf 0644 root bin 49224 12578 1225400554 1 f none $PKGINST/share/wine/fonts/VeraSe.ttf 0644 root bin 60280 28072 1225400554 1 f none $PKGINST/share/wine/fonts/VeraSeBd.ttf 0644 root bin 58736 14184 1225400554 1 f none $PKGINST/share/wine/fonts/coue1255.fon 0644 root bin 4912 32059 1225400550 1 f none $PKGINST/share/wine/fonts/coue1256.fon 0644 root bin 4912 33746 1225400550 1 f none $PKGINST/share/wine/fonts/coue1257.fon 0644 root bin 4912 49458 1225400550 1 f none $PKGINST/share/wine/fonts/coure.fon 0644 root bin 4912 57618 1225400550 1 f none $PKGINST/share/wine/fonts/couree.fon 0644 root bin 4912 58887 1225400550 1 f none $PKGINST/share/wine/fonts/coureg.fon 0644 root bin 4912 28665 1225400550 1 f none $PKGINST/share/wine/fonts/courer.fon 0644 root bin 4912 57321 1225400550 1 f none $PKGINST/share/wine/fonts/couret.fon 0644 root bin 4912 56558 1225400550 1 f none $PKGINST/share/wine/fonts/cvgasys.fon 0644 root bin 12704 63683 1225400550 1 f none $PKGINST/share/wine/fonts/hvgasys.fon 0644 root bin 6512 4811 1225400550 1 f none $PKGINST/share/wine/fonts/jsmalle.fon 0644 root bin 4496 51634 1225400550 1 f none $PKGINST/share/wine/fonts/jvgasys.fon 0644 root bin 7360 2309 1225400550 1 f none $PKGINST/share/wine/fonts/marlett.ttf 0644 root bin 6136 2469 1225400551 1 f none $PKGINST/share/wine/fonts/smae1255.fon 0644 root bin 4512 53783 1225400550 1 f none $PKGINST/share/wine/fonts/smae1256.fon 0644 root bin 4512 52604 1225400550 1 f none $PKGINST/share/wine/fonts/smae1257.fon 0644 root bin 4512 12711 1225400550 1 f none $PKGINST/share/wine/fonts/smalle.fon 0644 root bin 4512 11548 1225400550 1 f none $PKGINST/share/wine/fonts/smallee.fon 0644 root bin 4496 12120 1225400550 1 f none $PKGINST/share/wine/fonts/smalleg.fon 0644 root bin 4512 45769 1225400550 1 f none $PKGINST/share/wine/fonts/smaller.fon 0644 root bin 4544 12182 1225400550 1 f none $PKGINST/share/wine/fonts/smallet.fon 0644 root bin 4512 11535 1225400550 1 f none $PKGINST/share/wine/fonts/ssee1255.fon 0644 root bin 18832 35189 1225400550 1 f none $PKGINST/share/wine/fonts/ssee1256.fon 0644 root bin 18800 22072 1225400550 1 f none $PKGINST/share/wine/fonts/ssee1257.fon 0644 root bin 19696 38413 1225400550 1 f none $PKGINST/share/wine/fonts/ssee874.fon 0644 root bin 18208 47052 1225400550 1 f none $PKGINST/share/wine/fonts/sserife.fon 0644 root bin 20144 49907 1225400550 1 f none $PKGINST/share/wine/fonts/sserifee.fon 0644 root bin 11248 28295 1225400550 1 f none $PKGINST/share/wine/fonts/sserifeg.fon 0644 root bin 18480 12696 1225400550 1 f none $PKGINST/share/wine/fonts/sserifer.fon 0644 root bin 20448 13973 1225400550 1 f none $PKGINST/share/wine/fonts/sserifet.fon 0644 root bin 20064 51851 1225400550 1 f none $PKGINST/share/wine/fonts/svgasys.fon 0644 root bin 12704 63679 1225400550 1 f none $PKGINST/share/wine/fonts/tahoma.ttf 0644 root bin 85444 4069 1225400551 1 f none $PKGINST/share/wine/fonts/tahomabd.ttf 0644 root bin 75600 921 1225400551 1 f none $PKGINST/share/wine/fonts/ume-ui-gothic.ttf 0644 root bin 4615092 21965 1225400554 1 f none $PKGINST/share/wine/fonts/vgas1255.fon 0644 root bin 6512 53798 1225400551 1 f none $PKGINST/share/wine/fonts/vgas1256.fon 0644 root bin 6128 63367 1225400551 1 f none $PKGINST/share/wine/fonts/vgas1257.fon 0644 root bin 6480 45000 1225400551 1 f none $PKGINST/share/wine/fonts/vgas874.fon 0644 root bin 6000 37241 1225400551 1 f none $PKGINST/share/wine/fonts/vgasys.fon 0644 root bin 6512 4250 1225400550 1 f none $PKGINST/share/wine/fonts/vgasyse.fon 0644 root bin 6608 1845 1225400550 1 f none $PKGINST/share/wine/fonts/vgasysg.fon 0644 root bin 6576 1960 1225400550 1 f none $PKGINST/share/wine/fonts/vgasysr.fon 0644 root bin 6736 65086 1225400550 1 f none $PKGINST/share/wine/fonts/vgasyst.fon 0644 root bin 6480 2694 1225400551 1 f none $PKGINST/share/wine/fonts/wineding.ttf 0644 root bin 2608 64301 1225400554 1 f none $PKGINST/share/wine/generic.ppd 0644 root bin 7729 38709 1225400549 1 f none $PKGINST/share/wine/wine.inf 0644 root bin 218017 53646 1225400553 1 i checkinstall 808 60784 1225400557 1 i compver 10 902 1225397142 1 i copyright 44 3258 1225400557 1 i depend 92 7596 1225400557 1 i pkginfo 285 23697 1225400558 1 i postinstall 4067 51243 1225397142 1 i preremove 3090 31037 1225397143 070701000844ca000041ed00000067000001f400000002490a20f700000000000000660000000700000000000000000000000800000000install070701000844cb000081a400000067000001f400000001490a20ed00000328000000660000000700000000000000000000001500000000install/checkinstall#!/bin/sh # (c) Copyright 2003-2006. CodeWeavers, Inc. # Setup logging # To trigger logging, use a command of the form: # pkgadd/rm -v ... 2>&1 | tee pkg.log if echo $- | grep x >/dev/null then echo >&2 echo "***** `date`" >&2 echo "Starting: $0 $@" >&2 env >&2 CX_LOG="-" export CX_LOG fi if [ -n "$PKG_INSTALL_ROOT" -a "$PKG_INSTALL_ROOT" != "/" ] then echo "This package cannot be installed with 'pkgadd -R $PKG_INSTALL_ROOT'" >&2 exit 3 fi # Check that Perl is available if [ ! -x /usr/bin/perl -o ! -f /usr/bin/perl ] then echo "This package needs Perl. Install SUNWpl5u or SUNWperl584core" >&2 exit 3 fi # Grab the old version to help with upgrades ('overwrites') CX_OLDVER=`pkgparam "$PKGINST" VERSION 2>/dev/null` echo "CX_OLDVER=$CX_OLDVER" >"$1" exit 0 070701000844cc000081a400000067000001f400000001490a13960000000a000000660000000700000000000000000000001000000000install/compvercxoffice5 070701000844cd000081a400000067000001f400000001490a20ed0000002c000000660000000700000000000000000000001200000000install/copyright(c) Copyright 2006-2008. CodeWeavers, Inc. 070701000844ce000081a400000067000001f400000001490a20ed0000005c000000660000000700000000000000000000000f00000000install/depend# (c) Copyright 2003-2006. CodeWeavers, Inc. P SUNWxwplt X Window System platform software 070701000844cf000081a400000067000001f400000001490a139600000fe3000000660000000700000000000000000000001400000000install/postinstall#!/bin/sh # (c) Copyright 2003-2008. CodeWeavers, Inc. # To trigger logging, use a command of the form: # pkgadd/rm -v ... 2>&1 | tee pkg.log if echo $- | grep x >/dev/null then echo >&2 echo "***** `date`" >&2 echo "Starting: $0 $@" >&2 env >&2 CX_LOG="-" export CX_LOG fi CX_ROOT="$BASEDIR/$PKGINST" export CX_ROOT oldver="$CX_OLDVER" if [ -n "$UPDATE" ] then mode="upgrade" else mode="install" fi if [ "$mode" = "install" ] then if [ "$PKGINST" != "cxoffice" ] then productid=`echo "$PKGINST" | sed -e 's/\.//g'` else productid="cxoffice" fi elif [ -f "$CX_ROOT/.productid" ] then productid=`cat "$CX_ROOT/.productid"` else productid="cxoffice" fi # This script expects CX_ROOT, productid, mode and oldver to be set real_product_id="cxoffice" if [ "$mode" = "install" ] then if [ "$productid" != "$real_product_id" ] then echo "$productid" >"$CX_ROOT/.productid" else rm -f "$CX_ROOT/.productid" fi fi uid=`id | sed -e 's/^uid=\([0-9]*\)(.*/\1/'` # Check that $HOME belongs to us if [ -n "$HOME" ] then owner=`ls -lnd "$HOME" | sed -e 's/^[^ ]* *[^ ]* *\([0-9]*\) *.*$/\1/'` if [ "$owner" != "$uid" ] then unset HOME fi fi # These files are no longer needed (was used by version 4.x) if [ "$uid" = "0" -a -f "/sbin/conf.d/SuSEconfig.zz$productid-vfolders" ] then rm -f "/sbin/conf.d/SuSEconfig.zz$productid-vfolders" fi rm -f "$CX_ROOT/lib/xml/libperl.so.5.8" # Icons have moved to share/icons rm -f "$CX_ROOT"/support/*.png # We don't need the 2007 DST bottle hook anymore rm -f "$CX_ROOT"/support/scripts.d/??.dst2007patch rmdir -f "$CX_ROOT"/support/scripts.d 2>/dev/null # This should be removed by the old 'profile' package but isn't rm -f "$CX_ROOT/support/serverassocs" if [ "$mode" = "upgrade" ] then if [ -n "$HOME" -a -f "$HOME/.$productid/$productid.conf" ] then mv "$HOME/.$productid/$productid".conf* "$CX_ROOT/etc" rmdir "$HOME/.$productid" 2>/dev/null fi if [ "$uid" = "0" ] then if [ -f "/etc/$productid.conf" ] then mv "/etc/$productid".conf* "$CX_ROOT/etc" fi if [ -n "$HOME" ] then rmdir "$HOME/.$productid" 2>/dev/null fi fi fi # Create or upgrade the configuration file if [ -f "$CX_ROOT/.uninstalled" ] then rm -f "$CX_ROOT/.uninstalled" install_bottles="--install-bottles" else install_bottles="" fi "$CX_ROOT/lib/cxupgrade" --productid "$productid" --old-version "$oldver" $install_bottles if [ "$mode" = "install" -a "$uid" = "0" ] then chmod 0644 "$CX_ROOT/etc/$productid.conf" fi # If we change the context of our files, it helps with Fedora installs. # Note that we require both chcon and secon; Debian systems come with # chcon, but it doesn't work at all unless you've installed some extra # utilities. This is really a pretty crude screening test, so just in case, # we also just hide stderr output. FIXME: this is rather crude, # but I was unable to find a more sophisticated way to probe for contexts # being enabled, and we had at least one FC6 user getting errors type chcon >/dev/null 2>&1 has_chcon=$? type secon >/dev/null 2>&1 has_secon=$? if [ $has_chcon -eq 0 -a $has_secon -eq 0 ] then chcon -u system_u -r object_r -t bin_t "$CX_ROOT"/bin/* 2>/dev/null chcon -u system_u -r object_r -t lib_t "$CX_ROOT"/lib/* 2>/dev/null chcon -u system_u -r object_r -t lib_t "$CX_ROOT"/lib/tcl/* 2>/dev/null fi # Add/Update the menus and associations "$CX_ROOT/bin/cxmenu" --crossover --install "$CX_ROOT/bin/cxassoc" --crossover --install # Install client bottles if [ -n "$CX_CLIENTBOTTLES" ] then if [ "$uid" = "0" ] then scope="managed" else scope="private" fi saved_IFS="$IFS" IFS=":" for package in $CX_CLIENTBOTTLES do IFS="$save_IFS" "$CX_ROOT/bin/cxbottle" --restore "$package" --replace --scope $scope --removeall --install done IFS="$save_IFS" fi exit 0 070701000844d0000081a400000067000001f400000001490a139700000c12000000660000000700000000000000000000001200000000install/preremove#!/bin/sh # (c) Copyright 2003-2008. CodeWeavers, Inc. # To trigger logging, use a command of the form: # pkgadd/rm -v ... 2>&1 | tee pkg.log if echo $- | grep x >/dev/null then echo >&2 echo "***** `date`" >&2 echo "Starting: $0 $@" >&2 env >&2 CX_LOG="-" export CX_LOG fi CX_ROOT="$BASEDIR/$PKGINST" export CX_ROOT if [ -f "$CX_ROOT/.productid" ] then productid=`cat "$CX_ROOT/.productid"` else productid="cxoffice" fi CX_PURGE=`cat "$CX_ROOT/cxpurge" 2>/dev/null` export CX_PURGE # This script expects CX_ROOT and productid to be set # Note: this script may also be called in case the installation is aborted real_product_id="cxoffice" if [ -z "$CX_PURGE" ] then CX_PURGE="all" fi if [ "$CX_PURGE" = "desktopdata" -o "$CX_PURGE" = "all" ] then uid=`id | sed -e 's/^uid=\([0-9]*\)(.*/\1/'` if [ "$uid" = "0" ] then scopes="managed private" else scopes="private" fi for scope in $scopes do if [ -x "$CX_ROOT/bin/cxmenu" ] then "$CX_ROOT/bin/cxmenu" --removeall --pattern "$productid-" --scope $scope --ignorelist "" fi if [ -x "$CX_ROOT/bin/cxassoc" ] then "$CX_ROOT/bin/cxassoc" --removeall --pattern "$productid-" --scope $scope --ignorelist "" fi if [ -x "$CX_ROOT/bin/cxnsplugin" ] then "$CX_ROOT/bin/cxnsplugin" --removeall --pattern "$productid-" --scope $scope fi done rm -f "$CX_ROOT"/share/icons/*.png fi # We must delete any file generated at runtime before pkgrm # tries to delete the installed files and directories. # This script expects CX_ROOT and productid to be set if [ -z "$CX_PURGE" ] then CX_PURGE="all" fi if [ "$CX_PURGE" = "desktopdata" -o "$CX_PURGE" = "all" ] then rm -rf "$CX_ROOT"/support/desktopdata fi if [ "$CX_PURGE" = "all" ] then rm -f "$CX_ROOT/etc/$productid".conf* rm -f "$CX_ROOT"/support/default rm -rf "$CX_ROOT"/support/installers rm -f "$CX_ROOT"/.uninstalled # Delete bottles. For OEM bottles, 'cxbottle.conf' may have already been # removed by the RPM or Debian packaging system. But these are managed # bottles so we can check for 'files' instead. for landmark in cxbottle.conf files do ls -d "$CX_ROOT"/support/*/$landmark 2>/dev/null | while read bottlefile do dir=`dirname "$bottlefile"` rm -rf "$dir" done done rmdir "$CX_ROOT"/support 2>/dev/null rm -f "$CX_ROOT/.productid" if [ -n "$HOME" ] then # Delete dotdir but check ownership first in case # $HOME does not belong to us dotdir="$HOME/.$productid" if [ -d "$dotdir" ] then uid=`id | sed -e 's/^uid=\([0-9]*\)(.*/\1/'` owner=`ls -lnd "$dotdir" | sed -e 's/^[^ ]* *[^ ]* *\([0-9]*\) *.*$/\1/'` if [ "$owner" = "$uid" ] then rm -rf "$dotdir" fi fi fi else touch "$CX_ROOT/.uninstalled" fi rm -f "$CX_ROOT/cxpurge" exit 0 07070100082d03000041ed00000067000001f400000003490a20ee00000000000000660000000700000000000000000000000600000000reloc07070100082d04000041ed00000067000001f400000006490a20f600000000000000660000000700000000000000000000000f00000000reloc/$PKGINST07070100082d05000081a400000067000001f400000001490a20d60000145a000000660000000700000000000000000000001600000000reloc/$PKGINST/README CrossOver Solaris Professional Readme Version 7.1.1 August 15, 2008 This file provides basic installation information, procedures for reporting bugs, a list of known problems, and instructions to completely uninstall CrossOver. BASIC INSTALLATION AND TESTING INSTRUCTIONS: -------------------------------------------- 1. Select either root install (multi user) or regular user install (suggested) This version of CrossOver can either be installed in your own account, and then only you can use it, or installed as root which will allow anyone on the computer to use it. To install as root, simply start the installer as the 'root' user. To install as a regular user, start the installer as that user. Note that when installing CrossOver as root, you must make sure that you have licenses for all the users that will be using CrossOver. Contact us for multi-user and site licenses. From now on we will assume that CrossOver was installed in /opt/cxoffice. If you are installing it in your account, substitute /opt/cxoffice with $HOME/cxoffice in the paths below. Substitute the paths similarly if you installed CrossOver in a non-default location. The installation instructions for multi-user and single-user are otherwise identical, except where noted. 2. Launch the installer You should be able to do this simply by invoking 'sh install-crossover-pro-7.1.1.sh' from the downloaded file or base directory of the CDROM. 3. Run the installer You should be able to follow the basic installation instructions, accepting the defaults as they appear. At the end of the installation process, click on "Install Windows Software" to add your first Windows program. 4. Install Windows Software The CrossOver installation wizard will now run. For future reference, you should be able to start this by choosing the 'CrossOver' menu choice in your KDE or Gnome 'Favorites' section and choosing 'Install Windows Software'. You can also launch this from the command line by running /opt/cxoffice/bin/cxinstallwizard. 4A. Example Installation - Microsoft Office To help illustrate the process, we'll presume you're installing Microsoft Office XP. The opening screen of the setup utility should give you an obvious choice to select and install Microsoft Office. NOTE: It is okay to install to 'C:\Program Files\...'. Remember, you are installing into a simulated Windows environment. When done, Microsoft Office is installed into your environment. KNOWN ISSUE: If you are installing an Upgrade version of Office, it can be very hard to complete the update validation process. The key trick is to have a separate window where you log in as root and forcefully (umount -l) eject the CD while the Office XP installer is running. In that way, you can insert a different CD. 4B. Example Installation - Testing Note that you should perform this test as a regular user, even if you are performing the installation as root. We recommend that your first test be with Word. You should be able to start Word from your Gnome or KDE menu. Alternately you can start Word from the command line by running /opt/cxoffice/bin/winword. You should also now be able to open and edit your Word documents. Enjoy! DOCUMENTATION: -------------- If you are running KDE or Gnome, you should have a link to the documentation in your menu. Otherwise, you can find the manual at: /opt/cxoffice/doc/index.html If you installed from the CD, there are also printable PDF files included in the documentation directory, /opt/cxoffice/doc KNOWN ISSUES: ------------- This version of CrossOver Solaris Professional should do the following: Install easily. Easily allow you to pick and choose any of the applications on the CrossOver Setup menu and easily and cleanly install them. Be generally productive with the installed applications. Not all applications work perfectly; for a list of updated issues and workaround, please visit our compatibility center at http://c4.codeweavers.com. UNINSTALLING CROSSOVER ---------------------- It is best to use the CrossOver uninstaller because it will remove menu entries and other items created by CrossOver. To do so, either select the 'Uninstall' menu entry, or run the following on the command line: /opt/cxoffice/bin/cxuninstall You can then safely remove the CrossOver directory, if still present. For example: rm -rf /opt/cxoffice SUPPORT: -------- For support, please visit our CrossOver Support pages, which can be found at http://www.codeweavers.com/support/ To send a trouble ticket to use, please be careful to log in with the email you used to place your order. We use that email to insure quality support for our customers. Thank you for choosing CrossOver. -The CodeWeavers CrossOver Team 07070100082d06000041ed00000067000001f400000002490a20ee00000000000000660000000700000000000000000000001300000000reloc/$PKGINST/bin07070100082d07000081ed00000067000001f400000001490a20d60000c090000000660000000700000000000000000000001b00000000reloc/$PKGINST/bin/cxassoc#!/usr/bin/perl -w # (c) Copyright 2005-2008. CodeWeavers, Inc. use strict; my @desktop_plugins=("CXAssocWindows", "CXAssocCheck", "CXAssocMailcap", "CXAssocDebian", "CXAssocCDE", "CXAssocKDE", "CXAssocMandrake", "CXAssocGnome", "CXAssocKDEXDG", "CXAssocXDG", "CXAssocMacOSX"); my %std_verb_names=( "" => "&Open", "edit" => "&Edit", "open" => "&Open", "opennew" => "&Open", "play" => "&Play", "preview" => "&Preview", "print" => "&Print" ); # Portable which(1) implementation sub cxwhich($$;$) { my ($dirs, $app, $noexec)=@_; if ($app =~ /^\//) { return $app if ((-x $app or $noexec) and -f $app); } elsif ($app =~ /\//) { require Cwd; my $path=Cwd::cwd() . "/$app"; return $path if ((-x $path or $noexec) and -f $path); } else { foreach my $dir (split /:/, $dirs) { return "$dir/$app" if ($dir ne "" and (-x "$dir/$app" or $noexec) and -f "$dir/$app"); } } return undef; } # Fast dirname() implementation sub _cxdirname($) { my ($path)=@_; return undef if (!defined $path); return "." if ($path !~ s!/+[^/]+/*$!!s); return "/" if ($path eq ""); return $path; } # Locate where CrossOver is installed by looking for the directory # where this this script is located, unwinding symlinks on the way sub locate_cx_root() { if (!defined $ENV{CX_ROOT}) { my $argv0=cxwhich($ENV{PATH},$0); $argv0=$0 if (!defined $argv0); if ($argv0 !~ m+^/+) { require Cwd; $argv0=Cwd::cwd() . "/$argv0"; } my $dir=_cxdirname($argv0); while (!-x "$dir/cxmenu" or !-f "$dir/cxmenu") { last if (!-l $argv0); $argv0=readlink($argv0); $argv0="$dir/$argv0" if ($argv0 !~ m+^/+); $dir=_cxdirname($argv0); } $dir =~ s%(/\.)*$%%; $dir =~ s%(/\./(\./)*)%/%; $ENV{CX_ROOT}=_cxdirname($dir); } if (!-x "$ENV{CX_ROOT}/bin/cxmenu" or !-f "$ENV{CX_ROOT}/bin/cxmenu") { my $name0=$0; $name0 =~ s+^.*/++; print STDERR "$name0:error: could not find CrossOver in '$ENV{CX_ROOT}'\n"; exit 1; } return $ENV{CX_ROOT}; } BEGIN { unshift @INC, locate_cx_root() . "/lib/perl"; } use CXLog; use CXUtils; use CXAssoc; my $filters; sub get_filter_list($$) { my ($cxassoc, $filter)=@_; $filter=lc($filter || ""); my $filter_list=$filters->{$filter}; if (!defined $filter_list) { my @list; if ($filter eq "") { @list=$cxassoc->get_section_names(); } else { @list=split /:+/, $filter; } $filters->{$filter}=$filter_list=\@list; } return $filter_list; } sub get_install_mode($$$) { my ($eassocid, $hash_mode, $default_mode)=@_; foreach my $mode ("default", "alternative", "mime", "ignore") { if (defined $hash_mode->{$mode} and $eassocid =~ /^(?:$hash_mode->{$mode})$/i) { return $mode; } } return $default_mode; } sub update_field($$$) { my ($section, $name, $value)=@_; $value||=""; my $oldval=$section->get($name) || ""; return 0 if ($oldval eq $value); if ($value eq "") { $section->remove($name); } else { $section->set($name, $value); } return 1; } sub normalize_eassocid($) { my ($eassocid)=@_; $eassocid =~ tr/A-Z/a-z/; return map { mangle_string(demangle_string($_)) } split "/", $eassocid; } sub valid_mimetype($) { my ($mimetype)=@_; my @parts=split m%/%, $mimetype; return (@parts == 2); } sub maybe_capitalize($) { my ($str)=@_; return ucfirst($str) if ($str !~ /[A-Z]/); return $str; } sub build_assoc_db($) { my ($cxassoc)=@_; my %mode_to_score=( default => 0, alternative => 1, mime => 2, ignore => 3 ); my ($massocs, $eassocs, $winmimes, $winexts); foreach my $eassocid ($cxassoc->get_section_names()) { my $section=$cxassoc->get_section($eassocid); my @parts=split "/", $eassocid; if (@parts > 3) { cxwarn("too many parts in '$eassocid'\n"); next; } my $ext=demangle_string($parts[0] || ""); if (!$ext or $ext !~ s/^\.// or $ext =~ m%[/\\]%) { cxwarn("invalid extension for association '$eassocid'\n"); next; } # Don't demangle $appid and $verb just yet my $appid=$parts[1] || ""; my $verb=$parts[2] || ""; cxlog("$eassocid -> [$ext | $appid | $verb]\n"); # Validate and normalise MimeType, Mode and Type my $mimetype=$section->get("MimeType") || ""; if ($mimetype ne "" and !valid_mimetype($mimetype)) { cxwarn("invalid MIME type '$mimetype' for association '$eassocid'\n"); next; } my $mode=$section->get("Mode") || "ignore"; $mode =~ tr/A-Z/a-z/; $mode =~ s/^alternate$/alternative/i; if ($mode !~ /^(?:default|alternative|mime|ignore)$/) { cxwarn("unknown Mode '$mode' for '$eassocid'\n"); $mode="ignore"; } my $type=$section->get("Type") || "raw"; $type =~ tr/A-Z/a-z/; # Create the EAssoc object my $eassoc={ id => $eassocid, ext => $ext, appid => $appid, verb => $verb, verbname => $section->get("VerbName") || $std_verb_names{$verb} || maybe_capitalize(demangle_string($verb)), mode => $mode, # Stored here so we can later populate the MAssoc and Mime objects description => $section->get("Description") || "", infotip => $section->get("InfoTip") || "", appname => $section->get("AppName") || "", type => $type, icon => expand_string($section->get("Icon") || ""), command => expand_string($section->get("Command") || "") }; $eassocs->{$eassocid}=$eassoc; # Then the 'Extension MIME type' my $emimetype="application/x-crossover-$ext"; my $emime=$winmimes->{$emimetype}; if (!defined $emime) { $emime={ mimetype => $emimetype, exts => { $ext => 1 }, real => 0 }; $winmimes->{$emimetype}=$emime; } $emime->{eassocs}->{$eassocid}=$eassoc; $eassoc->{emime}=$emime; # The real MIME type if any my $mime; if ($mimetype) { $mime=$winmimes->{$mimetype}; if (!defined $mime) { $mime={ mimetype => $mimetype, real => 1 }; $winmimes->{$mimetype}=$mime; } $mime->{exts}->{$ext}=1; $mime->{eassocs}->{$eassocid}=$eassoc; } # Link the extension to the corresponding MIME type $winexts->{$ext}=$mime || $emime; # And finally the MAssoc object my $massocid=mangle_string($mimetype || $emimetype); $massocid.=":$appid" if ($appid or $verb); $massocid.=":$verb" if ($verb); my $massoc=$massocs->{$massocid}; if (!defined $massoc) { $massoc={ id => $massocid, appid => $appid, verb => $verb, mime => $mime || $emime }; $massocs->{$massocid}=$massoc; } $massoc->{eassocs}->{$ext}=$eassoc; $eassoc->{massoc}=$massoc; # Choose a reference EAssoc from which we can compute the type, # command, etc. This is the EAssoc with the 'highest' install mode # i.e. the lowest score if (!$massoc->{ref_eassoc} or $mode_to_score{$mode} < $mode_to_score{$massoc->{mode}}) { $massoc->{ref_eassoc}=$eassoc; $massoc->{mode}=$eassoc->{mode}; } } foreach my $massoc (values %$massocs) { my $ref_eassoc=$massoc->{ref_eassoc}; $massoc->{type}=$ref_eassoc->{type}; $massoc->{command}=$ref_eassoc->{command}; cxlog(" $massoc->{id} | $massoc->{type} | $massoc->{mode}\n"); foreach my $eassoc (values %{$massoc->{eassocs}}) { # Verify that the options of the current eassoc # are compatible with the first one. if ($eassoc->{type} ne $massoc->{type}) { cxwarn("ignoring '$eassoc->{id}' because its type is incompatible with '$ref_eassoc->{id}'\n"); $eassoc->{mode}="ignore"; } if ($eassoc->{command} ne $massoc->{command}) { cxwarn("ignoring '$eassoc->{id}' because its command is incompatible with '$ref_eassoc->{id}'\n"); $eassoc->{mode}="ignore"; } } } return ($massocs, $eassocs, $winmimes, $winexts); } # Process command-line options my $opt_create; my $opt_delete; my $opt_delete_filter; my $opt_mode; my $opt_mode_filter; my $opt_query; my $opt_query_filter; my $opt_install; my $opt_install_filter; my $opt_uninstall; my $opt_uninstall_filter; my $opt_removeall; my $opt_sync; my $opt_sync_install_none; my $opt_sync_uninstall_none; my $opt_utf8; my $opt_bottle; my $opt_crossover; my $opt_conf; my $opt_tag; my $opt_pattern; my $opt_filter; my $opt_ignorelist; my $opt_mime; my $opt_description; my $opt_infotip; my $opt_appname; my $opt_verbname; my $opt_type; my $opt_icon; my $opt_command; my $opt_scope; my $opt_verbose; my $opt_help; require CXOpts; my $cxopts=CXOpts->new(); $cxopts->add_options(["create=s" => \$opt_create, "delete" => \$opt_delete, "delete-filter=s" => \$opt_delete_filter, "mode=s" => \$opt_mode, "mode-filter=s" => \$opt_mode_filter, "query" => \$opt_query, "query-filter=s" => \$opt_query_filter, "install" => \$opt_install, "install-filter=s" => \$opt_install_filter, "uninstall" => \$opt_uninstall, "uninstall-filter=s" => \$opt_uninstall_filter, "removeall!" => \$opt_removeall, "sync" => \$opt_sync, "sync-install-none" => \$opt_sync_install_none, "sync-uninstall-none" => \$opt_sync_uninstall_none, "utf8" => \$opt_utf8, "bottle=s" => \$opt_bottle, "crossover" => \$opt_crossover, "conf=s" => \$opt_conf, "tag=s" => \$opt_tag, "pattern=s" => \$opt_pattern, "filter=s" => \$opt_filter, "ignorelist=s" => \$opt_ignorelist, "mime=s" => \$opt_mime, "description=s" => \$opt_description, "infotip=s" => \$opt_infotip, "appname=s" => \$opt_appname, "verbname=s" => \$opt_verbname, "type=s" => \$opt_type, "icon=s" => \$opt_icon, "command=s" => \$opt_command, "scope=s" => \$opt_scope, "verbose!" => \$opt_verbose, "?|h|help" => \$opt_help ]); my $err=$cxopts->parse(); CXLog::fdopen(2) if ($opt_verbose); CXLog::set_channel_default("cxassoc", "1"); CXLog::close() if (!CXLog::is_channel_on("cxassoc")); # Validate the command line options my $usage; my $only_removeall; my ($default_mode, $hash_mode); if ($err) { cxerr("$err\n"); $usage=2; } elsif ($opt_help) { $usage=0; } else { if (!$opt_utf8) { # Re-encode the parameters to UTF-8 require CXRecode; $opt_create=CXRecode::from_sys("UTF-8", $opt_create); # $opt_(delete_|mode_|query_|install_|uninstall_)filter: # no need to recode the filter options because they are mangled $opt_description=CXRecode::from_sys("UTF-8", $opt_description); $opt_infotip=CXRecode::from_sys("UTF-8", $opt_infotip); $opt_appname=CXRecode::from_sys("UTF-8", $opt_appname); $opt_verbname=CXRecode::from_sys("UTF-8", $opt_verbname); $opt_command=CXRecode::from_sys("UTF-8", $opt_command); $opt_icon=CXRecode::from_sys("UTF-8", $opt_icon); } if ($opt_crossover) { $opt_conf="$ENV{CX_ROOT}/share/crossover/data/crossover.assoc" if (!defined $opt_conf); $opt_tag=CXUtils::get_product_id() . "-0" if (!defined $opt_tag); $opt_scope="managed"; $opt_ignorelist="+CXAssocMailcap:CXAssocDebian" if (!defined $opt_ignorelist); delete $ENV{CX_BOTTLE}; } my $cmd_count=0; $cmd_count++ if (defined $opt_query); $cmd_count++ if (defined $opt_install); $cmd_count++ if (defined $opt_uninstall); $cmd_count++ if (defined $opt_removeall); $cmd_count++ if (defined $opt_create); $cmd_count++ if (defined $opt_delete); $cmd_count++ if (defined $opt_mode and !$opt_sync); $cmd_count++ if (defined $opt_sync); $only_removeall=1 if ($cmd_count == 1 and defined $opt_removeall); if ($cmd_count == 0) { cxerr("you must specify the operation to perform\n"); $usage=2; } elsif ($opt_sync) { if ($opt_sync_uninstall_none and ($opt_uninstall or $opt_removeall)) { cxerr("--sync-uninstall-none is incompatible with --uninstall and --removeall\n"); $usage=2; } if ($opt_sync_install_none and $opt_install) { cxerr("--sync-install-none is incompatible with --install\n"); $usage=2; } } elsif ($opt_sync_install_none or $opt_sync_uninstall_none) { cxerr("--sync-install-none and --sync-uninstall-none can only be used with --sync\n"); $usage=2; } if (($opt_create or $opt_sync) and (defined $opt_filter or defined $opt_delete_filter or defined $opt_mode_filter or defined $opt_query_filter or defined $opt_install_filter or defined $opt_uninstall_filter)) { cxerr("--create and --sync are incompatible with the --filter options\n"); $usage=2; } if (defined $opt_mode) { # Prepare and check the $opt_mode specification foreach my $mode_spec (split /;+/, $opt_mode) { $mode_spec =~ s/^alternate\b/alternative/i; if ($mode_spec !~ /^(default|alternative|mime|ignore)(?:=(.*))?$/i) { cxerr("unknown install mode specification '$mode_spec'\n"); $usage=2; last; } my ($mode, $regexp_list)=($1, $2); if (defined $regexp_list) { foreach my $regexp (split /:+/, $regexp_list) { next if ($regexp eq ""); if (!defined $hash_mode->{$mode}) { $hash_mode->{$mode}=$regexp; } else { $hash_mode->{$mode}.="|$regexp"; } } } elsif (defined $default_mode) { cxerr("'$mode_spec': the default mode can only be set once\n"); $usage=2; last; } else { $default_mode=$mode; } } if (CXLog::is_on()) { while (my ($mode, $regexp)=each %$hash_mode) { cxlog("Install mode for ($regexp) -> $mode\n"); } if (defined $default_mode) { cxlog("Default install mode -> $default_mode\n"); } } } if (defined $opt_create) { $opt_type="raw" if (!$opt_type); $opt_type=~ tr/A-Z/a-z/; if ($opt_type !~ /^(?:raw|windows)$/) { cxerr("unknown association type '$opt_type'\n"); $usage=2; } } elsif (defined $opt_mime or defined $opt_description or defined $opt_infotip or defined $opt_appname or defined $opt_verbname or defined $opt_type or defined $opt_icon or defined $opt_command) { cxerr("--mime, --description, --infotip, --appname, --verbname, --type, --icon and --command options can only be used with --create\n"); $usage=2; } if (defined $opt_delete_filter and !defined $opt_delete) { cxerr("--delete-filter can only be used with --delete\n"); $usage=2; } if (defined $opt_mode_filter and !defined $opt_mode) { cxerr("--mode-filter can only be used with --mode\n"); $usage=2; } if (defined $opt_query_filter and !defined $opt_query) { cxerr("--query-filter can only be used with --query\n"); $usage=2; } if (defined $opt_install_filter and !defined $opt_install) { cxerr("--install-filter can only be used with --install\n"); $usage=2; } if (defined $opt_uninstall_filter and !defined $opt_uninstall) { cxerr("--uninstall-filter can only be used with --uninstall\n"); $usage=2; } if (defined $opt_filter) { if (!defined $opt_delete and !defined $opt_mode and !defined $opt_query and !defined $opt_install and !defined $opt_uninstall) { cxerr("--filter can only be used with --install, --mode, --query, --uninstall and --delete\n"); $usage=2; } if (defined $opt_delete_filter or defined $opt_mode_filter or defined $opt_query_filter or defined $opt_install_filter or defined $opt_uninstall_filter) { cxerr("--delete-filter, --mode-filter, --query-filter, --install-filter and --uninstall-filter are incompatible with --filter\n"); $usage=2; } else { $opt_delete_filter=$opt_mode_filter=$opt_query_filter=$opt_install_filter=$opt_uninstall_filter=$opt_filter; } } if (defined $opt_pattern and !defined $opt_removeall) { cxerr("--pattern can only be used with --removeall\n"); $usage=2; } if (defined $opt_scope) { $opt_scope=~ tr/A-Z/a-z/; if ($opt_scope !~ /^(?:managed|private)$/) { cxerr("unknown scope value '$opt_scope'\n"); $usage=2; } } elsif (defined $opt_conf or ($only_removeall and defined $opt_pattern)) { $opt_scope="private"; } } # Determine and check wineprefix my $cxconfig; if (!defined $usage) { require CXBottle; $cxconfig=CXBottle::get_crossover_config(); $ENV{CX_BOTTLE}=$opt_bottle if (defined $opt_bottle); $ENV{CX_BOTTLE}="default" if (!defined $ENV{CX_BOTTLE} and !defined $opt_conf and !($only_removeall and defined $opt_pattern)); if (defined $ENV{CX_BOTTLE}) { # Some desktop plugins need the WINEPREFIX my ($scope)=CXBottle::setup_bottle_wineprefix($opt_scope); if (defined $scope and !defined $opt_scope) { # Arbitrate between stub and managed bottles # if the scope was not specified explicitly ($scope)=CXBottle::bottle_stub2managed($scope); } $scope=undef if (!CXBottle::is_wineprefix_valid($ENV{WINEPREFIX})); if (defined $scope) { # Read the bottle configuration file and setup its environment CXBottle::setup_bottle_environment($cxconfig, $ENV{WINEPREFIX}); } else { cxerr($@); $usage=1; } $opt_scope=$scope; } else { # Delete WINEPREFIX in case it is set in the user's environment delete $ENV{WINEPREFIX}; } } # Print usage if (defined $usage) { my $name0=cxname0(); if ($usage) { cxerr("try '$name0 --help' for more information\n"); exit $usage; } print "Usage: $name0 --sync [--bottle BOTTLE] [--mode MODE] [--verbose]\n"; print "or $name0 [--bottle BOTTLE] [--crossover] [--install] [--uninstall]\n"; print " [--removeall [--pattern PATTERN]] [--mode MODE] [--help]\n"; print " [--create ASSOC [create-options]|--filter FILTER] [--delete]\n"; print " [advanced-options]\n"; print "\n"; print "Makes the Windows associations available to the native desktop environment\n"; print "and provides a command-line interface for managing these associations.\n"; print "\n"; print "Options:\n"; print " --sync Scans the bottle's associations and updates the association\n"; print " list accordingly. New associations will receive the mode\n"; print " specified by the --mode option and will be installed if\n"; print " appropriate. Obsolete associations will be uninstalled and\n"; print " deleted\n"; print " --sync-uninstall-none Instructs --sync not to uninstall and delete obsolete\n"; print " associations\n"; print " --sync-install-none Instructs --sync not to (re)install modified or new\n"; print " associations\n"; print " --bottle BOTTLE Use the specified bottle. If this option is not used,\n"; print " fallback to \$CX_BOTTLE and then to 'default'\n"; print " --crossover Sets the correct options for working on the CrossOver\n"; print " associations\n"; print " --mode MODE Sets the association install mode. The supported modes are:\n"; print " ignore - Ignore the association. See --install\n"; print " mime - Export the MIME type but not the association\n"; print " alternative - Export the MIME type and the association\n"; print " default - Export the MIME type and make this association\n"; print " the default one for this MIME type\n"; print " MODE can also be a semi-colon separated list of strings of the\n"; print " form 'MODE=REGEXP1:REGEXP2:...', where MODE is one of the above\n"; print " and applies to all associations matching the specified regular\n"; print " expressions. See the --create option for more details on how\n"; print " to identify an association\n"; print " --mode-filter Specifies the associations to set the mode on. See --filter\n"; print " --install Exports the associations so they can be used from the\n"; print " supported desktop environments (e.g. Gnome, KDE)\n"; print " This operation ignores associations that have their install\n"; print " mode set to 'ignore'\n"; print " --install-filter Specifies the associations to install. See --filter\n"; print " --uninstall Removes the associations from the desktop environments, even if\n"; print " their install mode is 'ignore'\n"; print " --uninstall-filter Specifies the associations to uninstall. See --filter\n"; print " --removeall Each bottle has a unique id which is used to tag its\n"; print " associations. This option uninstalls any association bearing\n"; print " the bottle's id\n"; print " --pattern PATTERN Specifies that --removeall should uninstall any\n"; print " association that bears an id matching the specified regular\n"; print " expression\n"; print " --help, -h Shows this help message\n"; print "\n"; print "Advanced options:\n"; print " --create ASSOC Creates the specified association. ASSOC must be a string of\n"; print " the form '.EXT/CLASS/VERB', where EXT is the file extension to\n"; print " associate to, CLASS is the Windows class, and VERB is the\n"; print " Windows association verb. If CLASS and VERB are empty they can\n"; print " be omitted\n"; print " --mime MIME The association's MIME type\n"; print " --description DESCRIPTION The MIME type's description\n"; print " --infotip INFOTIP The MIME type's infotip\n"; print " --appname APPNAME The application's name\n"; print " --verbname VERBNAME The verb's full name\n"; print " --type TYPE Either 'windows' for Windows associations, or 'raw' for\n"; print " arbitrary associations\n"; print " --icon ICONFILE Native path to the XPM icon file. Environment variables\n"; print " are allowed using the \${VAR} syntax\n"; print " --command COMMAND The command to run for this association. Environment\n"; print " variables are allowed using the \${VAR} syntax\n"; print " --filter FILTER Specifies the associations to operate on. FILTER is a\n"; print " colon-separated list of associations, where each association is\n"; print " identified by an ASSOC string in the format described in the\n"; print " --create option. By default the operations apply to all known\n"; print " associations\n"; print " --delete Deletes the associations. Note that this does not uninstall\n"; print " them\n"; print " --delete-filter Specifies the associations to delete. See --filter\n"; print " --query Outputs the list of supported association systems for eache\n"; print " install mod. Then, for each association and each install mode,\n"; print " display a list of the corresponding association systems\n"; print " --query-filter Specifies the associations to query. See --filter\n"; print " --ignorelist LIST Specifies a colon-separated list of association systems\n"; print " to ignore. If the list starts with a '+' then it is appended\n"; print " to the 'AssocIgnoreList' setting. Otherwise it overrides it\n"; print " --utf8 Specifies that the script parameters are in UTF-8, regardless of\n"; print " the default system encoding\n"; print " --conf FILE Specifies an alternative file containing the association list\n"; print " --tag TAG Specifies an alternative tag to be used for identifying the\n"; print " associations\n"; print " --scope SCOPE If set to managed and given administrative rights, the\n"; print " associations will be installed in a system-wide location.\n"; print " Otherwise they will be installed for use in the current account\n"; print " only. When operating on a bottle, this also specifies whether to\n"; print " look for a managed or a private bottle\n"; print " --verbose Output more information about what is going on\n"; exit 0; } # Determine the scope of the associations my $desktop_scope; if ($opt_scope eq "managed" and $> == 0) { $desktop_scope="managed"; # Make sure the associations are going to be world-readable umask(umask() & ~0055); } else { $desktop_scope="private"; } my $bottle_mode=$cxconfig->get("Bottle", "AssocMode") || ""; $bottle_mode =~ tr/A-Z/a-z/; $bottle_mode="ignore" if ($bottle_mode !~ /^(?:install|ignore)$/); if (defined $ENV{WINEPREFIX}) { require CXBottle; if (!$only_removeall and !CXBottle::update_bottle($cxconfig, $ENV{WINEPREFIX}, $opt_scope)) { cxerr("unable to update the '$ENV{CX_BOTTLE}' bottle\n"); exit 1; } $opt_conf="$ENV{WINEPREFIX}/cxassoc.conf" if (!defined $opt_conf); } require CXRWConfig; my $cxassoc=CXRWConfig->new($opt_conf) if (defined $opt_conf); if ($cxassoc) { # We cannot trust the cxassoc.conf section names because the raw mangled # form is not canonical. For instance '.'=='^2E'=='^2e'. # So before we can safely use eassocids in hashtables and comparisons we # must normalize them. foreach my $eassocid ($cxassoc->get_section_names()) { my $neassocid=join("/", normalize_eassocid($eassocid)); if ($eassocid ne $neassocid) { cxlog("renaming [$eassocid] section to [$neassocid]\n"); my $section=$cxassoc->rename_section($eassocid, $neassocid); # Now we may need to set VerbName in order to preserve the # eassocid's verb case my $verb=(split "/", $eassocid)[2] || ""; if ($verb =~ /[A-Z]/) { my $verbname=$section->get("VerbName") || ""; if ($verbname eq "") { $verbname=demangle_string($verb); my $nverb=demangle_string((split "/", $neassocid)[2] || ""); if ($verbname ne maybe_capitalize($nverb)) { $section->set("VerbName", $verbname); } } } } } } # Finally do the work my $rc=0; if ($opt_create) { $default_mode="default" if (!$default_mode); my $section=$cxassoc->append_section($opt_create); # Remove all the old fields so the old association is completely # overwritten $section->remove_all(); $section->set("MimeType", $opt_mime); $section->set("Description", $opt_description) if (defined $opt_description); $section->set("InfoTip", $opt_infotip) if (defined $opt_infotip); $section->set("AppName", $opt_appname) if (defined $opt_appname); $section->set("VerbName", $opt_verbname) if (defined $opt_verbname); $section->set("Type", $opt_type); $section->set("Command", $opt_command) if (defined $opt_command); $section->set("Icon", $opt_icon) if (defined $opt_icon); $section->set("Mode", get_install_mode($opt_create, $hash_mode, $default_mode)); # The other operations will work on this one association $opt_filter=$opt_create; } elsif ($opt_sync) { if (!defined $ENV{WINEPREFIX}) { cxerr("no bottle was specified for the --sync option\n"); exit 1; } my $icon_dir=CXAssoc::get_icon_dir(); if (!cxmkpath($icon_dir)) { cxwarn("unable to create the '$icon_dir' directory: $@\n"); } $default_mode="ignore" if (!$default_mode); my %to_delete; foreach my $eassocid ($cxassoc->get_section_names()) { my $type=$cxassoc->get($eassocid, "Type") || "raw"; $to_delete{$eassocid}=1 if ($type =~ /^windows$/i); } # Scan the Windows associations, updating cxassoc.conf my $start=CXLog::cxtime(); my $cmd=shquote_string("$ENV{CX_ROOT}/bin/wine") . " --no-convert --wl-app assocscan.exe --scan --icon-dir " . shquote_string($icon_dir) . " |"; require CXConfig; my $cxscan=CXConfig->new($cmd); cxlog("-> rc=$rc (took ", CXLog::cxtime()-$start, " seconds)\n"); if ($? != 0) { cxerr("an error occurred while scanning the Windows associations\n"); exit 1; } my (%icon_files, %to_uninstall, %to_install); my $extignorelist=$cxconfig->get("CrossOver", "ExtIgnoreList") || ""; $extignorelist =~ s/:+/|/g; foreach my $eassocid (sort $cxscan->get_section_names()) { my $scanned=$cxscan->get_section($eassocid); my $icon=$scanned->get("Icon"); if (defined $icon) { # Keep all the icons reported by assocscan, # otherwise it will have to recreate them my $basename=$icon; $basename =~ s/\.xpm$//; $icon_files{$icon}=1; $icon_files{"$basename.png"}=1; } if ($scanned->get("MimeOnly")) { # There's no association, just a MIME type. Ideally we'd still be # able to do something with it but not yet. So just keep the icon # so assocscan does not have to recreate it next time and then # just ignore this entry. cxlog("MIME-only entry '$eassocid' -> ignored\n"); next; } # Normalize the eassocid before using it my $neassocid=join("/", normalize_eassocid($eassocid)); cxlog("$neassocid\n"); if ($extignorelist ne "" and $neassocid =~ m%^\.(?:$extignorelist)(?:/.*)?$%) { cxlog(" -> ignored\n"); next; } my $mime=$scanned->get("MimeType") || ""; if ($mime ne "" and !valid_mimetype($mime)) { cxlog(" -> ignoring invalid MIME type $mime\n"); $mime=""; } my ($modified, $mode); my $section=$cxassoc->get_section($neassocid); if ($section) { delete $to_delete{$neassocid}; if (update_field($section, "MimeType", $mime)) { # We must uninstall this eassoc before its MIME type gets # changed in cxassoc.conf because after that we may not be # able to do it properly $to_uninstall{$neassocid}=1; $modified=1; } } else { $section=$cxassoc->append_section($neassocid); $mode=get_install_mode($neassocid, $hash_mode, $default_mode); $section->set("Mode", $mode); $section->set("MimeType", $mime); $modified=1; } $modified|=update_field($section, "Description", $scanned->get("Description")); $modified|=update_field($section, "InfoTip", $scanned->get("InfoTip")); $modified|=update_field($section, "AppName", $scanned->get("AppName")); my $str=$scanned->get("VerbName") || ""; my $nverb=(split "/", $neassocid)[2] || ""; if ($str ne "") { # Don't bother saving standard verb names $str="" if ($str eq ($std_verb_names{$nverb} || "")); } elsif ($nverb =~ /[a-z]/) { my $verb=demangle_string((split "/", $eassocid)[2] || ""); $nverb=demangle_string($nverb); $str=$verb if ($verb ne $nverb and $verb ne maybe_capitalize($nverb)); } $modified|=update_field($section, "VerbName", $str); $modified|=update_field($section, "Type", "Windows"); $section->remove("Command"); $modified|=update_field($section, "Icon", $icon); if ($modified and !$opt_install and !$opt_sync_install_none) { $mode=$section->get("Mode") || "ignore" if (!defined $mode); $to_install{$neassocid}=1 if ($mode ne "ignore"); } } # Delete obsolete associations. Do it now so they don't pollute the new # associations we are going to install (if any). foreach my $neassocid (keys %to_delete) { $cxassoc->remove_section($neassocid); } if ($bottle_mode eq "install") { if ($opt_uninstall) { # If told to uninstall the existing associations, then we must do # it using the old content of the cxassoc.conf file. That's # because associations are not independent from each other: # for instance modifying the MIME type of '.dot//' may have an # impact on the '.doc//' association. So because we have already # modified our in-memory copy of cxassoc.conf (as required to # install the new associations), we defer the uninstall task to a # separate 'cxassoc --uninstall' process which will use the, # as yet, unmodified cxassoc.conf file. $rc=1 if (cxsystem("$ENV{CX_ROOT}/bin/cxassoc", "--uninstall")); } elsif (!$opt_sync_uninstall_none and (%to_delete or %to_uninstall)) { if ((defined $opt_removeall and !$opt_removeall) or $opt_sync_install_none) { # We're told to not use --removeall, so as above we have to # do the uninstall in a separate process. map { $to_uninstall{$_}=1; } keys %to_delete; if (cxsystem("$ENV{CX_ROOT}/bin/cxassoc", "--uninstall", "--utf8", "--filter", join(":", keys %to_uninstall))) { $rc=1; } } else { # The fastest way to uninstall the obsolete or modified # associations is to remove them all as we can do it in this # process essentially for free. Then we must reinstall them # all which is almost free too. $opt_removeall=1; $opt_install=1; } } if (!$opt_install and %to_install) { $opt_install_filter=join(":", keys %to_install); $opt_install=1; } } # Delete obsolete icon files if (opendir(my $dh, $icon_dir)) { foreach my $dentry (readdir $dh) { if ($dentry =~ /\.(?:png|xpm)$/ and !$icon_files{$dentry}) { cxlog("Deleting '$dentry'\n"); if (!unlink("$icon_dir/$dentry")) { cxwarn("unable to delete '$dentry': $!\n"); } } } closedir($dh); } } elsif ($opt_mode) { foreach my $eassocid (@{get_filter_list($cxassoc, $opt_mode_filter)}) { my $section=$cxassoc->get_section($eassocid); if ($section) { my $mode=get_install_mode($eassocid, $hash_mode, $default_mode); cxlog("Set mode of '$eassocid' to $mode\n"); $section->set("Mode", $mode); } else { cxerr("association '$eassocid' not found\n"); $rc=1; } } } my @plugins; my ($gui_info, $eassocs); if ($opt_query or $opt_install or $opt_uninstall or $opt_removeall) { require CXBottle; $opt_tag=CXBottle::get_bottle_tag($cxconfig) if (!defined $opt_tag and defined $ENV{WINEPREFIX}); # Build a centralised repository of cxassoc options relevant to plugins my $cxoptions={ tag => $opt_tag, desktopdata => CXBottle::get_desktopdata_dir($desktop_scope, $opt_tag) }; # Setup the list of MIME types to ignore my $mimeignorelist=$cxconfig->get("CrossOver", "MIMEIgnoreList") || ""; map { $cxoptions->{mimeignorelist}->{$_}=1 } split /:+/, $mimeignorelist; # Setup the list of MIME type aliases my $section=$cxconfig->get_section("MIMEAliases"); if ($section) { my $mimealiases={}; while (my ($name, $value)=each %{$section->get_fields()}) { my $group=$mimealiases->{$name} || []; foreach my $mimetype ($name, split /;+/, $value) { next if (!$mimetype); if (!valid_mimetype($mimetype)) { cxwarn("invalid MIME type for '$name' alias list\n"); } elsif (!grep /^\Q$mimetype\E$/, @$group) { push @$group, $mimetype; $mimealiases->{$mimetype}=$group; } } # We rely on the alias list being sorted alphabetically @$group=sort @$group; cxlog("Alias group @$group\n"); } $cxoptions->{mimealiases}=$mimealiases; } # Build the list of Windows MIME types and associations if ($opt_install or $opt_uninstall or $opt_query) { ($cxoptions->{massocs}, $eassocs, $cxoptions->{winmimes}, $cxoptions->{winexts})=build_assoc_db($cxassoc); } # Grab the desktop configuration information my $locate_gui="$ENV{CX_ROOT}/bin/locate_gui.sh"; if (!-f $locate_gui) { cxerr("'$locate_gui' does not exist\n"); exit 1; } $locate_gui=shquote_string($locate_gui); foreach my $line (cxbackquote("$locate_gui --scope $desktop_scope --assoc", 1)) { chomp $line; $gui_info->{$1}=$2 if ($line =~ /^([^=]+)=(.*)$/); } # Setup the association-system blacklist my %ignorehash; if (!defined $opt_ignorelist or $opt_ignorelist =~ s/^[+]//) { my $ignorelist=$cxconfig->get("CrossOver","AssocIgnoreList"); if (!defined $ignorelist or $ignorelist =~ s/^[+]//) { map { $ignorehash{$_}=1; } split /:+/, ($gui_info->{desktop_assoc_ignore_list} || ""); } map { $ignorehash{$_}=1; } split /:+/, ($ignorelist || ""); } map { $ignorehash{$_}=1; } split /:+/, ($opt_ignorelist || ""); # These cannot be blacklisted delete $ignorehash{CXAssocWindows}; delete $ignorehash{CXAssocCheck}; # Load the desktop plugins foreach my $plugin (@desktop_plugins) { if ($ignorehash{$plugin}) { cxlog("Ignoring association plugin '$plugin'\n"); next; } eval "use $plugin;"; if ($@) { cxwarn("unable to load '$plugin', ignoring it\n"); cxlog("$@\n"); next; } foreach my $instance ($plugin->detect($cxoptions, $cxconfig, $gui_info)) { my $id=$instance->id(); if ($ignorehash{$id}) { cxlog("Ignoring association system '$id'\n"); } else { cxlog("Registering association system '$id'\n"); push @plugins, $instance; } } } } if (($opt_install or $opt_uninstall or $opt_removeall) and !defined $opt_install_filter and !defined $opt_uninstall_filter and defined $ENV{WINEPREFIX}) { my $mode=($opt_install ? "install" : "ignore"); if ($mode ne $bottle_mode) { my $cxbottle=CXRWConfig->new("$ENV{WINEPREFIX}/cxbottle.conf"); $cxbottle->set("Bottle", "AssocMode", $mode); if (!$cxbottle->save()) { cxerr("unable to save '$ENV{WINEPREFIX}/cxbottle.conf': $!\n"); $rc=1; } } } if ($opt_removeall) { my $start=CXLog::cxtime(); $opt_pattern="$opt_tag\$" if (!defined $opt_pattern); foreach my $plugin (@plugins) { if (CXLog::is_on()) { cxlog("** Removeall '$opt_pattern' from ", $plugin->id(), "\n"); } my $r=$plugin->removeall($opt_pattern); if ($r <= 0) { $rc=1; last if ($r < 0); } } cxlog("-> Removeall took ", CXLog::cxtime()-$start, " seconds\n"); } if ($opt_uninstall) { my $start=CXLog::cxtime(); my %done; foreach my $eassocid (@{get_filter_list($cxassoc, $opt_uninstall_filter)}) { my $massoc=$eassocs->{$eassocid}->{massoc}; next if (!$massoc or $done{$massoc->{id}}); $done{$massoc->{id}}=1; foreach my $plugin (@plugins) { if (CXLog::is_on()) { cxlog("** Uninstalling '$eassocid' from ", $plugin->id(), "\n"); } my $r=$plugin->uninstall($massoc); if ($r <= 0) { $rc=1; last if ($r < 0); } } } cxlog("-> Uninstall took ", CXLog::cxtime()-$start, " seconds\n"); } if ($opt_install) { my $start=CXLog::cxtime(); my %done; foreach my $eassocid (@{get_filter_list($cxassoc, $opt_install_filter)}) { my $massoc=$eassocs->{$eassocid}->{massoc}; next if (!$massoc or $done{$massoc->{id}}); $done{$massoc->{id}}=1; next if ($massoc->{mode} eq "ignore"); # Perform the preinstall step foreach my $plugin (@plugins) { if (CXLog::is_on()) { cxlog("** Preinstall step for '$eassocid' in ", $plugin->id(), "\n"); } my $r=$plugin->preinstall($massoc); if ($r <= 0) { $rc=1; last if ($r < 0); } cxlog("all_exts=", join(" ", sort keys %{$massoc->{all_exts}}), "\n"); } # Proceed to the installation foreach my $plugin (@plugins) { if (CXLog::is_on()) { cxlog("** Installing '$eassocid' to ", $plugin->id(), "\n"); } my $r=$plugin->install($massoc); if ($r <= 0) { $rc=1; last if ($r < 0); } } } cxlog("-> Install took ", CXLog::cxtime()-$start, " seconds\n"); } if ($opt_query) { my $start=CXLog::cxtime(); my $status_lists; foreach my $plugin (@plugins) { my $r=$plugin->query(undef); if ($r eq "-1") { $rc=1; last; } foreach my $status ("default", "alternative", "mime", "partial") { if ($r->{$status}) { push @{$status_lists->{$status}}, $r->{$status}; } } } print "[.all]\n"; foreach my $status ("default", "alternative", "mime", "partial") { my $list=$status_lists->{$status} || []; print "$status=", join(":", @$list), "\n"; } my %done; foreach my $eassocid (@{get_filter_list($cxassoc, $opt_query_filter)}) { my $massoc=$eassocs->{$eassocid}->{massoc}; $status_lists=$massoc ? $done{$massoc->{id}} : {}; if (!$status_lists) { $status_lists={}; foreach my $plugin (@plugins) { if (CXLog::is_on()) { cxlog("** Querying '$eassocid' in ", $plugin->id(), "\n"); } my $r=$plugin->query($massoc); cxlog($plugin->id(), " returned ", $r, "\n"); if ($r eq "-1") { $rc=1; last; } if ($r =~ /^(?:default|alternative|mime|partial)$/) { push @{$status_lists->{$r}}, $plugin->id(); } } $done{$massoc->{id}}=$status_lists; } print "[$eassocid]\n"; foreach my $status ("default", "alternative", "mime", "partial") { my $list=$status_lists->{$status} || []; print "$status=", join(":", @$list), "\n"; } } cxlog("-> Query took ", CXLog::cxtime()-$start, " seconds\n"); } if ($opt_delete) { my %use_counts; foreach my $eassocid ($cxassoc->get_section_names()) { my $icon=$cxassoc->get($eassocid, "Icon") || ""; next if ($icon eq "" or $icon =~ m%^/%); if (!defined $use_counts{$icon}) { $use_counts{$icon}=1; } else { $use_counts{$icon}++; } } foreach my $eassocid (@{get_filter_list($cxassoc, $opt_delete_filter)}) { cxlog("Deleting association '$eassocid'\n"); my $icon=$cxassoc->get($eassocid, "Icon") || ""; if ($icon ne "" and $icon !~ m%^/%) { $use_counts{$icon}--; if (!$use_counts{$icon}) { $icon=CXAssoc::get_icon($icon); if (-f $icon and !unlink $icon) { cxwarn("unable to delete '$icon': $!\n"); } $icon=~ s/\.xpm$/.png/; if (-f $icon and !unlink $icon) { cxwarn("unable to delete '$icon': $!\n"); } } } $cxassoc->remove_section($eassocid); } if (defined $ENV{WINEPREFIX}) { CXUtils::garbage_collect_subdirs($ENV{WINEPREFIX}, "/windata/Associations", 0); } } if (defined $cxassoc and !$cxassoc->save()) { cxerr("unable to save '$opt_conf': $!\n"); $rc=1; } # Let the desktop plugins finish their work if (@plugins) { my $start=CXLog::cxtime(); foreach my $plugin (@plugins) { if (CXLog::is_on()) { cxlog("** Finalizing ", $plugin->id(), "\n"); } $plugin->finalize(); } cxlog("-> Finalization took ", CXLog::cxtime()-$start, " seconds\n"); } exit $rc; 07070100082d08000081ed00000067000001f400000001490a20d700001962000000660000000700000000000000000000001c00000000reloc/$PKGINST/bin/cxavscan#!/usr/bin/perl -w # (c) Copyright 2006-2008. CodeWeavers, Inc. use strict; # Portable which(1) implementation sub cxwhich($$;$) { my ($dirs, $app, $noexec)=@_; if ($app =~ /^\//) { return $app if ((-x $app or $noexec) and -f $app); } elsif ($app =~ /\//) { require Cwd; my $path=Cwd::cwd() . "/$app"; return $path if ((-x $path or $noexec) and -f $path); } else { foreach my $dir (split /:/, $dirs) { return "$dir/$app" if ($dir ne "" and (-x "$dir/$app" or $noexec) and -f "$dir/$app"); } } return undef; } # Fast dirname() implementation sub _cxdirname($) { my ($path)=@_; return undef if (!defined $path); return "." if ($path !~ s!/+[^/]+/*$!!s); return "/" if ($path eq ""); return $path; } # Locate where CrossOver is installed by looking for the directory # where this this script is located, unwinding symlinks on the way sub locate_cx_root() { if (!defined $ENV{CX_ROOT}) { my $argv0=cxwhich($ENV{PATH},$0); $argv0=$0 if (!defined $argv0); if ($argv0 !~ m+^/+) { require Cwd; $argv0=Cwd::cwd() . "/$argv0"; } my $dir=_cxdirname($argv0); while (!-x "$dir/cxmenu" or !-f "$dir/cxmenu") { last if (!-l $argv0); $argv0=readlink($argv0); $argv0="$dir/$argv0" if ($argv0 !~ m+^/+); $dir=_cxdirname($argv0); } $dir =~ s%(/\.)*$%%; $dir =~ s%(/\./(\./)*)%/%; $ENV{CX_ROOT}=_cxdirname($dir); } if (!-x "$ENV{CX_ROOT}/bin/cxmenu" or !-f "$ENV{CX_ROOT}/bin/cxmenu") { my $name0=$0; $name0 =~ s+^.*/++; print STDERR "$name0:error: could not find CrossOver in '$ENV{CX_ROOT}'\n"; exit 1; } return $ENV{CX_ROOT}; } BEGIN { unshift @INC, locate_cx_root() . "/lib/perl"; } use CXLog; use CXUtils; # Process command-line options my $opt_quiet; my $opt_verbose=1 if (defined $ENV{CX_LOG}); my $opt_help; require CXOpts; my $cxopts=CXOpts->new(["stop_on_unknown","stop_on_non_option"]); $cxopts->add_options(["quiet!" => \$opt_quiet, "verbose!" => \$opt_verbose, "?|h|help" => \$opt_help ]); my $err=$cxopts->parse(); CXLog::fdopen(2) if ($opt_verbose); # Validate the command line options my $usage; if ($err) { cxerr("$err\n"); $usage=2; } elsif ($opt_help) { $usage=0; } elsif (!@ARGV) { cxerr("you must specify the file to scan\n"); $usage=2; } # Print usage if (defined $usage) { my $name0=cxname0(); if ($usage) { cxerr("try '$name0 --help' for more information\n"); exit $usage; } print "Usage: $name0 [--help] [--quiet] [--verbose] FILE\n"; print "\n"; print "Invokes a native anti-virus tool to scan the specified file for Windows viruses.\n"; print "\n"; print "Options:\n"; print " FILE The file to scan\n"; print " --quiet Don't display the 'Scanning...' message\n"; print " --verbose Print more information about what is going on\n"; print " --help, -h Shows this help message\n"; print "\n"; print "The exit code is 0 if the file contains no virus, 1 if it is infected, 2 for usage errors, and 3 if no anti-virus tool is available.\n"; exit 0; } my $pid; if (!$opt_quiet and defined $ENV{DISPLAY}) { $pid=fork(); if ($pid==0) { # Don't pop up the 'please wait' dialog immediately as it slows things # down. With luck it will all be finished before we start it. sleep(3); # Child code cxexec("$ENV{CX_ROOT}/bin/cxtcl", "utils/cxwait.itcl", "Scanning for viruses"); exit 1; } } # Import the CrossOver settings my $productid=CXUtils::get_product_id(); require CXConfig; my $cxconfig=CXConfig->new("$ENV{CX_ROOT}/etc/$productid.conf", "$ENV{HOME}/.$productid/$productid.conf"); my $scanner=$cxconfig->get("CrossOver", "AntiVirusCommand"); my ($clean, $match); if (!$scanner) { $scanner=cxwhich($ENV{PATH}, "clamdscan"); if (defined $scanner) { my $cmd=join(" ", shquote_string($scanner), "--no-summary", (map { shquote_string($_) } @ARGV), "2>&1"); my $output=cxbackquote($cmd); if ($? == 0) { # No virus found kill(15, $pid) if (defined $pid); exit 0; } elsif ($? == 256) { # Found a virus print $output; kill(15, $pid) if (defined $pid); exit 1; } # Else clamdscan did not work } my @known_avs=( ["clamscan --no-summary --", "0", "1"], # Clam AntiVirus ["avastcmd", "[02]", "[13]"], # Avast Anti-Virus ["avgscan", "0", "[4567]"], # AVG Anti-Virus ["uvscan --exit-on-error", "(?:0|13)", "[cd]"], # McAfee LinuxShield ["fpscan --adware", "0", ".?[1235679abdef]"], # F-Prot AntiVirus ["antivir", "0", "[123]"], # AntiVir Workstation ["sweep --", "(?:0|14)", "(?:3|18)"] # Sophos Anti-Virus ); foreach my $av (@known_avs) { my ($candidate, $c, $m)=@$av; my @cmd=split / /, $candidate; $scanner=cxwhich($ENV{PATH}, shift @cmd); if ($scanner) { $scanner=join(" ", shquote_string($scanner), @cmd); ($clean, $match)=($c, $m); last; } } } else { $clean=$cxconfig->get("CrossOver", "AntiVirusClean"); $clean="0" if (!defined $clean); $match=$cxconfig->get("CrossOver", "AntiVirusMatch"); $match="1" if (!defined $match); } if (!$scanner) { cxlog("Found no anti-virus tool\n"); kill(15, $pid) if (defined $pid); exit 3; } my $cmd=join(" ", $scanner, (map { shquote_string($_) } @ARGV)); my $output=cxbackquote($cmd); kill(15, $pid) if (defined $pid); if (($? & 0xff) == 0) { my $rc=sprintf("%x", $? >> 8); if ($rc =~ /^$clean$/i) { # No virus found or they got all cleaned exit 0; } if ($rc =~ /^$match$/i) { # Found a virus print $output; exit 1; } } # The virus scanner malfunctionned print $output; printf("\%s: scanner exit code was 0x\%x\n", cxname0(), $?); exit 2; 07070100082d09000081ed00000067000001f400000001490a20ec0000b1e8000000660000000700000000000000000000001c00000000reloc/$PKGINST/bin/cxbottle#!/usr/bin/perl -w # (c) Copyright 2005-2008. CodeWeavers, Inc. use strict; # Portable which(1) implementation sub cxwhich($$;$) { my ($dirs, $app, $noexec)=@_; if ($app =~ /^\//) { return $app if ((-x $app or $noexec) and -f $app); } elsif ($app =~ /\//) { require Cwd; my $path=Cwd::cwd() . "/$app"; return $path if ((-x $path or $noexec) and -f $path); } else { foreach my $dir (split /:/, $dirs) { return "$dir/$app" if ($dir ne "" and (-x "$dir/$app" or $noexec) and -f "$dir/$app"); } } return undef; } # Fast dirname() implementation sub _cxdirname($) { my ($path)=@_; return undef if (!defined $path); return "." if ($path !~ s!/+[^/]+/*$!!s); return "/" if ($path eq ""); return $path; } # Locate where CrossOver is installed by looking for the directory # where this this script is located, unwinding symlinks on the way sub locate_cx_root() { if (!defined $ENV{CX_ROOT}) { my $argv0=cxwhich($ENV{PATH},$0); $argv0=$0 if (!defined $argv0); if ($argv0 !~ m+^/+) { require Cwd; $argv0=Cwd::cwd() . "/$argv0"; } my $dir=_cxdirname($argv0); while (!-x "$dir/cxmenu" or !-f "$dir/cxmenu") { last if (!-l $argv0); $argv0=readlink($argv0); $argv0="$dir/$argv0" if ($argv0 !~ m+^/+); $dir=_cxdirname($argv0); } $dir =~ s%(/\.)*$%%; $dir =~ s%(/\./(\./)*)%/%; $ENV{CX_ROOT}=_cxdirname($dir); } if (!-x "$ENV{CX_ROOT}/bin/cxmenu" or !-f "$ENV{CX_ROOT}/bin/cxmenu") { my $name0=$0; $name0 =~ s+^.*/++; print STDERR "$name0:error: could not find CrossOver in '$ENV{CX_ROOT}'\n"; exit 1; } return $ENV{CX_ROOT}; } BEGIN { unshift @INC, locate_cx_root() . "/lib/perl"; } use CXLog; use CXUtils; # Packaging helpers my $package_version="7.1.1"; { package CXBDebian; use CXDebian; use base "CXDebian"; sub new($$$) { my ($class, $buildroot, $installroot)=@_; my $self=CXDebian::new($class, $buildroot); $self->{installroot}=$installroot if ($self); return $self; } sub map_directory($$$) { my ($self, $root, $dir)=@_; return undef if ($dir eq "desktopdata"); return "$self->{installroot}/$dir"; } sub map_file($$$) { my ($self, $root, $file)=@_; return undef if ($file eq "files"); return "$self->{installroot}/$file"; } } { package CXBRPM; use CXRPM; use base "CXRPM"; sub map_directory($$$$) { my ($self, $root, $dir, $mode)=@_; $mode|=0055; return undef if ($dir eq "desktopdata"); return ($dir, $mode); } sub map_file($$$$) { my ($self, $root, $file, $mode)=@_; # Setuid and setgid don't make sense for bottle files and # are dangerous. So remove them. Allow the sticky bit though. $mode=($mode & 01777) | ($mode & 0100 ? 0055 : 0044); return undef if ($file eq "files"); return ($file, $mode); } } { package CXBSunpkg; use CXSunpkg; use base "CXSunpkg"; sub package_directory($$$$) { my ($self, $root, $dir, $mode)=@_; return undef if ($dir =~ /^(?:desktopdata|drive_c)$/); $mode|=0055; return $mode; } sub package_file($$$$) { my ($self, $root, $file, $mode)=@_; return undef if ($file eq "files"); # Setuid and setgid don't make sense for bottle files and # are dangerous. So remove them. Allow the sticky bit though. $mode=($mode & 01777) | ($mode & 0100 ? 0055 : 0044); return $mode; } } # Process command-line options my $opt_create; my $opt_description; my $opt_param; my $opt_delete; my $opt_install; my $opt_uninstall; my $opt_removeall; my $opt_tar; my $opt_cpio; my $opt_deb; my $opt_rpm; my $opt_sunpkg; my $opt_release; my $opt_packager; my $opt_productid; my $opt_restore; my $opt_restored; my $opt_new_uuid; my $opt_set_uuid; my $opt_get_uuid; my $opt_copy; my $opt_status; my $opt_default; my $opt_utf8; my $opt_bottle; my $opt_pattern; my $opt_template; my $opt_scope; my $opt_force; my $opt_verbose=1 if (defined $ENV{CX_LOG}); my $opt_help; require CXOpts; my $cxopts=CXOpts->new(); $cxopts->add_options(["create" => \$opt_create, "delete" => \$opt_delete, "install" => \$opt_install, "uninstall" => \$opt_uninstall, "removeall" => \$opt_removeall, "tar=s" => \$opt_tar, "cpio=s" => \$opt_cpio, "deb" => \$opt_deb, "rpm" => \$opt_rpm, "sunpkg" => \$opt_sunpkg, "release=s" => \$opt_release, "packager=s" => \$opt_packager, "productid=s" => \$opt_productid, "restore=s" => \$opt_restore, "restored" => \$opt_restored, "new-uuid" => \$opt_new_uuid, "set-uuid=s" => \$opt_set_uuid, "get-uuid" => \$opt_get_uuid, "copy=s" => \$opt_copy, "status" => \$opt_status, "default" => \$opt_default, "description=s" => \$opt_description, "param=s@" => \$opt_param, "bottle=s" => \$opt_bottle, "pattern=s" => \$opt_pattern, "template=s" => \$opt_template, "scope=s" => \$opt_scope, "force" => \$opt_force, "verbose!" => \$opt_verbose, "?|h|help" => \$opt_help ]); my $err=$cxopts->parse(); CXLog::fdopen(2) if ($opt_verbose); # Validate the command line options my $usage; my $template_dir; my $only_removeall; my $no_update; if ($err) { cxerr("$err\n"); $usage=2; } elsif ($opt_help) { $usage=0; } else { if (!$opt_utf8) { # Re-encode the parameters to UTF-8 require CXRecode; $opt_description=CXRecode::from_sys("UTF-8", $opt_description); } my $cmd_count=0; $cmd_count++ if (defined $opt_create); $cmd_count++ if (defined $opt_restore); $cmd_count++ if (defined $opt_restored); $cmd_count++ if (defined $opt_copy); $cmd_count++ if (defined $opt_status); if ($cmd_count > 1) { cxerr("--create, --restore, --copy, --restored and --status are mutually incompatible\n"); $usage=2; } $cmd_count++ if (defined $opt_delete); $cmd_count++ if (defined $opt_removeall); my $cmd_count_all=$cmd_count; $cmd_count_all++ if (defined $opt_new_uuid); $cmd_count_all++ if (defined $opt_set_uuid); $cmd_count_all++ if (defined $opt_get_uuid); $cmd_count_all++ if (defined $opt_install); $cmd_count_all++ if (defined $opt_uninstall); $cmd_count_all++ if (defined $opt_tar); $cmd_count_all++ if (defined $opt_cpio); $cmd_count_all++ if (defined $opt_deb); $cmd_count_all++ if (defined $opt_rpm); $cmd_count_all++ if (defined $opt_sunpkg); $cmd_count_all++ if (defined $opt_description); $cmd_count_all++ if (defined $opt_default); if ($opt_status and $cmd_count_all > 1) { cxerr("--status is incompatible with all other commands\n"); $usage=2; } $only_removeall=1 if ($cmd_count_all == 1 and defined $opt_removeall); if ($cmd_count_all == 0) { cxerr("you must specify the operation to perform\n"); $usage=2; } elsif ($cmd_count_all == $cmd_count) { $no_update=1; } if (defined $opt_set_uuid) { if (defined $opt_new_uuid) { cxerr("--new-uuid and --set-uuid are mutually incompatible\n"); $usage=2; } if ($opt_set_uuid !~ /^[0-9a-z-]{2,}$/) { cxerr("the specified unique id is not valid\n"); $usage=2; } } if (defined $opt_pattern and !$opt_removeall) { cxerr("--pattern can only be used with --removeall\n"); $usage=2; } $ENV{CX_BOTTLE}=$opt_bottle if (defined $opt_bottle); } if (!defined $usage) { if ($opt_create) { if (!defined $ENV{CX_BOTTLE}) { cxerr("you must specify a bottle name for the --create option\n"); $usage=2; } $opt_template="win98" if (!defined $opt_template); if ($opt_template =~ m%/%) { $template_dir=$opt_template; } else { $template_dir="$ENV{CX_ROOT}/share/crossover/bottle_templates/$opt_template"; } if (!-d $template_dir) { cxerr("unable to find the '$opt_template' template\n"); $usage=1; } } else { $ENV{CX_BOTTLE}="default" if (!defined $ENV{CX_BOTTLE} and !defined $opt_restore and !($only_removeall and defined $opt_pattern)); if (defined $opt_template or defined $opt_param) { cxerr("--template and --param can only be used with --create\n"); $usage=2; } if (defined $ENV{CX_BOTTLE} and defined $opt_pattern) { cxerr("--pattern cannot be used on a bottle\n"); $usage=2; } } if (($ENV{CX_BOTTLE} || "") eq "default" and ($opt_create or defined $opt_restore)) { cxerr("invalid bottle name '$ENV{CX_BOTTLE}'. Use the --default option instead\n"); $usage=2; } if (!defined $opt_scope and ($opt_create or $opt_restore or defined $opt_copy)) { $opt_scope="private"; } if (defined $opt_scope) { $opt_scope=~ tr/A-Z/a-z/; if ($opt_scope !~ /^(managed|private)$/) { cxerr("unknown scope value '$opt_scope'\n"); $usage=2; } } if ($opt_deb or $opt_rpm or $opt_sunpkg) { $opt_release=1 if (($opt_release || "") eq ""); $opt_packager=CXUtils::get_product_name() . " " if (!defined $opt_packager); $opt_productid=CXUtils::get_product_id() if (!defined $opt_productid); my $res=CXUtils::check_product_id($opt_productid); if ($res) { cxerr("the specified product id is not valid: $res\n"); $usage=2; } } elsif (defined $opt_release or defined $opt_packager or defined $opt_productid) { cxerr("the --release, --packager and --productid options can only be used with the --deb, --rpm or --sunpkg options\n"); $usage=2; } if (($only_removeall or $opt_delete) and defined $ENV{RPM_INSTALL_PREFIX}) { # This is an awful kludge to make it possible to upgrade the buggy # 5.0.0 and 5.0.1 bottle RPM packages my $cmd="cat /proc/" . getppid() . "/cmdline 2>/dev/null"; my @args=split /\0/, cxbackquote($cmd, 1); cxlog("parent args=[", join("|", @args), "]\n"); if (@args == 3 and $args[1] =~ /rpm-tmp/ and $args[2] eq "1") { cxlog("called by a buggy pre or post uninstall RPM script -> quitting\n"); exit 0; } } if ($opt_force and !$opt_delete) { cxerr("--force can only be used with --delete\n"); $usage=2; } } # Print usage if (defined $usage) { my $name0=cxname0(); if ($usage) { cxerr("try '$name0 --help' for more information\n"); exit $usage; } print "Usage: $name0 --bottle BOTTLE [--scope SCOPE]\n"; print " [--create [create-options]] [--copy SOURCE] [--default]\n"; print " [[--deb] [--rpm] [--sunpkg] [packaging-options]]\n"; print " [--tar FILE] [--cpio FILE] [--restore ARCHIVE] [--restored]\n"; print " [--new-uuid|--set-uuid UUID] [--get-uuid]\n"; print " [--install] [--uninstall] [--removeall [--pattern pattern]]\n"; print " [--status] [--delete [--force]] [--help] [--verbose]\n"; print "\n"; print "Provides a command-line interface for managing the CrossOver bottles.\n"; print "\n"; print "Options:\n"; print " --bottle BOTTLE Operate on the specified bottle\n"; print " --scope SCOPE If set to managed, the bottle will be looked up in the\n"; print " system-wide bottle locations, otherwise it will refer to a\n"; print " private bottle\n"; print " --create Creates a new bottle\n"; print " --description DESCRIPTION A description for the bottle\n"; print " --template TEMPLATE Identifies the type of bottle to create. The 'win98',\n"; print " 'win2000' and 'winxp' types create bottles that claim to\n"; print " be Windows 98, 2000 and XP respectively\n"; print " --param PARAM Additional parameters of the form 'NAME=VALUE' for the\n"; print " bottle template\n"; print " --copy SOURCE Makes a copy of the SOURCE bottle\n"; print " --default Selects the bottle as the default bottle\n"; print " --deb Creates a Debian package containing the specified bottle.\n"; print " --rpm Creates an RPM package containing the specified bottle.\n"; print " --sunpkg Creates a Solaris package containing the specified bottle.\n"; print " --release RELEASE Specifies the bottle package's release number\n"; print " --packager PACKAGER Specifies the name and email address of the bottle\n"; print " packager\n"; print " --productid PRODUCTID Specifies the product id of CrossOver on the target\n"; print " system\n"; print " --tar FILE Creates a tar archive of the specified bottle\n"; print " If FILE ends in '.cxarchive', '.tgz' or '.gz' it will be\n"; print " compressed with gzip. Similarly, it will be compressed with\n"; print " bzip2 or compress if it ends in '.bz2' or '.Z' respectively\n"; print " --cpio FILE Creates a cpio archive of the specified bottle\n"; print " If FILE ends in '.cxarchive' or '.gz' it will be compressed\n"; print " with gzip. Similarly, it will be compressed with bzip2 or\n"; print " compress if it ends in '.bz2' or '.Z' respectively\n"; print " --restore ARCHIVE Restores the bottle contained in the specified archive\n"; print " Note that this does not install the bottle. See --install\n"; print " --restored Updates a freshly, manually restored bottle. This is an\n"; print " advanced option and is unnecessary if --restore was used\n"; print " --new-uuid Changes the bottle's unique identifier\n"; print " --set-uuid UUID Sets the bottle's unique identifier to UUID\n"; print " --get-uuid Prints the bottle's unique identifier to stdout\n"; print " --install Exports the bottle's menus, associations and plugins\n"; print " so they can be used from the supported desktop environments\n"; print " (e.g. Gnome, KDE) and web browsers\n"; print " --uninstall Removes the bottle's known menus, associations and plugins\n"; print " from the desktop environments and browsers\n"; print " --removeall Each bottle has a unique id which is used to tag its menus,\n"; print " associations and plugins. This option removes anything\n"; print " bearing the bottle's unique id\n"; print " --pattern PATTERN Specifies that --removeall should delete anything that\n"; print " bears an id matching the specified regular expression\n"; print " --status Prints the bottle status on standard output\n"; print " --delete Deletes the specified bottle, that is everything contained\n"; print " in the bottle's directory, including its virtual c: drive\n"; print " Note that this does not uninstall the bottle.\n"; print " See also --uninstall and --removeall\n"; print " --force If set, no confirmation is asked before deleting the bottle\n"; print " --verbose Output more information about what is going on\n"; print " --help, -h Shows this help message\n"; exit 0; } # Determine and check wineprefix require CXBottle; my $cxconfig=CXBottle::get_crossover_config(); my $raw_wineprefix; # Create / Restore / Copy bottles if ($opt_create) { $raw_wineprefix=CXBottle::compute_new_wineprefix($ENV{CX_BOTTLE}, $opt_scope); if (!defined $raw_wineprefix) { cxerr("$@\n"); exit 1; } if (-d $raw_wineprefix) { cxerr("the '$ENV{CX_BOTTLE}' bottle already exists\n"); exit 1; } my @cmd; $ENV{WINEPREFIX}=CXUtils::cxrealpath($raw_wineprefix); # FIXME: We should pass $opt_template to setup because it may be a full path push @cmd, "$template_dir/setup", "--create"; push @cmd, "--updater", "wineprefixcreate" if ($opt_scope eq "managed"); push @cmd, "--description", $opt_description if (defined $opt_description); foreach my $param (@{$opt_param}) { push @cmd, "--param", $param; } if (cxsystem(@cmd)) { cxerr("unable to create the '$ENV{CX_BOTTLE}' bottle in '$raw_wineprefix'\n"); exit 1; } delete $ENV{WINEPREFIX}; } elsif (defined $opt_restore) { my $tmpdir; if (defined $ENV{CX_BOTTLE}) { $raw_wineprefix=CXBottle::compute_new_wineprefix($ENV{CX_BOTTLE}, $opt_scope); if (!defined $raw_wineprefix) { cxerr("$@\n"); exit 1; } $ENV{WINEPREFIX}=CXUtils::cxrealpath($raw_wineprefix); $tmpdir=cxdirname($ENV{WINEPREFIX}) ."/tmp-cxbottle-$$"; } else { $tmpdir=CXBottle::compute_new_wineprefix("tmp-cxbottle-$$", $opt_scope); if (!defined $tmpdir) { cxerr("$@\n"); exit 1; } $tmpdir=CXUtils::cxrealpath($tmpdir); } # Create a temporary directory where we can safely extract the archive umask(umask() & ~0055) if ($opt_scope eq "managed"); if (!cxmkpath($tmpdir, 0700)) { cxerr("unable to create the '$tmpdir' temporary directory: $@\n"); exit 1; } # Use a pseudo-loop to simplify error handling my $rc; while (1) { if ($opt_restore ne "-" and $opt_restore !~ m%^/%) { require Cwd; $opt_restore=Cwd::cwd() . "/$opt_restore"; } my ($uncompress, $is_cpio); if ($opt_restore =~ /\.cxarchive$/) { if (open(my $fh, "<", $opt_restore)) { my $head; read($fh, $head, 6); if ($head =~ /^\037\213/) { $uncompress="gunzip -c "; } elsif ($head =~ /^BZh/) { $uncompress="bunzip2 -c "; } else { $uncompress="cat "; $is_cpio=1 if ($head =~ /^07070[127]/); } close($fh); if ($uncompress ne "cat " and open(my $fh, "$uncompress " . shquote_string($opt_restore) . " |")) { read($fh, $head, 6); $is_cpio=1 if ($head =~ /^07070[127]/); close($fh); } } else { # By default assume this is in gzip format $uncompress="gunzip -c "; } } elsif ($opt_restore =~ /\.(?:gz|tgz)$/) { $uncompress="gunzip -c "; } elsif ($opt_restore =~ /\.bz2$/) { $uncompress="bunzip2 -c "; } elsif ($opt_restore =~ /\.Z$/) { $uncompress="uncompress -c "; } elsif ($opt_restore ne "-") { $uncompress="cat "; } if (defined $uncompress) { $uncompress.=shquote_string($opt_restore) . " | "; } else { $uncompress=""; } my $extract; if ($is_cpio or $opt_restore =~ /\.cpio(?:\.bz2|\.gz|\.Z)?$/) { $extract="cpio -i -d -m"; $extract.=" 2>/dev/null" if (!CXLog::is_on()); } else { $extract=shquote_string(CXUtils::get_tar()) . " xf - "; } my $cmd=join("", $uncompress, "(cd ", shquote_string($tmpdir), " && $extract)"); if (cxsystem($cmd)) { cxerr("unable to extract the bottle from '$opt_restore'\n"); $rc=1; last; } my $dstdir=$ENV{WINEPREFIX}; my $srcdir; if (-f "$tmpdir/cxbottle.conf") { # The archive did not contain any leading directory which is not # really standard. But we'll deal with it anyway... $srcdir=$tmpdir; chmod(0777 & ~umask(), $tmpdir); } else { my $count=0; if (opendir(my $dh, $tmpdir)) { foreach my $dentry (readdir $dh) { next if ($dentry =~ /^\.\.?$/); $count++; last if ($count > 1); $srcdir="$tmpdir/$dentry"; } closedir($dh); } if ($count != 1 or !-d $srcdir) { cxerr("'$opt_restore' does not contain a bottle\n"); $rc=1; last; } if (!defined $dstdir) { $dstdir=cxdirname($tmpdir) . "/" . File::Basename::basename($srcdir); } } $dstdir=cxdirname($tmpdir) . "/win98" if (!defined $dstdir); if (-d $dstdir) { cxerr("'$dstdir' already exists\n"); $rc=1; last; } if (!rename $srcdir, $dstdir) { cxerr("unable to move the bottle to '$dstdir': $!\n"); $rc=1; last; } # Set CX_BOTTLE and WINEPREFIX to match this bottle $ENV{CX_BOTTLE}=cxbasename($dstdir) if (!defined $ENV{CX_BOTTLE}); $ENV{WINEPREFIX}=$dstdir; if (cxbasename($srcdir) ne $ENV{CX_BOTTLE}) { # The bottle is being renamed. So change the bottle id to # avoid trouble if the same archive is restored multiple times $opt_new_uuid=1; } $opt_restored=1; last; } # Cleanup if (-d $tmpdir) { require File::Path; if (!File::Path::rmtree($tmpdir)) { cxwarn("unable to delete the '$tmpdir' directory: $!\n"); } } exit $rc if ($rc); } elsif (defined $opt_copy) { my $srcdir=CXBottle::find_bottle($opt_copy, "private"); if (defined $srcdir) { require CXRWConfig; my $cxbottle=CXRWConfig->new("$srcdir/cxbottle.conf"); my $mode=CXBottle::get_bottle_mode($cxbottle, "private"); $srcdir=undef if (($mode || "managed") eq "stub"); } $srcdir=CXBottle::find_bottle($opt_copy, "managed") if (!defined $srcdir); if (!defined $srcdir) { cxerr("unable to find the '$opt_copy' bottle\n"); exit 1; } $raw_wineprefix=CXBottle::compute_new_wineprefix($ENV{CX_BOTTLE}, $opt_scope); if (!defined $raw_wineprefix) { cxerr("$@\n"); exit 1; } if (-e $raw_wineprefix) { cxerr("'$ENV{CX_BOTTLE}' already exists\n"); exit 1; } if (!cxmkpath($raw_wineprefix)) { cxerr("unable to create the '$raw_wineprefix' directory: $@\n"); exit 1; } $ENV{WINEPREFIX}=CXUtils::cxrealpath($raw_wineprefix); my $exclude="$ENV{WINEPREFIX}.$$.exclude"; my $fh; if (!open($fh, ">", $exclude)) { cxerr("unable to open '$exclude' for writing: $!\n"); exit 1; } print $fh "files\n"; print $fh "desktopdata\n"; close($fh); my $qtar=shquote_string(CXUtils::get_tar()); my $cmd=join(" ", "(cd", shquote_string($srcdir), "&& $qtar cfX -", shquote_string($exclude), ".) | (cd", shquote_string($ENV{WINEPREFIX}), "&& $qtar xf -)"); my $rc=cxsystem($cmd); unlink $exclude; if ($rc) { cxerr("unable to copy '$opt_copy' to '$ENV{CX_BOTTLE}'\n"); require File::Path; if (!File::Path::rmtree($ENV{WINEPREFIX})) { cxwarn("unable to delete the '$ENV{WINEPREFIX}' directory: $!\n"); } exit 1; } $opt_new_uuid=1; $opt_restored=1; } elsif (defined $ENV{CX_BOTTLE}) { my $scope; ($scope, $raw_wineprefix)=CXBottle::setup_bottle_wineprefix($opt_scope); if (defined $scope and !defined $opt_scope and !defined $opt_status) { # Arbitrate between stub and managed bottles # if the scope was not specified explicitly ($scope, $raw_wineprefix)=CXBottle::bottle_stub2managed($scope, $raw_wineprefix); } if (defined $scope and !CXBottle::is_wineprefix_valid($ENV{WINEPREFIX}, $opt_status)) { $scope=undef; } if (!defined $scope) { cxerr($@); exit 1; } $opt_scope=$scope; } if ($opt_new_uuid) { $opt_set_uuid=CXUtils::get_unique_id($ENV{WINEPREFIX}); } if ($opt_restored) { CXBottle::fix_ownership_permissions($ENV{WINEPREFIX}, $opt_scope); require CXRWConfig; my $filename="$ENV{WINEPREFIX}/cxbottle.conf"; my $cxbottle=CXRWConfig->new($filename); # Check the bottle's character encoding my $system_encoding=CXUtils::get_system_encoding(1); my $bottle_encoding=$cxbottle->get("Bottle", "Encoding") || "ANSI_X3.4-1968"; if ($bottle_encoding ne "ANSI_X3.4-1968" and $bottle_encoding ne $system_encoding) { cxwarn("The current character encoding ($system_encoding) may not " . "be compatible with the encoding of the bottle " . "($bottle_encoding). This may cause applications to not " . "find their files and thus lead to malfunctions.\n"); } if (defined $opt_set_uuid) { $cxbottle->set("Bottle", "BottleID", $opt_set_uuid); } my $updater=$cxbottle->get("Bottle", "Updater"); if ($opt_scope eq "private") { my $section=$cxbottle->get_section("Bottle"); $section->comment_out("Updater") if ($section); } elsif (!$updater) { $updater="wineprefixcreate"; $cxbottle->set("Bottle", "Updater", $updater); } if (defined $opt_description) { $cxbottle->set("Bottle", "Description", $opt_description); } $cxbottle->set("Bottle", "MenuMode", "ignore"); $cxbottle->set("Bottle", "AssocMode", "ignore"); $cxbottle->set("Bottle", "NSPluginMode", "ignore"); cxwarn("unable to save '$filename': $!\n") if (!$cxbottle->save()); CXBottle::setup_drives($ENV{WINEPREFIX}); # 'files' is obsolete and must be rebuilt, possibly in the next step unlink "$ENV{WINEPREFIX}/files"; # Update the special folder symbolic links # (this may also trigger a bottle update) cxsystem("$ENV{CX_ROOT}/bin/wine", "--scope", $opt_scope, "--dll", "shell32=b", "--wl-app", "rundll32.exe", "shell32.dll,wine_update_symbolic_links"); CXBottle::run_bottle_hooks(["restore"]); if ($opt_scope eq "managed" and !-f "$ENV{WINEPREFIX}/files") { # and if it was already up to date, take a snapshot ourselves cxsystem("$ENV{CX_ROOT}/bin/wine", "--scope", $opt_scope, "--ux-app", $updater, "--snapshot"); } } elsif (defined $opt_set_uuid) { require CXRWConfig; my $filename="$ENV{WINEPREFIX}/cxbottle.conf"; my $cxbottle=CXRWConfig->new($filename); $cxbottle->set("Bottle", "BottleID", $opt_set_uuid); if (!$cxbottle->save()) { cxwarn("unable to save '$filename': $!\n"); } } # Now the bottle has been created / restored / copied, # we can read its configuration file & co. if (defined $ENV{WINEPREFIX}) { if (!-d $ENV{WINEPREFIX}) { cxerr("unable to find the '$ENV{CX_BOTTLE}' bottle\n"); exit 1; } # Read the bottle configuration file CXBottle::setup_bottle_environment($cxconfig, $ENV{WINEPREFIX}); # Update / Upgrade the bottle before trying to use it if (!$no_update and !CXBottle::update_bottle($cxconfig, $ENV{WINEPREFIX}, $opt_scope)) { cxerr("unable to update the '$ENV{CX_BOTTLE}' bottle\n"); exit 1; } } if (defined $opt_description and !$opt_create and !defined $opt_copy and !defined $opt_restore and !$opt_restored) { require CXRWConfig; my $filename="$ENV{WINEPREFIX}/cxbottle.conf"; my $cxbottle=CXRWConfig->new($filename); $cxbottle->set("Bottle", "Description", $opt_description); if (!$cxbottle->save()) { cxwarn("unable to save '$filename': $!\n"); } } if ($opt_status) { my ($mode, $status)=CXBottle::get_bottle_status($cxconfig, $ENV{WINEPREFIX}, $opt_scope); if (!defined $mode) { cxerr("$@"); exit 1; } print "Mode=$mode\n"; print "Status=$status\n"; exit 0; } if ($opt_default) { # FIXME: This won't work if $CX_BOTTLE is an absolute path, not found # inside $CX_BOTTLE_PATH. # FIXME: The default bottle should be a cxoffice.conf setting. Otherwise # there will always be an ambiguity wrt. where to create the symlink my $default_link=cxdirname($raw_wineprefix) . "/default"; if (-l $default_link and !unlink $default_link) { cxwarn("unable to delete '$default_link': $!\n"); } else { # Create a relative symbolic link $raw_wineprefix=cxbasename($raw_wineprefix); cxlog("Symlinking '$default_link' to '$raw_wineprefix'\n"); if (!symlink($raw_wineprefix, $default_link)) { cxwarn("unable to create the 'default' bottle symlink: $!\n"); } } } if ($opt_get_uuid) { my $uuid=$cxconfig->get("Bottle", "BottleID") || ""; print "$uuid\n"; } my $rc=0; if ($opt_removeall or $opt_uninstall or $opt_install) { my @args=(); if ($opt_removeall) { push @args, "--removeall"; push @args, "--pattern", $opt_pattern if (defined $opt_pattern); } if ($opt_uninstall) { push @args, "--uninstall"; } if ($opt_install) { push @args, "--install"; } push @args, "--scope", $opt_scope if (defined $opt_scope); if (cxsystem("$ENV{CX_ROOT}/bin/cxmenu", @args)) { cxerr("unable to install, uninstall or remove all the menus\n"); $rc=1; } if (cxsystem("$ENV{CX_ROOT}/bin/cxassoc", @args)) { cxerr("unable to install, uninstall or remove all the associations\n"); $rc=1; } if (cxsystem("$ENV{CX_ROOT}/bin/cxnsplugin", @args)) { cxerr("unable to install, uninstall or remove all the plugins\n"); $rc=1; } } if (defined $opt_tar) { my $exclude; # Use a pseudo-loop to simplify error handling while (1) { $exclude="$ENV{WINEPREFIX}.$$.exclude"; my $fh; if (!open($fh, ">", $exclude)) { cxerr("unable to open '$exclude' for writing: $!\n"); $rc=1; last; } my $bottle=cxbasename($ENV{WINEPREFIX}); print $fh "$bottle/files\n"; print $fh "$bottle/desktopdata\n"; close($fh); my @cmd=("(cd", shquote_string(cxdirname($ENV{WINEPREFIX})), "&&", shquote_string(CXUtils::get_tar()), "cfX -", shquote_string($exclude), shquote_string($bottle)); if ($opt_tar =~ /\.(?:cxarchive|t?gz)$/) { push @cmd, "| gzip -9"; } elsif ($opt_tar =~ /\.bz2$/) { push @cmd, "| bzip2 -9"; } elsif ($opt_tar =~ /\.Z$/) { push @cmd, "| compress"; } push @cmd, ")"; push @cmd, ">", shquote_string($opt_tar) if ($opt_tar ne "-"); if (cxsystem(join(" ", @cmd))) { cxerr("unable to archive '$ENV{CX_BOTTLE}' from '$ENV{WINEPREFIX}'\n"); $rc=1; } last; } unlink $exclude if (defined $exclude); } if (defined $opt_cpio) { my $compress=""; if ($opt_cpio =~ /\.(?:cxarchive|gz)$/) { $compress=" | gzip -9"; } elsif ($opt_cpio =~ /\.bz2$/) { $compress=" | bzip2 -9"; } elsif ($opt_cpio =~ /\.Z$/) { $compress=" | compress"; } my $bottledir=cxdirname($ENV{WINEPREFIX}); my $cmd=join("", "(cd ", shquote_string($bottledir), " && cpio -o -H odc ", (CXLog::is_on() ? "" : "2>/dev/null "), $compress, ")"); $cmd .= " >" . shquote_string($opt_cpio) if ($opt_cpio ne "-"); cxlog("Running '$cmd'\n"); if (open(my $fh, "| $cmd")) { my $bottle=cxbasename($ENV{WINEPREFIX}); print $fh "$bottle\n"; my @dirs=($bottle); while (@dirs) { my $dh; my $dir=shift @dirs; if (!opendir($dh, "$bottledir/$dir")) { cxerr("unable to open '$bottledir/$dir': $!\n"); $rc=1; last; } foreach my $dentry (readdir $dh) { next if ($dentry =~ /^(?:\.\.?|files|desktopdata)$/); print $fh "$dir/$dentry\n"; if (!-l "$bottledir/$dir/$dentry" and -d _) { push @dirs, "$dir/$dentry"; } } closedir($dh); } close($fh); } else { cxerr("unable to create a cpio archive from '$ENV{WINEPREFIX}'\n"); $rc=1; } } if (defined $opt_deb) { # Use a pseudo-loop to simplify error handling my ($buildroot, $lrc); error: while (1) { my $description=$cxconfig->get("Bottle", "Description") || ""; my $today=CXUtils::rfc822time(time); my $bottle=cxbasename($ENV{CX_BOTTLE}); my $installroot="/opt/$opt_productid/support/$bottle"; require CXDebian; my $package_name=($opt_productid eq CXUtils::get_real_product_id() ? "cxbottle" : "$opt_productid-bottle"); $package_name=CXDebian::compute_package_name("$package_name-$bottle"); $buildroot="$ENV{WINEPREFIX}.$$.buildroot"; my $cxdebian=CXBDebian->new($buildroot, $installroot); if (!$cxdebian) { $lrc=1; last error; } if (!$cxdebian->add_tree($ENV{WINEPREFIX})) { $lrc=1; last error; } my $template="$ENV{CX_ROOT}/share/crossover/cxbottle/deb."; foreach my $file ("changelog", "compat", "control", "copyright", "postinst", "postrm", "preinst", "prerm", "build") { $lrc=CXUtils::generate_from_template("$buildroot/debian/$file", "$template$file", {bottle => $bottle, description => $description, product_id => $opt_productid, package_name => $package_name, package_version => $package_version, release => $opt_release, packager => $opt_packager, date => $today }); last error if ($lrc); } $lrc=$cxdebian->build(); last error if ($lrc); # Move the Debian package to the current directory my @debs=CXUtils::cxglob($buildroot, "*.deb"); if (!@debs) { cxerr("unable to find the Debian package for the $bottle bottle\n"); } elsif (@debs > 1) { cxerr("found more than one Debian package for the $bottle bottle: @debs\n"); } else { my $deb=cxbasename($debs[0]); if (!rename $debs[0], $deb) { cxerr("unable to move '$debs[0]' to the current directory\n"); } rmdir cxdirname($debs[0]); print "deb: $deb\n"; } last; } if (defined $buildroot) { require File::Path; File::Path::rmtree($buildroot); } $rc||=$lrc; } if (defined $opt_rpm) { # Use a pseudo-loop to simplify error handling my ($tmpdir, $lrc); error: while (1) { my $linuxrpm=CXBRPM->new(); if (!defined $linuxrpm->{rpmbuild}) { $lrc=1; last error; } # Make sure the generated package will work out-of-the-box with a # standard install of CrossOver my $product_name=CXUtils::get_product_name(); my $desc=$cxconfig->get("Bottle", "Description") || ""; my $bottle=cxbasename($ENV{CX_BOTTLE}); my $rpm_prefix="/opt/$opt_productid/support/$bottle"; require CXRPM; my $package_name=($opt_productid eq CXUtils::get_real_product_id() ? "cxbottle" : "$opt_productid-bottle"); $package_name=CXRPM::compute_package_name("$package_name-$bottle"); # Copy the bottle so it has the expected directory structure if (cxdirname($ENV{WINEPREFIX}) =~ / /) { # RPM won't allow us to use a buildroot that contains a space. # So hope we can use /tmp. $tmpdir=$ENV{TMPDIR} || "/tmp"; $tmpdir.="/cxbottle-$$"; } else { $tmpdir="$ENV{WINEPREFIX}.cxbottle-$$"; # If the space was in the bottle name, then we can hack it out $tmpdir=~ s/ //g; } my $imagedir="$tmpdir/image"; if (!$linuxrpm->create_buildroot($ENV{WINEPREFIX}, "$imagedir$rpm_prefix")) { $lrc=1; last error; } my $template="$ENV{CX_ROOT}/share/crossover/cxbottle/rpm.spec"; my $specfile="$tmpdir/rpm.spec"; $lrc=CXUtils::generate_from_template($specfile, $template, {bottle => $bottle, description => $desc, product_id => $opt_productid, product_name => $product_name, package_name => $package_name, package_version => $package_version, release => $opt_release, packager => $opt_packager, buildroot => $imagedir, file_list => CXRPM::escape_file_path($rpm_prefix) }); last error if ($lrc); $lrc=$linuxrpm->build($specfile); last error if ($lrc); # Move the rpm package to the current directory my @rpms=CXUtils::cxglob($tmpdir, "noarch/*.rpm"); if (!@rpms) { cxerr("unable to find the RPM package for the $bottle bottle\n"); } elsif (@rpms > 1) { cxerr("found more than one RPM package for the $bottle bottle: @rpms\n"); } else { my $rpm=cxbasename($rpms[0]); if (!rename $rpms[0], $rpm) { cxerr("unable to move '$rpms[0]' to the current directory\n"); } rmdir cxdirname($rpms[0]); print "rpm: $rpm\n"; } last; } if (defined $tmpdir) { require File::Path; File::Path::rmtree($tmpdir); } $rc||=$lrc; } if (defined $opt_sunpkg) { my ($pkgdir, $lrc); # Use a pseudo-loop to simplify error handling error: while (1) { require CXSunpkg; my $bottle=cxbasename($ENV{CX_BOTTLE}); my $package_name=($opt_productid eq CXUtils::get_real_product_id() ? "" : "$opt_productid-"); $package_name=CXSunpkg::compute_package_name("cxb", "$package_name$bottle"); cxlog("Creating solaris tree for $package_name\n"); $pkgdir=$package_name; if (-d $pkgdir) { require File::Path; if (!File::Path::rmtree($pkgdir)) { cxerr("unable to delete the '$pkgdir' directory\n"); $lrc=1; last error; } } my $pkg=CXBSunpkg->new($pkgdir); if (!$pkg) { $lrc=1; last error; } my $description=$cxconfig->get("Bottle", "Description") || ""; my ($mday, $mon, $year)=(localtime(time))[3,4,5]; $mon++; $year+=1900; my $today=sprintf("%d/%02d/%02d", $year, $mon, $mday); my $template="$ENV{CX_ROOT}/share/crossover/cxbottle/sunpkg."; foreach my $file ("pkginfo", "install/checkinstall", "install/postinstall", "install/postremove", "install/preremove") { $lrc=CXUtils::generate_from_template("$pkgdir/$file", $template . cxbasename($file), {package_name => $package_name, bottle => $bottle, description => $description, product_id => $opt_productid, package_version => $package_version, release => $opt_release, packager => $opt_packager, date => $today }); last error if ($lrc); if (!$pkg->add_file("i", $file)) { $lrc=1; last error; } } if (!$pkg->add_tree("reloc/\$CX_PRODUCT_ID/support/$bottle", $ENV{WINEPREFIX}, 0755) or !$pkg->finalize()) { $lrc=1; last error; } if (!cxmkpath("$pkgdir/archive", 0755)) { cxerr("unable to create the '$pkgdir/archive' directory: $@\n"); $lrc=1; last error; } # The permissions of the files in cpio may well be unsuitable for a # managed bottle. So this depends on --restored to fix them. my $cmd=join("", "(cd ", shquote_string($ENV{WINEPREFIX}), " && find drive_c -print | cpio -o -H odc) 2>&1 >", shquote_string("$pkgdir/archive/extra.cpio")); my $output=cxbackquote($cmd); if ($?) { print STDERR $output; cxerr("unable to archive the c: drive: $@\n"); $lrc=1; last error; } print "sunpkg: $package_name\n"; last; } if ($lrc and defined $pkgdir) { require File::Path; File::Path::rmtree($pkgdir); } $rc||=$lrc; } if ($opt_delete) { if (!$rc or $opt_force) { if (!$opt_force) { my $msg=cxgettext("You are about to delete the " . "'\%s' bottle. This operation will remove all the " . "Windows applications it contains, as well as any document " . "stored in that bottle's C: drive.", $ENV{CX_BOTTLE}); if (!$opt_uninstall) { $msg.=cxgettext("\nNote also that you should " . "always uninstall a bottle before deleting it."); } my $choice=cxmessage( "-title", "CrossOver Warning", "-buttons", "Continue:0,Abort:2", "-default", "Abort", "-image", CXUtils::get_std_icon("crossover.xpm"), "\%s", $msg); exit 2 if ($choice != 0); } # If this is the default bottle, then make it not so my $default_link=cxdirname($raw_wineprefix) . "/default"; if (CXUtils::same_inode($default_link, $ENV{WINEPREFIX})) { unlink $default_link; } require File::Path; if (!File::Path::rmtree($ENV{WINEPREFIX})) { cxerr("unable to delete '$ENV{WINEPREFIX}': $!\n"); $rc=1; } } else { cxwarn("ignoring the --delete option due to a previous error\n"); } } exit $rc; 07070100082d0a000081ed00000067000001f400000001490a20d600002004000000660000000700000000000000000000001c00000000reloc/$PKGINST/bin/cxburnerELFx 44 (44((((/usr/lib/ld.so.151  "$&(+,./ !#%')*-0 X %, r 6 ;` A\ u K N PX Y ` 5 gt{ h  H ( |x  {    (x!0 7 <x  C  K(a 'x  h " 8 (   __register_frame_info_basesfprintf_edatafind_key_exit_initparse_keymainstrerrormunmapmalloc_lib_versionatexit__longdouble_usedstrrchr_DYNAMICfwrite_fini___errno_etext_fxstat___Argv__fpstartstrncmp__dso_handle__iob__fsrclose_PROCEDURE_LINKAGE_TABLE___fsr_init_value_environmemsetmmap_start_mcount_GLOBAL_OFFSET_TABLE___deregister_frame_info_basesstrcmp_Jv_RegisterClasses_end_get_exit_frame_monitorfreestrcpyopen__1cG__CrunMdo_exit_code6F_v_libc.so.1SUNW_0.7SUNWprivate_1.1/usr/sfw/lib(= qN  D&LT)\048<@ H&PX)`dhlp t!x/|"(, .- +5,%0%4h%8h%<h%@h%Hh %Ph(%Xh0%`h8p%dh@`%hhHP%lhP@%phX0%th` %xhh%|hp%hx%h%h%h%h%h%h%h%hp%h`jj츨t R[hNtt P-Exu TxRU |RP"m  PPURQt`|$у D$td$у`tƒ 3fd$f T$tfd$f L$l$YZ]ÐUS[Ï Rt :ҋu鋃t PLƃ]ÐUS[3 P$tSjPPt,t P]UVS[ Pt4P VVj-jP4PVVj/jdPPVVj-jP e[^ÐUWVS E }[) 9ljEsCEwEGF;}s%E8FuRjuW9uލe[^_Íe[^1_ÉUWVT$ҋD$t$L$|$ t9s :tB9rB19s.ɉtB9s)ʼnJHyuyt B@A9r1^_]Åt^_]ÍvUWVSj/E [8 0@((}E @$b$kDžDDž0E @}HDž4Dž,~0 u4Puj4DH@=XRP@j_Xj1D@jDPuj< @<U8t4 v<R8V_68tу TPPPLP8V 4kDžE9yv0E9ME 4LuăDE T1ыT9 HPM 4PDž, 4<4;u}`4 0;u}=4<1uE 4W -0;uDž,|Đ4t 4 N ^ n ~           . > N ^ n  `     o7oooo(h %CROSSOVER_KEY%@(#)SunOS 5.10 Generic January 2005@(#)SunOS 5.10 Generic January 2005@(#)SunOS 5.10 Generic January 2005GCC: (GNU) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)GCC: (GNU) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)GCC: (GNU) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)@(#)SunOS 5.10 Generic January 2005ld: Software Generation Utilities - Solaris Link Editors: 5.10-1.489.interp.hash.dynsym.dynstr.SUNW_version.rel.text.rel.got.rel.data.rel.plt.init.fini.rodata.rodata.str1.1.rodata.str1.4.dynamic.ctors.dtors.eh_frame.jcr.data.rel.local.bss.symtab.strtab.comment.debug_abbrev.debug_info.debug_line.debug_frame.debug_pubnames.debug_aranges.debug_ranges.debug_str.shstrtab  "o0- B 7 B @ BJ B N1x x S``Y_g2v2,,;((DxxI uD UN07070100082d0b000081ed00000067000001f400000001490a20d700001520000000660000000700000000000000000000002000000000reloc/$PKGINST/bin/cxgetsysinfo#!/bin/sh # (c) Copyright 2004-2006. CodeWeavers, Inc. #---------------------------------------------------------------------------- # This script gathers up information about a given Linux system # that is relevant to CrossOver. # This script runs best from a CrossOver install; it will find # certain internal utilities and report their results. However, it # also runs completely standalone as well. #---------------------------------------------------------------------------- # Portable which(1) implementation cxwhich() { case "$1" in /*) if [ -x "$1" -a -f "$1" ] then echo "$1" return 0 fi ;; */*) if [ -x "`pwd`/$1" -a -f "`pwd`/$1" ] then echo "`pwd`/$1" return 0 fi ;; *) saved_ifs="$IFS" IFS=":" for d in $PATH do IFS="$saved_ifs" if [ -n "$d" -a -x "$d/$1" -a -f "$d/$1" ] then echo "$d/$1" return 0 fi done ;; esac return 1 } # Locate where CrossOver is installed by looking for the directory # where this this script is located, unwinding symlinks on the way locate_cx_root() { if [ -z "$CX_ROOT" ] then argv0=`cxwhich "$0"` [ -z "$argv0" ] && argv0="$0" echo "$argv0" | egrep "^/" >/dev/null if [ $? -ne 0 ] then argv0="`pwd`/$argv0" fi dir=`dirname "$argv0"` while [ ! -x "$dir/cxmenu" -o ! -f "$dir/cxmenu" ] do [ ! -h "$argv0" ] && break argv0=`ls -l "$argv0" | sed -e 's/^.*-> //'` echo "$argv0" | egrep "^/" >/dev/null if [ $? -ne 0 ] then argv0="$dir/$argv0" fi dir=`dirname "$argv0"` done dir=`echo "$dir" | sed -e 's%\(/\.\)*$%%' -e 's%\(/\./\(\./\)*\)%/%'` CX_ROOT=`dirname "$dir"` fi if [ ! -x "$CX_ROOT/bin/cxmenu" -o ! -f "$CX_ROOT/bin/cxmenu" ] then if [ "$1" = "--no-fail" ] then CX_ROOT="" return 1 fi echo "`basename \"$0\"`:error: could not find CrossOver in '$CX_ROOT'" >&2 exit 1 fi # Make sure it's exported export CX_ROOT return 0 } #---------------------------------------------------------------------------- # capture_file # Record the contents of a file on the system #---------------------------------------------------------------------------- capture_file() { echo "FILE $1" cat "$1" 2>&1 echo "----------" } #---------------------------------------------------------------------------- # capture_command # Invoke and record the output of a command #---------------------------------------------------------------------------- capture_command() { echo "COMMAND $1" eval "$1" 2>&1 echo "----------" } if [ $# -gt 0 ] then name0=`basename "$0"` if [ "$1" = "--help" -o "$1" = "-h" -o "$1" = "-?" ] then echo "Usage: $name0 [--help]" echo echo "This script gathers up information about a given system that is relevant" echo "to CrossOver. It runs best from a CrossOver install but will also run" echo "completely standalone." echo "" echo "Options:" echo " --help, -h Shows this help message"; exit 0 fi echo "$name0:error: unknown option '$1'" >&2 echo "$name0:error: try '$name0 --help' for more information" >&2 exit 2 fi today=`date` echo "#------------------------------------------------------------------------" echo "# System Information; $0 version 7.1.1; $today" echo "#------------------------------------------------------------------------" # Capture the general machine information capture_command "uname -a" for file in /etc/*release* /etc/*version* do capture_file "$file" done capture_command "df -k" capture_command "ulimit -a" # Capture the environment before we modify $PATH capture_command "env" capture_file "/proc/version" capture_file "/proc/cpuinfo" capture_file "/proc/meminfo" # On some systems we need to extend $PATH PATH="$PATH:/sbin:/usr/sbin:/usr/local/sbin:/usr/X/bin" export PATH # Capture version information capture_command "konqueror --version" capture_command "gnome-session --version" capture_command "gnome-panel --version" capture_command "mozilla --version" capture_command "firefox --version" capture_command "thunderbird --version" capture_command "evolution --version" capture_command "clamdscan --version" capture_command "clamscan --version" # Some ALSA versions are buggy and get into an infinite loop # when generating these files. So truncate the output. capture_file "/proc/asound/version" | head -n 10 capture_file "/proc/asound/cards" | head -n 20 # More CrossOver-specific checks locate_cx_root --no-fail capture_file "/etc/mtab" capture_file "/etc/prelink.conf" capture_file "/etc/sysconfig/prelink" capture_command "ls -l /lib/libc-*.so /lib/libc.so*" capture_command "$CX_ROOT/bin/cxglibc-check" capture_command "$CX_ROOT/bin/cxmaptest" capture_command "$CX_ROOT/bin/locate_gui.sh" # Capture low-level information capture_command "xdpyinfo" capture_command "glxinfo" capture_file "/proc/self/maps" capture_command "lsmod" capture_command "sysctl -a" 07070100082d0c000081ed00000067000001f400000001490a20d600001c44000000660000000700000000000000000000001d00000000reloc/$PKGINST/bin/cxgettextELF444 (44/usr/lib/ld.so.1%&  !#$ "%  ,5<D e IQ ou H  { $"  4 %,6 =TB4 -!ILND<dXn$ __fsr_init_value__iob_Jv_RegisterClasses_environdlopenstrrchrmain___Argv__1cG__CrunMdo_exit_code6F_v_dlsym__register_frame_info_bases_DYNAMIC_mcountfprintf__fsr_get_exit_frame_monitorputs_edata_init__longdouble_usedatexitgetenv__deregister_frame_info_bases_lib_version_etextsetlocale_fini_exit_start_end__fpstart_GLOBAL_OFFSET_TABLE__PROCEDURE_LINKAGE_TABLE___dso_handlelibc.so.1SUNW_1.22SUNWprivate_1.1/usr/sfw/libyqN    ! " 5%%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hxjjt Rhtt PEu TRU RP"X PPURQt`|$у D$td$у`tƒ 3fd$f T$tfd$f L$l$YZ]ÐUS[K Rt :|ҋ|u鋃t tPƃ]ÐUS[ P$tSjPtPxt,t xP]UWVSLEEEEEEu j/[Q 6Ga@FvELuUEQEt%u8uԃ PEEU+EEEEt| u}t UuEt%u8uԃ PEEU$UEEEuv}؅U:EU҉UtPMt/RP8 PEEEUR}}UEEoE܅JE1Et E8W`P1e[^_É cutpuuKEt%u8uԃ PAEEUUE@suE܅t%u8uԃ PEEUUEuHP8 PEpP8 PdEe[^_ÃPT$V $H1ut(utuEEǃǃǃjPtCPVYXPVXZPV7)ttZQDP8 Pe[^_ǃuP8 PEVP8 PEEE PE PEwuHP8 P%Ejj:XZPV9YXPV$XZPVU܅tuuЃEt7Pjt8Et&Pu^XWuZYPP;UVS["hp@Ћu[^US[[US[g[--locale--encoding%s--textdomain-d--textdomaindir--help-h-?libintl.sodgettextbindtextdomainbind_textdomain_codesetTEXTDOMAINDIRTEXTDOMAINC%s:error: %s can only be specified once %s:error: a text domain has already been specified %s:error: missing value for option %s %s:error: try '%s --help' for more information Usage: %s [--locale locale] [--encoding encoding] [--textdomain textdomain] [--textdomaindir textdomaindir] [textdomain] msgid%s:error: missing gettext functions (maybe libintl.so is missing?) %s:error: unknown option '%s' %s:error: you must specify a string to translate %s:error: unable to set the locale :JZjz *  |  ozoDotoo$@(#)SunOS 5.10 Generic January 2005@(#)SunOS 5.10 Generic January 2005@(#)SunOS 5.10 Generic January 2005GCC: (GNU) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)GCC: (GNU) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)GCC: (GNU) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)@(#)SunOS 5.10 Generic January 2005ld: Software Generation Utilities - Solaris Link Editors: 5.10-1.489.interp.hash.dynsym.dynstr.SUNW_version.rel.text.rel.got.rel.data.rel.plt.init.fini.rodata.rodata.str1.1.rodata.str1.4.dynamic.ctors.dtors.eh_frame.jcr.data.rel.local.bss.symtab.strtab.comment.debug_abbrev.debug_info.debug_line.debug_frame.debug_pubnames.debug_aranges.debug_ranges.debug_str.shstrtab 4 `"||oDD0- Btt 7 B|| @ BJ B N$$144pSY_g2v2;\D8    , uD N07070100082d0d000081ed00000067000001f400000001490a20d600001fe0000000660000000700000000000000000000001d00000000reloc/$PKGINST/bin/cxglcheckELF| 44 (44ll/usr/lib/ld.so.1C?  "#$&(*+-/014578;=> !%'),.2369:< &p 7 > E KYxa, h |  t |  L <    & + 3I OS b hk wT  l "l   <  ,  t!#1\ AGT[ g n{ {t F l  tL \ ` _Jv_RegisterClassesglXCreateContextparse_nv_versionstrchrstrstr_exitlnx_ati_minor___Argvprintf__1cG__CrunMdo_exit_code6F_v_XSetNormalHints__fpstartstart_openglWin_edatalnx_nv_major_startXDestroyWindowXOpenDisplayXSetStandardPropertiescheck_driver_version__longdouble_usedatoi_mcount_GLOBAL_OFFSET_TABLE_XSyncDpyglXMakeCurrent_initdisabled_checkset_status_endputs_get_exit_frame_monitor_DYNAMIC_PROCEDURE_LINKAGE_TABLE___deregister_frame_info_basesgetenv__fsr_init_valueparse_ati_versionXMapWindow_environlnx_ati_majorXCreateColormapapplelnx_nv_minor_etextglGetStringatexit__fsr__register_frame_info_basesXCreateWindow_fini_lib_version__dso_handleglXChooseVisualXCloseDisplaymainlibX11.so.4SUNW_1.1libc.so.1SYSVABI_1.3SUNWprivate_1.1libSM.so.6libICE.so.6libXext.so.0libsocket.so.1libnsl.so.1libGL.so.1/usr/openwin/lib:/usr/sfw/lib '= 7qN (&5 2 6&5<- 7( ,08*<@D"H1LPTX \'`d=h#5%%h%h%h%h%h %h(%h0%h8p%h@`%hHP% hP@%(hX0%,h` %0hh%8hp%<hx%@h%Dh%Hh%Lh%Ph%Th%Xh%\hp%`h`%dhP%hh@jjlt R;h.|tt P Etu TtRU xRP" PPURQt`|$у D$td$у`tƒ 3fd$f T$tfd$f L$l$YZ]ÐUS[;Rt :ҋu鋃t P,ƃ]ÐUS[P$tSjPPt,t P]YT$4;~ÍvUWVS[Y} j<$ t2URQPvj0V$0Dž|EVExPh (7jw jh,h,jjV$2E+L@ V(VP$0Dž,Dž0Dž4,Dž8,Dž(VjjjDPP 2$00jjW$2\tR 0$2ZYj$0 6 2$0Hu e[^_Ð P$X40 ZUWVS[Z}hZvRPZ t?j PXt+8 t>t VKFB< vF.t*E  e[^_ÐF uF t벃 VU e[^_ÐUWVSu} [ØhAB< vA.uAB< vA.tle[^_à Qe[^_UVS[h"XZvPV!tfEPEP~E=~=t e[^Ív}  j huPPje[^É}PVtEPEPE=k~=luMxRhlPPXUWVS[)Pwtte[^_à P$SY40UVS[ûxCvQj<j6XZL06X64e[^UVS[^p@Ћu[^US[/;[US[[l    CrossOver OpenGL testERR: glXChooseVisual failedNVIDIAATI TechnologiesDISABLE_GLCHECK1skipping glcheckOpenGL initialization failed. See http://www.codeweavers.com/support/wiki/OpenGL/no_openglKnown outdated Nvidia driver: %d.%d, latest known is %d.%d, See http://www.codeweavers.com/support/wiki/OpenGL/old_driver Known outdated ATI driver: %d, latest known is %d. See http://www.codeweavers.com/support/wiki/OpenGL/old_driver l     " 2 B R b r           " 2 B R b r '3@O[  ff  o<ol o  ool @(#)SunOS 5.10 Generic January 2005@(#)SunOS 5.10 Generic January 2005@(#)SunOS 5.10 Generic January 2005GCC: (GNU) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)GCC: (GNU) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)GCC: (GNU) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)@(#)SunOS 5.10 Generic January 2005ld: Software Generation Utilities - Solaris Link Editors: 5.10-1.489.interp.hash.dynsym.dynstr.SUNW_version.rel.text.rel.got.rel.data.rel.plt.init.fini.rodata.rodata.str1.1.rodata.str1.4.dynamic.ctors.dtors.eh_frame.jcr.data.rel.local.bss.symtab.strtab.comment.debug_abbrev.debug_info.debug_line.debug_frame.debug_pubnames.debug_aranges.debug_str.shstrtab  "ol l P- B   7 B  @ B  J B   N  1| | $SY_Dg2mv2J;llDtt8,u6 =@07070100082d0e000081ed00000067000001f400000001490a20d700001c3c000000660000000700000000000000000000001f00000000reloc/$PKGINST/bin/cxlogfilter#!/usr/bin/perl -w # (c) Copyright 2004-2008. CodeWeavers, Inc. use strict; my $name0=$0; $name0 =~ s+^.*/++; my $max_head=50000; my $max_tail; my $max_extra; # Portable which(1) implementation sub cxwhich($$;$) { my ($dirs, $app, $noexec)=@_; if ($app =~ /^\//) { return $app if ((-x $app or $noexec) and -f $app); } elsif ($app =~ /\//) { require Cwd; my $path=Cwd::cwd() . "/$app"; return $path if ((-x $path or $noexec) and -f $path); } else { foreach my $dir (split /:/, $dirs) { return "$dir/$app" if ($dir ne "" and (-x "$dir/$app" or $noexec) and -f "$dir/$app"); } } return undef; } # Fast dirname() implementation sub _cxdirname($) { my ($path)=@_; return undef if (!defined $path); return "." if ($path !~ s!/+[^/]+/*$!!s); return "/" if ($path eq ""); return $path; } # Locate where CrossOver is installed by looking for the directory # where this this script is located, unwinding symlinks on the way sub locate_cx_root() { if (!defined $ENV{CX_ROOT}) { my $argv0=cxwhich($ENV{PATH},$0); $argv0=$0 if (!defined $argv0); if ($argv0 !~ m+^/+) { require Cwd; $argv0=Cwd::cwd() . "/$argv0"; } my $dir=_cxdirname($argv0); while (!-x "$dir/cxmenu" or !-f "$dir/cxmenu") { last if (!-l $argv0); $argv0=readlink($argv0); $argv0="$dir/$argv0" if ($argv0 !~ m+^/+); $dir=_cxdirname($argv0); } $dir =~ s%(/\.)*$%%; $dir =~ s%(/\./(\./)*)%/%; $ENV{CX_ROOT}=_cxdirname($dir); } if (!-x "$ENV{CX_ROOT}/bin/cxmenu" or !-f "$ENV{CX_ROOT}/bin/cxmenu") { my $name0=$0; $name0 =~ s+^.*/++; print STDERR "$name0:error: could not find CrossOver in '$ENV{CX_ROOT}'\n"; exit 1; } return $ENV{CX_ROOT}; } BEGIN { unshift @INC, locate_cx_root() . "/lib/perl"; } # Don't use CXLog in this script! # Process command-line options my $opt_fifo; my $opt_log; my $opt_help; require CXOpts; my $cxopts=CXOpts->new(); $cxopts->add_options(["head=s" => \$max_head, "tail=s" => \$max_tail, "extra=s" => \$max_extra, "fifo=s" => \$opt_fifo, "log=s" => \$opt_log, "?|h|help" => \$opt_help ]); my $err=$cxopts->parse(); # Validate the command line options my $usage; if ($err) { print STDERR "$name0:error: $err\n"; $usage=2; } elsif ($opt_help) { $usage=0; } else { $max_tail=$max_head if (!defined $max_tail); if (!defined $max_extra) { $max_extra=$max_tail/5; } elsif ($max_extra>=$max_tail) { print STDERR "$name0:error: 'extra' must be less than 'tail'\n"; $usage=2; } } # Print usage if (defined $usage) { if ($usage) { print STDERR "$name0:error: try '$name0 --help' for more information\n"; exit $usage; } print "Usage: $name0 [--help] [--head N] [--tail N] [--extra N] [--fifo INPUT] [--log LOGFILE]\n"; print "\n"; print "Gathers the debug output of multiple applications and generates a single\n"; print "log while limiting its size.\n"; print "\n"; print "Options:\n"; print " --head N Keep the N first lines of the log\n"; print " --tail N Keep the N last lines of the log\n"; print " --extra N Keep up to N additional important lines\n"; print " --fifo INPUT Create a fifo from which the log is read\n"; print " Also runs $name0 in the background\n"; print " --log LOGFILE Save the log in this file\n"; print " --help, -h Shows this help message\n"; exit 0; } my $retcode=1; # Open the output file my $out; if (defined $opt_log) { if (!open($out, ">", $opt_log)) { print STDERR "$name0:error: unable to open '$opt_log' for writing\n"; goto EXIT; } } else { # Append to stdout open($out, ">>&=1"); } # Open the input file my $in; if (defined $opt_fifo) { if (-e $opt_fifo and !unlink $opt_fifo) { print STDERR "$name0:error: '$opt_fifo' already exists and is in the way\n"; goto EXIT; } my $rc=system("mkfifo","-m","644","$opt_fifo"); if ($rc) { print STDERR "$name0:error: unable to create '$opt_fifo' (rc=$rc)\n"; goto EXIT; } # Now we must fork in the background my $pid=fork(); if ($pid) { print "$pid\n"; exit 0; } if (!open($in, "<", $opt_fifo)) { print STDERR "$name0:error: unable to open '$opt_fifo' for reading\n"; goto EXIT; } } else { # Read from stdin open($in, "<&=0"); } # Pass the head of the file as is my $line_count=0; while (<$in>) { print $out $_; last if (++$line_count == $max_head); } # Filter the tail my $last_out=$line_count; my $extra=0; my @buffer; my $pos=0; sub print_skipped($) { my ($out)=@_; if ($last_out<$line_count-$max_tail) { print $out "\n[---------- skipped lines ",$last_out+1," - ",$line_count-$max_tail," ----------]\n\n"; $extra++; } } while (<$in>) { if (defined $buffer[$pos] and $buffer[$pos] =~ /^(?:\*\*(?:\*\*\*)?|....:Starting process|WineDbg starting on pid) / and $extra<$max_extra) { # This is an important line, we should preserve it print_skipped($out) if ($last_out<$line_count-$max_tail); if ($buffer[$pos] =~ /^(?:\*\* |\*\*\*\*\* )/) { $last_out=$line_count-$max_tail+3; my $p=$pos; for (my $i=0;$i<3;$i++) { print $out $buffer[$p]; $buffer[$p]=undef; $p=0 if (++$p == $max_tail); } $extra+=3; } elsif ($buffer[$pos] =~ /^WineDbg starting on pid /) { $last_out=$line_count-$max_tail; my $stop; my $p=$pos; while (!$stop) { $stop=1 if ($buffer[$p] =~ /^WineDbg terminated on /); print $out $buffer[$p]; $buffer[$p]=undef; $last_out++; $p=0 if (++$p == $max_tail); last if (++$extra == $max_extra); } } elsif ($buffer[$pos] =~ /^....:Starting process /) { $last_out=$line_count-$max_tail+1; print $out $buffer[$pos]; $buffer[$pos]=undef; $extra++; } } $buffer[$pos++]=$_; $pos=0 if ($pos == $max_tail); $line_count++; } close($in); # Print the lines that are still in the buffer if ($line_count<=$max_tail) { print $out @buffer; } else { # The log got truncated print_skipped($out); for (my $i=$pos;$i<$max_tail;$i++) { print $out $buffer[$i] if (defined $buffer[$i]); } for (my $i=0;$i<$pos;$i++) { print $out $buffer[$i] if (defined $buffer[$i]); } } $retcode=0; EXIT: close($out) if ($out); unlink $opt_fifo if (defined $opt_fifo); exit $retcode; 07070100082d0f000081ed00000067000001f400000001490a20d60000a06e000000660000000700000000000000000000001a00000000reloc/$PKGINST/bin/cxmenu#!/usr/bin/perl -w # (c) Copyright 2005-2008. CodeWeavers, Inc. use strict; my @desktop_plugins=("CXMenuWindows", "CXMenuCheck", "CXMenuKDE", "CXMenuGnome", "CXMenuSUSE8", "CXMenuDebian", "CXMenuCDE", "CXMenuVFDesktop", "CXMenuVFolder", "CXMenuXDG", "CXMenuDtop", "CXMenuMacOSX", "CXMenuShortcut"); my %auto_localize=("Programs" => 1, "Windows Applications" => 1); # Portable which(1) implementation sub cxwhich($$;$) { my ($dirs, $app, $noexec)=@_; if ($app =~ /^\//) { return $app if ((-x $app or $noexec) and -f $app); } elsif ($app =~ /\//) { require Cwd; my $path=Cwd::cwd() . "/$app"; return $path if ((-x $path or $noexec) and -f $path); } else { foreach my $dir (split /:/, $dirs) { return "$dir/$app" if ($dir ne "" and (-x "$dir/$app" or $noexec) and -f "$dir/$app"); } } return undef; } # Fast dirname() implementation sub _cxdirname($) { my ($path)=@_; return undef if (!defined $path); return "." if ($path !~ s!/+[^/]+/*$!!s); return "/" if ($path eq ""); return $path; } # Locate where CrossOver is installed by looking for the directory # where this this script is located, unwinding symlinks on the way sub locate_cx_root() { if (!defined $ENV{CX_ROOT}) { my $argv0=cxwhich($ENV{PATH},$0); $argv0=$0 if (!defined $argv0); if ($argv0 !~ m+^/+) { require Cwd; $argv0=Cwd::cwd() . "/$argv0"; } my $dir=_cxdirname($argv0); while (!-x "$dir/cxmenu" or !-f "$dir/cxmenu") { last if (!-l $argv0); $argv0=readlink($argv0); $argv0="$dir/$argv0" if ($argv0 !~ m+^/+); $dir=_cxdirname($argv0); } $dir =~ s%(/\.)*$%%; $dir =~ s%(/\./(\./)*)%/%; $ENV{CX_ROOT}=_cxdirname($dir); } if (!-x "$ENV{CX_ROOT}/bin/cxmenu" or !-f "$ENV{CX_ROOT}/bin/cxmenu") { my $name0=$0; $name0 =~ s+^.*/++; print STDERR "$name0:error: could not find CrossOver in '$ENV{CX_ROOT}'\n"; exit 1; } return $ENV{CX_ROOT}; } BEGIN { unshift @INC, locate_cx_root() . "/lib/perl"; } use CXLog; use CXUtils; use CXMenu; my $filters={}; sub get_filter_list($$) { my ($cxmenu, $filter)=@_; $filter||=""; my $filter_list=$filters->{$filter}; if (!defined $filter_list) { my @list; if ($filter eq "") { @list=grep !/^Settings$/i, $cxmenu->get_section_names(); } else { @list=split /:+/, $filter; } $filters->{$filter}=$filter_list=\@list; } return $filter_list; } sub check_menu_path($) { my ($path)=@_; if ($path =~ m%/\.*/%) { # Path contains stuff like '//', '/./', '/../', etc. cxerr("invalid menu path '$path'\n"); return 0; } if ($path !~ m%^(?:Desktop|StartMenu)(?:[._][^/]+)?/%) { cxerr("unknown menu root '$path'\n"); return 0; } return 1; } my %menu_components; sub path_to_components($$$$$) { my ($rawpath, $cxconfig, $menu_root, $menu_strip, $tag)=@_; $rawpath =~ s!/+!/!g; my $components=$menu_components{$rawpath}; if (!exists $menu_components{$rawpath}) { # Don't give up even if the menu path or root is not valid # so we build a negative cache my $menu; if (check_menu_path($rawpath)) { $menu->{rawpath}=$rawpath; my $path=$rawpath; $path =~ s%^(Desktop|StartMenu)(?:[._][^/]+)?/%/%; $menu->{root}=$1; $menu->{is_dir}=1 if ($path =~ s%/$%%); $menu->{is_desktop}=1 if ($menu->{root} eq "Desktop"); if (!$menu->{is_desktop}) { if ($menu_strip) { my @path_items=split "/", $path; if ($menu_strip+1 < @path_items) { splice @path_items, 0, $menu_strip+1; $path=join("/", "", @path_items); } elsif ($menu->{is_dir}) { # Menu folders that are not deep enough disappear # entirely $menu=undef; } else { # But menu entries just get moved to the root folder $path="/$path_items[-1]"; } } $path="$menu_root$path" if (defined $menu_root); } if ($menu) { $menu->{path}=$path; $menu->{dir}=$path; $menu->{dir}=~ s%/[^/]*$%/%; $menu->{name}=$path; $menu->{name}=~s%^.*/%%; $menu->{name}=~s%/$%%; } } if ($menu) { $menu->{tag}=$tag; my $path=""; foreach my $item (split "/", $menu->{dir}) { next if ($item eq ""); $path .="/$item"; my $component={ name => $item, path => $path, intermediate => 1, is_dir => 1, tag => $tag }; push @$components, $component; } push @$components, $menu; } $menu_components{$rawpath}=$components; } return $components; } sub update_field($$$) { my ($section, $name, $value)=@_; $value||=""; my $oldval=$section->get($name) || ""; return 0 if ($oldval eq $value); if ($value eq "") { $section->remove($name); } else { $section->set($name, $value); } return 1; } # Process command-line options my $opt_create; my $opt_delete; my $opt_delete_filter; my $opt_mode; my $opt_mode_filter; my $opt_query; my $opt_query_filter; my $opt_start; my $opt_wait_children; my $opt_install; my $opt_install_filter; my $opt_uninstall; my $opt_uninstall_filter; my $opt_removeall; my $opt_sync; my $opt_sync_install_none; my $opt_sync_uninstall_none; my $opt_utf8; my $opt_bottle; my $opt_crossover; my $opt_conf; my $opt_menu_root; my $opt_menu_strip; my $opt_tag; my $opt_pattern; my $opt_filter; my $opt_ignorelist; my $opt_description; my $opt_type; my $opt_command; my $opt_icon; my $opt_shortcut; my $opt_scope; my $opt_verbose; my $opt_help; require CXOpts; my $cxopts=CXOpts->new(); $cxopts->add_options(["create=s" => \$opt_create, "delete" => \$opt_delete, "delete-filter=s" => \$opt_delete_filter, "mode=s" => \$opt_mode, "mode-filter=s" => \$opt_mode_filter, "query" => \$opt_query, "query-filter=s" => \$opt_query_filter, "start" => \$opt_start, "wait-children" => \$opt_wait_children, "install" => \$opt_install, "install-filter=s" => \$opt_install_filter, "uninstall" => \$opt_uninstall, "uninstall-filter=s" => \$opt_uninstall_filter, "removeall" => \$opt_removeall, "sync" => \$opt_sync, "sync-install-none" => \$opt_sync_install_none, "sync-uninstall-none" => \$opt_sync_uninstall_none, "utf8" => \$opt_utf8, "bottle=s" => \$opt_bottle, "crossover" => \$opt_crossover, "conf=s" => \$opt_conf, "menu-root=s" => \$opt_menu_root, "menu-strip=s" => \$opt_menu_strip, "tag=s" => \$opt_tag, "pattern=s" => \$opt_pattern, "filter=s" => \$opt_filter, "ignorelist=s" => \$opt_ignorelist, "description=s" => \$opt_description, "type=s" => \$opt_type, "command=s" => \$opt_command, "icon=s" => \$opt_icon, "shortcut=s" => \$opt_shortcut, "scope=s" => \$opt_scope, "verbose!" => \$opt_verbose, "?|h|help" => \$opt_help ]); my $err=$cxopts->parse(); CXLog::fdopen(2) if ($opt_verbose); CXLog::set_channel_default("cxmenu", "1"); CXLog::close() if (!CXLog::is_channel_on("cxmenu")); # Validate the command line options my $usage; my $only_removeall; if ($err) { cxerr("$err\n"); $usage=2; } elsif ($opt_help) { $usage=0; } else { if (!$opt_utf8) { # Re-encode the parameters to UTF-8 require CXRecode; $opt_create=CXRecode::from_sys("UTF-8", $opt_create); $opt_filter=CXRecode::from_sys("UTF-8", $opt_filter); $opt_delete_filter=CXRecode::from_sys("UTF-8", $opt_delete_filter); $opt_mode_filter=CXRecode::from_sys("UTF-8", $opt_mode_filter); $opt_query_filter=CXRecode::from_sys("UTF-8", $opt_query_filter); $opt_install_filter=CXRecode::from_sys("UTF-8", $opt_install_filter); $opt_uninstall_filter=CXRecode::from_sys("UTF-8", $opt_uninstall_filter); $opt_description=CXRecode::from_sys("UTF-8", $opt_description); $opt_command=CXRecode::from_sys("UTF-8", $opt_command); $opt_icon=CXRecode::from_sys("UTF-8", $opt_icon); $opt_shortcut=CXRecode::from_sys("UTF-8", $opt_shortcut); $opt_menu_root=CXRecode::from_sys("UTF-8", $opt_menu_root); $opt_menu_strip=CXRecode::from_sys("UTF-8", $opt_menu_strip); } if ($opt_crossover) { $opt_conf="$ENV{CX_ROOT}/share/crossover/data/crossover.menu" if (!defined $opt_conf); $opt_tag=CXUtils::get_product_id() . "-0" if (!defined $opt_tag); $opt_scope="managed"; delete $ENV{CX_BOTTLE}; } my $cmd_count=0; $cmd_count++ if (defined $opt_query); $cmd_count++ if (defined $opt_install); $cmd_count++ if (defined $opt_uninstall); $cmd_count++ if (defined $opt_removeall); $cmd_count++ if (defined $opt_start); $cmd_count++ if (defined $opt_create); $cmd_count++ if (defined $opt_delete); $cmd_count++ if (defined $opt_mode and !$opt_sync); $cmd_count++ if (defined $opt_sync); $only_removeall=1 if ($cmd_count == 1 and defined $opt_removeall); if ($cmd_count == 0) { cxerr("you must specify the operation to perform\n"); $usage=2; } elsif (defined $opt_start and $cmd_count > 1) { cxerr("--start is incompatible with --create, --delete, --query, --install, --uninstall, --removeall, --mode and --sync\n"); $usage=2; } elsif ($opt_sync) { if ($opt_delete) { cxerr("--sync is incompatible with --delete\n"); $usage=2; } if ($opt_sync_uninstall_none and ($opt_uninstall or $opt_removeall)) { cxerr("--sync-uninstall-none is incompatible with --uninstall and --removeall\n"); $usage=2; } if ($opt_sync_install_none and $opt_install) { cxerr("--sync-install-none is incompatible with --install\n"); $usage=2; } } elsif ($opt_sync_uninstall_none or $opt_sync_install_none) { cxerr("--sync-uninstall-none and --sync-install-none can only be used with --sync\n"); $usage=2; } if (($opt_create or $opt_sync) and (defined $opt_filter or defined $opt_delete_filter or defined $opt_mode_filter or defined $opt_query_filter or defined $opt_install_filter or defined $opt_uninstall_filter)) { cxerr("--create and --sync are incompatible with the --filter options\n"); $usage=2; } if (!$opt_start and $opt_wait_children) { cxerr("--wait-children can only be used with --start\n"); $usage=2; } elsif ($opt_start and $opt_wait_children and ($opt_filter || "") =~ /(?::|^$)/) { # If $opt_filter contains a colon (or is undefined or empty), then # then there is (very likely) more than one menu cxerr("--wait-children can only be used with a single menu\n"); $usage=2; } if (defined $opt_mode and $opt_mode !~ /^(?:install|ignore)$/i) { cxerr("unknown install mode '$opt_mode'\n"); $usage=2; } if (defined $opt_create) { if (!check_menu_path($opt_create)) { $usage=2; } $opt_type="raw" if (!$opt_type); $opt_type=~ tr/A-Z/a-z/; if ($opt_type !~ /^(?:raw|windows)$/) { cxerr("unknown menu type '$opt_type'\n"); $usage=2; } } elsif (defined $opt_description or defined $opt_type or defined $opt_command or defined $opt_icon or defined $opt_shortcut) { cxerr("--description, --type, --command, --icon and --shortcut can only be used with --create\n"); $usage=2; } if (defined $opt_delete_filter and !defined $opt_delete) { cxerr("--delete-filter can only be used with --delete\n"); $usage=2; } if (defined $opt_mode_filter and !defined $opt_mode) { cxerr("--mode-filter can only be used with --mode\n"); $usage=2; } if (defined $opt_query_filter and !defined $opt_query) { cxerr("--query-filter can only be used with --query\n"); $usage=2; } if (defined $opt_install_filter and !defined $opt_install) { cxerr("--install-filter can only be used with --install\n"); $usage=2; } if (defined $opt_uninstall_filter and !defined $opt_uninstall) { cxerr("--uninstall-filter can only be used with --uninstall\n"); $usage=2; } if (defined $opt_filter) { if (!defined $opt_delete and !defined $opt_mode and !defined $opt_query and !defined $opt_start and !defined $opt_install and !defined $opt_uninstall) { cxerr("--filter can only be used with --install, --uninstall, --mode, --query, --start and --delete\n"); $usage=2; } if (defined $opt_delete_filter or defined $opt_mode_filter or defined $opt_query_filter or defined $opt_install_filter or defined $opt_uninstall_filter) { cxerr("--delete-filter, --mode-filter, --query-filter, --install-filter and --uninstall-filter are incompatible with --filter\n"); $usage=2; } else { $opt_delete_filter=$opt_mode_filter=$opt_query_filter=$opt_install_filter=$opt_uninstall_filter=$opt_filter; } } if (defined $opt_pattern and !defined $opt_removeall) { cxerr("--pattern can only be used with --removeall\n"); $usage=2; } if (defined $opt_scope) { $opt_scope=~ tr/A-Z/a-z/; if ($opt_scope !~ /^(?:managed|private)$/) { cxerr("unknown scope value '$opt_scope'\n"); $usage=2; } } elsif (defined $opt_conf or ($only_removeall and defined $opt_pattern)) { $opt_scope="private"; } } # Determine and check wineprefix my $cxconfig; if (!defined $usage) { require CXBottle; $cxconfig=CXBottle::get_crossover_config(); $ENV{CX_BOTTLE}=$opt_bottle if (defined $opt_bottle); $ENV{CX_BOTTLE}="default" if (!defined $ENV{CX_BOTTLE} and !defined $opt_conf and !($only_removeall and defined $opt_pattern)); if (defined $ENV{CX_BOTTLE}) { # Some desktop plugins need the WINEPREFIX my ($scope)=CXBottle::setup_bottle_wineprefix($opt_scope); if (defined $scope and !defined $opt_scope) { # Arbitrate between stub and managed bottles # if the scope was not specified explicitly ($scope)=CXBottle::bottle_stub2managed($scope); } $scope=undef if (!CXBottle::is_wineprefix_valid($ENV{WINEPREFIX}, $opt_start)); if (defined $scope) { # Read the bottle configuration file and setup its environment CXBottle::setup_bottle_environment($cxconfig, $ENV{WINEPREFIX}); } else { cxerr($@); $usage=1; } $opt_scope=$scope; } else { # Delete WINEPREFIX in case it is set in the user's environment delete $ENV{WINEPREFIX}; } } # Print usage if (defined $usage) { my $name0=cxname0(); if ($usage) { cxerr("try '$name0 --help' for more information\n"); exit $usage; } print "Usage: $name0 --sync [--bottle BOTTLE] [--mode MODE] [--verbose]\n"; print "or $name0 [--bottle BOTTLE] [--crossover] [--install] [--uninstall]\n"; print " [--removeall [--pattern PATTERN]] [--mode MODE] [--help]\n"; print " [--create MENU [create-options]|--filter FILTER]\n"; print " [--start [--wait-children]] [--delete]\n"; print " [--verbose] [advanced-options]\n"; print "\n"; print "Makes the Windows menus available to the native desktop environment and\n"; print "provides a command-line interface for managing these menus.\n"; print "\n"; print "Options:\n"; print " --sync Scans the bottle's Windows Start Menu and Desktop icons and\n"; print " updates the menu list accordingly\n"; print " New menus will receive the mode specified by the --mode option\n"; print " and will be installed if appropriate. Obsolete menus will be\n"; print " uninstalled and deleted\n"; print " --sync-uninstall-none Instructs --sync not to uninstall and delete obsolete\n"; print " menus\n"; print " --sync-install-none Instructs --sync not to (re)install modified or new\n"; print " menus\n"; print " --bottle BOTTLE Use the specified bottle. If this option is not used,\n"; print " fallback to \$CX_BOTTLE and then to 'default'\n"; print " --crossover Sets the correct options for working on the CrossOver menu\n"; print " --mode MODE Sets the menu install mode. If the install mode is 'install' the\n"; print " menu will be installed by subsequent --install operations. If it\n"; print " is set to 'ignore' it will be ignored by such operations\n"; print " --mode-filter Specifies the menus to set the mode on. See --filter\n"; print " --install Exports the menus so they can be used from the supported\n"; print " native desktop environments (e.g. Gnome, KDE)\n"; print " This operation ignores menus that have their install mode set\n"; print " to 'ignore'\n"; print " --install-filter Specifies the menus to install. See --filter\n"; print " --uninstall Removes the menus from the desktop environments, even if their\n"; print " install mode is 'ignore'\n"; print " --uninstall-filter Specifies the menus to uninstall. See --filter\n"; print " --removeall Each bottle has a unique id which is used to tag its menus\n"; print " This option uninstalls any menu bearing the bottle's id\n"; print " --pattern PATTERN Specifies that --removeall should uninstall any menu\n"; print " that bears an id matching the specified regular expression\n"; print " --help, -h Shows this help message\n"; print "\n"; print "Advanced options:\n"; print " --create MENU Creates the specified menu. The menu is specified as a\n"; print " slash-separated path starting with either StartMenu for regular\n"; print " menus or Desktop for desktop icons\n"; print " To create a menu folder, add a trailing slash\n"; print " --description DESCRIPTION The menu description\n"; print " --type TYPE Either 'windows' for Windows '.lnk' files, or 'raw' for\n"; print " arbitrary menus\n"; print " --icon ICONFILE Native path to the XPM icon file. Environment variables\n"; print " are allowed using the \${VAR} syntax\n"; print " --command COMMAND The command to run for this menu. Environment variables\n"; print " are allowed using the \${VAR} syntax\n"; print " --shortcut SHORTNAME If set, a command line script by that name will be\n"; print " created\n"; print " --filter FILTER Specifies the menus to operate on. FILTER is a\n"; print " colon-separated list of menus, where each menu is identified by\n"; print " a path as described in the --create option. By default the\n"; print " operations apply to all known menus\n"; print " --menu-root ROOT Specifies where to create the menus\n"; print " --start Runs the application pointed to by the menu\n"; print " --wait-children Wait for the application and all its children to exit\n"; print " --delete Deletes the menus. Note that this does not uninstall them\n"; print " --delete-filter Specifies the menus to delete. See --filter\n"; print " --query Outputs the list of supported menuing systems for both 'Start\n"; print " Menus' and 'Desktop' icons. Then outputs which menuing systems\n"; print " each menu is installed in\n"; print " --query-filter Specifies the menus to query. See --filter\n"; print " --ignorelist LIST Specifies a colon-separated list of menuing systems to\n"; print " ignore. If the list starts with a '+' then it is appended to\n"; print " the 'MenuIgnoreList' setting. Otherwise it overrides it\n"; print " --utf8 Specifies that the script parameters are in UTF-8, regardless of\n"; print " the default system encoding\n"; print " --conf FILE Specifies an alternative file containing the menu list\n"; print " --tag TAG Specifies an alternative tag to be used for identifying the menus\n"; print " --scope SCOPE If set to managed and given administrative rights, the menus\n"; print " will be installed in a system-wide location. Otherwise they will\n"; print " be installed for use in the current account only. When operating\n"; print " on a bottle, this also specifies whether to look for a managed\n"; print " or a private bottle\n"; print " --verbose Output more information about what is going on\n"; exit 0; } # Determine the scope of the menus my $desktop_scope; if ($opt_scope eq "managed" and $> == 0) { $desktop_scope="managed"; # Make sure the menus are going to be world-readable umask(umask() & ~0055); } else { $desktop_scope="private"; } my $bottle_mode=$cxconfig->get("Bottle", "MenuMode") || ""; $bottle_mode =~ tr/A-Z/a-z/; $bottle_mode="ignore" if ($bottle_mode !~ /^(?:install|ignore)$/); if (defined $ENV{WINEPREFIX}) { require CXBottle; if (!$only_removeall and !CXBottle::update_bottle($cxconfig, $ENV{WINEPREFIX}, $opt_scope)) { cxerr("unable to update the '$ENV{CX_BOTTLE}' bottle\n"); exit 1; } $opt_conf="$ENV{WINEPREFIX}/cxmenu.conf" if (!defined $opt_conf); } # Serialize modifications to the cxmenu.conf file my ($lockdir, $lockfile, $lock); if ($opt_create or $opt_mode or $opt_sync or $opt_delete) { my $productid=CXUtils::get_product_id(); $lockdir=$ENV{TMPDIR} || "/tmp"; $lockdir.= "/.wine-$>"; $lockfile="$productid-cxmenu.lock"; $lock=CXUtils::cxlock($lockdir, $lockfile, $err); if (!defined $lock) { cxwarn("$err\n"); cxwarn("locking failed, continuing without a lock\n"); } } require CXRWConfig; my $cxmenu=CXRWConfig->new($opt_conf) if (defined $opt_conf); # Finally do the work my $rc=0; if ($opt_create) { my $mode; my $section=$cxmenu->get_section($opt_create); if ($section) { if (!defined $opt_mode and $ENV{CX_MENU_MODE}) { # We are in 'cxmenu --sync' mode, preserve the old mode $mode=$section->get("Mode") || ""; $mode=$ENV{CX_MENU_MODE} if ($mode !~ /^(?:install|ignore)$/i); } else { $mode=$opt_mode || "install"; } # Remove all the old fields so the old menu is completely overwritten $section->remove_all(); } else { $section=$cxmenu->append_section($opt_create); $mode=$opt_mode || $ENV{CX_MENU_MODE} || "install"; } $section->set("Description", $opt_description) if (defined $opt_description); $section->set("Type", $opt_type); $section->set("Command", $opt_command) if (defined $opt_command); $section->set("Icon", $opt_icon) if (defined $opt_icon); $section->set("Shortcut", $opt_shortcut) if (defined $opt_shortcut); $section->set("Mode", $mode); # The other operations will work on this one menu $opt_filter=$opt_create; } elsif ($opt_sync) { if (!defined $ENV{WINEPREFIX}) { cxerr("no bottle was specified for the --sync option\n"); exit 1; } # Recreate the icon directory from scratch # to prevent obsolete icons from accumulating if (opendir(my $dh, "$ENV{WINEPREFIX}/windata")) { foreach my $dentry (readdir $dh) { if ($dentry =~ /^(?:Desktop|StartMenu)/) { require File::Path; File::Path::rmtree("$ENV{WINEPREFIX}/windata/$dentry"); } } closedir($dh); } my %to_delete; foreach my $name ($cxmenu->get_section_names()) { my $type=$cxmenu->get($name, "Type") || "raw"; $to_delete{$name}=1 if ($type =~ /^windows$/i); } # Scan the Windows menus my $start=CXLog::cxtime(); my $cmd=shquote_string("$ENV{CX_ROOT}/bin/wine") . " --no-convert --wl-app winemenubuilder.exe -d -a |"; require CXConfig; my $cxscan=CXConfig->new($cmd); cxlog("-> rc=$rc (took ", CXLog::cxtime()-$start, " seconds)\n"); if ($? != 0) { cxerr("an error occurred while scanning the Windows menus\n"); exit 1; } # Update cxmenu.conf if ($bottle_mode ne "install" or $opt_install) { $opt_sync_install_none=1; } else { $opt_install_filter=""; } foreach my $lnkfile (sort $cxscan->get_section_names()) { my $scanned=$cxscan->get_section($lnkfile); my $menu=CXMenu::wineshelllink2cxmenu($scanned->get("IsMenu"), $scanned->get("Root"), $lnkfile, $scanned->get("Path"), $scanned->get("Icon")); if (!$menu) { cxerr($@); next; } elsif ($@) { cxwarn($@); } my ($modified, $mode); my $section=$cxmenu->get_section($menu->{fullpath}); if ($section) { delete $to_delete{$menu->{fullpath}}; } else { $section=$cxmenu->append_section($menu->{fullpath}); $mode=$opt_mode; $section->set("Mode", $mode); $modified=1; } $modified|=update_field($section, "Type", "Windows"); $modified|=update_field($section, "Description", $scanned->get("Description")); $modified|=update_field($section, "Shortcut", $menu->{shortcut}); if ($modified and !$opt_sync_install_none) { $mode=$section->get("Mode") || "ignore" if (!defined $mode); $opt_install_filter.="$menu->{fullpath}:"; } } # Schedule obsolete menus for deletion if (%to_delete) { $opt_delete_filter=join(":", keys %to_delete); $opt_delete=1; if ($bottle_mode eq "install" and !$opt_sync_uninstall_none and !$opt_uninstall and !$opt_removeall) { $opt_uninstall_filter=$opt_delete_filter; $opt_uninstall=1; } } if ($opt_install_filter) { $opt_install=1; } } elsif ($opt_mode) { foreach my $menu (@{get_filter_list($cxmenu, $opt_mode_filter)}) { my $section=$cxmenu->get_section($menu); if ($section) { $section->set("Mode", $opt_mode); cxlog("Set install mode of '$menu' to '$opt_mode'\n"); } else { cxerr("menu '$menu' not found\n"); $rc=1; } } } my $gui_info; my @plugins; if ($opt_query or $opt_install or $opt_uninstall or $opt_removeall) { # Compute the 'MenuRoot' if (!defined $opt_menu_root) { $opt_menu_root=$cxmenu->get("Settings", "MenuRoot") if ($cxmenu); if (!defined $opt_menu_root) { $opt_menu_root=$cxconfig->get("Bottle", "MenuRoot"); } } $opt_menu_root=undef if (($opt_menu_root || "") =~ m!^/?$!); if (defined $opt_menu_root) { if ($opt_menu_root =~ m!/\.*/!) { # Path contains stuff like '//', '/./', '/../', etc. cxerr("the menu root contains an invalid path '$opt_menu_root'\n"); exit 1; } if ($opt_menu_root !~ m!^/!) { $opt_menu_root = "/$opt_menu_root"; $opt_menu_root =~ s%/$%%; } if ($opt_crossover and CXUtils::get_product_id() ne CXUtils::get_real_product_id()) { $opt_menu_root.=" (" . CXUtils::get_product_id() . ")"; } } if (!defined $opt_menu_strip) { $opt_menu_strip=$cxmenu->get("Settings", "MenuStrip") if ($cxmenu); if (!defined $opt_menu_strip) { $opt_menu_strip=$cxconfig->get("Bottle", "MenuStrip"); } } if (defined $opt_menu_strip and $opt_menu_strip !~ /^\d+$/) { cxerr("the menu strip count '$opt_menu_strip' is not a number\n"); exit 1; } require CXBottle; $opt_tag=CXBottle::get_bottle_tag($cxconfig) if (!defined $opt_tag and defined $ENV{WINEPREFIX}); # Build a centralised repository of cxmenu options relevant to plugins my $cxoptions={ tag => $opt_tag, desktopdata => CXBottle::get_desktopdata_dir($desktop_scope, $opt_tag) }; # Grab the desktop configuration information my $locate_gui="$ENV{CX_ROOT}/bin/locate_gui.sh"; if (!-f $locate_gui) { cxerr("'$locate_gui' does not exist\n"); exit 1; } $locate_gui=shquote_string($locate_gui); foreach my $line (cxbackquote("$locate_gui --scope $desktop_scope --menu", 1)) { chomp $line; $gui_info->{$1}=$2 if ($line =~ /^([^=]+)=(.*)$/); } # Setup the menuing-system blacklist my %ignorehash; if (!defined $opt_ignorelist or $opt_ignorelist =~ s/^[+]//) { my $ignorelist=$cxconfig->get("CrossOver", "MenuIgnoreList"); if (!defined $ignorelist or $ignorelist =~ s/^[+]//) { map { $ignorehash{$_}=1 if ($_ ne ""); } split /:+/, ($gui_info->{desktop_menu_ignore_list} || ""); } map { $ignorehash{$_}=1 if ($_ ne ""); } split /:+/, ($ignorelist || ""); } map { $ignorehash{$_}=1 if ($_ ne ""); } split /:+/, ($opt_ignorelist || ""); # These cannot be blacklisted delete $ignorehash{"CXMenuWindows/"}; delete $ignorehash{"CXMenuCheck/"}; # Load the desktop plugins foreach my $plugin (@desktop_plugins) { if ($ignorehash{$plugin}) { cxlog("Ignoring menu plugin '$plugin'\n"); next; } eval "use $plugin;"; if ($@) { cxwarn("unable to load '$plugin', ignoring it\n"); cxlog("$@\n"); next; } foreach my $instance ($plugin->detect($cxoptions, $cxconfig, $gui_info)) { my $id=$instance->id(); if ($ignorehash{$id}) { cxlog("Ignoring menuing system '$id'\n"); } else { cxlog("Registering menuing system '$id'\n"); push @plugins, $instance; } } } } if (($opt_install or $opt_uninstall or $opt_removeall) and !defined $opt_install_filter and !defined $opt_uninstall_filter and defined $ENV{WINEPREFIX}) { my $mode=($opt_install ? "install" : "ignore"); if ($mode ne $bottle_mode) { my $cxbottle=CXRWConfig->new("$ENV{WINEPREFIX}/cxbottle.conf"); $cxbottle->set("Bottle", "MenuMode", $mode); if (!$cxbottle->save()) { cxerr("unable to save '$ENV{WINEPREFIX}/cxbottle.conf': $!\n"); $rc=1; } } } if ($opt_removeall) { my $start=CXLog::cxtime(); $opt_pattern="$opt_tag\$" if (!defined $opt_pattern); foreach my $plugin (@plugins) { if (CXLog::is_on()) { cxlog("** Removeall '$opt_pattern' from ", $plugin->id(), "\n"); } my $r=$plugin->removeall($opt_pattern); if ($r <= 0) { $rc=1; last if ($r < 0); } } cxlog("-> Removeall took ", CXLog::cxtime()-$start, " seconds\n"); } if ($opt_uninstall) { my $start=CXLog::cxtime(); foreach my $path (@{get_filter_list($cxmenu, $opt_uninstall_filter)}) { my $components=path_to_components($path, $cxconfig, $opt_menu_root, $opt_menu_strip, $opt_tag); next if (!defined $components); # Transfer extra information from the menu file if possible my $menu=@$components[-1]; my $section=$cxmenu->get_section($path); if ($section) { $menu->{type}=$section->get("Type") || "raw"; $menu->{type}=~ tr/A-Z/a-z/; $menu->{shortcut}=$section->get("Shortcut") || ""; } else { $menu->{type}="raw"; } foreach my $plugin (@plugins) { if (CXLog::is_on()) { cxlog("** Uninstalling '$path' from ", $plugin->id(), "\n"); } my $r=$plugin->uninstall($components); if ($r <= 0) { $rc=1; last if ($r < 0); } } } cxlog("-> Uninstall took ", CXLog::cxtime()-$start, " seconds\n"); } if ($opt_install) { my $start=CXLog::cxtime(); my $folder_icon=CXMenu::get_default_icon(1); foreach my $path (@{get_filter_list($cxmenu, $opt_install_filter)}) { my $section=$cxmenu->get_section($path); my $mode=$section->get("Mode") if (defined $section); if (!defined $mode or $mode !~ /^install$/i) { cxlog("Ignoring '$path'\n"); next; } my $components=path_to_components($path, $cxconfig, $opt_menu_root, $opt_menu_strip, $opt_tag); next if (!defined $components); # Transfer extra information from the menu file my $menu=@$components[-1]; $menu->{type}=$section->get("Type") || "raw"; $menu->{type}=~ tr/A-Z/a-z/; $menu->{description}=$section->get("Description") || ""; $menu->{shortcut}=$section->get("Shortcut") || ""; $menu->{localize}=$section->get("Localize"); if (!defined $menu->{localize}) { $menu->{localize}=$auto_localize{$menu->{name}} || ""; } $menu->{command}=expand_string($section->get("Command") || ""); $menu->{icon}=expand_string($section->get("Icon") || ""); $menu->{icon}=CXMenu::get_default_icon($menu->{is_dir}) if ($menu->{icon} eq ""); foreach my $component (@$components) { last if ($component == $menu); $component->{icon}=$folder_icon; $component->{localize}=$auto_localize{$component->{name}} || ""; } # Proceed to the installation foreach my $plugin (@plugins) { if (CXLog::is_on()) { cxlog("** Installing '$path' to ", $plugin->id(), "\n"); } my $r=$plugin->install($components); if ($r <= 0) { $rc=1; last if ($r < 0); } } } cxlog("-> Install took ", CXLog::cxtime()-$start, " seconds\n"); } if ($opt_query) { my $start=CXLog::cxtime(); my (@menu_ids, @desktop_ids); foreach my $plugin (@plugins) { my ($menu, $desktop)=$plugin->query(undef); push @menu_ids, $menu if ($menu ne ""); push @desktop_ids, $desktop if ($desktop ne ""); } print "[StartMenu/]\n"; print "IDs=", join(":", @menu_ids), "\n"; print "[Desktop/]\n"; print "IDs=", join(":", @desktop_ids), "\n"; foreach my $path (@{get_filter_list($cxmenu, $opt_query_filter)}) { my $components=path_to_components($path, $cxconfig, $opt_menu_root, $opt_menu_strip, $opt_tag); next if (!defined $components); # Transfer extra information from the menu file if possible my $menu=@$components[-1]; my $section=$cxmenu->get_section($path); if ($section) { $menu->{type}=$section->get("Type") || "raw"; $menu->{type}=~ tr/A-Z/a-z/; $menu->{shortcut}=$section->get("Shortcut") || ""; } else { $menu->{type}="raw"; } print "[$path]\n"; my @ids; foreach my $plugin (@plugins) { if (CXLog::is_on()) { cxlog("** Querying '$path' in ", $plugin->id(), "\n"); } my $r=$plugin->query($components); if ($r eq "-1") { $rc=1; last; } if ($r eq "0") { $rc=1; next; } push @ids, $r if ($r ne ""); } print "IDs=", join(":", @ids), "\n"; } cxlog("-> Query took ", CXLog::cxtime()-$start, " seconds\n"); } if ($opt_start) { require CXMenuWindows; foreach my $path (@{get_filter_list($cxmenu, $opt_filter)}) { cxlog("Starting '$path'\n"); my $section=$cxmenu->get_section($path); if (!$section) { cxerr("menu '$path' not found\n"); $rc=1; next; } if ($path =~ m!/$!) { cxerr("'$path': cannot start menu folders\n"); $rc=1; next; } my $type=$section->get("Type") || "raw"; $type=~ tr/A-Z/a-z/; my $command; if ($type eq "windows") { my $menu={rawpath => $path}; $command=CXMenuWindows::get_command($menu, !$opt_wait_children); } else { $command=expand_string($section->get("Command") || ""); } if (!defined $command) { cxerr("no command found for '$path'\n"); $rc=1; next; } $command.=" &" if (!$opt_wait_children); cxsystem($command); } } if ($opt_delete) { foreach my $path (@{get_filter_list($cxmenu, $opt_delete_filter)}) { cxlog("Deleting menu '$path'\n"); if ($cxmenu->remove_section($path) and defined $ENV{WINEPREFIX}) { my $icon=CXMenu::get_icon_path($ENV{WINEPREFIX}, $path); if (-f $icon and !unlink $icon) { cxwarn("unable to delete '$icon': $!\n"); } } } } if (defined $cxmenu and !$cxmenu->save()) { cxerr("unable to save '$opt_conf': $!\n"); $rc=1; } # End serialized section if (defined $lock and !CXUtils::cxunlock($lock)) { cxwarn("unable to release the lock\n"); } # Let the desktop plugins finish their work if (@plugins) { my $start=CXLog::cxtime(); foreach my $plugin (@plugins) { if (CXLog::is_on()) { cxlog("** Finalizing ", $plugin->id(), "\n"); } $plugin->finalize(); } cxlog("-> Finalization took ", CXLog::cxtime()-$start, " seconds\n"); } exit $rc; 07070100082d10000081ed00000067000001f400000001490a20d70000272a000000660000000700000000000000000000002000000000reloc/$PKGINST/bin/cxnativeopen#!/usr/bin/perl -w # (c) Copyright 2006-2007. CodeWeavers, Inc. use strict; # Portable which(1) implementation sub cxwhich($$;$) { my ($dirs, $app, $noexec)=@_; if ($app =~ /^\//) { return $app if ((-x $app or $noexec) and -f $app); } elsif ($app =~ /\//) { require Cwd; my $path=Cwd::cwd() . "/$app"; return $path if ((-x $path or $noexec) and -f $path); } else { foreach my $dir (split /:/, $dirs) { return "$dir/$app" if ($dir ne "" and (-x "$dir/$app" or $noexec) and -f "$dir/$app"); } } return undef; } # Fast dirname() implementation sub _cxdirname($) { my ($path)=@_; return undef if (!defined $path); return "." if ($path !~ s!/+[^/]+/*$!!s); return "/" if ($path eq ""); return $path; } # Locate where CrossOver is installed by looking for the directory # where this this script is located, unwinding symlinks on the way sub locate_cx_root() { if (!defined $ENV{CX_ROOT}) { my $argv0=cxwhich($ENV{PATH},$0); $argv0=$0 if (!defined $argv0); if ($argv0 !~ m+^/+) { require Cwd; $argv0=Cwd::cwd() . "/$argv0"; } my $dir=_cxdirname($argv0); while (!-x "$dir/cxmenu" or !-f "$dir/cxmenu") { last if (!-l $argv0); $argv0=readlink($argv0); $argv0="$dir/$argv0" if ($argv0 !~ m+^/+); $dir=_cxdirname($argv0); } $dir =~ s%(/\.)*$%%; $dir =~ s%(/\./(\./)*)%/%; $ENV{CX_ROOT}=_cxdirname($dir); } if (!-x "$ENV{CX_ROOT}/bin/cxmenu" or !-f "$ENV{CX_ROOT}/bin/cxmenu") { my $name0=$0; $name0 =~ s+^.*/++; print STDERR "$name0:error: could not find CrossOver in '$ENV{CX_ROOT}'\n"; exit 1; } return $ENV{CX_ROOT}; } BEGIN { unshift @INC, locate_cx_root() . "/lib/perl"; } use CXLog; use CXUtils; # Process command-line options my $opt_background; my $opt_verbose=1 if (defined $ENV{CX_LOG}); my $opt_help; require CXOpts; my $cxopts=CXOpts->new(["stop_on_unknown", "stop_on_non_option"]); $cxopts->add_options(["background!" => \$opt_background, "verbose!" => \$opt_verbose, "?|h|help" => \$opt_help ]); my $err=$cxopts->parse(); CXLog::fdopen(2) if ($opt_verbose); # Validate the command line options my $usage; if ($err) { cxerr("$err\n"); $usage=2; } elsif ($opt_help) { $usage=0; } else { if (!@ARGV) { cxerr("you must specify the document to open\n"); $usage=2; } elsif (@ARGV > 1) { cxerr("only one document can be opened at a time\n"); $usage=2; } elsif (!-e $ARGV[0]) { cxerr("'$ARGV[0]' does not exist\n"); $usage=2; } } # Print usage if (defined $usage) { my $name0=cxname0(); if ($usage) { cxerr("try '$name0 --help' for more information\n"); exit $usage; } print "Usage: $name0 [--background] [--help] [--verbose] \n"; print "\n"; print "Dispatches a document to the system association handler.\n"; print "\n"; print "Options:\n"; print " --background If an association is found, open the document in the\n"; print " background and return 0. Otherwise return 3\n"; print " --verbose Print more information about what is going on\n"; print " --help, -h Shows this help message\n"; exit 0; } # Heuristics to determine if the document got opened or not sub compute_exit_code($$$) { my ($timeout, $output, $rc)=@_; # For Apple's 'open' command return 3 if ($output =~ /\bLSOpenFromURLSpec\(\)\s+\w+\s+-/); # If something is still running it must be because the document got opened return 0 if ($timeout); # The child process closed the pipe but is still running. # Assume that we hit an application that closes all file # descriptors on startup return 0 if (!defined $rc); # Use the tool's return code to determine if it succeeded return ($rc == 0 ? 0 : 3); } # Known association tools my (@open_list, %is_asynchronous); push @open_list, $ENV{DESKTOP_LAUNCH} if ($ENV{DESKTOP_LAUNCH}); if ($ENV{GNOME_DESKTOP_SESSION_ID}) { push @open_list, "gnome-open"; } elsif ($ENV{KDE_FULL_SESSION}) { push @open_list, "kfmclient exec"; } elsif (($ENV{DESKTOP_SESSION} and $ENV{DESKTOP_SESSION} =~ /xfce4/i) or (!defined $ENV{DESKTOP_SESSION} and cxbackquote("xprop -root _DT_SAVE_MODE 2>/dev/null") =~ /"xfce4"/)) { push @open_list, "exo-open"; } push @open_list, ("xdg-open", "gnome-open", "kfmclient exec", "exo-open", "run-mailcap"); # Asynchronous association tools _always_ return immediately and their return # code is zero if they managed to open the document, and non-zero otherwise. %is_asynchronous=("gnome-open" => 1, # kfmclient may pop up an 'Open with...' dialog # but we're willing to wait it out. "kfmclient exec" => 1 ); foreach my $open_cmd (@open_list) { my @open=CXUtils::cmdline2argv($open_cmd); my $open_path=cxwhich($ENV{PATH}, $open[0]); if (defined $open_path and -s $open_path) { if (!$opt_background) { cxexec(@open, $ARGV[0]); last; } if ($is_asynchronous{$open_cmd}) { cxlog("'$open_cmd' is an asynchronous tool\n"); my $rc=cxsystem(@open, $ARGV[0]); exit ($rc == 0 ? 0 : 3); } # Non-asynchronous tools are tricky to handle. # * Some, like run-mailcap, are truly synchronous and block until # the user closes the application. # * Some, like xdg-open, are sometimes asynchronous, e.g. in Gnome, and # sometimes synchronous, for instance in fvwm where it just execs # run-mailcap. # * Others, such as Apple's open, are asynchronous but always return # zero, so that we have to capture their stderr to distinguish # success from failure. However, a simple `open 2>&1 &` blocks # until all child processes have closed which brings us back to the # synchronous case. # # So we use heuristics: # * We give the application 2 seconds to return an error. If it takes # longer then we assume it successfully opened the document. # * We create a 'sentinel' pipe which will only get closed when all # child processes have quit. This lets us take into account # asynchronous tools that open the document in the background. # * We use the above sentinel pipe instead of solely relying on stderr # to because a graphical tool may decide to close stderr on startup # but is less likely to mess with other file descriptors. # * We redirect and capture stderr in case the tool provides no usable # return code. use Fcntl; local (*PIPE_P, *PIPE_C); pipe PIPE_P, PIPE_C; local (*OUT_P, *OUT_C); pipe OUT_P, OUT_C; my $pid=fork(); if (!defined $pid) { cxerr("unable to fork: $!\n"); exit 1; } if (!$pid) { fcntl PIPE_C, F_SETFD, 0; close PIPE_P; my $fd=fileno(*OUT_C); open STDOUT, ">&$fd"; open STDERR, ">&$fd"; my $cmd=$open_cmd . " " . shquote_string($ARGV[0]); cxexec($cmd); cxerr("could not start '$cmd': $!\n"); exit 1; } close PIPE_C; my $flags=0; fcntl(OUT_P, F_GETFL, $flags); $flags|=O_NONBLOCK; fcntl(OUT_P, F_SETFL, $flags); my $rein=""; my ($pipe_pfd, $out_pfd)=(fileno(PIPE_P), fileno(OUT_P)); vec($rein, $pipe_pfd, 1)=1; vec($rein, $out_pfd, 1)=1; my $output=""; my $timeout=0; my $sigalrm=$SIG{ALRM} || "DEFAULT"; $SIG{ALRM}=sub { $timeout=1; }; alarm 2; while (!$timeout and select(my $rout=$rein, undef, my $eout=$rein, undef)) { if (vec($rout, $out_pfd, 1) == 1) { my $rc=sysread OUT_P, $output, 8192, length($output); if (defined $rc) { if ($rc) { cxlog("got ",(defined $rc ? $rc : ""), " bytes, output=[$output]\n"); } else { cxlog("The child closed stdout+stderr\n"); vec($rein, $out_pfd, 1)=0; } } } elsif (vec($rout, $pipe_pfd, 1) == 1) { cxlog("The pipe got closed\n"); last; } } alarm 0; $SIG{ALRM}=$sigalrm; close(OUT_P); my $rc; # If something is still running, then don't worry about $open_cmd's # return code. if (!$timeout) { # The file descriptors get closed before the child process is fully # dead. So be prepared to wait a bit to avoid race conditions. $SIG{ALRM}=sub { exit compute_exit_code($timeout, $output, undef) }; alarm 1; my $wp=waitpid($pid, 0); alarm 0; $SIG{ALRM}=$sigalrm; if ($wp == $pid) { $rc=$?; cxlog(" -> rc=$rc\n"); } } else { cxlog(" -> timed out\n"); } exit compute_exit_code($timeout, $output, $rc); } cxlog(" skipping '$open_cmd'\n"); } cxerr("could not find a command to open the document (the following were tried: @open_list)\n"); exit 1; 07070100082d11000081ed00000067000001f400000001490a20d700007e00000000660000000700000000000000000000001e00000000reloc/$PKGINST/bin/cxnsplugin#!/usr/bin/perl -w # (c) Copyright 2005-2008. CodeWeavers, Inc. use strict; # Portable which(1) implementation sub cxwhich($$;$) { my ($dirs, $app, $noexec)=@_; if ($app =~ /^\//) { return $app if ((-x $app or $noexec) and -f $app); } elsif ($app =~ /\//) { require Cwd; my $path=Cwd::cwd() . "/$app"; return $path if ((-x $path or $noexec) and -f $path); } else { foreach my $dir (split /:/, $dirs) { return "$dir/$app" if ($dir ne "" and (-x "$dir/$app" or $noexec) and -f "$dir/$app"); } } return undef; } # Fast dirname() implementation sub _cxdirname($) { my ($path)=@_; return undef if (!defined $path); return "." if ($path !~ s!/+[^/]+/*$!!s); return "/" if ($path eq ""); return $path; } # Locate where CrossOver is installed by looking for the directory # where this this script is located, unwinding symlinks on the way sub locate_cx_root() { if (!defined $ENV{CX_ROOT}) { my $argv0=cxwhich($ENV{PATH},$0); $argv0=$0 if (!defined $argv0); if ($argv0 !~ m+^/+) { require Cwd; $argv0=Cwd::cwd() . "/$argv0"; } my $dir=_cxdirname($argv0); while (!-x "$dir/cxmenu" or !-f "$dir/cxmenu") { last if (!-l $argv0); $argv0=readlink($argv0); $argv0="$dir/$argv0" if ($argv0 !~ m+^/+); $dir=_cxdirname($argv0); } $dir =~ s%(/\.)*$%%; $dir =~ s%(/\./(\./)*)%/%; $ENV{CX_ROOT}=_cxdirname($dir); } if (!-x "$ENV{CX_ROOT}/bin/cxmenu" or !-f "$ENV{CX_ROOT}/bin/cxmenu") { my $name0=$0; $name0 =~ s+^.*/++; print STDERR "$name0:error: could not find CrossOver in '$ENV{CX_ROOT}'\n"; exit 1; } return $ENV{CX_ROOT}; } BEGIN { unshift @INC, locate_cx_root() . "/lib/perl"; } use CXLog; use CXUtils; my $filters; sub get_filter_list($$) { my ($cxnsplugin, $filter)=@_; $filter||=""; my $filter_list=$filters->{$filter}; if (!defined $filter_list) { my @list; if ($filter eq "") { @list=$cxnsplugin->get_section_names(); } else { @list=split /:+/, $filter; } $filters->{$filter}=$filter_list=\@list; } return $filter_list; } sub get_install_mode($$$) { my ($dll, $hash_mode, $default_mode)=@_; foreach my $mode ("install", "ignore") { if (defined $hash_mode->{$mode} and $dll =~ /(?:$hash_mode->{$mode})/i) { return $mode; } } return $default_mode; } sub get_dllname($) { my ($dllkey)=@_; my $dllname=cxbasename(demangle_string($dllkey)); my $checksum = unpack("%32C*", $dllkey) % 65535; $dllname =~ s/\.dll$/.$checksum/i; return $dllname; } sub update_field($$$) { my ($section, $name, $value)=@_; $value||=""; my $oldval=$section->get($name) || ""; return 0 if ($oldval eq $value); if ($value eq "") { $section->remove($name); } else { $section->set($name, $value); } return 1; } my $field_list; sub get_field_list($$) { if (!defined $field_list) { my ($crossover, $scope)=@_; my @list; if (defined $crossover) { my $prefix=($scope eq "managed" ? "Managed" : "Private"); @list=grep /^$prefix.*NSPluginDirs$/, @{$crossover->get_field_list()}; } $field_list=\@list; } # Return the list, not a reference, so a foreach # cannot modify the contents of $field_list return @$field_list; } sub field_to_architecture($) { my ($arch)=@_; $arch =~ s/^(?:Managed|Private)(.*)NSPluginDirs$/$1/i; $arch =~ tr/A-Z/a-z/; return $arch; } sub arch_to_lib_dir($$) { my ($desktopdata, $arch)=@_; return "$desktopdata/cxnsplugin/$arch"; } # Process command-line options my $opt_create; my $opt_delete; my $opt_delete_filter; my $opt_mode; my $opt_mode_filter; my $opt_query; my $opt_query_filter; my $opt_install; my $opt_install_filter; my $opt_uninstall; my $opt_uninstall_filter; my $opt_removeall; my $opt_sync; my $opt_sync_install_none; my $opt_sync_uninstall_none; my $opt_utf8; my $opt_bottle; my $opt_conf; my $opt_tag; my $opt_pattern; my $opt_filter; my $opt_scope; my $opt_plugin_dirs; my $opt_verbose=1 if (defined $ENV{CX_LOG}); my $opt_help; require CXOpts; my $cxopts=CXOpts->new(); $cxopts->add_options(["create" => \$opt_create, "delete" => \$opt_delete, "delete-filter=s" => \$opt_delete_filter, "mode=s" => \$opt_mode, "mode-filter=s" => \$opt_mode_filter, "query" => \$opt_query, "query-filter=s" => \$opt_query_filter, "install" => \$opt_install, "install-filter=s" => \$opt_install_filter, "uninstall" => \$opt_uninstall, "uninstall-filter=s" => \$opt_uninstall_filter, "removeall" => \$opt_removeall, "sync" => \$opt_sync, "sync-install-none" => \$opt_sync_install_none, "sync-uninstall-none" => \$opt_sync_uninstall_none, "utf8" => \$opt_utf8, "bottle=s" => \$opt_bottle, "conf=s" => \$opt_conf, "tag=s" => \$opt_tag, "pattern=s" => \$opt_pattern, "filter=s" => \$opt_filter, "scope=s" => \$opt_scope, "plugin-dirs=s" => \$opt_plugin_dirs, "verbose!" => \$opt_verbose, "?|h|help" => \$opt_help ]); my $err=$cxopts->parse(); CXLog::fdopen(2) if ($opt_verbose); # Validate the command line options my $usage; my $only_removeall; my ($default_mode, $hash_mode); if ($err) { cxerr("$err\n"); $usage=2; } elsif ($opt_help) { $usage=0; } else { if (!$opt_utf8) { # Re-encode the parameters to UTF-8 require CXRecode; $opt_filter=CXRecode::from_sys("UTF-8", $opt_filter); $opt_delete_filter=CXRecode::from_sys("UTF-8", $opt_delete_filter); $opt_mode_filter=CXRecode::from_sys("UTF-8", $opt_mode_filter); $opt_query_filter=CXRecode::from_sys("UTF-8", $opt_query_filter); $opt_install_filter=CXRecode::from_sys("UTF-8", $opt_uninstall_filter); $opt_uninstall_filter=CXRecode::from_sys("UTF-8", $opt_uninstall_filter); } my $cmd_count=0; $cmd_count++ if (defined $opt_create); $cmd_count++ if (defined $opt_mode and !$opt_sync); $cmd_count++ if (defined $opt_delete); $cmd_count++ if (defined $opt_query); $cmd_count++ if (defined $opt_install); $cmd_count++ if (defined $opt_uninstall); $cmd_count++ if (defined $opt_removeall); $cmd_count++ if (defined $opt_sync); $only_removeall=1 if ($cmd_count == 1 and defined $opt_removeall); if ($cmd_count == 0) { cxerr("you must specify the operation to perform\n"); $usage=2; } elsif ($opt_sync) { if ($opt_delete) { cxerr("--sync is incompatible with --delete\n"); $usage=2; } if ($opt_sync_uninstall_none and ($opt_uninstall or $opt_removeall)) { cxerr("--sync-uninstall-none is incompatible with --uninstall and --removeall\n"); $usage=2; } if ($opt_sync_install_none and $opt_install) { cxerr("--sync-install-none is incompatible with --install\n"); $usage=2; } if (defined $opt_filter or defined $opt_delete_filter or defined $opt_mode_filter or defined $opt_query_filter or defined $opt_install_filter or defined $opt_uninstall_filter) { cxerr("--sync is incompatible with the --filter options\n"); $usage=2; } } elsif ($opt_sync_install_none or $opt_sync_uninstall_none) { cxerr("--sync-install-none and --sync-uninstall-none can only be used with --sync\n"); $usage=2; } if (defined $opt_mode) { # Prepare and check the $opt_mode specification foreach my $mode_spec (split /;+/, $opt_mode) { if ($mode_spec !~ /^(install|ignore)(?:=(.*))?$/i) { cxerr("unknown install mode specification '$mode_spec'\n"); $usage=2; last; } my ($mode, $regexp_list)=($1, $2); if (defined $regexp_list) { foreach my $regexp (split /:+/, $regexp_list) { next if ($regexp eq ""); if (!defined $hash_mode->{$mode}) { $hash_mode->{$mode}=$regexp; } else { $hash_mode->{$mode}.="|$regexp"; } } } elsif (defined $default_mode) { cxerr("'$mode_spec': the default mode can only be set once\n"); $usage=2; last; } else { $default_mode=$mode; } } if (CXLog::is_on()) { while (my ($mode, $regexp)=each %$hash_mode) { cxlog("Install mode for ($regexp) -> $mode\n"); } if (defined $default_mode) { cxlog("Default install mode -> $default_mode\n"); } } } if (defined $opt_create and !defined $opt_filter) { cxerr("you must use --filter with --create\n"); $usage=2; } if (defined $opt_delete_filter and !defined $opt_delete) { cxerr("--delete-filter can only be used with --delete\n"); $usage=2; } if (defined $opt_mode_filter and !defined $opt_mode) { cxerr("--mode-filter can only be used with --mode\n"); $usage=2; } if (defined $opt_query_filter and !defined $opt_query) { cxerr("--query-filter can only be used with --query\n"); $usage=2; } if (defined $opt_install_filter and !defined $opt_install) { cxerr("--install-filter can only be used with --install\n"); $usage=2; } if (defined $opt_uninstall_filter and !defined $opt_uninstall) { cxerr("--uninstall-filter can only be used with --uninstall\n"); $usage=2; } if (defined $opt_filter) { if (!defined $opt_delete and !defined $opt_mode and !defined $opt_query and !defined $opt_install and !defined $opt_uninstall) { cxerr("--filter can only be used with --install, --mode, --query, --uninstall and --delete\n"); $usage=2; } if (defined $opt_delete_filter or defined $opt_mode_filter or defined $opt_query_filter or defined $opt_install_filter or defined $opt_uninstall_filter) { cxerr("--delete-filter, --mode-filter, --query-filter, --install-filter and --uninstall-filter are incompatible with --filter\n"); $usage=2; } else { $opt_delete_filter=$opt_mode_filter=$opt_query_filter=$opt_install_filter=$opt_uninstall_filter=$opt_filter; } } if (defined $opt_plugin_dirs and !$opt_removeall) { cxerr("--plugin-dirs can only be used with the --removeall command\n"); $usage=2; } if (defined $opt_pattern and !$opt_removeall) { cxerr("--pattern can only be used with the --removeall command\n"); $usage=2; } if (defined $opt_scope) { $opt_scope=~ tr/A-Z/a-z/; if ($opt_scope !~ /^(?:managed|private)$/) { cxerr("unknown scope value '$opt_scope'\n"); $usage=2; } } elsif (defined $opt_conf or ($only_removeall and defined $opt_pattern)) { $opt_scope="private"; } } # Determine and check wineprefix my $cxconfig; if (!defined $usage) { require CXBottle; $cxconfig=CXBottle::get_crossover_config(); $ENV{CX_BOTTLE}=$opt_bottle if (defined $opt_bottle); $ENV{CX_BOTTLE}="default" if (!defined $ENV{CX_BOTTLE} and !defined $opt_conf and !($only_removeall and defined $opt_pattern)); if (defined $ENV{CX_BOTTLE}) { my ($scope)=CXBottle::setup_bottle_wineprefix($opt_scope); if (defined $scope and !defined $opt_scope) { # Arbitrate between stub and managed bottles # if the scope was not specified explicitly ($scope)=CXBottle::bottle_stub2managed($scope); } $scope=undef if (!CXBottle::is_wineprefix_valid($ENV{WINEPREFIX})); if (defined $scope) { # Read the bottle configuration file and setup its environment CXBottle::setup_bottle_environment($cxconfig, $ENV{WINEPREFIX}); } else { cxerr($@); $usage=1; } $opt_scope=$scope; } else { # Delete WINEPREFIX in case it is set in the user's environment delete $ENV{WINEPREFIX}; } } # Print usage if (defined $usage) { my $name0=cxname0(); if ($usage) { cxerr("try '$name0 --help' for more information\n"); exit $usage; } print "Usage: $name0 --sync [--bottle BOTTLE] [--mode MODE] [--verbose]\n"; print "or $name0 [--bottle BOTTLE] [--install] [--uninstall] [--mode MODE]\n"; print " [--removeall [--pattern PATTERN]] [--help]\n"; print " [--create] [--delete] [--query] [--filter FILTER]\n"; print " [advanced-options]\n"; print "\n"; print "Makes the Windows Netscape plugins available to native browsers and provides\n"; print "a command-line interface for managing these plugins.\n"; print "\n"; print "Options:\n"; print " --sync Scans the bottle's Windows Netscape plugins and updates the\n"; print " plugin list accordingly\n"; print " New plugins will receive the mode specified by the --mode\n"; print " option and will be installed if appropriate. Obsolete plugins\n"; print " will be uninstalled and deleted\n"; print " --sync-uninstall-none Instructs --sync not to uninstall and delete obsolete\n"; print " plugins\n"; print " --sync-install-none Instructs --sync not to (re)install modified or new\n"; print " plugins\n"; print " --bottle BOTTLE Use the specified bottle. If this option is not used,\n"; print " fallback to \$CX_BOTTLE and then to 'default'\n"; print " --mode MODE Sets the plugin install mode. If the install mode is 'install'\n"; print " the plugin will be installed by subsequent --install\n"; print " operations. If it is set to 'ignore' it will be ignored by such\n"; print " operations\n"; print " MODE can also be a semi-colon separated list of strings of the\n"; print " form 'MODE=REGEXP1:REGEXP2:...', where MODE is one of the above\n"; print " and applies to all plugins matching the specified regular\n"; print " expressions\n"; print " --install Exports the plugins so they can be used from the supported\n"; print " native browsers. This operation ignores plugins that have their\n"; print " install mode set to 'ignore'\n"; print " --install-filter Specifies the plugins to install. See --filter\n"; print " --uninstall Removes the plugins from the native browsers, even if their\n"; print " install mode is 'ignore'\n"; print " --uninstall-filter Specifies the plugins to uninstall. See --filter\n"; print " --removeall Each bottle has a unique id which is used to tag its plugins\n"; print " This option uninstalls any plugin bearing the bottle's id\n"; print " --pattern PATTERN Specifies that --removeall should uninstall any plugin\n"; print " that bears an id matching the specified regular expression\n"; print " --help, -h Shows this help message\n"; print "\n"; print "Advanced options:\n"; print " --create Creates the plugins specified by the --filter option\n"; print " --filter FILTER Specifies the plugins to operate on. FILTER is a\n"; print " colon-separated list of plugins, where each plugin is\n"; print " identified by its dll path. By default the operations apply\n"; print " to all known plugins\n"; print " --delete-filter Specifies the plugins to delete. See --filter\n"; print " --delete Removes the plugins from the plugin list. Note that this does\n"; print " not uninstall them and does not delete the corresponding\n"; print " Windows dll\n"; print " --query Outputs the list of known native plugin directories and then, for\n"; print " each plugin, the list of directories it is installed in\n"; print " --query-filter Specifies the plugins to query. See --filter\n"; print " --plugin-dirs DIRS Specifies a colon-separated list of native plugin\n"; print " directories. This overrides the '*NSPluginDirs' settings\n"; print " --utf8 Specifies that the script parameters are in UTF-8, regardless of\n"; print " the default system encoding\n"; print " --conf FILE Specifies an alternative file containing the plugin list\n"; print " --tag TAG Specifies an alternative tag to be used for identifying the\n"; print " plugins\n"; print " --scope SCOPE If set to managed and given administrative rights, the\n"; print " plugins will be installed in a system-wide location. Otherwise\n"; print " they will be installed for use in the current account only. When\n"; print " operating on a bottle, this also specifies whether to look for a\n"; print " managed or a private bottle\n"; print " --verbose Output more information about what is going on\n"; exit 0; } # Determine the scope of the plugins my $desktop_scope; if ($opt_scope eq "managed" and $> == 0) { $desktop_scope="managed"; # Make sure the plugins are going to be world-readable umask(umask() & ~0055); } else { $desktop_scope="private"; } my $bottle_mode=$cxconfig->get("Bottle", "NSPluginMode") || ""; $bottle_mode =~ tr/A-Z/a-z/; $bottle_mode="ignore" if ($bottle_mode !~ /^(?:install|ignore)$/); if (defined $ENV{WINEPREFIX}) { require CXBottle; if (!$only_removeall and !CXBottle::update_bottle($cxconfig, $ENV{WINEPREFIX}, $opt_scope)) { cxerr("unable to update the '$ENV{CX_BOTTLE}' bottle\n"); exit 1; } $opt_conf="$ENV{WINEPREFIX}/cxnsplugin.conf" if (!defined $opt_conf); } require CXRWConfig; my $cxnsplugin=CXRWConfig->new($opt_conf) if (defined $opt_conf); my $crossover=$cxconfig->get_section("CrossOver"); # Finally do the work my $rc=0; if ($opt_sync) { if (!defined $ENV{WINEPREFIX}) { cxerr("no bottle was specified for the --sync option\n"); exit 1; } $default_mode="ignore" if (!$default_mode); my %to_delete; map { $to_delete{$_}=1; } $cxnsplugin->get_section_names(); # Let pluginserver scan for the Windows plugin dlls my $start=CXLog::cxtime(); my $cmd=shquote_string("$ENV{CX_ROOT}/bin/wine") . " pluginserver.exe --scandlls |"; require CXConfig; my $cxscan=CXConfig->new($cmd); cxlog("-> rc=$rc (took ", CXLog::cxtime()-$start, " seconds)\n"); if ($? != 0) { cxerr("an error occurred while scanning the Windows plugins\n"); exit 1; } if ($bottle_mode ne "install" or $opt_install) { $opt_sync_install_none=1; } else { $opt_install_filter=""; } my %scanned_dlls; foreach my $name (sort $cxscan->get_section_names()) { my $scanned=$cxscan->get_section($name); # Pluginserver may return duplicate entries if a dll is present # in more than one place. For now we will only take the first one # into account. my $dll=cxbasename($name); next if ($scanned_dlls{$dll}); $scanned_dlls{$dll}=1; my $dllkey=$name; $dllkey =~ s!$ENV{WINEPREFIX}/!!; $dllkey=mangle_string($dllkey); my ($modified, $mode); my $section=$cxnsplugin->get_section($dllkey); if ($section) { delete $to_delete{$dllkey}; } else { cxlog("Adding '$dllkey'\n"); $section=$cxnsplugin->append_section($dllkey); $mode=get_install_mode($dllkey, $hash_mode, $default_mode); $section->set("Mode", $mode); $modified=1; } $modified|=update_field($section, "Name", $scanned->get("Name")); $modified|=update_field($section, "Description", $scanned->get("Description")); $modified|=update_field($section, "MimeTypes", $scanned->get("MimeTypes")); $modified|=update_field($section, "Extensions", $scanned->get("Extensions")); $modified|=update_field($section, "OpenMasks", $scanned->get("OpenMasks")); if ($modified and !$opt_sync_install_none) { $mode=$section->get("Mode") || "ignore" if (!defined $mode); $opt_install_filter.="$dllkey:" if ($mode ne "ignore"); } } # Schedule obsolete plugins for deletion if (%to_delete) { $opt_delete_filter=join(":", keys %to_delete); $opt_delete=1; if ($bottle_mode eq "install" and !$opt_sync_uninstall_none and !$opt_uninstall and !$opt_removeall) { $opt_uninstall_filter=$opt_delete_filter; $opt_uninstall=1; } } if ($opt_install_filter) { $opt_install=1; } } elsif ($opt_create or $opt_mode) { $default_mode="install" if (!$default_mode); foreach my $dllkey (@{get_filter_list($cxnsplugin, $opt_mode_filter)}) { my $section=$cxnsplugin->get_section($dllkey); if (!$section) { if (!$opt_create) { cxerr("plugin dll '$dllkey' not found\n"); $rc=1; next; } $section=$cxnsplugin->append_section($dllkey); cxlog("Added plugin '$dllkey'\n"); } my $mode=get_install_mode($dllkey, $hash_mode, $default_mode); $section->set("Mode", $mode); cxlog("Set install mode of '$dllkey' to '$mode'\n"); } } require CXBottle; if (!defined $opt_tag and ($opt_query or $opt_install or $opt_uninstall or ($opt_removeall and !defined $opt_pattern) )) { $opt_tag=CXBottle::get_bottle_tag($cxconfig); } my $desktopdata_dir=CXBottle::get_desktopdata_dir($desktop_scope, $opt_tag); if (($opt_install or $opt_uninstall or $opt_removeall) and !(defined $opt_install_filter or defined $opt_uninstall_filter) and defined $ENV{WINEPREFIX}) { my $mode=($opt_install ? "install" : "ignore"); if ($mode ne $bottle_mode) { my $cxbottle=CXRWConfig->new("$ENV{WINEPREFIX}/cxbottle.conf"); $cxbottle->set("Bottle", "NSPluginMode", $mode); if (!$cxbottle->save()) { cxerr("unable to save '$ENV{WINEPREFIX}/cxbottle.conf': $!\n"); $rc=1; } } } if ($opt_removeall) { if ($desktopdata_dir) { foreach my $field (get_field_list($crossover, $desktop_scope)) { my $arch=field_to_architecture($field); my $lib_dir=arch_to_lib_dir($desktopdata_dir, $arch); if (-d $lib_dir) { cxlog("Deleting the '$lib_dir' directory\n"); require File::Path; if (!File::Path::rmtree($lib_dir)) { cxwarn("unable to delete the '$lib_dir' directory: $!\n"); } } } CXUtils::garbage_collect_subdirs($desktopdata_dir, "/cxnsplugin", 1); } else { CXBottle::removeall_desktopdata_dirs($opt_pattern, "/cxnsplugin"); } if (!defined $opt_plugin_dirs) { $opt_plugin_dirs=""; if ($crossover) { foreach my $field (get_field_list($crossover, $desktop_scope)) { my $dirs=$crossover->get($field); next if (!$dirs); $opt_plugin_dirs .= ":$dirs"; } } } if (!defined $opt_pattern) { $opt_pattern=$opt_tag; } elsif ($opt_pattern eq "legacy") { # Don't use \w+ as it would risk matching non-CrossOver files $opt_pattern="(?:wine|cxoffice|cxplugin"; if (CXUtils::get_product_id() !~ /^(?:cxplugin|cxoffice)$/) { $opt_pattern.="|" . CXUtils::get_product_id(); } $opt_pattern.=")"; } elsif ($opt_pattern !~ s/\$$//) { $opt_pattern .= ".*"; } $opt_pattern="^np$opt_pattern\\..*\\.so\$"; foreach my $dir (split /:+/, $opt_plugin_dirs) { $dir=expand_string($dir); next if ($dir eq "" or !-d $dir); CXUtils::delete_files($dir, $opt_pattern); } } if ($opt_uninstall and $crossover) { foreach my $field (get_field_list($crossover, $desktop_scope)) { my $dirs=$crossover->get($field); next if (!$dirs); my $arch=field_to_architecture($field); my $lib_dir=arch_to_lib_dir($desktopdata_dir, $arch); foreach my $dllkey (@{get_filter_list($cxnsplugin, $opt_uninstall_filter)}) { # Delete the Unix plugin library my $filename="$lib_dir/$dllkey.so"; if (-f $filename) { cxlog("Deleting '$filename'\n"); if (!unlink $filename) { cxerr("unable to delete '$filename': $!\n"); } } # Then the symbolic links to it my $dllname=get_dllname($dllkey); foreach my $dir (split /:+/, $dirs) { $dir=expand_string($dir); next if ($dir eq "" or !-d $dir); my $link="$dir/np$opt_tag.$arch.$dllname.so"; if (-l $link) { cxlog("Deleting '$link'\n"); if (!unlink $link) { cxwarn("unable to delete '$link': $!\n"); } } } } } } if ($opt_install and $crossover) { my $productid=CXUtils::get_product_id(); my %create; foreach my $dir (split /:+/, ($crossover->get("CreateNSPluginDirs") || "")) { $dir=expand_string($dir); next if ($dir eq ""); $create{$dir}=1; } # For install we must first check that we have a template plugin library # for that architecture. If not, complain here _once_ and then ignore # that architecture. foreach my $field (get_field_list($crossover, $desktop_scope)) { my $dirs=$crossover->get($field); next if (!$dirs); my $arch=field_to_architecture($field); my $template="$ENV{CX_ROOT}/lib/nsplugin-$arch.so"; if (!-f $template) { cxwarn("'$template' does not exist, ignoring '$field'\n"); next; } cxlog("Template plugin library for architecture '$field': '$template'\n"); my $lib_dir=arch_to_lib_dir($desktopdata_dir, $arch); if (!-d $lib_dir and !cxmkpath($lib_dir)) { cxerr("unable to create '$lib_dir': $@\n"); next; } foreach my $dllkey (@{get_filter_list($cxnsplugin, $opt_install_filter)}) { my $mode=$cxnsplugin->get($dllkey, "Mode") || ""; next if ($mode !~ /^install$/i); # Create the Unix plugin library require File::Copy; my $filename="$lib_dir/$dllkey.so"; if (!File::Copy::copy($template, $filename)) { cxwarn("unable to create '$filename': $!\n"); next; } my $dllpath=demangle_string($dllkey); if (cxsystem("$ENV{CX_ROOT}/bin/cxburner", "set", $filename, "CXRoot", $ENV{CX_ROOT}, "ProductID", $productid, "PluginKey", $dllkey, "PluginPath", $dllpath, "CXBottle", $ENV{CX_BOTTLE}, "WinePrefix", $ENV{WINEPREFIX})) { cxwarn("unable to initialize '$filename'\n"); unlink $filename; next; } # Then create symbolic links to it my $dllname=get_dllname($dllkey); foreach my $dir (split /:+/, $dirs) { $dir=expand_string($dir); next if ($dir eq ""); if (!-d $dir) { next if (!$create{$dir}); if (!cxmkpath($dir)) { cxwarn("unable to create the '$dir' directory: $!\n"); next; } } my $link="$dir/np$opt_tag.$arch.$dllname.so"; # Delete the old symlink in case it's broken unlink $link; if (!symlink($filename, $link)) { cxwarn("unable to symlink '$link' to '$filename': $!\n"); } else { cxlog("Symlinked as '$link'\n"); } } } } } if ($opt_query and $crossover) { print "[.all]\n"; foreach my $field (get_field_list($crossover, $desktop_scope)) { my $dirs=$crossover->get($field); next if (!$dirs); $field =~ s/^(?:Managed|Private)//; my @query_dirs; foreach my $dir (split /:+/, $dirs) { $dir=expand_string($dir); next if ($dir eq "" or !-d $dir); push @query_dirs, $dir; } print "$field=", join(":", @query_dirs), "\n"; } foreach my $dllkey (@{get_filter_list($cxnsplugin, $opt_query_filter)}) { print "[$dllkey]\n"; my $dllname=get_dllname($dllkey); foreach my $field (get_field_list($crossover, $desktop_scope)) { my $dirs=$crossover->get($field); next if (!$dirs); my $arch=field_to_architecture($field); my @active_dirs; foreach my $dir (split /:+/, $dirs) { $dir=expand_string($dir); next if ($dir eq "" or !-d $dir); my $link="$dir/np$opt_tag.$arch.$dllname.so"; push @active_dirs, $dir if (-l $link and -f $link); } $field =~ s/^(?:Managed|Private)//; print "$field=", join(":", @active_dirs), "\n"; } } } if ($opt_delete) { foreach my $dllkey (@{get_filter_list($cxnsplugin, $opt_delete_filter)}) { cxlog("Removed plugin '$dllkey'\n"); $cxnsplugin->remove_section($dllkey); } } if (defined $cxnsplugin and !$cxnsplugin->save()) { cxerr("unable to save '$opt_conf': $!\n"); } exit $rc; 07070100082d12000081ed00000067000001f400000001490a20d2000daf30000000660000000700000000000000000000001f00000000reloc/$PKGINST/bin/cxntlm_authELF̐4 4 (! 44  Љ /usr/lib/ld.so.1   !"$')*,./0126789:<>@BDFHIJKLMOQRTVWXY[\]_abcdfiklopqrsvxy{|}    "#$%()+,-.01346789:<>?AEGIJKLMNOTVXZ[]^_acdfiklmnpqrsuvxz{}~    !"#%&'()*,./13579;<=>?BCEHKNPQUVWXYZ\^_`bcfgijlnqrtuvxy{|}    !"#'()+,./0389:;>?ABDFHIKLMNOPQRSWXZ\]^abegjklmnprtuwz{|~    !"#&'*,-.0256789;=?@ABCDEFGHIJKLMNQRSTWXY\]^`bdefhjkopqtwxyz|}~      "$%'()*,-./01345679;<>?BDFGIKLMNOPQRSTUXY[\]`acdefhjmortuvxyz|   "$&')+,-/1469:<=?@ABCEFGJKMQSVWYZ[\]_abchjklnoqrtuvwxz{|~    "#$&),-.12456789:;=>?ABDFGHIKLMNPQTUVXY[\]^`acdefhijlnoprtuvwxyz|}~     "#$()*+-.124789:;<=?@ACFHJLNOQSTUX\]^`bceghijklmnpquy{~                   ! # $ ' ) * + . / 2 3 4 6 7 : < = > ? A B D E F G I K L M N O Q S T U W Y [ \ a b d f g i k l n o q r s u w x z { } ~ #%&(+-345;=?ACEGNPSUZ^`eghjmntuwz~  !&'*/25;=@BCDFHPQRSUWY\`beghjotwy|  $+-02468:@ADFGIJLMORST[]adehkmopswz~  $%&*-124567<=@CEGJTUVY[_`cdfhioqsvxy}  $%()+/134:<>OPUVZ[_acgilmnrsuv{!#&+28:=@ACEHJVWZ^_bgiklnpqsw{}~   !#%(*.023578;>DHILNOPRTUX^`defgimpsy}  !%'(*+/03<@CEJORSWZ_bgkmqs{ !%&',/0356>BDEGIKMPRVWYZ[_adforstvwxz|}        " % & ( , - 0 1 5 8 9 ; @ C H J P R V X Z ] ^ _ ` c e h j m p t v y |  % 1 ʹ& #ip 6y F7Kg d  qQ 5 7  h >4 w j # F   6 O @  ,  4 &W A 2 ) ;~ I,8  `۶ 2 mx;  L c   ) Z |:      \( .U & B  V)- gt} n{ ߌ  4p|  [ z 0 \  # ( #  2   @  W w bw  kv {" n,     H7  Ư  T _t   GY 1= g ?_S/ Z  i$  |  w .Y A Df < & 5  ʆ Z 0  9  AZ A X\ A dO z%Q ܆ J  =  q  }^ Q "   s 7 .] G  Q 6 bhD s6 ~b j 23  Y A _  _ A 9 6 Z] A  1L8܊@ɵ 9 Pz  h    R C:    7k) e #   5 )DAQ  RS ) ^| M h H y5  T y t O +  X } ? N u   , I9  8 - Z G  Z w 8 n ٟ j V  _ F 7m } 9 D  ? X M}   v  Q ,  ! 8 - I Q  U `h F A t ; ~ ˓l ] A + 1 =N tR/ l   = X  } P  R * #D 9 > z ) L {9 b PW w u VX = H A }5. ( 1   s "p 8  ˤ 0  ̇ T A - H 3 7? ` S |@  b 0n c m h }  & T X ) ^ P Y 8    P D   nQ . 5 * P  2 [ !4 z i f L v  C ^| Z 2 4  j + 7  - : ݧ j  \ c5 $0%  =\ S^Q b8pk8ye R2  7  h{ |   ʽ \  .Qg GI@ > V]|b   r C X   =C 69  |} < i  3  9 ,/ f :OC& F; Qb bе  oO 4 h{* #9  |O A  ^ 8  u B  G \ .  8C" RkW  ^ o 4 R/  \ H > I /  " gK  h  7 3 " Iy  [dm8  wN A 8y S  D4> ? 1 1 I ^ & fQ D<  ,@[ T,Za0 1 t;  9    .  ,! o  m M 9Z  M A tH f 8 .8  FV , T 2 d] A xl1 1  = \B X B{& k ( W |~ , * h LP*p 1 Fo3  TCc K bV w iL t7  "^ A   }<  ,   P !8Q4 5K\ & ?0 H F W  l-z l * 1 "" ) S k |  l x '5 _ ^    B %  58  Kx ! [J4  qz\ - 2   j 9 * oY - M k4 1 u "   !\ _ .S A <D j Gz B Vc_  w; ^ ^ K  1   ο q 'N   8 ̉n.   $J 8# * HD > U c  u~Z ) r: [ A K v   X&  a  ܇C  ( u 6v AF4 T`  ^! Hž S \<eM A sq^  1 ve  XZ T A ^  t  / }$~ ( 1 "~  - : T  `12 qx{)   @*  ~< _  0:  l@D  5$ @6  VW jBq  sC    :I "V A  % xN A ,  3   , < L A 6 & D C N Ue [ ; j \  t ! E   M 3 <1 / k)    d     W !!D  }܋!C 4!ʝ 2 J!6  [![  i!B ^ {!5  !J !!b C !J ^ !  !T  !B  "< " l "kX A /"@<" & E"]0 _" 0 w""  "7u{ "s "  "J r "b  "r= ", 5 # %#71#k F A# . J#_  U#7 9 e#w0 1 ~#   # 4 #" ` # j #p#]  # ) #E ^ #DN $ & $$ 3$` # ?$RX M$B a$ބ7 o$$.$'>{ $@p $H  $1<  $z ) $ $VQ $ ) %|% < *%K A% Q%[  k%8 u%  %@ % % % %&%j3 %d   % ; &z' ,&p  ?& V&  q&3  &_[ &  |& # & R &t 5 &:  &-$ &. &'z 'b' $'s 9'G ) J'F  ]'- . o'rJ ^ 'Z '  ' > 'Y  '[4 'e < (@ O (%9  )(  6(A8 M(|Z(0pa( 4 q( |(^ < (' 2 (Q (K (c    (  (Jm (8  )~ ` *)X3 1 A)S)6  f)(T4 {)h  ) ) )* 8 ) ) )|H 1 )uH )3$ )` *xX * , 1 (* y 6*{< I*c  \*]e + q*; + *D*9 | *M g **Q * +t+  )+K O <+ t K+c S W+g N g+J z+ +K . +B +L , + * + D+4 1 ++Ǡo +q0  +d 3 ,E ,l(, t 4,S D,> D Y,fm h,Q ~,3) ,ʏ( ,7  ,Om ,t$ ,S) 1 ,  ,?9 -Pe -3  1- @ A-| T-Z K c-Һ  m- # w-Fk Y --J< -Ȳ c -O - H 6 -u8+ -  .l. .eS 0.?P D ;.LQ A F.Jt P V.\9 c.0x.c>w .M . + .@ 1 . @ .z  .%3$ .E ^ .%  /  /t "/  0/\:/&K/ J ^/< n/0 ~ /` /[- /~  /ڭ  / M /, * /') /4 * 0Z A 0-  40_j L0 S0:  e0?  y0z 0 ~ 0,] 0I q 0B * 0@C 7 0t I 01 1uI ^ 1 > )1`DH1+ K X1 e1 . q1_ / ~1 1i 1P c 1`^ J 1 1 ) 1&9 19 2%  2  /21 H2M2̈S2| .̍e2* 1 t25 2  2 2 2:lv 2(O 2-   22< 2 S 33oh 3  -3J J ?3ɥu Y3Ds3;* 3 3  3\  3BG  3X`  3 O 3! * 3> 4x  4 & 4Y ,4& 1 :45 & M4S4  c4j4c/ 4lQ 4[/ 46U 4tM A 4 4\4r 5`:p 5tg 95 J5<T54 1  l, 1 h5! ; 505=, ,4 5|5, 51 < 5D5܌51v 5/` 5 P 6L .6( ) <6d Y6v  c6I 6 6 ' 6 -d 6Y 56"2 6 3 6< o 6V 8 66\w 79 D 7 K 7B X -7S2 ?7,+ 1 Q7' 1 b7  z7Q6  7p C 7p{ S 7 7A  7* 1 7< 7`D8ɿ J 8[l  *8Ur <8+ I8B  X8b |88Q A 8Q K 8ѕ  8|8# ) 8`  8* P 8X+  9˧t 09+ ?9hB H9  O9   o9 9  9W s 9S A 9T 99( 9̅9 v 9K2 :P :k ( ):B   4:)u G D:7P::-  ^:Y m: 7 :9 y :6 :`FQ :¬ ) :W A :- ::  : J ;+  ;  ,; B C; 6 O;ȹ 9 \;k2 n; z; @ ;5 _ * ;"H ;B/ ;  ;  ;' 1 ;dX <.  <]+ 1 5<#A 1 F< C U<7W b< Z - u<  </K <#  < <K  <2 <K  =\9  =q * !=  3=  O= [=ys o=y= X ~=z  =C 6 ="7  =3T =WS A =) w = =4 L >_  >C, ->vQ =>7  J> `>!  p> J > B >$  >0h a p >%  >o i >)  >r  >>  >_  ? ?!?@1 ,?Y / ??T ,:N P M?K ) \?G V n?6p h x?8 ? Z ? # ?cA ?# ? # ?- & ?a @7  "@  .@ < C@ q O@pu } d@)  t@w @  @ @k O @p@,@`x \@j 0 @K A E A  'A  6AL PAm  h!\Ajti iA;  yA$4  A[ I A  A%P A#^ u  t AG R AT!{ A& T A  B  Bg} 7 )B  5BL s >B>6  NB ) [B L gB*Q j ~B7 B B|  B. # B= Be  Bf # B) 1 B Cp 2 CR/ .Cy  F q FS Fo r F K G  .G4  BG ) SGC\ dG~ |GK  GDG>2 G(^ G6  GG HW   $H  9H T MHQ ) [H7  kHDHL HM  HF A HNx 2 H$ H3  H)  HI   I > #IG A 2I  MIx  ]IsIVI IY IQ I  IDIl IN g IYj JW - ?2  +J =Jh K HJý / U6i ZJ0' iJ / {Jg K J & J̏Jhg JJ JJ JV A J3 J Kj  KK"K'( 1 9K|@K2  [K < eK<oKe8  }KKx : K% KKH  KK  K2  K E Z0;  Lq\ " LLM- 1 )L p 1L$  DLm, / QLT$< _L tLW  L_ K L1 L-<N L 0 L, 1 L [ Fd  L 9 L # $M<*M;M L 6<CM L\M  qMy  M? M|MmJ MU MT S M&@ MR r M 7 NE  N@D%N\ V /NNN  BN_ A TN3O kNg xN~NOF N  N^ N4 H Nܞ H N0 1 N N O=  O02  3Ol  FO K PO1 1 iOBv . }OT8O; h O0m O9E / OMt Z O O5  O5  O74  P  P_P 6PQ  JP 6 XPA sP3  P  P  Pz 9 Pti P| PaG ^ P  Q Q ) t)̐ Q\,QL4Q=' @Q{ NQ!/  aQ DzQQO  Q]L c '2) Qӻ Q MIJ ? Q2  Q $ Q0S/ R\ A RO 'R9   ;S5  US8 bS  nSV  =M<{Sy  S+ m S) SOw SN A S7A  SK  S+  T @ T E T  +LL5T܏=Tu F ET; 2 TT ? cT)  tT+  T̆T8 T5Z TwA  T5 T  Tߋ M T = U' 1 UQ *Uf k ;U,CU) - PU8  _UO N% 9 ]lkU h wUu U; ' UO Ue UX( 1 Uf  U t Un UDVB !V;5  8V!= X DVJm dV ~ vVn7  V n VV_ V:\ A Vu  VZ V Vj<  5LVv; l VU A VO 4 W S WZ& #WB DWG  NW:  ^W0  vWL A W` . WW#;{ W  W l % W;  W P ` W Wk M Xe  X8  3X ' BXF0 1 UX O pX|uXA XW A Xd6  X/  X  XV Xr X/ 1 Y2  Y$  ,YJ  >Y HY*  _Y\eY3 V qYb }Yr YQ YS W YB^ A YK e Yv  Y  hp  Y *. 478y Z Zr  1ZV * ?Z ' RZ  `Z]V  mZ] j wZ6  Z  Z!  ZK A Zל Z Z,ZB] [0 [  .[_ <[C[Q,  S[`;  b[3  }[Ql $-  [$  [i (Q= # [ [Z B [P D [v 5 \_ \L!\! & /\Q D\K ' ]\:  m\E ~\% / \ # \  \\ K \T \-K  \2  ] & ]H 0 8](A][  K]·  ^]ĥ # k],  z] 1 8 ]D]g D :Kl]|]' ]*6 ] E ]Q  ]Sb ^f E ^^a T ,^6 T =^tr S^? a^& 1 t^4 ^T ^L9^ ^TA X ^{  ^E! ^9 ^>"w ^1J A ^ ^1_m _`  (_G# A 5_;H C_ T_X A Js g_ n_ {_9 _A  _,  _{" _ V _6  oYb _D X _6  _& 6 `L Y `[T A '`0 1 pG  A`+ 1 Wo & J`<]  T`S A g` ) w` . `d: N ``~Q `M;  `Ӹ  `s `'  a  a<ag u aZ5  :a^ A KaЍI _aR  oaX a$paa, a> X a- K a/^ 1 a7 bY  bq) |bB X #: N -b( 1 8b< b]|Ib Rb fbR pb > bk ba b  bL S bV$ < b B c\ J ?c< X c{ 3 +cGO< >c:Y 5 Mc; \c ( hce<r wc / cpc / ccc c;  c * c< cN  dI l dd  1d[% Cds;  Rd` ad8)  od, c }dp ) d ) db Af d l J̌d,d d  d  d܅ek eY / +e$  eF  e f͈  f*% ,f* 1 :f(  Df  Zf  gf$>? ~f_ Y fG ) f[7  ft[ y AtNYc   fc % f, f  fhm f & g 6 g ) 'gݷ { 3gF Ng7  cg  xgi< gX { gIC g;  g#C  ggA X gF_ A g O E7y t hE5  $hԠ O .he O Dh  Lh | chU oh  hC h h h ? hb Z h  h(h˞ N h  i,pi>  i <  (iU G :i~ Hi  Si Br ei,qi 3 }iP? i1G i2 D d i ib i!D i  iȊ  jP8j& *jt F ;j Lj  Xj hj  sj& 1 ~jG g e  jLj  j)  jX0  jbc j & j  j(P j  aM H kV  @\4 ' k|8#kG 4kY S @k& _k  lk% kkg: kkd kq / k˵  k kkCm l > l  5l<  Gl> V Tl kleV lll> . l)> X l l%B la ll < m C`) 1 m  m%# /m1+ Nm 4  `mG I sm5 m  msC r 7;  m   m m + mm/m1] \ m  nLn  V )nV  6n# 5 ?nf b Nn an9 rnuf  n  n@F ^ no9  n5  nc?  nW - nd8ni  oU  o6[ A 'o m & @o G `  LE&p  Mo  haoB wo^` o' 1 o o" } oS/ oc&  oT  o9 M jLpeN pw[ A +pV:  @p,` b OpG $ [p  jpe/ 1 |p3# ppp E p{  pʩ: 4̋p#  p p`Dqi  %q  1qS3 Dqu? X Pq a cq, wqj  q[& 1 `  qV q/ q[Q qx K q9 q] B @c\ r * reU2 +rD;rhv Qr3 ! `roY A ur{r^c rNO * rxp rs 4 r5  rGP 9rf r   s@[ 4 s6 U%sL/s4Fs ) Tsc  gs?J : \sh* 1 s$1 sp  sr/ so\ s̢ % suM s t+ )t  4t%\ & >tp/ OtS. Wtl^tj3 yt > tC A tB t  tCw t<  t@Du  'u  !i:u2  XuY A hu) Y tu u u<us u6  uk& Q̊uu ) u   PEz t v  v\v.  %v. 2vB Z :v B FvR A Tv3M A fvk % tv̎|v` * vkl v K h*X A v/ va vk7 v  v+ w   3w/I l  zx& - 0( x]4  x x] , x @ x"( xcV xל\ x) 1 y^ A y;  (y  ?y Qy, ^y T  oy2z  |y  y  y=X y;1 1 y}B8 yDyX9 z  z)  *z Q A 9z̄Az  Qz9 `zM2  O  . rz>_ J {k  zT zz% 1 zY A z 8 z:6 zSR A z3 1 J9Lz  {@ ~ {  9{Z C J{  U{3 e{Qx  u{T # { < {Q ) {  {l(  {7 {M {f J | _ | (|_  3|C @|jC T|D `|= m|) |m5  |\  |  |<? |W | H } }3& '}&  ?}F}?8  Y}'Z b t}3 }˗4 }( } }Ȼ ) }0  } H }Dm^ N ~, / $~x8  g  ;~ a~K  5. # s~& ~ ~;  ~[ J ~M ~ա b 7  '8  =& 9 F{\ A W b;O A p)5 1 \j2  AV < +6  fK B \,[ CY h y Y3  v nM_  #.K > 1e C s P=` ^mO A X A 6   kD  I j ǀ5  ߀̫ )  e xM o % %  4Y6 B@6TVQ  hJ g %\l57  |  Q A ȁ  ݁6  3 1 5  m k< 2Jw Dpw # Xk1 / wm0 & U A /L A }hٳ j ł{? OB  D$_  .P[ K ?K&2  \8 n ~ f B 3 pL A `xTc ȃe ݃ X  7  +G7 ^ "nz  ,  ClL$ aMM nt  @   \ G A e Y ̈́ ބ  ri  ܄& ; ,I/ :?  Tg? lcM v. Q ] 1 ?  E ̅ / ؅XD > 3  ,`  @ | ) ).  Gq U<_c_P o;  { e ) v W<  Ɔ| ( І S ۆ B E3  IG (l5v0 V :t  MM f k v:  { ';  O  ; %9 , 7  χX8؇ < E  7 ne 3  /  b  4P ALLR ]5 :} 6 xp  :kX u   5 <   ͈\D  ۈǡ & r ( m  CX  G  O5  *΃ 6}7 G|  S܈[Q! ? B # qgW A dT1 C P4 p4  ȉ V  3ս  ׳ c I +|Q (7* 1 =cV A N4  c S  uX -  b b  qV ʊ=t ߊ D + u m   ; K %' / 0\ T # Fa   _2c k,E X zY5  x , _   ȋm < H      /9 F + l # Y x nW5 |i:  x + > r5 ˌ5݌`  *  I ^ ܦ 0k1 FD D [h + e Z s. n  f 1 t   ɍq   \t kP \ d{ $ 0 > ? R i܍qP' 1  Yf < e Y Q  ͎ k " 0  #M U O 38  @C/ \<P  Z7 * jC xC( fl&[ A w ЏP4 ? , Tl o T %p^) 5,  D  UlK A f7w~h j K 8 * ` M ʐY  ؐ?K , 1 6  4 1 +,  :  Ng9 ^d r }U C  b /) 1 Ñ1 1 ڑK n dC X v # 3 $N 1b P8  i   y#  M & X "> QD Œt 3 Ԓh 2 w) D :    J  & 2He G:;  X6  q5e w@ X t ) O A [ & u$ Γ>] A d  ? 1 hE 9 ,c ;Y A  ~"+  I O;  ^8, sd  }2Z A 3 B 8  { & ӔF  ߔU A C   J ,ER/ LK  ? w GL n V=C 6 k  z @ (p\n0 =B {$O  1 1 ̕X ޕ*& 1  f# | +A  95 d NT- * b q` ; {< G O4 & ( 6  W ǖw ҖR D lp_smb_portspdb_delete_dom_grouppdb_search_aliasespdb_gethexhourspdb_get_pass_must_change_timestartlmhostsget_interfacestring_replacesmb_iconv_closeprs_mem_clearnamecache_deleteopt_passwordunistrleninit_net_r_logon_ctrl2sys_statlp_svcctl_listcreat64set_effective_gidlp_force_printernamesys_opentdb_prs_fetchlp_passwd_chat_timeoutse_priv_copysecrets_fetch_trust_account_passwordpoptReadConfigFilesid_binstring_hexsam_pwd_hashsys_chowninit_rpc_blob_byteslp_os_levellp_set_posix_pathnamesget_peer_addrmkstemp64pdb_delete_aliasuser_has_privilegesinit_account_policymessage_send_pid_environsys_setpwentdyn_LIBDIRmake_pdb_methodnamecache_fetchloopback_ipnet_io_q_authtdb_reopen_allget_trust_pwasn1_tag_remainingsecrets_store_ldap_pwsys_telldirpdb_getsampwentpdb_uid_to_ridrep_vsnprintfluid_to_privilege_namesmb_msleepTimeInitdyn_PIDDIRmax_algorithmic_uidlp_logon_pathstrhex_to_data_blobfree_spnego_datalp_timestamp_logscache_account_policy_getpdb_get_user_ridsmb_arc4_initgenerate_random_strstandard_sub_advancedrep_vasprintfpdb_set_pass_last_set_timeis_myworkgroupprivilege_set_initgetpeernamedrop_effective_capabilitypdb_gethexpwdlp_acl_check_permissionsglobal_sid_Creator_Owner_Domainlp_parm_ulongget_current_usernamenet_io_q_getdcnameclear_unexpectedstrwicmpx_tseeklp_force_security_modelp_printingprs_copy_all_data_outsrv_is_signing_negotiatedalarmBlockSignalssecrets_initdyn_CONFIGFILEpm_processse_restorenet_io_r_sam_syncasn1_write_enumeratedpush_dos_date2get_time_t_maxpush_dos_date3hmac_md5_init_limK_to_64sys_mknodnamecache_enablepoptResetContextrun_eventsallow_accesslp_idmap_domainslp_create_masksmb_arc4_cryptdns_to_netbios_nameSamOEMhashescape_ldap_string_alloctdb_errorstrpdb_set_domainntlmssp_endget_group_map_from_sidsetgidlstat64timeval_currenttdb_get_logging_privatepdb_nop_update_group_mapping_entrysame_netlp_defer_sharing_violationsclient_inaddrDEBUGLEVEL_CLASS_ISSETsid_check_is_unix_groupssys_gethostbynamecli_make_unix_datepipesmb_io_clnt_infoglobal_sid_NT_Authorityra_lanman_stringsys_waitpidgidtonameset_use_sendfilelp_disable_netbiospdb_get_group_ridset_global_myworkgroupsrv_cancel_sign_responselp_afs_token_lifetimedes_crypt64next_token_nrlp_major_announce_versionsecrets_named_mutexlp_use_mmapfree_namearrayset_socket_optionsget_account_pol_tdbpoptParseArgvStringsys_adminlogpush_asciilp_magiccharsetup_logginglp_kernel_change_notifyopt_usernamelp_dontdescendmy_netbios_namesperrorlp_killunusedpdb_get_backend_private_datades_crypt56smb_probe_modulesys_dlerrorunix_dos_nt_errmaplp_readlistE_md5hashasn1_check_OIDlp_csc_policylp_log_nt_token_commandntlmssp_set_domainpdb_set_logoff_timeasctimepdb_gid_to_sidlp_rootpostexecinit_net_r_dsr_getdcnameprs_uint32_postget_global_sam_namesys_listxattruid_to_unix_users_sidinit_doschar_tabletdb_unlock_recordtalloc_autofree_contextbuild_packetmessaging_sendlp_mangling_methodbitmap_setinterpret_addrinit_unistr4_wpdb_tdbsam_initgroups_maxinet_ntoalp_dos_filetimesD_P16dyn_SBINDIRprs_unistr2talloc_asprintf_appendfile_ploadopen_socket_outprs_unistr3prs_unistr4tdb_munmapx_setlinebufpdb_default_getgrsidrpcstr_pull_unistr2_fstringfcntl_lockaccount_policy_names_listlp_posix_lockingsetreuidpdb_get_fullnamerenamesmb_io_lockout_string_hdrpstring_subtalloc_strduplp_parm_enum_talloc_set_destructortdb_fetch_int32_byblobrpcstr_pushlp_ldap_page_sizethis_is_smpStrnCaseCmppidfile_creategencache_setget_ctimespecatexitevent_add_to_select_argsdyn_LOCKDIRmessage_initsecrets_fetch_afs_keypdb_get_domaintdb_nulllongvar_tablepdb_getsampwsidpdb_set_acct_ctrliface_n_bcastexeclin_clienttdb_change_uint32_atomicwinbind_uid_to_sidread_socket_with_timeoutsys_getpwentms_has_wildpoptConfigFileToStringsecrets_store_domain_sidlp_admin_usersexecv_exitinit_q_req_challp_queuepausecommandunix_to_nt_time_absntlmssp_set_workstationlp_enhanced_browsingpdb_getgrnamgfree_allprs_append_some_prs_datalp_winbind_offline_logonstrcasecmptdb_fetch_int32talloc_parentsec_io_descprs_uint64prs_copy_data_inset_maxfilessmb_uuid_unpackpdb_group_rid_to_gidlp_kernel_oplockslp_map_archivetdb_fetch_uint32_byblobntlmssp_client_startlp_client_lanman_authlp_ldap_group_suffixwins_srv_counttdb_traverse_readdump_datagrab_server_mutexwinbind_lookup_nameread_spnego_dataset_effective_uidtdb_freepdb_set_bad_password_timeprs_string_allocstrlen_wtalloc_get_sizewinbind_oncli_put_dos_date2tdb_transaction_startbecome_user_permanentlyprivilege_set_init_by_ctxcli_put_dos_date3set_global_mynamesys_dup2sys_endpwentnull_timelp_print_oksmb_io_owf_infonet_io_r_logon_ctrl2global_sid_Anonymousgencache_lock_entryprs_take_memorylp_wins_hooklp_veto_oplocksopt_domainpdb_get_nt_usernamelp_lm_intervaldyn_SMB_PASSWD_FILElookup_builtin_nameutime_edatalp_addgroup_scriptlp_default_server_announcepoptGetArgsendfilev64next_sharesmb_add_user_groupsmb_load_modulefd_loadprs_alignpdb_get_user_sidpush_ucs2lp_readonlynt_lm_owf_genpdb_smbpasswd_inittalloc_vasprintf_appendshare_definedtimeval_elapsedlp_write_cache_sizelp_abort_shutdown_scripttimeval_comparelp_lppausecommandalgorithmic_pdb_uid_to_user_ridtolower_asciitdb_allocatelocal_password_changegmtimestrlen_mpopt_common_dynconfigpdb_default_enum_aliasmemipstr_list_freestrequal_wd_fprintfprs_uint8slp_bind_interfaces_only_get_exit_frame_monitorlp_allocation_roundup_sizeparent_dirname_talloclp_oplock_break_wait_timeprs_set_session_keypdb_copy_sam_accountlang_msgsrv_signing_startedisupper_wprs_dumpsmb_xvasprintfpdb_set_dom_grp_infolocal_machineget_domain_group_from_sidlp_passwd_chatdebugfsys_aio_writeinterfaces_changedpwrite64namecache_flushdebug_inittalloc_strndupstrstr_wtdb_namelp_ldap_idmap_suffixbitmap_allocatelp_client_ntlmv2_authdata_blob_constlp_ldap_delete_dnsys_recvfromput_long_datelp_winbind_trusted_domains_onlydos_errstrbase64_decode_data_blobskip_unibufpdb_get_group_sidstr_list_substituteshow_parameter_listtalloc_set_namedisplay_timelp_map_systemfile_existsend_keepalive__dso_handlelp_winbind_nss_infobase64_decode_inplacepull_utf8_tallocsmbruncount_charsget_privilege_dispnameconvert_string_allocatex_fclosetdb_transaction_commithtonlmy_sam_namenet_io_q_req_chalpdb_get_logoff_timestring_truncatelp_hostsdenyinit_enum_hndads_dns_query_dcsftello64tdb_dump_allsid_check_is_unix_userstdb_validate_freelisthtonslp_max_connectionsconvert_stringStrnCpy_fnstrstr_mE_md4hashasn1_read_OctetStringstrlcpyinit_iconvtdb_prs_storeprs_unistrmessaging_registerstrncmp_wpoptGetNextOptpdb_default_update_group_mapping_entrysmb_nscd_flush_user_cachelp_default_devmodeSMBsesskeygen_ntv1SMBsesskeygen_ntv2winbind_offlp_minor_announce_versionmake_bufhdr2strncmp_waskip_stringsys_aio_fsynclp_nis_home_map_namecreate_rpc_blobinit_net_q_getdcnamesys_readlinktmp_talloc_ctxdup_sec_desclp_passwd_programfindProgramPathpull_ucs2_allocatelp_do_parametergethostbyaddrlp_casesensitivepid_to_procidsmb_iconv_opentalloc_report_depth_fileis_privileged_sidasn1_writeset_current_user_infodbfprs_uint16dyn_LOGFILEBASEpdb_set_commentsmb_io_dom_rid2smb_io_dom_rid3lp_deluser_scriptnamecache_status_fetchlogin_cache_readtoktocliplistinit_net_q_dsr_getsitenamepdb_get_dir_driventlmssp_want_featureget_create_timespecsetregidlp_browseablepdb_set_nt_usernamepdb_default_add_aliasmemstrncat_wtdb_fetch_bystringlp_dos_filemodeinit_r_trust_domwinbind_lookup_sidsave_re_uidinit_unistr2_from_databloblp_piddirinit_namespdb_default_delete_group_mapping_entrytrim_stringmessage_send_allmmap64algorithmic_pdb_gid_to_group_ridis_myname_or_ipaddrnum_good_sendstalloc_total_blocksnet_io_user_info3lp_use_kerberos_keytabpread64global_sid_Builtin_Replicatorinit_net_q_logon_ctrlprs_uint32lp_encrypted_passwordstdb_lockall_readunmap_fileclobber_regionsmb_panicse_map_genericstrrchrlp_inherit_acls_GLOBAL_OFFSET_TABLE_GetTimeOfDaylp_guest_oksmb_io_nttimegencache_initstr_list_sub_basicfchmodfopen64lp_hide_special_filessys_getgroupstab_depthasn1_end_tagsec_desc_equaltolower_wsys_usleepsend_smbstring_settalloc_enable_leak_reportstrlower_mtdb_log_fnprocid_is_localnet_io_r_req_chaldos_filetime_timespecmask_match_listinnetgrx_filenoinit_buffer_from_sam_v3process_exists_by_pidwins_srv_is_deaddup_luid_attrvalidate_net_namelp_dns_proxypdb_get_bad_password_time__ioblp_preferred_masterlp_dfree_commandget_remote_machine_namestrdup_upperlp_next_parametermemchrntlmssp_sign_packetlp_profile_acls_lib_versionsys_linksmb_unregister_idle_eventlp_posix_cifsu_locktypecalloclegacy_sid_to_gidpdb_encode_acct_ctrlschannel_encodelp_servicenumbernet_io_q_sam_logoffprint_ascprs_alloc_memwrite_data_at_offsetsid_check_is_wellknown_domaindyn_SWATDIRstrupper_staticshow_msgstrlower_wlp_printcapnamelp_addusertogroup_scriptpdb_nop_getgrnamprocid_selftalloc_free_talloc_realloc_arrayopt_workstationsec_initial_uidsys_aio_readlp_force_userse_create_child_secdesclp_local_ptrSMBNTLMv2encrypt_hashsys_readdirSMBOWFencryptlookup_name_smbconfpoptBadOptionstrncasecmpget_remote_archsec_io_acecmdline_auth_infosid_peek_check_ridlp_lm_announcesrv_make_unix_date2ntv2_owf_genpdb_get_usernamesrv_make_unix_date3getuidget_share_securitypdb_get_account_policytdb_trans_storepdb_default_set_aliasinfoprs_uint8saf_storesec_io_aclpdb_enum_group_memberstdb_unlockall_readE_deshashdebug_warn_unknown_classpdb_set_logon_countnet_io_r_logon_ctrlfile_modtimealgorithmic_pdb_user_rid_to_uidname_resolve_bcastset_current_rpc_tallocsmb_nscd_flush_group_cachelp_idmap_negative_timeasn1_freedecode_pw_bufferendlmhostsmain_loop_talloc_getdbgflushlp_max_open_filesinit_dom_rid3init_dom_rid4___Argvwinbind_sid_to_uidprs_force_growwinbind_allocate_gidsys_fremovexattrnet_io_q_sam_logonlp_passdb_backendlp_aio_write_behindNTLMSSPOWFencryptpdb_del_aliasmemsort_query_repliestalloc_sub_specifiedsecrets_restore_schannel_session_infolp_parm_intaccount_policy_get_descrfc1738_unescapecheck_accessmake_standard_sec_descse_priv_nonelastipset_message_endprs_offsetlp_printernameis_in_pathpdb_get_workstationsdes_crypt112_16debug_nmb_packetlp_resetnumservicespdb_get_pass_can_change_timelp_client_plaintext_authnt_time_to_unix_abslp_idmap_alloc_backendse_print_operatorlp_large_readwritentlmssp_server_startsmb_create_groupsys_lsetxattrlp_domain_mastersys_llistxattrsid_peek_ridsec_io_desc_bufmessage_blockget_audit_category_from_paramtdb_search_list_freelp_username_mapget_time_zonentlmssp_set_hashesshare_info_db_initlp_parm_const_stringtalloc_realloc_fnglobal_sid_Builtin_PreWin2kAccessgeneralized_to_unix_timeadd_sid_to_array_uniquewinbindd_request_responseunix_groups_domain_nameglobal_in_nmbdadd_mapping_entrywins_srv_tags_freeall_string_substrnequal_wschannel_decodepdb_get_logon_timememcpysid_equaldes_crypt128sys_lseekx_fprintfglobal_sid_Worldlp_add_share_cmdse_add_userscli_krb5_get_ticketipstr_list_makelp_parm_stringdes_crypt112rep_asprintfreaddirnamesec_ace_del_sidlp_const_servicenamepoptGetContextsrv_is_signing_activetdb_deleteasn1_read_uint8get_privilege_luidnt_errstrsamu_set_unix_talloc_movepdb_enum_group_mappingget_default_sec_channelsrv_set_signing_negotiatedinternal_resolve_namealpha_strcpy_fnwinbind_gid_to_sidmemalign_arraylock_pathsys_ftelldebug_message_sendgetrlimit64se_access_checkreceive_nmb_packettdb_read_lock_bystring_with_timeoutsid_composeevent_context_initnet_io_r_auth__fpstartsys_fsusagesec_ace_mod_sidlp_lockinglp_oplocksfile_lines_loadSMBNTencryptfile_generic_mappingntlmssp_want_feature_listprs_debugunix_timespec_to_nt_timelp_cups_serverserver_role_strx_fdupmessage_unblocklp_commentrep_timegmget_atimespecasn1_check_BOOLEANpdb_sid_to_idreaddir64AllowDebugChangeprivilege_set_freesmb_io_rpc_blobrealloc_string_subtdb_set_logging_functionget_talloc_ctxmask_matchmake_nmb_namelp_idmap_gidtalloc_report_fullsid_check_is_builtinlp_set_name_resolve_orderlp_dir_maskget_group_map_from_gidtdb_store_uint32_byblobsetsidlegacy_sid_to_uidtalloc_show_parentstdb_unlockallads_dns_query_internalpdb_update_sam_accountsid_linearizelp_set_mangling_methodutf16_len_nfd_lines_loadpdb_getgrgidtdb_brlocklp_hide_fileslp_killserviceglobal_sid_Builtin_Power_Userstimeval_expiredpoptStrerrorprs_uint16sbitmap_queryinitialize_password_dbsecrets_fetchsmb_uuid_to_stringpull_ucs2_talloctdb_fdsys_getpeereidtdb_fetch_uint32register_dmalloc_msgsinit_q_srv_pwsetflush_negative_conn_cachesmb_io_log_infotalloc_unlinkmkdirasn1_read_Integerlp_msg_commandtdb_hash_sizesnum2params_staticsmb_setlenpdb_set_plaintext_passwdsrv_oplock_set_signingtalloc_enable_null_trackingpdb_search_destroylp_maxprintjobs__ctypesamu_newparse_packetstr_ascii_charnumsecrets_fetch_domain_guidglobal_sid_Builtin_Guestsmessages_pending_for_pidsmb_io_enum_hndpdb_uid_to_sidunix_clean_nameinit_sec_accessstrcmp_wsys_fstattalloc_named_constntlmssp_updatename_lensys_symlinklookup_unix_group_namelp_configfileclient_socket_addrfputcwins_srv_ip_tagputenvsmb_register_idle_eventsrv_set_signingpdb_enum_aliasmemregister_msg_pool_usagelp_hideunwriteable_filessmb_io_unihdrx_ferrorencode_or_decode_arc4_passwd_bufferpoptHelpOptionsnt_status_string_to_codepoptStrippedArgvsigactionlp_delete_share_cmdput_long_date_timespecwinbindd_fdmake_uni_hdrfputsprs_dcerpc_statusgain_root_privilegenum_good_receivessys_dlclosentlmssp_sign_initmsrpc_genpdb_default_create_aliaspdb_find_backend_entrysys_lgetxattrget_winbind_netbios_nameprs_data_blobsecrets_store_schannel_session_info_mcounttrim_charmessage_dispatchpdb_set_user_sidms_fnmatchx_setbufferhex_encodecheck_dos_chargetsockopttdb_storelp_change_notifystrisnormallp_lprmcommandpdb_set_hours_lenlp_passwordserverlp_enumports_cmdgrant_privilege_by_namelp_domain_logons_lp_disable_spoolssnet_io_q_dsr_getdcnametdb_chainlock_with_timeoutsstring_sublp_auto_servicesfetch_ldap_pwglobal_sid_Networkgfree_loadparmfgets_slashnt_ace_canon_compinit_dom_ridgetpwnam_alloccancel_pending_lock_requests_by_fidchdirlp_onlyusersmb_string_to_uuidget_interfacessys_selectsys_ftruncatelp_name_cache_timeouttalloc_reference_countbinary_string_rfc2254secrets_lock_trust_account_passwordsmb_io_dom_rid__divdi3x_feofpdb_nop_add_group_mapping_entrypdb_endsampwentsys_popeninit_valid_tablelp_strict_allocatetdb_store_int32_bybloblistenpdb_get_aliasinfosscanfpidfile_pidpdb_get_pass_can_changetdb_find_lock_hashtoupper_asciiis_zero_ipfile_lines_freedebug_levellp_interfacessecrets_deletelp_remove_servicegrant_all_privilegesprivscli_simple_set_signingsys_fsetxattrlp_force_unknown_acl_usertdb_packlp_open_files_db_hash_sizerep_mkdtempiface_localgenerate_random_bufferlp_ldap_machine_suffixcopy_packetsmb_xstrnduppdb_set_unknown_6prs_buffer5timeval_current_ofspdb_rid_algorithmpoptGetArgspdb_create_userinit_net_q_logon_ctrl2unix_dev_majorlp_addprinter_cmdpoptSetExecPathconvert_time_t_to_timespeclp_name_resolve_orderlp_iprint_servernt_time_stringmake_sec_aclpull_ascii_nstringinit_q_auth_2pdb_get_pass_can_change_time_noncalcinit_q_auth_3__register_frame_info_basesinit_net_q_sam_synctdb_transaction_recoversid_sizelp_unix_extensionsDebug1node_status_queryadd_failed_connection_entrysmb_io_uuidwinbind_set_gid_hwmlp_rootpreexecinit_net_q_dsr_getdcnament_time_to_unixlp_server_schannelmessaging_initlp_strict_syncis_ipaddresswrite_spnego_datarestore_re_gidlp_winbind_cache_timepdb_add_groupmempdb_get_homedirlp_debug_uidsecrets_store_genericnet_io_q_auth_2lp_set_logfilesec_initnet_io_q_auth_3smb_run_idle_eventsstrnrchr_msys_sendfiletalloc_total_sizeparent_dirnameunix_wild_matchnext_token_no_ltrimmemmoveuse_getwd_cachewrite_sockpull_ascii_fstringsmb_io_hdrbufsys_aio_returnstring_sid_tallocfile_loadset_event_dispatch_timeprs_init_data_blobsys_getgrgidpdb_set_user_sid_from_ridinit_unistr2_from_unistrsys_getgrnamsys_realpathinit_rpc_blob_hexlp_client_schannelstring_sub2pdb_default_getgrnamCatchSignalfile_lines_slashcontnt_time_is_zerowb_is_trusted_domainget_share_paramstalloc_sub_basicfind_master_ipglobal_machine_password_needs_changingstrstrchain_sizeunistrcpypdb_get_nt_passwdsys_sendunix_dev_minorlp_server_role_PROCEDURE_LINKAGE_TABLE_init_localspoptSaveLonglp_lpqcachetimelp_ldap_sslbecome_daemonprocid_to_pidtdb_lock_bystring_with_timeoutstrnrchr_wsmb_xmemduptdb_trans_deletewrite_datawerror_to_ntstatususec_time_diffset_netbios_aliasesget_numlistput_namelp_local_masterprocid_is_mestring_freesmb_uuid_string_staticasn1_read_GeneralStringtdb_brlock_upgradepid_pathiface_countsecrets_fetch_ipc_userpassstrcat_wsmb_mkstemplp_rootdirdyn_PRIVATE_DIRstring_sub_oncepdb_set_kickoff_timesecrets_storepdb_set_logon_scriptiface_ipsec_desc_del_sidlp_no_set_dirtdb_mmaplp_security_maskpdb_delete_sam_accounttimeval_addinit_log_infolp_wtmpdircluster_id_equalnet_io_r_auth_2data_blob_tallocpdb_search_groupsnet_io_r_auth_3ipstr_list_parseset_local_machine_namedata_blob_clear_freetdb_pack_appendlogin_cache_initgen_fnmatchsecrets_trusted_domainsprs_force_dynamicadd_string_to_arraygeteuidaudit_category_strlp_host_msdfsnmb_name_equalpoptAliasOptionsset_need_random_reseedlp_mangled_maptdb_lockallforce_check_log_sizelp_usershare_max_sharesload_usershare_serviceprs_switch_typesid_split_ridinit_str_hdrprs_mem_freestrncasecmp_wioctlshare_access_checklp_add_homegetcwdlp_eventlog_listlp_fake_oplockssaf_fetchsys_fopenprs_werrorlp_symlinksprocid_str_staticlseek64cli_calculate_sign_macglobal_sid_Builtin_Print_Operatorsbitmap_tallocvolume_labelaccount_policy_name_to_fieldnumpdb_set_init_flagsgrant_privilegeflush_pwnam_cachecheck_negative_conn_cache_timeoutinit_net_user_info3sys_lremovexattrpdb_set_usernamewinbind_idmap_dump_mapspdb_get_logon_divsglobal_sid_World_Domainpdb_enum_group_membershipsasn1_write_Integerlp_we_are_a_wins_serversetrlimit64tdb_change_int32_atomicpush_ascii_nstringone_alias_membershipparse_usershare_aclsys_fgetxattrlp_nis_home_mapglobal_sid_Builtin_Userspdb_get_lanman_passwdpdb_get_plaintext_passwdlp_writelistdata_blob_clearprs_int32lp_passdb_expand_explicitlp_utmpnet_io_r_sam_logon_excreate_pipe_socklp_vfs_objectsget_share_security_defaultread_udp_socketyp_get_default_domaincli_free_signing_contextpdb_search_entriespdb_get_acct_descsock_execglobal_sid_Builtin_Backup_Operatorstdb_rec_readsafe_strcat_fnpdb_set_user_sid_from_stringpush_ascii_fstringprs_regval_bufferstrcsequalsrv_put_dos_date2smb_io_dom_sidsrv_put_dos_date3lp_dump_onesys_dlsymswabpdb_set_munged_dialpdb_get_kickoff_timese_map_standardlp_use_client_drivertdb_openget_winbind_domainlegacy_gid_to_sidstrtodlastportlp_deleteprinter_cmdx_fwritelp_winbind_refresh_ticketszero_freelocaltimelp_stat_cachestrtokdata_blob_string_consttdb_reopenstrtolnet_io_q_sam_logon_ex_etextlp_set_spoolss_statelp_acl_compatibilitysys_fcntl_ptrisvalid83_wx_fflushlp_socket_addressx_fgetsads_dns_query_kdcspstr_sprintftdb_wrap_opensmb_io_regval_bufferset_mtimespecpull_ascii_talloctdb_parse_recordntlmssp_set_usernameRealloclp_remote_browse_syncntstatus_to_werrormyhostnamelp_set_posix_default_cifsx_readwrite_locktypentohloverride_logfilex_fgetcsecrets_fetch_domain_sidsmb_xmalloc_arraylp_algorithmic_rid_basesid_check_is_in_unix_groupsntohsprs_uint32_pretdb_ofs_writeget_file_sizebackup_tdbcache_account_policy_setinterpret_pidmake_tdb_dataglobal_sid_Systemstrnlen_wdel_sid_from_arraylp_aio_write_sizepoptSetOtherOptionHelpprs_growsmb_iconvsrv_defer_sign_responsenamecache_shutdownasn1_loadd_printflp_snum_oklp_deluserfromgroup_script_talloc_reallocsecrets_store_machine_passwordconv_str_sizelp_template_homedirlp_posix_pathnamessys_preadlp_check_password_scriptnet_io_q_sam_deltasx_stdoutstrhaslowerntlmssp_check_packetsid_string_staticdbghdrsys_select_intrlp_ms_add_printer_wizardads_dns_lookup_nslp_ldap_passwd_syncsmb_delete_groupaudit_description_strpdb_get_logon_counttransfer_filepdb_set_group_sid_from_riddump_a_parameterconvert_timespec_to_time_tlogin_cache_writeset_global_scopepoptSaveIntwinbindd_get_responselp_fstypeinterpret_long_datefstat64CatchChildLeaveStatusputcharsys_opendirstr_len_unipathtree_initlp_preload_modulesglobal_sid_Creator_Groupbindsub_set_smb_namesid_binstringtdb_appendinit_regval_bufferlp_winbind_enum_userssmb_set_primary_grouppdb_set_pass_must_change_timelp_max_reported_jobstdb_convertlp_client_use_spnegoSMBencryptlp_hostname_lookupsdebug_classname_from_indexse_take_ownershipnet_io_q_logon_ctrlopen_any_socket_outpoptGetInvocationNameverify_tdbnametouidlp_lock_spin_countpopt_common_credentialssec_ace_add_sidsetuidstrndup_wtalloc_sub_advancedlp_usershare_allow_guestsinit_buf_hdrbitmap_findprocid_validunix_to_nt_timereceive_dgram_packetinit_unistr4_arraypdb_get_init_flagslp_guest_onlysamba_version_stringpdb_get_hoursbinary_stringget_user_home_dirsys_recvnet_io_q_logon_ctrl2strncatdbgtextis_setuid_rootgetpwuid_alloclp_mangle_prefixlp_afs_username_mapsys_getpwnamsmb_io_gidasn1_write_GeneralStringlp_failed_convert_chartdb_open_exrep_strnlenclose_low_fdsset_message_bcclp_addport_cmdpdb_get_profile_pathstring_replace_wstrncpyrep_snprintflp_lanman_authpdb_new_ridstrhasupperwinbind_set_mappinglp_get_spoolss_statetdb_lockasn1_write_OIDlp_os2_driver_maptrim_string_wpdb_default_find_aliassmb_io_buffer5global_sid_Builtintdb_chainunlockevent_fd_set_writeablelp_postexecclient_set_trans_sign_state_offmask_match_searchlp_debug_pidyesnotoken_sid_in_acelp_defaultcaselp_loadedprs_uint32sqsortlp_map_to_guestbase64_encode_data_bloblp_inherit_permssmb_uuid_packstrnequalinit_uni_hdrsid_check_is_in_wellknown_domainis_mynamelp_min_wins_ttldecrypt_trustdom_secretlp_hide_dot_filesalign_stringstrncmpsec_desc_sizepoptGetOptArgislower_asciilp_auth_methodssmb_uuid_unpack_static__udivdi3lp_idmap_uidnet_io_q_dsr_getsitenamelp_passwd_chat_debugrestore_re_uidlp_delgroup_scriptdecode_account_policy_namerandasn1_write_BOOLEANlp_ea_supportlp_load_printerslp_guestaccountaccount_policy_get_defaultwinbind_env_setntlmssp_seal_packetlp_renameuser_scriptpush_dos_dateget_sorted_dc_listpdb_get_acct_ctrltdb_fetchtalloc_report_depth_cbumasknametogidunbecome_rootprs_dump_regionpdb_get_munged_dialconvert_string_talloclp_dfree_cache_timesid_compareget_mydnsfullnametalloc_namedmessage_send_pid_with_timeoutasn1_readnet_io_r_trust_domgetlmhostsentnttime_from_stringset_ctimespecstrdup_lowerstrrchr_wlp_update_encryptedin_listlogin_cache_delentrylp_rootpreexec_closepdb_increment_bad_password_counttdb_parse_datasetlocalegetgroups_unix_usertdb_lock_recordadd_to_large_arrayrec_free_readmktemplp_logon_scriptlp_maxprotocollp_winbind_normalize_namesinit_sec_acestrrchr_mpdb_set_plaintext_pw_onlysecrets_fetch_trusted_domain_passwordunistr3_to_asciilp_strict_lockingtimeval_elapsed2pdb_set_fullnamesysconfsys_setgroupspdb_get_logon_scriptset_rand_reseed_callbacklp_max_wins_ttlSMBNTLMv2encryptnt_time_to_unix_timespecsys_srandomget_peer_namepush_utf8_tallocget_friendly_nt_error_msgnet_io_r_sam_logofflp_winbind_enum_groupsclient_addrflush_negative_conn_cache_for_domainProtocoltoupper_wreceive_unexpectedsys_getpwuidsmb_io_string2get_local_machine_nameglobal_sid_Unix_Userslp_is_defaultgetenvprs_unistr4_hdrprs_string2sys_writepdb_get_bad_password_countprs_copy_data_outsys_readstrcatset_blockingtalloc_vasprintfntlmssp_unseal_packetmake_sec_desclp_smb_passwd_fileevent_add_fdMD5Updatecancel_named_eventlp_printcommandread_packetinit_unistr2init_unistr3init_unistr4lp_msdfs_rootprs_data_pnt_err_descprs_uint16_postlp_client_signingoctal_stringE_old_pw_hashpam_to_nt_statuslp_map_acl_inheritacceptasn1_pop_taglookup_wellknown_namenext_tokenlp_logon_homemax_algorithmic_gidStrCaseCmpipstr_list_addlp_magicscriptlp_writerawdos_clean_namefree_packetlp_recursive_veto_deletelp_setprimarygroup_scriptlp_realmpull_ucs2lp_delete_readonlysys_aio_suspendfstring_sub_talloc_zero_arraydyn_LMHOSTSFILEpdb_get_unix_homedirlp_deadtimetimeval_untilwinbind_set_uid_hwmlp_printcap_cache_timenmb_namestrkillstrcmp_walp_usershare_prefix_allow_listlp_aio_read_sizeasn1_write_BOOLEAN2open_udp_socketsecrets_named_mutex_releaseposix_default_lock_was_setexecvpsmb_load_moduleslp_pathnamename_extractpull_ucs2_fstringget_timed_events_timeoutpull_asciitdb_ofs_readlp_lpresumecommandlp_lockdirnt_status_squashprs_initprs_get_mem_contexttdb_closepdb_default_delete_aliassecrets_fetch_machine_passwordaudit_policy_strset_effective_capabilitynet_io_q_sam_synclp_TALLOC_FREEattrib_stringpush_utf8_allocatelp_preexectimeval_sumsrv_check_sign_macdos_PutUniCodesmb_io_bufhdr2client_namesmb_io_bufhdr4nt_time_is_setcurrent_userinterpret_addr2x_setvbufpdb_set_homedirlp_maxxmitrevoke_all_privilegesmain_loop_TALLOC_FREEadd_rid_to_array_uniqueset_messagestrchrtalloc_string_subpdb_set_group_sidlp_minprotocolprs_uint16_preinit_id_info1init_id_info2sys_setxattrsys_removexattrconn_snum_usedsend_packetgethostnameasn1_read_OIDget_group_map_from_ntnamereceive_smb_raw___errnolookup_unix_user_namepull_ascii_pstringprs_io_unistr2_pdata_blob_freelp_readbmpx_talloc_steallp_winbind_nested_groupsinit_net_q_sam_deltastdb_nextkeypdb_nop_getgrgidlp_wins_server_listlp_valid_userssmb_delete_user_groupcontact_winbind_auth_craptdbsam_closesmb_io_account_lockout_strstrlen_m_termread_dataload_usershare_sharesbitmap_clearntlmssp_store_responsepush_string_fnsid_append_ridlp_debug_hires_timestampunistr2_tdupstrdup_winit_requestse_priv_addpdb_set_nt_passwdsys_seekdirstore_uid_sid_cachepdb_add_aliasmemtimeval_minsid_check_is_in_our_domainlp_enable_core_filespdb_get_dom_grp_inforeset_global_sam_sidtimeval_maxcli_check_sign_maclp_max_smbd_processesutf16_lenstrcmplp_lpqcommandlp_map_readonlyget_account_policy_attrevent_fd_set_not_writeablesys_lstatlp_parm_talloc_stringlp_loadmap_nt_error_from_unixprs_mem_getnon_root_modehttp_timestringsess_crypt_blobprivilege_create_account_lp_use_sendfilereplace_dummyuser_socket_optionssys_sendtoset_first_tokenallones_ipsitename_storelp_syslogtimeval_to_nttimepathtree_findd_vfprintfmake_sec_desc_bufsigprocmasksmb_io_credsid_check_is_in_builtintdb_search_keys_talloc_memduplang_tdb_initpdb_set_dir_driveinit_rpc_blob_uint32strhex_to_strnamecache_storex_stdinpdb_set_unix_primary_groupfile_lines_pload__fsr_init_valuetimeval_setprs_give_memorynull_mtimelp_logfileresolve_winsstrftimewins_srv_alivesys_pclosestr_list_make_talloccred_hash3sys_memalignget_mynameprs_unistr4_strtimeval_zeroshare_list_allget_system_tokengencache_iteraterpcstr_pullpdb_update_group_mapping_entrydump_data_pwsmb_io_unistr2talloc_check_name_abortsmb_io_unistr3SMBsesskeygen_lm_sess_keylp_add_servicename_mangleprs_data_sizese_remote_shutdowndcerpc_errstrset_store_dos_attributesdelete_share_securitylp_lock_spin_timestr_checksumtdb_transaction_cancelrelease_server_mutexgetsocknametalloc_increase_ref_countlp_servicenamepoptStuffArgsprs_io_unistr2pdb_set_profile_pathsys_closedirip_service_comparesmb_io_strhdrprs_stringinit_unistr2_wtrusted_domain_password_deletesmb_io_dom_sid2_pnet_io_r_sam_logonpdb_lookup_ridsnet_io_r_getdcnamegfree_charcnvopen_socket_ininit_unistrcurrent_timestringsys_dlopenremote_protostrchr_wrevoke_privilege_by_namesys_getpidtalloc_check_nameprocid_equalx_setbufreceive_packetsmb_io_hdrbuf_postprs_align_customdebug_lookup_classnamedump_se_privlp_force_grouplp_use_spnegolp_reset_on_zero_vcstring_appendpush_ascii_pstringanonymous_tokentrim_string_waunix_strlowerlp_force_dir_modepdb_update_autolock_flagnext_printerpathtree_print_keystdb_write_lock_recordhmac_md5lp_private_dirunix_users_domain_nameall_string_sub_wapdb_set_pass_can_change_timenet_io_q_srv_pwsetunix_strupper_talloc_arrayinit_rpc_blob_strlp_dir_security_masklp_enable_privilegespull_string_fnnull_nttimeprocess_existslp_adduser_scripttdb_write_unlock_recordsetsockoptgettimeofdaypdb_default_enum_group_mappingwins_srv_tagsgencache_delstrchr_mprs_pointerglobal_sid_Unix_Groupsdebug_parse_levelsreceive_smbpdb_set_logon_divslp_usernameget_process_uptimesid_check_is_domainucs2_to_unistr2lp_display_charsettdb_store_bystringsmb_io_clnt_srvsec_ace_objectfault_setuptdb_store_uint32namecache_status_storeunbecome_root_uid_onlynt_ace_inherit_compglobal_sid_NULLpdb_set_lanman_passwdstr_list_countlp_acl_group_controlfcntlhmac_md5_finalis_null_sidpdb_sethexhourslp_add_printerlp_usershare_owner_onlytdb_do_deleteasn1_check_enumeratedpdb_nop_getgrsidunistr2_staticdebug_ntlmssp_flagsres_querypopt_common_connectionsys_aio_errorse_machine_accountpdb_delete_group_mapping_entrylp_set_quota_commandprs_align_neededsec_initial_gidasn1_write_uint8smb_io_unistrsys_rewinddirtdb_unlock_bystring__1cG__CrunMdo_exit_code6F_v_poptPrintHelpsys_randomislower_wmessage_registerMD5Initgetgidpdb_set_bad_password_countpdb_default_get_aliasinfosid_type_lookuptdb_chainunlock_readadd_gid_to_array_uniquepdb_sethexpwdset_share_securityglobal_sid_Builtin_Administratorsprs_set_endian_datainit_group_mappinglp_winbind_use_default_domainstring_tdb_datarep_strndupunexpected_packetnl_langinfowinbind_allocate_uidlp_wins_supportpdb_create_aliasextra_time_offsetsys_getxattrpdb_nop_enum_group_mappingget_pdc_ipstatvfs64set_atimespecwinbind_pingx_freadstr_charnumlp_syncalwayslp_hideunreadableisupper_asciiconnectnext_codepointpdb_set_backend_private_datastrequalsub_get_smb_nametransaction_brlockinit_owf_infotransfer_file_internaltrust_password_deletepdb_nop_delete_group_mapping_entrysid_copybLoadedtdb_chainlocklp_msdfs_proxylp_fake_dir_create_timeslp_nt_status_supportlp_panic_actionsecrets_store_domain_guidis_a_socketglobal_sid_Authenticated_Usersinit_modulesstrcasecmp_wwins_srv_count_tagtdb_unlockntlm_password_checksec_ace_copysigemptysetsmb_io_timeSTR_TO_SMB_BIG_UINTlp_invalid_usersload_interfaceslp_ldap_replication_sleeptdb_traversestrchr_wasitename_fetch__longdouble_usedlookup_builtin_ridpoptPrintUsagelp_defaultservicelp_block_sizelp_maxmuxget_server_zone_offsetse_disk_operatorsprs_ntstatusload_case_tableslp_workgroupse_priv_to_privilege_set_talloc_referencesec_acl_equallp_shutdown_scriptdup_sec_desc_bufglobal_sid_Builtin_Account_Operatorsdup_sec_acllogin_cache_shutdownstrupper_mlp_share_modes_xmknodtimeval_is_zerosmb_io_pol_hndlp_template_shellpull_utf8_allocateMD5Finalinet_addrlp_dos_charsetlp_acl_map_full_controlrevoke_privilegeclose_socklp_widelinkslp_ldap_admin_dnse_priv_from_nametalloc_is_parentprivilege_enumerate_accountsunistr2_to_asciiname_queryinit_clnt_info2dump_core_setupnt_time_equalspdb_default_getgrgidsrv_make_unix_dateparse_usershare_fileprs_unistr4_arrayprs_align_uint64pdb_get_pw_historygroup_map_removelp_copy_serviceguest_user_infostrupper_wgencache_getntlmssp_weaken_keystdb_pack_vatdb_map_sizetdb_traverse_delete_fnlp_usershare_prefix_deny_listpush_utf8_fstringset_remote_machine_namesid_check_is_in_unix_usersprs_set_buffer_sizeclient_setfdgfree_messagesevent_add_timednet_io_r_srv_pwsetsmb_xstrduplp_nt_pipe_supportrpcstr_pull_unistr2_talloctdb_get_seqnumpdb_update_bad_password_countpdb_set_aliasinfo__umoddi3set_server_zone_offsetstr_list_copymap_share_mode_to_deny_modeglobal_sid_Creator_Ownerfstr_sprintflp_max_stat_cache_sizesecrets_store_trusted_domain_passwordpdb_get_hours_lenpdb_update_login_attempts__deregister_frame_info_baseslp_paranoid_server_securitypush_ucs2_allocateget_global_sam_sidmake_pdb_method_nametdb_rec_writelp_pam_password_changelp_restrict_anonymouslib_pathlp_minprintspacetdb_unpacklp_map_hiddenlp_usershare_pathlp_winbind_separatorlp_wins_proxysid_compare_domainsecrets_store_trust_account_passwordsec_desc_mod_sidstrpbrk_wastr_list_free_tallocpdb_decode_acct_ctrllp_autoloadedsys_select_signalsmbrunsecretprs_uint16unismb_read_errorlp_store_dos_attributeslp_afs_sharesmb_io_logon_idlp_file_list_changedlog_stack_tracestored_sitename_changedsys_flistxattrread_smb_lengthx_vfprintfadd_sid_to_arrayadd_suffixrep_strcasestrinit_logon_idpopt_common_versionpdb_get_unknown_6pdb_get_pass_last_set_timepdb_search_userslp_syslog_onlydisplay_set_stderrlp_level2_oplocksinit_net_r_getdcnamelp_null_passwordslp_ldap_suffixinit_clnt_infoget_kdc_listpdb_set_pass_can_changesmb_io_hdrbuf_prenet_io_r_sam_deltastalloc_enable_leak_report_fullpdb_setsampwentpdb_add_group_mapping_entrylp_blocking_lockslp_preservecasealgorithmic_pdb_rid_is_usersamr_make_sam_obj_sdsigaddsetglobal_sid_Builtin_Server_Operatorsshlib_extpush_ucs2_tallocftruncate64str_list_comparegencache_shutdownsmb_io_dom_sid2talloc_parent_nameascii_len_nlp_shortpreservecasedef_finfomsrpc_parsepdb_set_workstationstalloc_get_namefseeko64iface_n_ipdyn_SHLIBEXTsys_chroot_DYNAMICdump_corenet_io_r_dsr_getdcnamestrerrorlookup_wellknown_sidpathtree_addlegacy_uid_to_sidsaf_deleteprs_append_prs_datastrtoulllp_printer_adminlp_parm_string_listlang_tdb_currentnet_io_r_dsr_getsitenamestrstr_wamemsetpdb_default_add_group_mapping_entrylang_msg_freetalloc_find_parent_bynamesec_desc_mergestandard_sub_basictalloc_disable_null_trackingpull_ucs2_pstringget_privileges_for_sidssys_fcntl_longsave_re_gidlp_hostsallowlp_idmap_expire_timelp_server_signinginit_string2CatchChildsys_forkprivilege_set_to_se_privasn1_push_tagdn_expandaudit_param_strlp_securityset_remote_archtdb_existswinbind_lookup_ridslp_machine_password_timeoutsys_getwdset_re_uidgetpagesizesec_desc_add_sidlp_idmap_backendclient_set_trans_sign_state_onstrpbrkGet_Pwnamnet_io_q_trust_domtdb_read_unlock_bystringdirectory_existlp_max_log_sizediagnose_ntlm_authlp_passwordlevelfcntl_getlockstrnormlp_browse_listx_stderrget_create_timetdb_get_flagsdyn_BINDIRsrv_put_dos_datetdb_firstkeycan_delete_directorypdb_getgrsidinitgroupsinit_buf_unistr2pdb_enum_alias_membershipsntstatus_to_dospdb_set_hoursmap_unix_groupprs_hash1kernel_flockencode_pw_buffersid_to_stringsys_creatreopen_logsSMBencrypt_hashtime_to_ascmdfourevent_fd_set_readablepoptAddItemprs_align_uint16gfree_namestouppertalloc_set_name_constlp_nt_acl_supporttrans_num_talloc_zerodos_errsmessaging_deregisterlp_ldap_timeoutdacl_sort_into_canonical_orderwins_srv_diedmatching_quad_bits__moddi3lookup_global_sam_namelp_get_quota_commandlp_inherit_ownertalloc_append_stringgfree_case_tablestdb_open_loglp_netbios_aliasesSMBOWFencrypt_ntv2gfree_debugsymstdb_printfreelistntlmssp_set_passwordcalloc_arraypdb_get_seq_numfile_savestore_gid_sid_cachesys_pwriteprocid_strhmac_md5_init_rfc2104pdb_create_builtin_aliassmb_io_challp_magicoutputevent_fd_set_not_readablesys_fseektalloc_initpdb_default_alias_membershipsgain_root_group_privilegecli_null_set_signingcli_make_unix_date2dos_to_ntstatuscli_make_unix_date3gid_to_unix_groups_sidinterpret_protocoltalloc_free_childreninit_dom_sid2lp_enable_asu_supportlang_msg_rotatestrlen_m_term_nullgencache_unlock_entrypopt_common_sambainit_net_r_logon_ctrlpoptDupArgvlp_add_one_printerlp_veto_filespdb_getsampwnamsecrets_fetch_genericlp_printjob_usernamesafe_freepull_dos_datepoptPeekArgpdb_build_fields_presentadd_initial_entryismyipinit_sam_from_buffer_v2init_sam_from_buffer_v3_Jv_RegisterClassespdb_delete_usersmb_uuid_generate_random__fsrcheck_negative_conn_cachematch_mailslot_namepdb_rename_sam_accounttolowerlp_serverstringget_enum_hndlp_parm_booldebug_add_classpdb_get_commentstandard_sub_connsecrets_store_afs_keyfilecli_put_dos_dategetpassinit_sam_infosid_dup_tallocpoptReadDefaultConfiglp_ntlm_authprs_dump_beforeuidtonametalloc_asprintfget_challengepdb_find_aliasdebug_auto_add_unknown_classlp_force_dir_security_modeget_mydnsdomnamesmb_io_clnt_info2is_local_netpdb_del_groupmemsec_ace_equalneed_to_check_log_sizehmac_md5_updatelp_logon_drivent_status_to_pamlp_preexec_closeDEBUGLEVEL_CLASSmallocpdb_set_pw_historypoptFreeContextsmb_register_charsettdb_delete_bystringset_namearraypdb_set_account_policylp_remote_announcecopy_unistr2getegidlp_change_share_cmdse_priv_removeufc_dummy_proceduretdb_store_int32get_nt_error_c_codebuiltin_domain_namewinbind_sids_to_unixidsname_to_fqdnfind_servicelp_utmpdirlp_username_map_scriptstrtoulnon_mappable_sidlp_queueresumecommandtdb_io_initserver_id_selfpoptAddAliassend_stat_cache_delete_messagelp_allow_trusted_domainsGet_Pwnam_allocname_status_findtdb_lock_bystringms_has_wild_wlookup_sidsSamOEMhashBlobpull_dos_date2NTLMv2_generate_names_blobpull_dos_date3lp_max_ttlread_replysid_parsepdb_add_sam_accountcli_temp_set_signinglp_usernamelevellp_obey_pam_restrictionsE_P16lp_cups_optionssys_aio_cancellp_dmapi_supportclient_socket_portsamu_alloc_rid_unixlp_oplock_contention_limitpdb_set_acct_desctdb_errorpdb_default_del_aliasmemstring_to_sidasn1_start_tagE_P24x_fopen_finilp_maxdisksizepdb_create_dom_groupstrncpy_wlp_force_create_modelp_ldap_user_suffixlp_unix_password_syncuser_has_any_privilegebitmap_copylp_dos_filetime_resolutionfree_responsetcopy_passwdasn1_write_OctetStringpdb_set_logon_timelp_dumprep_socketpairlazy_initialize_convlp_numservicescrc32_calc_bufferatoimessage_deregistertdb_chainlock_readlp_addmachine_scriptSMBNTencrypt_hashlp_unix_charsetwinbindd_send_requestsmb_register_passdbwinbind_sid_to_gidget_mtimespeccount_all_privilegesmsynctalloc_reporttdb_alloc_readstrnorm_wbitmap_freesrv_calculate_sign_macsafe_strcpy_fnlp_readrawprs_set_offsettdb_expandlp_manglednameslibthread.so.1SUNW_1.4libsendfile.so.1SUNW_1.1libresolv.so.2SUNW_2.1libnsl.so.1SUNW_0.7SUNWprivate_1.1libsocket.so.1libc.so.1SUNW_1.22/opt/sfw/cups/lib:/usr/sfw/lib '=  '=  "= #,0(= 8qN AQ (= 8`yjqN Am p O $(^4?8<@`=lt2x=|R } @PD) $'(,09|V4Y8&n Dm1 _rA(,0J448[<TX\`Ad}hlpteUK% mwN;B ejpir?ZJ  a- $Q(, 048M<(@ D HLGP'T!Xo\`dhKlNp-t`x4|JXcz ;"L a!G`w $(,04q@oDH{PTX\)`l3p?t6|{z /S5%%h%h%h%h%h %h(% h0%$h8p%(h@`%4hHP%8hP@%<hX0%@h` %`hh%lhp%thx%xh%|h%h%h%h%h%h%hp%h`%hP%h@%h0%h %h%h%h% h%h%h%h%$h %(h(%,h0%0h8p%|h@`%hHP%hP@%hX0%h` %hh%hp%hx%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %h%h%h%(h%,h%0h%4h%8h %<h(%Th0%Xh8p%\h@`%`hHP%dhP@%hhX0%lh` %phh%thp%hx%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %h%h%h%h%h%h%h%h %h(%h0%h8p%h@`%hHP%hP@%hX0%h` %hh%hp%hx% h%h%h%h%h% h%$h%(hp%,h`%0hP%4h@%8h0%<h %@h%Dh%Hh%Lh%Ph%Th%Xh%\h %`h(%dh0%hh8p%lh@`%phHP%thP@%xhX0%|h` %hh%hp%hx%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %h%h%h%h%h%h%h%h %h(%h0%h8p%h@`%hHP% hP@%$hX0%(h` %,hh%0hp%4hx%@h%Dh%Hh%Ph%Th%Xh%\h%`hp%lh`%phP%th@%|h0%h %h%h%h%h%h%h%h%h %h(%h0jjt R{hntt PMEu TRU RP/" W PP&.URQt`|$у D$td$у`tƒ 3fd$f T$tfd$f L$l$YZ]ÐUS[e Rt ::ҋ:u鋃t L9Plƃ]ÐUS[çd P$tSjPL9P;:t,t :P%]US[@d uu uj]UVS [d Гt ԓHh jV Vjj# t P^1=PԓǃГu 9P]ԓe[^UVS [[c Hh jV Vjj$Xt[<z,y@x,u8:x3hpP9Pj9t P}) hPPVj9Pz e[^UVS [|b Hh jV8 Vjj+yt[<z,y@x,u8:x3hP9PjZt P) hPPVj9Py e[^UWVS [ßa }<tGGJjjP1E4543%63UGGe[^_UWVS [ a PuǸtP hGPuj9Vxhuu jVx+EU R術e[^_US[|` 0e4Sh$jP' h jP PP0ud<z,y@x,u>:x9hP9Pj$t0PbPPjta<z,y@x,u>:x9hP9Pjt04P P4]UVS[^ Rh$jP h jP$uPj9Vvhu PjVv 4t h4PjVxv PPj aƃ}tGt u lPDX $P$P9P!Xt] uT<z,@x,u8:~3h$P9Pjt lP.<z,@x,uI:~Dh*P9Pjt# $P$P9PЉЍe[^UWVS[\ }Su  h$jP h jPE$Dž 4t& h4Pj9Pt hu Pj9VtthuPjVZthuPjV@tEP vRU2P}t=Ext4PvRU2PUB} t=E xt4PvRU 2PU BPPj {tDu;}0t 9PU0 P7t6}0t PyU0 P7E$t}(t(U(,BE$t,},t&U,B B$B E$t4 YU4u P P7e[^_UWVS[Y u} Yu(}Dt 9PmUD h$jP h jPxt! hWPj9Pq }t# huPj9Ptq }t$huP:Ef}$t0U BBB E$f}0t$hu,PE0f}<t0U8BBB EQt3}Dt PUD P> P>e[^_UWVS<[ðW UԍEPEPEPEPhE XPE LPE @PE p$p pRlUԉU,uݵ8t5jjuEEEĉBU@@ u؍ݵ8tjEPu uЋE 0U Bt} uE<@,}"uy3,@x,uz<}"uya~\}"ҍRh̵P9PRt, E̅u9PE p$pp P U BtUEEe[^_UWVS@[U }WuVT01sUăuuVWE p ppjjXPE LPE @PE 0RtuăUX0E 0R躘} ts<z,@x,uB:~=h>P9Pjt WaP:P u >8U\0E 0R芙} ts<z,@x,uB:~=hGP9Pjt W`P4:P9 u f>T:E2U 2Pw} tp<z,@x,uB:~=hQP9Pj`t WR`PN:P u ǜ>e[^_UWVS[îQ u EVPҮ} te<z,@x,uB:~=h`P9Pjt W_PPE8jT8t,)`d*BhlEEe[^_UWVS[ãP }h$jPr h jP\X0?P\0:PP uUEEԅtIPj.Ẽu uu uEẼ uuPPPj>ƃ}t uEt PRc}$tEu$/ t"E$8u P Pe[^_UWVS<[N } Iwv<z,@x,u;:~6h;P9Pjtu j:PB:Pt0MP} Iu :8<z, @x,u8: ~3h;P9Pj Tt :Pt ǃ} уQE P?:Pt0LZU؃E PR^ E؃jjP u :8TuuN?u~<z,@x,u8:~3h;P9Pj.t :Pr:Pt0KE؉$u:Pt0KE؉$Ku :8u$c PCu :8$u :8<z, @x,u8: ~3h;P9Pj t 8PNtP:Pt0JE؉$<u :8<z, @x,u8: ~3h;P9Pj Xt \PtS Eƃ u:P:Pt0It( V:Pt0I EP?<z,@x,u;:~6h;P9Pjztu j:P:Pt0Iu]UăPR uă t) VX P:Pt0Hz<z, @x,u8: ~3h;P9Pj t :Puuj .UEPuuuRuuuu\ƃ P;Pt0Gt V EP<z, @x,R: Ih;P9Pj $ ;P " h"{V P:Pt0.G<z,y@x,uB:x=h;P9Pj#t VVP;P] P膒d VU P-;Pt0F<z, @x,: h ;P9Pj z VhUP4;Ppt@;Pt0E<z, @x,u8: ~3h;P9Pj t G;P4t Pphpd P@pǃ EPPe[^_UWVS\[F EX8t8u#T;Px0D$L} Iwv<z,@x,u;:~6h4XP9Pjtu j:P:Pt0gD } Iu :8<z, @x,u8: ~3h;XP9Pj t |Pd(t (ǃ(} уQE P6(:Pt0qCU؃E PR* E؃jjP u :8Tuu6u~<z,@x,u8:~3hLXP9Pjt :P>:Pt0BE؉$:Pt0mBE؉$lzuO,tFEjjPE juuuuuuP:}t ǃ,T8u|,us<z, @x,u8: ~3hgXP9Pj t r;P*;Pt0Au :8u$c P Cu ;8$u :8<z, @x,u8: ~3hrXP9Pj t 8P;0t,P:Pt0@E؉$~u :8<z, @x,u8: ~3hwXP9Pj Et ;P艿0tS<842ƃ u:P:Pt0?t( V:Pt0? EP<z,@x,u;:~6hXP9Pjgtu j:P訾:Pt0?uwUPRu t) VM P:Pt0>(߆E jjP& <z, @x,u8: ~3hXP9Pj qt :P赽uuj ,tAT8u6}u0UEPuuu$ Ru%UEPuuuR芆uuuuƃ}tP;Pt0c=P;Pt0F=t V8}tEȉẺ EЉ$ EP<z, @x,: hXP9Pj  ;P1uuu߁ƃ P@;Pt0i<t V[0t 4PHphpd4Pʼ@p,ǃ0< z, @x,u8: ~3hXP9Pj t G;P@ P\ VJ P:Pt0k;<z,y@x,uB:x=hXP9Pj`t VRJP;P蚺t P躆 EPe[^_UWVS[à; } uj Wƃup<z,@x,u8:~3hvP9Pj褸t P;Pt0A:gF}u W4}4$,}jVWt:Pt09;Pt09e[^_UWVS[Ò: EjDjPd$'PVj9PRVlnPV;PPoEjjƉE;$E@U IQR詹EPƃzus<z,@x,u8:~3hP9PjͶt P:Pt0j8uuu}ƃ P;Pt078t V) EP"<z, @x,u8: ~3hP9Pj t ;PQe[^_UWVS[~8 Dž(Dž$} Iwv<z,@x,u;:~6h$P9Pjptu ;P豶:Pt0 7u :8u$@ @P蓂u :8tv<z,@x,u;:~6h/P9Pj蠴tu ;P:Pt0:6} u N} Iwv<z,@x,u;:~6h@P9Pjtu P::Pt05L8E PVIy EP@<8(lj4$Wuv<z,@x,u;:~6hJP9Pj=tu P8Pj9PH (t ([$t $AHV8Plj4$up<z,@x,u8:~3hP9Pj t PP:Pt0.e@<8sƍ8$V ?Dt^<z,@x,u8:~3h¶P9Pj蝫t PUăDPR[uă t. VV< P:Pt0 -T8ux<z, @x,u8: ~3h¶P9Pj t r;P-;Pt0,.EEE Eu؉u M܉M$UU(}ăEPRQVDWuuăt{tw<z,@x,uB:~=h*¶P9Pj t V;P\PZ DPwfEPuVnE$蠭 uuuplj4$腭 W;Pt0c+t WUe[^_UWVSP[ , EjjP˫< z, @x,u8: ~3hAݶP9Pj t PZDus<z,@x,u8:~3hDݶP9Pj蹨t P:Pt0V*},u-Iƃ P=P0t VK|tX}ع8t=jEPj=ƃ P0=Pt0t V"KjjHPjj`PjjTP lt l.ǃlpt p ǃptt tǃtxt x¬ǃxǃ|ǃF=Pt0<I=PVMƃM=PWMƃus<z,y@x,u8:x3h1P9Pj@t P=P脜pPt0FFFFF Vaf=PWS.tRHVjW;L <34VPt0_ jjW w=PW-tR`VjW:d <4VPt0 jjW蓜 =PW-tRTVjW0:X <a4VPt0 jjW* 4=PW-t Vx=PW,t Vt=PW,t Vtp=PW,t VFl=PWc,t=PVL,|M=PW1,t=PV,W=Pt0Ge[^_UWVSd[ u Pt6d '>P6MD>Pt01t DžjjP衖jjV莖jjP{jjVn Ėt Ė謤ǃĖȖt Ȗ舤ǃȖ̖t ̖dǃ̖Жt Ж@ǃЖԖt ԖǃԖF=Pt0oI=PVEƃM=PWDƃus<z,y@x,u8:x3hPP9Pj讒t P=PpPt0KFFFFF V"YZ>PW%tUVjWp2 <c4VPt0 jjWg 6o>PWU%tRVjW2 <4VPt0a jjW >PW$tUVjW1 <4VPt0 jjW蒓 a>PW$tRVjW/1 <%4VPt0 jjW) >PW$t V̖>PW#t VȖ>PW#t VsȖq>PW#t VHЖF>PWe#t VԖW=Pt0e[^_UVS[= VhPz Vv<z,@x,u]:~Xh vP9Pj!t7 V$" PVP P@ j jhj P訟ƒuǃؖ|)ƃؖt}<z,@x,u8:~3hvP9PjPt >P蔏;Px0ǃؖ<z, @x,u@: ~;h!vP9Pj ӍtVP8Pup<z,@x,u8:~3h$vP9Pjnt >P貎;Px0 VPuU e[^UWVS[ó }u jt0jx0VW+UWVS4[e jt0}$tf(tUjEPEPEPVP PP0\0X0REԃ,t@PuЍ?Pt0 }t uٜE$tXܖ}ȹ8t=jEPj,ƃ P?Pt0u t V:(tXܖ}ع8t=jEPjP,ƃ P?Pt0 t V9e[^_UWVS [ù (hPR谛jxX@$`@ǹэy Q̛ WP6$jjj u jjjj`@P 7 j(Pu ut@P|ǃ }uj PW蹭O j(Pu ujd|ǃ xB=t{= =t (== jP) <4V2 $Ij PH) <4V0 $jP( <wM4V2] $賘j0~@PWu 04 W@X> 6ۘ>FPt7ƒtw@\>tT6`u=6Px0  j PW艫$Η\t G\>u蝦:u9Cv<t_u!t4$F~@Px0Cvt@Px0fF~ك j赖X8t8u8T;Px0* j PW&$kt^u jO jET>u @P[tt^N X0PP\0:PV=jT0VFt W褑Ѝe[^_US[  uu ujѕ]UWVS[ Dž`Dž\EjjP與EȃjjPxEjjPhxPۥDžhDžl}\Dž\ uxT6"EP6$ ux6(}W6" ujWV)}t#}w}t<}t}t!.E'E EP EPtjdPEPhP\EPuVxP0\0X0Ret V與tLWd@P{dt dIDžd}uh8&<z,@x,u5:~0juP@Pjt xPK<z,@x,u5:~0jvP@Pj趂t @PjhPjC<z,@x,u5:~0jxP@PjOt @P蓃jEPj߾Dž`}Mu}8y<z,@x,u8:~3hP@Pj踁t P<z,@x,u8:~3hP@Pjdt @P訂jEPj<z,@x,u8:~3hP@Pjt @PAjEPj荽Dž`Hu}8,<z,@x,u8:~3hP@Pjkt P证<z,@x,u8:~3hP@Pjt @P[jEPj觼<z,@x,u8:~3hP@Pjt @Puuj@Dž``e[^_UjUjUWVSp[ EE؉EjjP蓁EEP}uuT6"EP6jUjEPEPEPj juu0\0X0RHu0ult;Vu@Pb}t u6Euȍ}8)<z,@x,u8:~3hP@Pj}t xP@<z,@x,u8:~3hP@Pj}t @P~jEPj8<z,@x,u8:~3hP@PjA}t @P~jEPjѹEuȍ}8)<z,@x,u8:~3hP@Pj|t P}<z,@x,u8:~3hP@Pjc|t @P}jEPj<z,@x,u8:~3hP@Pj{t @P@}jEPj茸EEe[^_UWVS[P DžpE؉ljjP~EȃjjP}EhP`Džxxd@}uuT66}W6 ujW EP6UjtPEPdj llh0\0X0RZu0l{~tGVt@Pntt t<Džtux8/<z,@x,u8:~3hP@Pjyt xP@{<z,@x,u8:~3h P@Pjyt @PzjxPj5<z,@x,u8:~3h"P@Pj>yt @PzjEPjεDžpuȍ}8,<z,@x,u8:~3h(P@Pjxt Py<z,@x,u8:~3h)P@Pj]xt @PyjEPj<z,@x,u8:~3h+P@Pjwt @P:yuuj膴Džppe[^_UWVS[D Dž|DžxE؉tjjPyEȉpjjPyEljjPyEhn PAPhEdP}xDžx ltphdT0\0X0, u huzf EP\z}t#}w}t<}t}t!.E'E EPz EP zUjEPEPjx}WEȉ`PEP0\0X0R蒛u `y<$yt@Vu@P}t uuE}b}R}Hu}8,<z,@x,u8:~3h{P@Pj"ut PPfv<z,@x,u8:~3h|P@Pjtt @PvjEPj^<z,@x,u8:~3h~P@Pjgtt @PuuujDž||e[^_UjdUjRUj@UjUjUjrUjUjUWVSp[( EEjjPuEȃjjPuUjPRu}EE T0EPjZu^<z,y@x,u8:x3hٷP@Pjrt @Pt jEE؃ PZE܃T0Rƃu^<z,y@x,u8:x3hٷP@PjNrt @Ps jZjEPQVjjjK u^<z,y@x,u8:x3hٷP@Pjqt Ps jЁt Vc}IM̃}t#}w}tb}t}t4TEMEF}t u EE"}t uEEUjEPEPEPuEPEPEP0\0X0Rou,}t u肁E}t ugE EPYtt=Vu@PO}t u#E} }e[^_UjUjzUjhUjVUjDUWVS [g pDtvpDu`<z,@x,u?:~:hWP@PjdottDAPpFpDue[^_US[ uu uj]UWVS [Ó }W,hPhPPEt9Eu EFEu㍃Pe[^_UWVS [& }ƒ8t9|uA<u WJe[^_UVS[ UEt9Eu E)@EuR;hPhPVe[^UWVS [n }Et/u E~u EFEue[^_D$T$u du mju mUS[ uu uj}]UWVS [ß }WhPhPPUt9Uu UFUu㍃Pe[^_US[4 uu uj|]UWVl$|$t$L$9}D8DB9|^_]UWV@l$P|$Tt$X9}&9* A9|9}  D A9|@^_]UWVL$t$l$|$ T$Jt FAJuOt EEAOu^_]UWVl$|$t$L$9}2DB9|^_]UWVS[ j8PuEPDžttDDBt~DžttD Ĉ hAt~DžtEphl(hjtpWpjWlyjjlph,j0PPhtR(Pttzj@Pu P5555F~Džt(dTj0иPP8Plj0}u+t@dtRdP8PP vLE9 G~F~پTXvTU  `   \`X)\9G~FjLvTE芄:9G~F~j PPWj WPxP 55F~5x5F~ttj j PPhWj@0PWuv$e[^_VL$t$ A ЈFQA ЈFQA ЈFQA ЈFQA ЈFQ?A ЈFAF$@~^UWV0PuBЅyBM 4ЅyB)ȉ)xЅyB0ЅyB)ȉ)8DB?~u8PxPEPEB~|t3ЅyBЅyB)ȹ)E B?~e^_UWVS [í uEK}GGGSG!G@G#G$G%jVWu jVWE P e[^_UWVS [H u}jVu WSjFPu GPA jVu W,e[^_UWVS [ u} jVWujVWEP e[^_UWVS [ç u} jVWujVWEP e[^_UVS[` ujVu EPkj VEPuY e[^UWVS[ uE}GjVu EPFEjWEPu e[^_UWVS [ u}WVu EPWVEPu e[^_UWVS[À u }EEE@uWVuvGEuuVEPZ e[^_UWVS [ u}WVu u'WVE PEP e[^_UVS[ ju VON uuVNe[^UVS[Ï Ep0V N u uVpNe[^UWVS[M Uu }UUU܈U؉EEE݈EىEEވEUU߈UuEPVWuEPVW e[^_US[ uu ujr]UWS$[à U}󫪋E؋BE܋BEB Euu EPe[_UWVS$[G uVuǃ uu Vve[^_UVS[ jhuVj0GVI PVu ~ hjVqe[^UWVS[ä Uu }hBlBpB txF|FEF EuV @ j hPV<@Vu*Ae[^_UWVS [ DžhjVpjhuVBu V Iv DžhjPype[^_UWVS[n u} u V5uV*e[^_UWVS[# u PFǃu\<:y@8u8:x3hPiPj'_t Pk`uP@Fu\<:y@8u8:x3hPiPj^t <P_ I}t IwX<:y@8u>:x9hPiVj"^thVP`_wX<:y@8u>:x9hPiVj]thVP^VjuF VWG VGVuGt nDžt mDže[^_UWS$[Ñ U}󫪋E؋BE܋BEB Euu EPe[_UWS$[9 U}󫪋E؋BEEཽE佽uu EPe[_UWS$[ U}󫪋E؋BE܋BEB Euu EPe[_UVS[Ç uVu^ uu Vye[^UWVS[J u WjuE Wv6E WEp0EWuEe[^_UVS[ VjuD Vju CEVu`Ee[^US[á juuKx]UVS4[x UuEȋBEEнEԽEPu EPE؉E܉FEFEF e[^UWVS [ u}jjW\ iPju jujiPWFE؉E܉FEF e[^_UWVS@[ë u} E؉EjjPb\$EPc$>kPEPѣ w7jjEPjEPjhiPuxEE؉E܉FEF0e[^_UWVSD[ }uuV< EPVuu U ẼPjR[UE؉E܉BEBEB EuuPi4$\EEGEGe[^_UWVS@[h }ujjV%[EjjP[uuEPVuu UE؉E܉BEBEB EuuPi4$ \EEGEGe[^_UWVS8[þ u }$EPju uui t]t9uuE؉EPVa tjjW:Z76u^}tuEPu Ѝe[^_UVS[ uVuu$u uuuVu u#0e[^UWVS[ EPhu WjjiPBƋE)VWPg)PubE hjWPge[^_UVS[J EU<:y@8u9:x4h(PiPjLVtVPW<:y@8u8:x3h)PiPjUt P=W-RVu)Pu jjiPAU e[^UWVS[7 } uV5 jEPV 5 w7V5VxV5 hVue[^_UWVS<[ EEE ;PMЉMuȉuEE@U B+UăvEċM RPuweEu;Fv F+EE}؋uE0f}PEPuu5U u F+Uăvuč1RuPduăEE ;p2e[^_UWVSL[ï E} tu uVPm jVV5qEȃ jVP:x9hPiPjRtDPT@ jVhE؃PV7EPMVEȉ$BV4$ce[^_US[ uu ujb]UWVS,[ÿ u }u[<z( @x(u5: ~0j*ƻP%iPj Qt |PS#t^<z(y@x(u8:x3j1ƻP%iPjrQtwPRExt^<z(y@x(u;:x6j7ƻP%iPj QtEpPIRXEP7V}t"jju5SE0jVuȋE88e[^_UWVSL[ u} u[<z( @x(u5: ~0jcۻP%iPj .Pt |PrQExta<z(y@x(u;:x6jjۻP%iPjOtEpPQ<~w^<z(y@x(u8:x3jsۻP%iPjcOtvLPPUFPPRQEBEBEB EčEPuuuWg }WEPuuV} t!jju 3QE 0WVW EPRuȍ}8u} t u RЍe[^_UWVS<[ }u }4uW<z(@x(u;:~6hP%iPjMtu$P@O6~,}4"~th<z(@x(u>:~9hP%iPjMtu$vPNEje6}48u8}8t$jju8OU82ju4E<z(@x(u;:~6hP%iPjLtu$ PNUjzp}0fth<z(@x(u>:~9hP%iPjHLtu$wpPMEj'zue<z(@x(u;:~6hP%iPjKtu$PMUj 7}08uE <z(@x(u;:~6hP%iPjMKtu$HPLUj/ Ex08<z(@x(u;:~6hP%iPjJtu$PK}4Uzr2uVg}48uE\ <z(@x(u;:~6hP%iPjJtu$PVKUj Juh<z(@x(:hP%iPjIbu$,PJH}0Ex}fUBv}ȃPE0WYuVW }08uU <z(@x(u;:~6h P%iPjHtu$PJEj <z(@x(u;:~6hP%iPj\Htu$PIUj> UBHw]<z(@x(uA:~tnu$P?W<z(@x(u;:~6hP%iPj>tu$LPZ?UjEe[^_US[| uu ujAN]UVS[S u<:@8u6:~1j? P:iPjp=tVKiP>t1<:@8u:~ iiPz>t1<:@8u:~ iPA>t1<:@8u:~ iP>t1<:@8u:~ iP= t1<:@8u:~ iP=@t1<:@8u:~ P]=ƀt1<:@8u:~ iP$=t1<:@8u:~ jP<t1<:@8u:~ &jP<t1<:@8u:~ Py< t1<:@8u:~ P@<@t1<:@8u:~ 4P<t1<:@8u:~ \P;t1<:@8u:~ P;t1<:@8u:~ P\;t1<:@8u:~ @jP#;t1<:@8u:~ [jP: t1<:@8u:~ wjP:@t1<:@8u:~ jPx:y1<:@8u:~ jPC:e[^UVS[x jPVEe[^øUWVS [@ uExtX<:y@8u>:x9h P:iWjQ8thWP9e[^_UWVS[õ }u EujP6F%e[^_UWVS [g }u jPju64F,jPju6F( ~,tu>~,t v,F,~(t v(F(e[^_UWVS<[ù }t1E؉EPWuVWVuu uE @,@(EEe[^_UWVS[O }u EujP6^F %e[^_UWVS[ }u u6F$%e[^_UVS[¸ uE uu0R 9 e[^UWVS[ }u jVjPtOpjV kPtOpjV"kPtOp e[^_ËT$D$tJptJptJp UWVS,[ } u`<:@8u8:~3h*.P:iPj4t P?6E \jju<7 }u<t3E؋E܋EjjP6 EE؋EE܋EE}u(GtEEEP7kP?kPEP#us<:@8u8:~3hG.P:iPj3t P)5uujupE 3G;E<:@8u>:~9hN.P:iPjf3twuԍXP4E uuuuWuT2PUƒxt.EЉ֍I2;Gu D2;EtAUЍI|uՋ<:@8u>:~9hZ.P:iPj2tuwP3E Ee[^_UWVS [ u8Hxu1 @P6L$6X$5<$e[^_UVS[Þ uUjE t. ~ u  [^ËT$L$tBpBpBBpBpBt|$ tJpBbpubpubp ubp߅xbp@ubpubp ubpubptJpUWVS[x u} EwhwduP3 }wE؉E܉FEFBGpt+py E@E@E@8E@EE؉E܉FEFe[^_UWVS<[޲ u Dž}}v/ PP7kPBkPEP uv<:@8u;:~6h=P:iPj/tuP0uuj:x9hVP:iVjr'thVP(DžE P4EBEE PLEBE V jEPVVuV} @jVU 2W)E LP*Wu PE  t EP*U2mE `pURURu PU  t EP8*E0"uuȍkPf uukPf}}EjjU 2P) ujEPu<: @8u8: ~3h%VP:iPj %t P&uukP#fo<: @8u8: ~3h)VP:iPj 5%